Skip to the content
PCBKitNew board
2 layersDrone ESC, the printed circuit board in 3D

A custom 3-phase Brushless DC (BLDC) Electronic Speed Controller (ESC) designed in KiCad, intended for drone and robotics applications.

Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
46
Pads
188
Tracks, vias
819, 112
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
3 Aug 2026
Updated
3 Aug 2026

Overview

Drone ESC is an open-source printed circuit board by Arpit192005, from the Arpit192005/Drone-ESC repository on GitHub. It is a 2-layer board with 31 parts on 46 nets, routed with 819 tracks and 112 vias.

It is built around the ATMEGA328P-MU and FAN7888M. Its parts include 6 transistors, 5 capacitors, 3 diodes, 3 connectors and 2 ICs. It belongs with the robots and motor control boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

Drone ESC (Electronic Speed Controller) for Brushless DC Motors

A custom 3-phase Brushless DC (BLDC) Electronic Speed Controller (ESC) designed in KiCad, intended for drone and robotics applications. This project demonstrates the complete hardware implementation of a sensorless ESC using an ATmega328P microcontroller, a FAN7888 three-phase gate driver, and N-channel MOSFETs for power switching. The controller performs six-step commutation using Back-EMF (BEMF) zero-crossing detection, eliminating the need for Hall-effect sensors.

The project focuses on understanding the hardware architecture of a modern ESC rather than relying on off-the-shelf commercial solutions.


Project Overview

Electronic Speed Controllers are responsible for converting the battery's DC power into controlled three-phase power required to drive brushless motors. This ESC generates PWM signals, controls the gate driver, detects rotor position using Back-EMF sensing, and performs commutation to regulate motor speed.

Unlike brushed DC motors, BLDC motors require accurate switching of six MOSFETs based on rotor position. In this design, rotor position is estimated using the floating motor phase voltage rather than dedicated position sensors.


Features

  • Sensorless BLDC motor control
  • Six-step trapezoidal commutation
  • ATmega328P based control
  • FAN7888 three-phase high/low side gate driver
  • Six external N-channel MOSFETs
  • Back-EMF zero-crossing detection
  • PWM motor speed control
  • ISP programming interface
  • UART debugging interface
  • External crystal oscillator
  • AVR firmware compatible

Schematic

Complete ESC schematic designed in KiCad

Screenshot 2026-08-03 121139

Hardware Architecture

The ESC is divided into four major functional blocks.

text
                +--------------------+
                |   ATmega328P MCU   |
                +---------+----------+
                          |
                 PWM & Commutation
                          |
                          ▼
                +--------------------+
                |    FAN7888 Driver  |
                +---------+----------+
                          |
             High Side / Low Side Gates
                          |
                          ▼
               Six N-Channel MOSFETs
                          |
                    Three Motor Phases
                   A      B      C
                          ▲
                          |
              Back EMF Divider Network
                          |
                          ▼
                   ATmega328P ADC

Main Components

ComponentPurpose
ATmega328PMain motor control MCU
FAN7888Three-phase gate driver
2N7000 MOSFETsGate interface circuitry
Six Power MOSFETsMotor phase switching
16 MHz CrystalMCU clock
BEMF Divider NetworkRotor position sensing
Bootstrap CapacitorsHigh-side gate drive supply
ISP HeaderFirmware programming
UART HeaderDebugging and testing

Microcontroller Section

The controller is built around the ATmega328P, which executes the sensorless motor control firmware.

The microcontroller is responsible for:

  • Initial motor startup
  • PWM generation
  • Six-step commutation
  • Reading Back-EMF voltages
  • Detecting zero-crossings
  • Speed regulation
  • Motor protection logic
  • Communication through UART

The MCU uses:

  • External 16 MHz crystal
  • Reset circuit
  • ISP programming connector
  • UART connector
  • ADC inputs for BEMF sensing

Gate Driver Section

The FAN7888 acts as the interface between the microcontroller and the power stage.

Since the ATmega328P cannot directly drive high-side MOSFETs, the FAN7888 generates the necessary gate voltages for both the upper and lower MOSFETs.

Responsibilities include:

  • Level shifting
  • Bootstrap gate drive
  • High-side gate generation
  • Low-side gate drive
  • Fast gate charging/discharging
  • Dead-time handling (firmware-assisted depending on implementation)

Driver Inputs

  • HIN1
  • HIN2
  • HIN3
  • LIN1
  • LIN2
  • LIN3

Driver Outputs

  • HO1
  • HO2
  • HO3
  • LO1
  • LO2
  • LO3

Power Stage

The ESC uses a standard three-phase inverter topology consisting of six N-channel MOSFETs.

text
          Battery+

          QH-A
            |
Phase A ----+
            |
          QL-A

          QH-B
            |
Phase B ----+
            |
          QL-B

          QH-C
            |
Phase C ----+
            |
          QL-C

            |
          Ground

Each motor phase contains:

  • One high-side MOSFET
  • One low-side MOSFET

The gate driver independently controls every MOSFET pair during commutation.


Sensorless Back-EMF Detection

Instead of Hall sensors, the ESC estimates rotor position by monitoring the voltage on the floating motor phase.

A resistor divider network scales the motor phase voltage to a level that the ATmega328P ADC can safely measure.

The firmware continuously monitors:

  • Phase A
  • Phase B
  • Phase C

When the floating phase crosses the virtual neutral voltage (zero crossing), the MCU advances to the next commutation step.

Advantages:

  • Lower cost
  • Reduced wiring
  • Smaller PCB
  • Higher reliability
  • No mechanical sensors

Commutation Sequence

The ESC performs six-step commutation.

StepHigh SideLow SideFloating
1ABC
2ACB
3BCA
4BAC
5CAB
6CBA

The floating phase is monitored for Back-EMF zero crossing before advancing to the next state.


PWM Speed Control

Motor speed is controlled by varying the PWM duty cycle applied to the active MOSFETs.

Typical behavior:

  • Low duty cycle → Low speed
  • Medium duty cycle → Moderate speed
  • High duty cycle → Maximum speed

PWM also improves efficiency and enables smooth speed control while minimizing switching losses.


Bootstrap Circuit

Bootstrap capacitors provide the voltage required to drive the high-side MOSFET gates above the battery supply.

These capacitors charge when the corresponding low-side MOSFET is active and supply the gate driver during high-side switching.


Firmware Responsibilities

The firmware running on the ATmega328P typically performs the following sequence:

  1. Initialize peripherals
  2. Configure timers for PWM
  3. Start open-loop commutation
  4. Accelerate motor
  5. Begin Back-EMF sampling
  6. Detect zero crossing
  7. Switch to closed-loop commutation
  8. Continuously regulate motor speed
  9. Monitor fault conditions

Design Highlights

  • Modular schematic organization
  • Dedicated microcontroller section
  • Independent motor driver stage
  • Separate Back-EMF sensing network
  • AVR ISP programming support
  • UART debugging interface
  • Suitable as a learning platform for BLDC control algorithms

Applications

  • Multirotor drones
  • Fixed-wing UAV propulsion
  • RC aircraft
  • Ground robots
  • Educational BLDC motor control
  • Robotics research
  • Embedded systems learning

Future Improvements

This schematic provides the core ESC functionality, but several additions would be expected in a production-ready design:

  • Higher-current power MOSFETs with appropriate thermal design (the shown 2N7000 devices are not suitable as the main motor power switches for a drone ESC).
  • Battery voltage and current sensing for telemetry and protection.
  • Over-current, over-temperature, under-voltage, and stall protection.
  • TVS diodes and improved EMI filtering for electrical robustness.
  • Optimized PCB layout with wide copper pours, short gate-drive traces, and proper decoupling.
  • Support for digital control protocols such as DShot in addition to PWM.
  • Integration with open-source firmware such as BLHeli or custom sensorless control firmware.

Repository Structure

text
Drone-ESC/
│
├── Hardware/
│   ├── Schematic/
│   ├── PCB/
│   └── BOM/
│
├── Firmware/
│   ├── Source/
│   ├── Drivers/
│   └── Configuration/
│
├── Images/
│   └── ESC_Schematic.png
│
├── Documentation/
│   ├── Design_Notes.md
│   └── Hardware_Architecture.md
│
├── LICENSE
└── README.md

License

This project is intended for educational and research purposes. Contributions, improvements, and discussions are welcome.

Parts

31
QtyValueFootprintReferences
62N7000Package_TO_SOT_THT:TO-92_InlineQ1, Q2, Q3, Q4, Q5, Q6
5100Resistor_SMD:R_Array_Concave_4x0402RN1, RN3, RN4, RN5, RN6
4SolderJumper_2_OpenJumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mmJP1, JP2, JP3, JP4
34u7Capacitor_SMD:C_0201_0603MetricC3, C4, C5
3D_SchottkyDiode_SMD:D_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1, D2, D3
1100NCapacitor_SMD:C_0201_0603MetricC2
110KResistor_SMD:R_0805_2012MetricR1
116MHzCrystal:Crystal_SMD_EuroQuartz_MJ-4Pin_5.0x3.2mm_HandSolderingY1
1ATmega328P-MPackage_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mmU1
1AVR-ISP-6Connector_IDC:IDC-Header_2x03_P2.54mm_Vertical_SMDJ1
1CCapacitor_SMD:C_0201_0603MetricC1
1Conn_01x04_PinConnector_PinHeader_1.00mm:PinHeader_1x04_P1.00mm_VerticalJ2
1Conn_01x06_PinConnector_PinHeader_1.00mm:PinHeader_1x06_P1.00mm_VerticalJ3
1FAN7888Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU2
1R_Pack04Resistor_SMD:R_Array_Concave_4x0402RN2

Questions

What parts does the Drone ESC use?

31 parts, built around the ATMEGA328P-MU and FAN7888M. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Drone ESC KiCad files?

From the Arpit192005/Drone-ESC repository on GitHub, at the commit this page was made from: the board is drone esc.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Drone ESC design in my own project?

Its repository states no licence, so its author keeps all rights: ask Arpit192005 before reusing the design.

Similar boards

  • 2 layers65 × 35 mmEsc v1, the printed circuit board in 3D

    Esc v1

    savob/esc

    My custom ESC project

    44 parts4CERN-OHL-W-2.0
  • 2 layers89.4 × 66.9 mmE foc, the printed circuit board in 3D

    E foc

    embedded-pro/e-foc-hardware

    hardware to be used with https://github.com/embedded-pro/e-foc

    186 parts
  • 2 layers85 × 17 mm3dsimo kit, the printed circuit board in 3D

    3dsimo kit

    3dsimo/3dsimo_kit

    Visit us at 3D simo pages for more information

    44 parts78
  • 2 layers148.1 × 37.1 mmNixie, the printed circuit board in 3D

    Nixie

    njeff/nixie-clock

    Nixie Clock PCB and Code

    41 parts7
  • 2 layers34.3 × 26.7 mmQuarterduino, the printed circuit board in 3D

    Quarterduino

    akita11/Quarterduino

    Half-size Arduino UNO compatible

    39 parts2MIT
  • 2 layers47 × 47 mmLoadcell PCB, the printed circuit board in 3D

    Loadcell PCB

    Jackiempty/DAQ_PCB

    NCKU ISP loadcell unit project

    57 parts2
  • 2 layers49.4 × 43.7 mmChaos papagali, the printed circuit board in 3D

    Chaos papagali

    Pakequis/Chaos_papagali

    A annoying device that imitates the vibration of a phone

    41 parts2MIT