

Esc rev b
Reworked cheaper, maybe faster but less redundant drone controller.
- Size
- 170 × 172.2 mm
- Copper layers
- 6
- Thickness
- 1.6 mm
- Parts
- 681
- Nets
- 668
- Pads
- 3,442
- Tracks, vias
- 5,135, 2,823
- Pours
- 54
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 16 Feb 2026
- Updated
- 5 Nov 2026
Overview
Esc rev b is an open-source printed circuit board by iamdarshg, from the iamdarshg/drone-arm repository on GitHub. It is a 6-layer board of 170 × 172.2 mm with 681 parts on 668 nets, routed with 5,135 tracks and 2,823 vias.
It is built around the STM32G431CBT6, RFM-0505S and DRV8353SRTAR, with the LM5164DDA, USBLC6-2SC6 and SN74LVC1G08DBVR among its other parts. Its parts include 262 capacitors, 260 resistors, 49 ICs, 36 transistors and 23 connectors. It belongs with the robots and motor control boards and the RP2350 and STM32 boards of this library.
Main components
12STM32G431CBT6
LQFP-48(7x7)-40℃~+85℃ 1.71V~3.6V 128KB 12bit 12bit 170MHz 32 Bit 32KB 38 ARM Cortex-M4F Built-in FLASH LQFP-48(7x7) Microcontrollers (MCU/MPU/SOC) ROHSSTMicroelectronicsMicrocontrollers (MCU/MPU/SOC)RFM-0505S
SIP,11.5x6mmIsolated Power ModulesYLPTECDRV8353SRTAR
WQFN-40-EP(6x6)-40℃~+125℃ 1.5V 1A 20uA 2A 6 800mV 9V~75V Enable shutdown、Interleaved conduction protection、Dead-time control、Charge pump boost MOSFET Three Phase WQFN-40-EP(6x6) Gate Drivers ROHSTexas InstrumentsGate DriversLM5164DDA
SOIC8100-V Input, 1-A Synchronous Buck DC/DC Converter with Ultra-low IQTexas InstrumentsUncategorisedUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)SN74LVC1G08DBVR
SOT-23-5-40℃~+85℃ 1 1.65V~5.5V 1.7V、2V 100nA 2 3.4ns@5V,15pF 32mA 32mA 350mV 4V 700mV、800mV 74LVC AND Gate Local shutdown mode SOT-23-5 Logic Gates ROHSTWGMCLogic GatesTPS70933DBVR-MS
SOT-23-5SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMSKSEMIUncategorisedAP2112K-3.3TRG1
SOT-25-5-40℃~+85℃@(Ta) 1 250mV@(600mA) 3.3V 50uVrms 55uA 600mA 65dB@(1kHz) 6V Fixed Over Current Protection、Thermal Shutdown、Enable control Positive SOT-25-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsMCP2518FD-H/QBB
VDFN-14-EP(3x4.5)-40℃~+150℃ 15uA 2.7V~5.5V 20mA 8Mbps CAN FD Controller Monitor mode、Low-power mode、Auto retransmission control SPI VDFN-14-EP(3x4.5) CAN Controllers ROHSMicrochip TechnologyCAN ICsIPTC014N10NM5
HDSOP-16-55℃~+175℃ 1 N-channel 1.3mΩ@10V 1.8nF 100V 12nF 140pF 168nC@10V 365A 375W 3V N-Channel HDSOP-16 MOSFETs ROHSInfineon TechnologiesMOSFETsSM8S51A
-- Lack of specifications ROHSLittelfuseUncategorisedNTCG163JF103FT1
0603-40℃~+125℃ 0.8mm 0.8mm 1.6mm 100mW 10kΩ 1mW/℃ 310uA 3380K 3422K 3435K 3453K ±1% ±1% 0603 NTC Thermistors ROHSTDKNTC Thermistors
README
README.mdThis is a codebase that is woring to create a hardware+software solution for dron control and management in a relatively modular manner. This is a codebase that is woring to create a hardware+software solution for dron control and management in a relatively modular manner. This needs to be inherenly zero-trust, zero-fail and easy to analyse statically. The langauge of choice is C, with rust and python tooling accepted as well.Follow the 10 rules as set by nasa for code, the same should apply here due to the similar no-fail environment. Currently, the main control board has been designed and the auxiallry field-oriented control esc needs to be designed. Ideally, as much of this code as possible should be library free and written entirely from scratch. If any libraries are used beyond standard c libararies, they should all be stored within this folder, nowehere else. Please add as much documentation as is needed, whenevr you refer to something just download and leave it in the docs folder. Please use the pico SDK exclusively as a library for C and/or write everything using reigster level functions. Build will occur via Meson & Ninja. This means we will be compiling the whole thing using the arm toolchain, against the headers and flash tables and such from the SDK. When debug is enabled in the meson build, we will output the assembly instead of the .uf2 file.
Motor Platform (selected prototype baseline)
The ESC (Rev-B) is being optimized for the Flycci FA4119 KV350 (product page). The current prototype decision, alternatives, cost model, proposed 550 Kv rewind, selected 8x4.5 propeller and mandatory validation gates are documented in hardware/motor_release/FA4119_PROPULSION_DECISION.md.
- 12N14P outrunner (7 pole pairs), stator 41x19 mm, 280 g w/ cable
- Recommended 10S-12S LiPo, 13" prop, 80 A ESC class
- Measured (12S, HQ13x9-3 3-blade): 8.18 kg max thrust / 3.47 kW max @ 48 V, 74 A battery
- A rewind to approximately 550 kV is the experimental target if stock-motor dyno results justify it. The chosen Orange HD 8045 propeller has no verified manufacturer RPM rating in the repository, so the 550 Kv/12S combination requires closed-loop RPM limiting and guarded testing; it is not flight-released.
eRPM headroom
eRPM = mech RPM x pole pairs (7). At 12S max (50.4 V):
| Winding | No-load RPM | No-load eRPM | Published or initially governed loaded eRPM |
|---|---|---|---|
| 350 kV (stock) | 17,640 | ~123 k | ~77-80 k with the manufacturer's 13-inch test prop |
| 550 kV (rewind) | 27,720 | ~194 k | initially <=91 k with the 8-inch prop (13,000 mechanical-rpm ceiling) |
280 k eRPM check: 280 k eRPM = 4.67 kHz electrical = 40,000 mechanical RPM at 7 pole pairs. This remains a possible future bare-rotor research point, not a propeller operating point. An 8-inch prop at 40,000 RPM has approximately 426 m/s rotational tip speed before pitch velocity and is unsuitable. The proposed 550 Kv winding reaches 194 k eRPM at fully charged 12S; initial propeller testing is capped at 13,000 mechanical RPM (91 k eRPM) pending a verified rating for the exact propeller.
Build Instructions
This project uses Meson and Ninja for building.
Prerequisites
- ARM GNU Toolchain (
arm-none-eabi-gcc) - Meson
- Ninja
- Python 3
Configuration
Create a build directory and configure the project:
meson setup buildTo enable Debug Mode (includes assembly output and -O0):
meson setup build -Ddebug=enabled Building
The documented firmware targets are currently blocked: the tracked checkout is
missing source and include paths required by meson.build, and the ARM GNU
cross compiler is not available in the build environment. Do not treat this
checkout as producing flight or ESC firmware. See the
Issue #22 source and build audit
for the reproducible audit commands and recorded failures.
When the required source and toolchain are restored, the intended build command is:
ninja -C buildTesting
To build and run the unit tests:
meson test -C buildCurrent tests include:
test_main: Scheduler and basic async operations.test_clock_safety: (New) Integrity protection for global clock state. The main software will run as two non-synchronised loops- the sensor loop and the PWM loop. The one loop will run at the speed of the ESCs and will provide the best estimate for what the thrust should be at any given time to the ESCs, 60Hz if communicating via PWM and 1 kHz if communicating via SPI. This rate will be configurable. This loop may also be offloaded to the PIO modules in the future. The other loop is reponsible for sensor measuerment and fusion.
Parts
681| Qty | Value | Footprint | References |
|---|---|---|---|
| 74 | 100k | Resistor_SMD:R_0603_1608Metric | R1102, R1104, R1106, R1108, R1110, R1112, R1150, R1151, R1152, R1154, R1158, R1180, R1202, R1204, R1206, R1208 +58 |
| 44 | 10u 100V | Capacitor_SMD:C_1210_3225Metric | C1106, C1131, C1132, C1133, C1134, C1135, C1136, C1206, C1231, C1232, C1233, C1234, C1235, C1236, C1306, C1331 +28 |
| 43 | 100n | Capacitor_SMD:C_0402_1005Metric | C1167, C1168, C1169, C1170, C1172, C1267, C1268, C1269, C1270, C1272, C1367, C1368, C1369, C1370, C1372, C1467 +27 |
| 40 | 100n | Capacitor_SMD:C_0603_1608Metric | C1161, C1164, C1165, C1175, C1176, C1177, C1261, C1264, C1265, C1275, C1276, C1277, C1361, C1364, C1365, C1375 +24 |
| 36 | 2.2 | Resistor_SMD:R_0603_1608Metric | R1101, R1103, R1105, R1107, R1109, R1111, R1201, R1203, R1205, R1207, R1209, R1211, R1301, R1303, R1305, R1307 +20 |
| 36 | IPTC014N10NM5 | revb:PG-HDSOP-16_TOLT_IPTC | Q1101, Q1102, Q1103, Q1104, Q1105, Q1106, Q1201, Q1202, Q1203, Q1204, Q1205, Q1206, Q1301, Q1302, Q1303, Q1304 +20 |
| 24 | 0.5m 1% 5W | revb:CSS4J-4026_Kelvin | R1120, R1121, R1122, R1123, R1220, R1221, R1222, R1223, R1320, R1321, R1322, R1323, R1420, R1421, R1422, R1423 +8 |
| 24 | 10n C0G | Capacitor_SMD:C_0603_1608Metric | C1120, C1121, C1122, C1123, C1220, C1221, C1222, C1223, C1320, C1321, C1322, C1323, C1420, C1421, C1422, C1423 +8 |
| 24 | 150k 0.1% | Resistor_SMD:R_1206_3216Metric | R1140, R1141, R1142, R1143, R1240, R1241, R1242, R1243, R1340, R1341, R1342, R1343, R1440, R1441, R1442, R1443 +8 |
| 24 | 47 | Resistor_SMD:R_0603_1608Metric | R1130, R1131, R1132, R1133, R1230, R1231, R1232, R1233, R1330, R1331, R1332, R1333, R1430, R1431, R1432, R1433 +8 |
| 21 | 10k | Resistor_SMD:R_0603_1608Metric | R202, R214, R215, R216, R1153, R1156, R1253, R1256, R1353, R1356, R1453, R1456, R1553, R1556, R1653, R1656 +5 |
| 12 | 12p C0G | Capacitor_SMD:C_0402_1005Metric | C1173, C1174, C1273, C1274, C1373, C1374, C1473, C1474, C1573, C1574, C1673, C1674 |
| 12 | 1u 16V | Capacitor_SMD:C_0603_1608Metric | C1102, C1103, C1202, C1203, C1302, C1303, C1402, C1403, C1502, C1503, C1602, C1603 |
| 12 | 2.2u 10V | Capacitor_SMD:C_0603_1608Metric | C1162, C1163, C1262, C1263, C1362, C1363, C1462, C1463, C1562, C1563, C1662, C1663 |
| 8 | 1u | Capacitor_SMD:C_0603_1608Metric | C706, C707, C1171, C1271, C1371, C1471, C1571, C1671 |
| 8 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U208, U209, U1107, U1207, U1307, U1407, U1507, U1607 |
| 7 | 1k | Resistor_SMD:R_0603_1608Metric | R203, R1157, R1257, R1357, R1457, R1557, R1657 |
| 7 | 47k | Resistor_SMD:R_0603_1608Metric | R209, R1181, R1281, R1381, R1481, R1581, R1681 |
| 7 | 600R@100MHz | Inductor_SMD:L_0603_1608Metric | FB201, FB1101, FB1201, FB1301, FB1401, FB1501, FB1601 |
| 7 | GREEN | LED_SMD:LED_0603_1608Metric | D201, D1102, D1202, D1302, D1402, D1502, D1602 |
| 7 | SM8S51A | revb:DO-218AB_SM8S | D701, D1101, D1201, D1301, D1401, D1501, D1601 |
| 7 | SN74LVC1G08DBVR | Package_TO_SOT_SMD:SOT-23-5 | U205, U1106, U1206, U1306, U1406, U1506, U1606 |
| 6 | 100n 100V | Capacitor_SMD:C_0603_1608Metric | C1105, C1205, C1305, C1405, C1505, C1605 |
| 6 | 100n 10V | Capacitor_SMD:C_0603_1608Metric | C1107, C1207, C1307, C1407, C1507, C1607 |
| 6 | 10k 0.1% | Resistor_SMD:R_0603_1608Metric | R1145, R1245, R1345, R1445, R1545, R1645 |
| 6 | 10n 50V | Capacitor_SMD:C_0603_1608Metric | C1150, C1250, C1350, C1450, C1550, C1650 |
| 6 | 10u 10V | Capacitor_SMD:C_0805_2012Metric | C1160, C1260, C1360, C1460, C1560, C1660 |
| 6 | 1u 10V | Capacitor_SMD:C_0603_1608Metric | C1104, C1204, C1304, C1404, C1504, C1604 |
| 6 | 33k 0.1% | Resistor_SMD:R_0603_1608Metric | R1144, R1244, R1344, R1444, R1544, R1644 |
| 6 | 4.7k | Resistor_SMD:R_0603_1608Metric | R1155, R1255, R1355, R1455, R1555, R1655 |
| 6 | 4.7u | Capacitor_SMD:C_0603_1608Metric | C1166, C1266, C1366, C1466, C1566, C1666 |
| 6 | 47n 100V | Capacitor_SMD:C_0603_1608Metric | C1101, C1201, C1301, C1401, C1501, C1601 |
| 6 | 68k | Resistor_SMD:R_0603_1608Metric | R1159, R1259, R1359, R1459, R1559, R1659 |
| 6 | 8MHz ABM8G | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1101, Y1201, Y1301, Y1401, Y1501, Y1601 |
| 6 | DRV8353SRTAR | revb:WQFN-40-EP_6x6_P0.5 | U1101, U1201, U1301, U1401, U1501, U1601 |
| 6 | FUSED_BATTERY_TAP | revb:POWER_LUG_M5_2P_P20 | J1101, J1201, J1301, J1401, J1501, J1601 |
| 6 | INA296A2IDR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1105, U1205, U1305, U1405, U1505, U1605 |
| 6 | ISO6731FDWR | Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm | U1103, U1203, U1303, U1403, U1503, U1603 |
| 6 | LOCAL_SWD | Connector_PinHeader_1.27mm:PinHeader_1x05_P1.27mm_Vertical | J1103, J1203, J1303, J1403, J1503, J1603 |
| 6 | MOTOR_PHASES | revb:POWER_LUG_M5_3P_P20 | J1102, J1202, J1302, J1402, J1502, J1602 |
| 6 | NTCG163JF103FT1 | Resistor_SMD:R_0603_1608Metric | TH1, TH2, TH3, TH4, TH5, TH6 |
| 6 | RFM-0505S | revb:RFM_SIP4_11.5x6_P2.54 | PS1101, PS1201, PS1301, PS1401, PS1501, PS1601 |
| 6 | STM32G431CBT6 | Package_QFP:LQFP-48_7x7mm_P0.5mm | U1102, U1202, U1302, U1402, U1502, U1602 |
| 6 | TPS70933DBVR | Package_TO_SOT_SMD:SOT-23-5 | U1104, U1204, U1304, U1404, U1504, U1604 |
| 4 | 15p C0G | Capacitor_SMD:C_0402_1005Metric | C213, C214, C240, C241 |
| 4 | 22u 10V | Capacitor_SMD:C_1210_3225Metric | C704, C705, C713, C714 |
| 4 | 4.7u | Capacitor_SMD:C_0402_1005Metric | C201, C202, C203, C204 |
| 4 | 5.1k | Resistor_SMD:R_0603_1608Metric | R204, R205, R211, R212 |
| 3 | 2.2u 100V X7R | Capacitor_SMD:C_1210_3225Metric | C700, C701, C710 |
| 2 | 14.3k 1% | Resistor_SMD:R_0603_1608Metric | R703, R712 |
| 2 | 1M | Resistor_SMD:R_0603_1608Metric | R210, R213 |
| 2 | 1n 2kV | Capacitor_SMD:C_1206_3216Metric | C234, C235 |
| 2 | 2.2n 50V X7R | Capacitor_SMD:C_0603_1608Metric | C703, C712 |
| 2 | 226k 1% | Resistor_SMD:R_0603_1608Metric | R705, R713 |
| 2 | 27 | Resistor_SMD:R_0402_1005Metric | R206, R207 |
| 2 | 3.3n X7R | Capacitor_SMD:C_0603_1608Metric | C708, C715 |
| 2 | 33u 1.8A | Inductor_SMD:L_Bourns_SRR1260 | L701, L702 |
| 2 | 41.2k 1% | Resistor_SMD:R_0603_1608Metric | R701, R710 |
| 2 | 45.3k 1% | Resistor_SMD:R_0603_1608Metric | R702, R711 |
| 2 | 470p C0G | Capacitor_SMD:C_0603_1608Metric | C709, C716 |
| 2 | LM5164DDA | Package_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mm_ThermalVias | U701, U703 |
| 1 | 0 STAR | Resistor_SMD:R_1206_3216Metric | R704 |
| 1 | 10n | Capacitor_SMD:C_0603_1608Metric | C231 |
| 1 | 120 DNP | Resistor_SMD:R_0603_1608Metric | R242 |
| 1 | 12MHz ABM8-272-T3 | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y201 |
| 1 | 1n C0G | Capacitor_SMD:C_0603_1608Metric | C230 |
| 1 | 3.3u AOTA-B201610S3R3-101-T | Inductor_SMD:L_0805_2012Metric | L201 |
| 1 | 33 | Resistor_SMD:R_0402_1005Metric | R201 |
| 1 | 40MHz ABM8G | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y202 |
| 1 | 6-WAY ACTIVE-LOW SELECTOR | Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_Vertical | SW201 |
| 1 | ACT45B-110-2P-TL003 | Inductor_SMD:L_CommonModeChoke_Coilank_ACM4532 | FL201 |
| 1 | AP2112K-3.3TRG1 | Package_TO_SOT_SMD:SOT-23-5 | U702 |
| 1 | AUX_BATTERY | Connector_Molex:Molex_Micro-Fit_3.0_43650-0200_1x02_P3.00mm_Horizontal | J701 |
| 1 | CTRL_USB_C | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J202 |
| 1 | ESC_SWD | Connector_JST:JST_SH_SM03B-SRSS-TB_1x03-1MP_P1.00mm_Horizontal | J201 |
| 1 | FLIGHT_CAN_POWER | Connector_JST:JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_Horizontal | J702 |
| 1 | MCP2518FD-H/QBB | Package_DFN_QFN:DFN-14-1EP_3x4.5mm_P0.65mm_EP1.65x4.25mm | U207 |
| 1 | MOTOR_DFU_USB_C | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J203 |
| 1 | PESD2CANFD24L-T | Package_TO_SOT_SMD:SOT-23 | D202 |
| 1 | PTC 0.75A | Fuse:Fuse_1206_3216Metric | F701 |
The 678 most common of 681 parts.
More from iamdarshg/drone-arm
3- 4 layers246 × 296 mm

- 4 layers140 × 100 mm

Main rev b completed
iamdarshg/drone-arm
Reworked cheaper, maybe faster but less redundant drone controller.
165 parts2 - 4 layers75.5 × 50.5 mm

Drone arm
iamdarshg/drone-arm
Reworked cheaper, maybe faster but less redundant drone controller.
112 parts2
Similar boards
- 4 layers130 × 74.7 mm

Stima V4 Slave R1 1
r-map/rmap
rete monitoraggio ambientale partecipativo documentation at https://doc.rmap.cc
289 parts55 - 4 layers

Round LED Flash
xmyoot/custom-round-pcb-led-flash
Custom circular ring PCB LED flash controller prototype
237 parts - 4 layers78 × 78 mm

- 4 layers53 × 32 mm

Ubiquitous waddle
leonwip/ubiquitous-waddle
Dual channel CANnectivity CAN FD to USB-C adapter
44 parts3CERN-OHL-P-2.0 - 4 layers408.7 × 50 mm

Partial Drawer Controller v1
Robast-GmbH/PCB_Designs
This repository contains all the necessary files and instructions for the PCBs that are designed using KiCad. Here is an overview of the main components: - .github: Contains Github-specific configurations, including…
619 parts1MIT - 2 layers24 × 21 mm

Brk tja1051 hw
coderkalyan/brk_tja1051_hw
DS-009 compatible NXP TJA1051 CAN ransceiver breakout board
21 parts - 4 layers165 × 100 mm

Standalone scoring box
AndrewCraswell/agency
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.
206 partsMIT - 4 layers148 × 78 mm

Hub
Bruhdows/klink
Klink is a magnetic tile system for building programmable machines. First up: a marble run with sensors, buttons, lights, gates, splitters and an elevator.
85 parts
Questions
How big is the Esc rev b PCB?
It measures 170 × 172.2 mm and has 6 copper layers, 1.6 mm thick.
What parts does the Esc rev b use?
681 parts, built around the STM32G431CBT6, RFM-0505S, DRV8353SRTAR and LM5164DDA. 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 Esc rev b KiCad files?
From the iamdarshg/drone-arm repository on GitHub, at the commit this page was made from: the board is hardware/esc/rev_b/quilter_upload_freerouting_bestpass_800mb_servicefixed_pins_onboard/esc_rev_b.kicad_pcb and its schematic hardware/esc/esc/bec.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Esc rev b design in my own project?
Its repository states no licence, so its author keeps all rights: ask iamdarshg before reusing the design.