Community project

Self-Made Upgradable Quadcopter

ESP32
Photo of Self-Made Upgradable Quadcopter

Leandro P

Last updated September 12, 2026

This guide walks through building a fully functional quadcopter from individual components, with flight control managed by the dedicated KK2.1.5 flight controller. The platform uses four brushless motors driven by 40 A ESCs, powered by a 3S LiPo battery through a power distribution board, and receives commands from a FlySky-compatible radio receiver.

Builders will receive a complete parts list, wiring diagrams for the power system and flight-control integration, and step-by-step assembly instructions organized across mechanical integration, propulsion setup, power distribution, flight-controller configuration, and radio-control binding. The modular design makes it straightforward to upgrade individual components like motors or ESCs as skills develop.

Wiring diagram

Wiring diagram for Self-Made Upgradable Quadcopter

Gather all the parts

QtyComponent
1

3S 4200 mAh LiPo Battery with XT60

3S 4200 mAh LiPo

The rechargeable 3-cell battery pack that supplies power to the quadcopter.

1

XT60 Quadcopter Power Distribution Board (PDB)

XT60 PDB

The board that splits battery power safely into four ESC power branches.

1

ESC1 — 40 A Brushless ESC with 5 V BEC

40 A with 5 V BEC

The first electronic speed controller, which drives Motor 1 and supplies the regulated 5 V controller power.

1

ESC2 — 40 A Brushless ESC

40 A

The second electronic speed controller, which drives Motor 2.

1

ESC3 — 40 A Brushless ESC

40 A

The third electronic speed controller, which drives Motor 3.

1

ESC4 — 40 A Brushless ESC

40 A

The fourth electronic speed controller, which drives Motor 4.

1

Motor 1 — 2200 KV Brushless Motor

2200 KV

The first three-wire brushless motor, driven only by ESC1.

1

Motor 2 — 2200 KV Brushless Motor

2200 KV

The second three-wire brushless motor, driven only by ESC2.

1

Motor 3 — 2200 KV Brushless Motor

2200 KV

The third three-wire brushless motor, driven only by ESC3.

1

Motor 4 — 2200 KV Brushless Motor

2200 KV

The fourth three-wire brushless motor, driven only by ESC4.

1

KK2.1.5 Multi-Rotor Flight Controller

KK2.1.5

The self-contained flight controller that reads pilot commands and sends one motor-control signal to each ESC.

1

FlySky-compatible 6-channel PWM Receiver

6-channel PWM

The radio receiver that turns transmitter stick movements into five PWM command signals for the flight controller.

1

Quadcopter Frame

Quadcopter frame

The mechanical frame that holds the controller, power board, ESCs, motors, and battery in the required four-arm layout.

Assemble it in 6 steps

1. Stage 1 — Mechanical Integration

The Quadcopter Frame provides the mechanical reference for organizing the XT60 Quadcopter Power Distribution Board (PDB), the KK2.1.5 Multi-Rotor Flight Controller, four ESCs, four 2200 KV brushless motors, and the FlySky-compatible 6-channel PWM Receiver. The documented prototype keeps the propulsion assignments fixed: ESC1 → Motor 1, ESC2 → Motor 2, ESC3 → Motor 3, and ESC4 → Motor 4. This stage records the intended engineering organization, not a construction or flight procedure.

  • Use the component identifiers consistently in the schematic, connection table, and prototype records.
  • This engineering documentation describes system organization only; it does not prove electrical, powered, or flight validation.

2. Stage 2 — Propulsion-System Integration

The propulsion subsystem consists of four 40 A brushless ESCs and four 2200 KV brushless motors. The fixed ESC-to-motor pairings are ESC1 → Motor 1, ESC2 → Motor 2, ESC3 → Motor 3, and ESC4 → Motor 4. For each pair, PHASE A, PHASE B, and PHASE C are documented specifically as MOTOR PHASE connections, separate from the propulsion-power and PWM control-signal paths.

  • Keep the ESC and motor identifiers consistent across all engineering records.
  • MOTOR PHASE is the required label for all twelve ESC-to-motor phase links; they are not data, digital, PWM, or generic power connections.

3. Stage 3 — Power-System Integration

The prototype’s propulsion-power architecture is documented as 3S 4200 mAh LiPo Battery with XT60 → XT60 Quadcopter Power Distribution Board (PDB) → four ESCs. The battery and PDB define the high-current propulsion-power section, while control electronics are recorded as a separate control-power and signal section. This functional separation supports clear engineering inspection and future revision.

  • Review positive and ground paths separately against the connection table during documentation checks.
  • High-current LiPo systems require appropriate engineering safety controls; this portfolio record is not a battery-handling procedure.

4. Stage 4 — Flight-Control Integration

The KK2.1.5 Multi-Rotor Flight Controller is the actual flight-control component in this prototype. ESC1 connects to KK2.1.5 M1, ESC2 to M2, ESC3 to M3, and ESC4 to M4 through their corresponding PWM CONTROL SIGNAL and ground paths. ESC1 provides the designated 5 V BEC supply for the documented control system through the KK2.1.5 M1 power connection. No ESP32 is a physical or connected component of this quadcopter.

  • Treat M1–M4 as fixed interface identifiers in every design revision.
  • This stage records system integration only; it does not include powered testing, calibration, or flight procedures.

5. Stage 5 — Radio-Control Integration

The FlySky-compatible 6-channel PWM Receiver provides the radio-control inputs to the KK2.1.5. Its documented PWM mapping is CH1 → AIL, CH2 → ELE, CH3 → THR, CH4 → RUD, and CH5 → AUX; B/VCC and GND are the receiver power connections. This records PWM control-signal integration and distinguishes receiver inputs from ESC PWM control outputs.

  • Compare receiver labels directly with the connection table so channel names remain identical in all records.
  • This documentation does not include transmitter configuration, receiver binding, or aircraft-operation instructions.

6. Stage 6 — Engineering Inspection and Documentation

The final engineering review documents component identification, the fixed ESC/motor pairings, propulsion-power organization, control-signal organization, polarity labels, MOTOR PHASE labels, receiver PWM channel mapping, and comparison with the complete connection table. Discrepancies are recorded for troubleshooting and iterative development before the design documentation is revised. Advanced capabilities such as autonomous flight, GPS, telemetry, additional sensors, and other future upgrades are concepts only and are not implemented in this prototype. Engineering Prototype — System Design and Documentation. The development record emphasizes component selection → system integration → troubleshooting → iterative development → documentation → future upgrade potential.

  • Use the schematic and complete connection table together as the controlled reference for future engineering iterations.
  • This engineering documentation does not itself prove electrical validation, powered validation, or flight validation.

Review all connections

1. Connections between "battery_3s_4200mah" and "ESP32"

Functionbattery_3s_4200mahESP32
powerBAT+XT60 Quadcopter Power Distribution Board (PDB) BAT+ INEXT
groundBAT-XT60 Quadcopter Power Distribution Board (PDB) BAT- INEXT

2. Connections between "pdb_xt60" and "ESP32"

Functionpdb_xt60ESP32
powerESC1 +ESC1 — 40 A Brushless ESC with 5 V BEC BAT+EXT
groundESC1 -ESC1 — 40 A Brushless ESC with 5 V BEC BAT-EXT
powerESC2 +ESC2 — 40 A Brushless ESC BAT+EXT
groundESC2 -ESC2 — 40 A Brushless ESC BAT-EXT
powerESC3 +ESC3 — 40 A Brushless ESC BAT+EXT
groundESC3 -ESC3 — 40 A Brushless ESC BAT-EXT
powerESC4 +ESC4 — 40 A Brushless ESC BAT+EXT
groundESC4 -ESC4 — 40 A Brushless ESC BAT-EXT

3. Connections between "esc1" and "ESP32"

Functionesc1ESP32
power+5V BECKK2.1.5 Multi-Rotor Flight Controller M1 +5VEXT
groundSIG GNDKK2.1.5 Multi-Rotor Flight Controller M1 GNDEXT
pwmSIGKK2.1.5 Multi-Rotor Flight Controller M1 SIGEXT
dataPHASE AMotor 1 — 2200 KV Brushless Motor PHASE AEXT
dataPHASE BMotor 1 — 2200 KV Brushless Motor PHASE BEXT
dataPHASE CMotor 1 — 2200 KV Brushless Motor PHASE CEXT

4. Connections between "esc2" and "ESP32"

Functionesc2ESP32
groundSIG GNDKK2.1.5 Multi-Rotor Flight Controller M2 GNDEXT
pwmSIGKK2.1.5 Multi-Rotor Flight Controller M2 SIGEXT
dataPHASE AMotor 2 — 2200 KV Brushless Motor PHASE AEXT
dataPHASE BMotor 2 — 2200 KV Brushless Motor PHASE BEXT
dataPHASE CMotor 2 — 2200 KV Brushless Motor PHASE CEXT

5. Connections between "esc3" and "ESP32"

Functionesc3ESP32
groundSIG GNDKK2.1.5 Multi-Rotor Flight Controller M3 GNDEXT
pwmSIGKK2.1.5 Multi-Rotor Flight Controller M3 SIGEXT
dataPHASE AMotor 3 — 2200 KV Brushless Motor PHASE AEXT
dataPHASE BMotor 3 — 2200 KV Brushless Motor PHASE BEXT
dataPHASE CMotor 3 — 2200 KV Brushless Motor PHASE CEXT

6. Connections between "esc4" and "ESP32"

Functionesc4ESP32
groundSIG GNDKK2.1.5 Multi-Rotor Flight Controller M4 GNDEXT
pwmSIGKK2.1.5 Multi-Rotor Flight Controller M4 SIGEXT
dataPHASE AMotor 4 — 2200 KV Brushless Motor PHASE AEXT
dataPHASE BMotor 4 — 2200 KV Brushless Motor PHASE BEXT
dataPHASE CMotor 4 — 2200 KV Brushless Motor PHASE CEXT

7. Connections between "receiver" and "ESP32"

FunctionreceiverESP32
powerB/VCCKK2.1.5 Multi-Rotor Flight Controller RX +5VEXT
groundGNDKK2.1.5 Multi-Rotor Flight Controller RX GNDEXT
digitalCH1KK2.1.5 Multi-Rotor Flight Controller AILEXT
digitalCH2KK2.1.5 Multi-Rotor Flight Controller ELEEXT
digitalCH3KK2.1.5 Multi-Rotor Flight Controller THREXT
digitalCH4KK2.1.5 Multi-Rotor Flight Controller RUDEXT
digitalCH5KK2.1.5 Multi-Rotor Flight Controller AUXEXT

Deploy the firmware

// Self-Made Low-Cost and Easily Upgradable Quadcopter
// Documentation-only firmware stub
//
// The KK2.1.5 is the actual flight controller used in the prototype.
// The KK2.1.5 operates using its own flight-controller firmware.
// This Arduino source is NOT used to control the quadcopter.
//
// This stub intentionally performs no hardware I/O and implements:
// - No motor control
// - No ESC control
// - No flight stabilization
// - No telemetry
// - No GPS
// - No autonomous flight
// - No sensor integration
//
// It is included only to satisfy documentation/project-structure
// requirements where a source-code entry is expected.

void setup() {
    // Intentionally empty — documentation stub only.
}

void loop() {
    // Intentionally empty — documentation stub only.
}

Remix this project

Make it yours in one click

Open a full copy of this project in your own Schematik workspace — diagram, code, parts, and assembly steps included. Swap the sensor, add features, or redesign the whole thing with AI. The author's original stays untouched.

Open in Schematik