
OpenFC
OpenDrone-hw/OpenFC-Lite-Mini
Open-source Betaflight flight controller. RP2354A, 20x20 mm, 6-layer, 3-6S, CERN-OHL-S-2.0.

Open-source AIO for 2-6S toothpick quads: flight controller, 4-in-1 AM32 ESC and ExpressLRS receiver, 25.5x25.5 mm.
OpenAIO is an open-source printed circuit board by OpenDrone-hw, from the OpenDrone-hw/OpenAIO repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is an 8-layer board of 35 × 35 mm with 343 parts on 302 nets, routed with 2,574 tracks and 2,475 vias.
It is built around the AT32F421G8U7, ESP32-C3 and RP2354A, with the SX1281IMLTRT, 2450FM07D0034T and NSG2065Q among its other parts. Its parts include 115 resistors, 107 capacitors, 36 connectors, 26 transistors and 24 ICs. It belongs with the robots and motor control boards and the ESP32, RP2350 and RISC-V boards of this library.
An all-in-one for 85 mm whoops, 2.5 inch cinewhoops and 3 inch freestyle: RP2354A flight controller, four AM32 ESC channels and an ExpressLRS 2.4 GHz receiver on one 8-layer HDI board with 25.5 x 25.5 mm mounting. Its circuits follow OpenFC-Lite-Mini, OpenESC-20x20 and OpenRX-Lite.
Flight controller, ESC and receiver are usually three boards joined by connectors and wiring. On a small quad the stack costs weight and height, and the connectors are where builds fail. OpenAIO puts all three on one board and keeps the firmware stock. The market research linked under Prior art covers competing AIOs.
From the design files. Not manufactured yet.
| Mounting | 25.5 x 25.5 mm, four 3.0 mm holes |
| Board | 35.4 x 35.4 mm, 8 layers HDI 1+6+1, 0.997 mm, 1 oz copper on all layers, ENIG |
| Input | 3S to 6S LiPo, 9.0 to 25.2 V; 2S is not supported (gate driver VCC, see research/INPUT_RANGE.md) |
| Input protection | None: no reverse polarity protection, no TVS. Fit a low-ESR electrolytic of at least 35 V on the battery leads |
| Current rating | Not established; no measurement exists |
| Flight controller | RP2354A, BMI270 IMU, BMP580 barometer, USB-C |
| OSD and blackbox | Analog PIO framebuffer OSD, microSD card |
| ESC | 4x AM32, AT32F421G8U7 + NSG2065Q + 6x DOY180N03T (30 V) per channel, one shared current sensor |
| Receiver | ExpressLRS 2.4 GHz, ESP32-C3 + SX1281, u.FL antenna |
| Outputs | +10V (always on with a battery) on SH-6 and pads, +5V and +4v5 pads, WS2812 strip pads, buzzer pads |
| Firmware | Betaflight, AM32, ExpressLRS, stock upstream |
Technical write-up, part list and layout constraints: AGENTS.md. Pinout and firmware: firmware/.
Notes: input range, pin constraints, board data and copper model.
What pairs with what, and what is available: opendrone.be.
KiCad files cannot be merged, so say what you intend to change before you do, on Discord. How everything works: CONTRIBUTING.md.
A repository holds design files only. Sourcing (suppliers, prices, quotes, RFQs, contacts) is handled by Incutec and never lives in OpenDrone repositories.
Hardware licensed under CERN-OHL-S-2.0, see LICENSE.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 40 | 10k | lib:R_0201_0603Metric | R2, R25, R34, R37, R38, R45, R102, R104, R105, R107, R108, R110, R111, R112, R113, R114 +24 |
| 36 | 5V | lib:small_pad | J15, J16, J17, J18, J20, J21, J23, J24, J25, J26, J27, J28, J29, J30, J31, J32 +20 |
| 24 | 100nF | lib:C_0201_0603Metric | C37, C38, C39, C43, C44, C45, C46, C50, C51, C52, C53, C57, C58, C59, C60, C104 +8 |
| 24 | 15R | lib:R_0201_0603Metric | R35, R36, R41, R42, R43, R44, R54, R55, R60, R61, R62, R63, R73, R74, R100, R101 +8 |
| 24 | DOY180N03T | lib:Diodes_PowerDI3333-8 | Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Q21, Q22, Q23, Q24, Q25 +8 |
| 22 | 100n | lib:C_0201_0603Metric | C1, C2, C11, C12, C13, C14, C20, C21, C26, C29, C30, C32, C34, C35, C107, C108 +6 |
| 15 | 1k | lib:R_0201_0603Metric | R5, R6, R46, R49, R52, R65, R68, R71, R84, R87, R90, R103, R106, R109, R115 |
| 14 | C | lib:C_0805_2012Metric | C90, C91, C92, C93, C94, C95, C96, C97, C98, C99, C100, C101, C102, C103 |
| 12 | 100nF | lib:C_0402_WIDE | C40, C41, C42, C47, C48, C49, C54, C55, C56, C61, C62, C63 |
| 8 | TestPoint | lib:TestPoint_Pad_D1.0mm | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8 |
| 6 | 1uF | lib:C_0201_0603Metric | C77, C81, C83, C84, C85, C86 |
| 5 | 4.7uF | lib:C_0402_1005Metric | C3, C15, C16, C17, C25 |
| 4 | 100k | lib:R_0201_0603Metric | R1, R13, R17, R19 |
| 4 | 10R | lib:R_0201_0603Metric | R40, R59, R78, R97 |
| 4 | 220R | lib:R_0201_0603Metric | R39, R58, R77, R96 |
| 4 | 5.1k | lib:R_0201_0603Metric | R3, R4, R11, R12 |
| 4 | 75R | lib:R_0201_0603Metric | R15, R16, R26, R33 |
| 4 | AT32F421G8U7 | lib:QFN-28_L4.0-W4.0-P0.40-TL-EP2.4 | U13, U15, U17, U19 |
| 4 | LED_1_Green | lib:LED_0402_1005Metric | D4, D5, D6, D7 |
| 4 | NSG2065Q | lib:QFN-24_L4.0-W4.0-P0.50-TL-EP2.8 | U14, U16, U18, U20 |
| 3 | 10nF | lib:C_0201_0603Metric | C67, C73, C80 |
| 3 | 10uF | lib:C_0402_1005Metric | C75, C82, C88 |
| 3 | 30R | lib:R_0201_0603Metric | R8, R9, R10 |
| 3 | 510R | lib:R_0201_0603Metric | R24, R31, R32 |
| 2 | 1.2pF | lib:C_0201_0603Metric | C87, C89 |
| 2 | 15pF | lib:C_0201_0603Metric | C72, C74 |
| 2 | 2.4k | lib:R_0201_0603Metric | R14, R22 |
| 2 | 20p | lib:C_0201_0603Metric | C4, C10 |
| 2 | 22uF | lib:C_0603_1608Metric | C23, C24 |
| 2 | 22uF | lib:C_0402_1005Metric | C27, C28 |
| 2 | 4.7uF 50v | lib:C_0805_2012Metric | C18, C19 |
| 2 | 6.49k | lib:R_0201_0603Metric | R18, R23 |
| 2 | AP1606 | lib:DFN-3L_L1.0-W0.6-P0.65-BR | Q1, Q2 |
| 2 | C | lib:C_1206_3216Metric | C105, C106 |
| 2 | DSK24 | lib:SOD-123_L2.8-W1.8-LS3.7-RD | D2, D3 |
| 2 | LMR51430YFDDCR | lib:SOT-23-6_L2.9-W1.6-P0.95-LS2.9-BL | U3, U4 |
| 2 | XRTC303020D4R7MBCA | lib:IND-SMD_L3.0-W3.0_AFE303020S | L2, L3 |
| 1 | 0.2mR | lib:R_2512_6332Metric | Rsense2 |
| 1 | 1.4k | lib:R_0201_0603Metric | R29 |
| 1 | 12k | lib:R_0201_0603Metric | R28 |
| 1 | 13.7k | lib:R_0201_0603Metric | R20 |
| 1 | 15uH | lib:L_0805_2012Metric | L4 |
| 1 | 1nF | lib:C_0201_0603Metric | C69 |
| 1 | 1uF | lib:C_0402_1005Metric | C33 |
| 1 | 2.0nH | lib:L_0201_0603Metric | L6 |
| 1 | 2.5nH | lib:L_0201_0603Metric | L7 |
| 1 | 2450AT18A100E | lib:ANT-SMD_L3.2-W1.6 | AE2 |
| 1 | 2450FM07D0034T | lib:FILTER-SMD_4P-L1.0-W0.5-L | FL1 |
| 1 | 24nH | lib:L_0201_0603Metric | L5 |
| 1 | 3.9k | lib:R_0201_0603Metric | R27 |
| 1 | 470nF | lib:C_0201_0603Metric | C68 |
| 1 | 470p | lib:C_0201_0603Metric | C31 |
| 1 | 680R | lib:R_0201_0603Metric | R30 |
| 1 | 7.5k | lib:R_0201_0603Metric | R21 |
| 1 | AIO_outline | lib:AIO_outline | U24 |
| 1 | AOTA-B201610S3R3-101-T | lib:IND-SMD_L2.0-W1.6_AOTA-B201610S3R3-101-T | L1 |
| 1 | BMI270 | lib:LGA-14_L3.0-W2.5-P0.50-BR | U8 |
| 1 | BMP580 | lib:LGA-10_L2.0-W2.0-P0.50-TL_BMP580 | U26 |
| 1 | BOOT | lib:SolderPad_1.2x2.0mm | TP9 |
| 1 | CJ17-400001010B20 | lib:CRYSTAL-SMD_4P-L1.6-W1.2-BL | X2 |
| 1 | COS8051SOT | lib:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BR | U10 |
| 1 | ELRS OFF | lib:SolderJumper-2_P0.65mm_Tiny_Open | JP2 |
| 1 | ESP32-C3 | lib:QFN-32-1EP_5x5mm_P0.5mm_EP3.7x3.7mm | U22 |
| 1 | INA186A3IDCKR | lib:SOT-363_SC-70-6 | U25 |
| 1 | LED_1_Blue | lib:LED_0402_1005Metric | D1 |
| 1 | LP5912-1.8DRVR | lib:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm_ThermalVias | U6 |
| 1 | OW7EL89CENUNFAYLC-52M | lib:OSC-SMD_4P-L2.0-W1.6-BL_TXC_7Z | OSC1 |
| 1 | RP2354A | lib:QFN-60_L7.0-W7.0-P0.40-TL-EP3.4 | U2 |
| 1 | SDM02U30LP3-7B | lib:X3-DFN0603-2_L0.6-W0.3-RD | D8 |
| 1 | SM06B-SRSS-TB(LF)(SN) | lib:CONN-SMD_SM06B-SRSS-TB-LF-SN | U12 |
| 1 | SN74LVC1G3157DTBR | lib:X2SON-6_L1.0-W0.8-BL | U9 |
| 1 | SX1281IMLTRT | lib:QFN-24_L4.0-W4.0-P0.50-TL-EP2.6 | U21 |
| 1 | TF-021B-H265 | lib:TF-SMD_TF-021B-H265 | Card1 |
| 1 | TLV7031DPWR | lib:X2SON-4_L0.8-W0.8-P0.48-TL-A | U11 |
| 1 | TLV76733DRVR | lib:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm | U7 |
| 1 | TS2306A 240GF MSM 9_C2976675 | lib:SW-SMD_4P-L3.0-W2.0-P0.85-LS3.5 | U1 |
| 1 | TYPE-C 16P QTWT | lib:USB-TYPE-C-SMD_TYPE-C-16P-QTWT | USB1 |
| 1 | U.FL-R-SMT-1(80) | lib:RF-SMD_FRF05002-JSS103M | JP1 |
| 1 | XL-1010RGBC-WS2812B | lib:LED-SMD_4P-L1.0-W1.0-TL_XL-1010RGBC-WS2812B | D9 |
| 1 | XTM25012000JT00351001 | lib:CRYSTAL-SMD_4P-L2.5-W2.0-BL-A | X1 |

OpenDrone-hw/OpenFC-Lite-Mini
Open-source Betaflight flight controller. RP2354A, 20x20 mm, 6-layer, 3-6S, CERN-OHL-S-2.0.

OpenDrone-hw/OpenFC-Lite
Open-source Betaflight flight controller. RP2354B, 30.5x30.5 mm, 6-layer, 3-8S, CERN-OHL-S-2.0.

tetraethylmethane/NIDAR-RescueSwarm
Three autonomous drones that search a flood zone, find survivors, geotag them, and drop medical kits — with no network, no pilot, and one operator who only presses start.

OpenDrone-hw/OpenESC-20x20
Open-source 4-in-1 AM32 ESC for FPV drones. 20x20 mm, 2-6S, one MCU per motor, CERN-OHL-S-2.0.

OpenDrone-hw/OpenESC-30x30
Open-source 4-in-1 AM32 ESC for FPV drones. 30.5x30.5 mm, 2-8S, one MCU per motor, CERN-OHL-S-2.0.

sneakylizard123-4/Dreamscape-F405-2020
a 20x20mm flight controller for 3" fpv drone

HexFud/OptiLogic-16-Pro
A logic analyzer with 16 channels that can also watch two fiber network links at the same time

sequoia-hope/ultraroute
PCB autorouting experiments around copperroute: route jobs, leaderboards, board morphing
It measures 35 × 35 mm and has 8 copper layers, 1 mm thick.
343 parts, built around the AT32F421G8U7, ESP32-C3, RP2354A and SX1281IMLTRT. 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.
From the OpenDrone-hw/OpenAIO repository on GitHub, at the commit this page was made from: the board is hardware/OpenAIO.kicad_pcb and its schematic hardware/OpenAIO.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).