Skip to the content
4 layers45.8 × 45.8 mmDrone FC, the printed circuit board in 3D

A fully custom mini racing/stunt drone with ML-assisted balancing, automatic stunts, and some level of autonomous operation without costly cameras or GPS.

Size
45.8 × 45.8 mm
Copper layers
4
Thickness
1.36 mm
Parts
63
Nets
73
Pads
228
Tracks, vias
1,006, 123
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
16 Apr 2026
Updated
30 Jun 2026

Overview

Drone FC is an open-source printed circuit board by dark-Phoenix2077, from the dark-Phoenix2077/hover repository on GitHub, published under the MIT licence. It is a 4-layer board of 45.8 × 45.8 mm with 63 parts on 73 nets, routed with 1,006 tracks and 123 vias.

It is built around the STM32F103C8T6, AMS1117-3.3 and MPU-6050, with the SI2300 among its other parts. Its parts include 24 capacitors, 12 resistors, 7 connectors, 4 ICs and 4 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

4

README

README.md

Hover

A fully custom mini racing/stunt drone with ML-assisted balancing, automatic stunts, and some level of autonomous operation without costly cameras or GPS.

Screenshot 2026-04-16 at 4 11 55 pm

Why I built this

I wanted a challenge that forced me to learn PCB design and embedded firmware from scratch, but also let me apply the area I already know well - machine learning. Designing a drone from a blank schematic, writing every driver by hand, and then training a custom tiny ML model felt like the right way to do all of that at once. My goal was simply to push my first ever hardware project as far as I could, not to have a completely polished project.

What the project is

Hover is a tiny brushed micro quadcopter built entirely from custom hardware and firmware. There is no off-the-shelf flight controller, no commercial RC receiver, and no pre-written driver code. Everything was written/designed from scratch by me.

The system has two PCBs:

Flight Controller (FC): A 4-layer X-shaped PCB with a motor in each corner. It runs an STM32F103C8T6 at 72MHz, an ICM-42688-P IMU over SPI, a BK2423 2.4GHz RF transceiver, and four brushed motor drive circuits.

Screenshot 2026-04-16 at 4 12 30 pm

Remote Control (RC): A 2-layer PCB inside a 3D-printed enclosure. It uses the same STM32F103C8T6 and BK2423 RF ICs. It has two analog joysticks (ADC + DMA) for throttle, yaw, pitch, and roll, and eight buttons which are used for arming, auto take-off, auto land, return-to-home, a 360-degree flip trigger (one of my goals for this was to have some kind of smart one-button trick, and for this goal I settled on the 360 flip), and three spares for future use.

Screenshot 2026-04-16 at 4 14 29 pm

apart from that, this repository also includes:

ML Pipeline: A training and conversion pipeline for an onboard stabilisation model. Training data will be collected from real flight telemetry once the hardware is bought. The model will be converted to TFLite and dropped directly into the FC firmware, which already has the inference code in place and waiting.

CAD: Both the drone body and RC enclosure were designed in Onshape. The drone frame is a minimal 2-shell design with motor mounts, battery tray, and canopy, with both shells sandwiching the PCB in the middle. The RC enclosure uses the same 2-shell design with joystick cutouts, button extenders, and a battery bay below the PCB.

Screenshot 2026-04-16 at 4 15 18 pm Screenshot 2026-04-16 at 4 16 22 pm

Firmware: Firmware created for both the FC and RC in STM32 CubeMX and CubeIDE, all firmware should work but is untested as I do not have the hardware right now. additionally, the ML inference file is writtenbut will not work until I create the .tflite model file.

BOM: A BOM generated from kicad for the FC & the RC and also other parts (excluding 3D printed parts and assorted screws). I will likely be purchasing all of these myself, and this is not completely final.

Build Photos:

IMG_5127 IMG_5127 IMG_4943

Bill of Materials

FC

  • Note that MPU-6050 is significantly cheaper locally, and that is why I chose to use it despite cheaper alternatives
ReferenceComponentQtyPackageLCSCPrice/Unit
U2STM32F103C8T61LQFP-48https://www.lcsc.com/product-detail/C8734.html$1.65
U3MPU-60501QFN-24https://www.lcsc.com/product-detail/C24112.html$6.88
U4BK24231QFN-20https://www.lcsc.com/search?q=BK2423~$0.80
U1AMS1117-3.31SOT-223https://www.lcsc.com/product-detail/C347222.html~$0.10
Y1, Y216MHz Crystal2SMD 3225-4Pinhttps://www.lcsc.com/product-detail/C13738.html$0.30
Q1–Q4SI2300 MOSFET4SOT-23https://www.lcsc.com/product-detail/C6285728.html$0.01
D1–D41N4148 Flyback Diode4SOD-323https://www.lcsc.com/product-detail/C2972761.html$0.006
J1Battery Connector (1S)1JST-PH 2pinhttps://www.lcsc.com/product-detail/C295747.html~$0.08
J2–J5Motor Connector4JST-PH 2pinhttps://www.lcsc.com/product-detail/C295747.html~$0.08
J6SWD Header12.54mm 1×4https://www.lcsc.com/product-detail/C124375.html~$0.05
J7Charge Port1Barrel Jack SMDwww.lcsc.com/product-detail/C16214.html~$0.20
SW1Slide Switch1SMD SPDThttps://www.lcsc.com/product-detail/C431541.html~$0.12
TP1–TP5Test Point 1.5mm5Pad D1.5mmhttps://www.lcsc.com/search?q=testpoint+1.5mm~$0.02
C1, C3, C19, C2110µF Cap40805https://www.lcsc.com/search?q=0805+capacitor~$0.002
C2, C4–C10, C14–C18, C20, C24100nF Cap150402https://www.lcsc.com/search?q=0402+capacitor~$0.002
C111µF Cap10402https://www.lcsc.com/search?q=0402+capacitor~$0.002
C12, C13, C22, C2322pF Cap40402https://www.lcsc.com/search?q=0402+capacitor~$0.002
R1, R6, R8, R10, R1210kΩ Resistor50402https://www.lcsc.com/search?q=0402+resistor~$0.002
R2, R34.7kΩ Resistor20402https://www.lcsc.com/search?q=0402+resistor~$0.002
R422kΩ Resistor10402https://www.lcsc.com/search?q=0402+resistor~$0.002
R5, R7, R9, R11100Ω Resistor40402https://www.lcsc.com/search?q=0402+resistor~$0.002

RC

ReferenceComponentQtyPackageLCSCPrice/Unit
U4STM32F103C8T61LQFP-48https://www.lcsc.com/product-detail/C8734.html$1.65
U5BK24231QFN-20https://www.lcsc.com/search?q=BK2423~$0.80
U1AMS1117-3.31SOT-223https://www.lcsc.com/product-detail/C347222.html~$0.10
Y2, Y316MHz Crystal2SMD 3225-4Pinhttps://www.lcsc.com/product-detail/C13738.html$0.30
BZ1Buzzer112×9.5mm THT——
D1LED Indicator1THT D1.8mm——
J1Battery Connector (1S)1JST-PH 2pinhttps://www.lcsc.com/product-detail/C295747.html~$0.08
J2, J3Joystick Connector22.54mm 1×5——
J7SWD Header12.54mm 1×4https://www.lcsc.com/product-detail/C124375.html~$0.05
J8Charge Port1Barrel Jack THThttps://www.lcsc.com/product-detail/C16214.html~$0.20
SW1–SW8Push Button8THT 6mm——
SW9Slide Switch1SMD SPDThttps://www.lcsc.com/product-detail/C431541.html~$0.12
TP1Test Point 1.5mm (ANT)1Pad D1.5mmhttps://www.lcsc.com/search?q=testpoint+1.5mm~$0.02
C1, C3, C23, C3110µF Cap40805https://www.lcsc.com/search?q=0805+capacitor~$0.002
C2, C4, C14–C19, C24, C25, C28–C30100nF Cap130402https://www.lcsc.com/search?q=0402+capacitor~$0.002
C201µF Cap10402https://www.lcsc.com/search?q=0402+capacitor~$0.002
C21, C22, C26, C2722pF Cap40402https://www.lcsc.com/search?q=0402+capacitor~$0.002
R1–R310kΩ Resistor30402https://www.lcsc.com/search?q=0402+resistor~$0.002
R422kΩ Resistor10402https://www.lcsc.com/search?q=0402+resistor~$0.002
R5, R6100Ω Resistor20402https://www.lcsc.com/search?q=0402+resistor~$0.002

Other

  • This list covers physical assembly components not part of either PCB
  • It is not completely final - I made this off the top of my head, there are probably other components I forgot to identify
  • It does not include miscellaneous screws or 3D printed parts
ComponentQtyNotesPrice (est.)
Brushed coreless DC motors (8020)48×20mm form factor, 1S compatible~$2.00 each
55mm micro quad propellers (CW)4Match motor shaft diameter~$0.50 each
55mm micro quad propellers (CCW)4Match motor shaft diameter~$0.50 each
1S LiPo battery — 150mAh (drone)1Fits battery tray in drone frame~$4.00
1S LiPo battery — 800mAh (RC)1Fits battery bay in RC enclosure~$6.00
31.25mm wire for 2.4GHz antenna (drone)1Bare solid-core wire, soldered to ANT test point on FC PCB; length = λ/4 at 2.4GHz~$0.10
31.25mm wire for 2.4GHz antenna (RC)1Same as above, for RC PCB ANT test point~$0.10
Silicone motor wire (26AWG)~1mConnects motors to PCB JST connectors~$1.00
1S LiPo charger (USB)1Compatible with JST-PH or barrel jack input~$5.00

Parts

63
QtyValueFootprintReferences
15100nFCapacitor_SMD:C_0402_1005MetricC2, C4, C5, C6, C7, C8, C9, C10, C14, C15, C16, C17, C18, C20, C24
510kResistor_SMD:R_0402_1005MetricR1, R6, R8, R10, R12
4100RResistor_SMD:R_0402_1005MetricR5, R7, R9, R11
410uFCapacitor_SMD:C_0805_2012MetricC1, C3, C19, C21
41N4148Diode_SMD:D_SOD-323D1, D2, D3, D4
422pFCapacitor_SMD:C_0402_1005MetricC12, C13, C22, C23
4SI2300Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
216MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1, Y2
24.7kResistor_SMD:R_0402_1005MetricR2, R3
11uFCapacitor_SMD:C_0402_1005MetricC11
122kResistor_SMD:R_0402_1005MetricR4
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1ANT_2.4GHzTestPoint:TestPoint_Pad_D1.5mmTP1
1BATTERY_1SConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1BK2423Package_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mmU4
1CTestPoint:TestPoint_Pad_D1.5mmTP3
1CHARGE_PORTConnector_BarrelJack:DC-011D_SMD_HorizontalJ7
1DTestPoint:TestPoint_Pad_D1.5mmTP2
1GNDTestPoint:TestPoint_Pad_D1.5mmTP4
1MOTOR1Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2
1MOTOR2Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ3
1MOTOR3Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ4
1MOTOR4Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ5
1MPU-6050Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mmU3
1SLIDE_SWITCHButton_Switch_SMD:SW_SPDT_CK_JS102011SAQNSW1
1STM32F103C8T6Package_QFP:LQFP-48_7x7mm_P0.5mmU2
1SWD_HEADERConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6
1VCCTestPoint:TestPoint_Pad_D1.5mmTP5

More from dark-Phoenix2077/hover

1
  • 2 layers111 × 48 mmDrone RC, the printed circuit board in 3D

    Drone RC

    dark-Phoenix2077/hover

    A fully custom mini racing/stunt drone with ML-assisted balancing, automatic stunts, and some level of autonomous operation without costly cameras or GPS.

    50 partsMIT

Similar boards

  • 2 layers22.2 × 24.6 mmEsp mini, the printed circuit board in 3D

    Esp mini

    tyrobee/esp_mini

    A Esp based flight controller

    45 parts
  • 4 layers136 × 95 mmGamepad PCB, the printed circuit board in 3D

    Gamepad PCB

    pacman314159/Multipurpose_ESP32_Gamepad

    140 parts
  • 4 layers66 × 57 mmA1-External ESP8266-Cooling Fan Module, the printed circuit board in 3D

    A1-External ESP8266-Cooling Fan Module

    potpurri/A1-External-ESP8266-Cooling-Fan-Module

    ESP8266-board driving an external fan for improved cooling of nozzle and prints

    74 partsApache-2.0
  • 4 layers102 × 49 mmCURSO PCB DRONE, the printed circuit board in 3D

    CURSO PCB DRONE

    ArduProject/PCB_DRONE_C8

    En este repositorio encontrareis los archivos de fabricación y las listas de montaje del PCB con STM32F103C8 que hemos visto en el curso.

    153 parts1MIT
  • 2 layers70 × 50 mmStm32f103-imu test kit, the printed circuit board in 3D

    Stm32f103-imu test kit

    jayasinghedr/stm32f103-devkit

    A development board with STM32F103C8T6 and an MPU6050 IMU

    42 partsMIT
  • 4 layers65.3 × 49.7 mmMobile robot, the printed circuit board in 3D

    Mobile robot

    zachlambert/pcb-mobile-robot

    PCBs for a mobile robot

    78 parts
  • 4 layers70 × 70 mmMBR, the printed circuit board in 3D

    MBR

    sceric/ElectronicTheory

    96 parts

Questions

How big is the Drone FC PCB?

It measures 45.8 × 45.8 mm and has 4 copper layers, 1.36 mm thick.

What parts does the Drone FC use?

63 parts, built around the STM32F103C8T6, AMS1117-3.3, MPU-6050 and SI2300. 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 FC KiCad files?

From the dark-Phoenix2077/hover repository on GitHub, at the commit this page was made from: the board is PCBs/Drone FC/Drone FC.kicad_pcb and its schematic PCBs/Drone FC/Drone FC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).