A compact, open 40 A BLDC electronic speed controller — 26 × 13 mm, four layers, BLHeli_S-compatible, and flight-tested on a real quadcopter. A dense, honest reference design: everything a commercial ESC hides, including the parts that still need cleanup before you fab your own.
Image
Part of a bigger build: the open quadcopter
This ESC isn't a one-off. It's the first board in a from-scratch quadcopter where I'm designing every PCB myself — and the reason is simple: I learn hardware best by climbing one rung at a time, each board harder than the last.
The ESC was rung one: high-current switching, gate drives, bootstrap timing, and thermal density crammed into 26 × 13 mm. It taught me power electronics the hard way — by making the mistakes documented in the @DESIGN_REVIEW.md and fixing them.
Rung two is the brain: my STM32F4 Flight Controller — an STM32F4 running the control loop, with a 6-axis IMU (accelerometer + gyroscope) for flight-attitude sensing and a MAX7456 OSD generator that overlays live telemetry onto the FPV video feed. Where the ESC is about moving current, the flight controller is about real-time sensor fusion and a loop that can't miss a deadline.
Put them together — four of these ESCs, the flight controller, motors, and a frame — and you get the real exam: a full quadcopter where every subsystem I designed has to work together, under vibration, heat, and a control loop running flat out. The drone is the goal. Understanding the entire stack from MOSFET to motion is the actual prize.
This is a working 40 A electronic speed controller for brushless motors — the kind that spin quadcopter props — built onto a 26 × 13 mm, 4-layer board. It runs BLHeli_S-compatible firmware (C type) and has flown on a real quadcopter with brushless motors.
What makes it worth your time isn't the spec sheet; plenty of 40 A ESCs exist. It's that this one is fully open and documented down to its open problems. You get the complete power-stage and gate-drive design and a frank engineering review of what's still rough — the floating pins, the thermal density, the ground-plane question. If you've ever wanted to actually understand and improve the thing between your flight controller and your motors, this is a board you can read end to end.
At a glance
Table
Item
Detail
Type
40 A BLDC ESC / 3-phase inverter
Firmware
BLHeli_S-compatible (C type)
Power stage
3 × half-bridge, 6 × N-channel MOSFET
MOSFETs
TPN2R703NL — 45 A continuous / 90 A peak
Gate drivers
3 × MP1907A half-bridge
MCU
EFM8BB21F16G (QFN20)
Logic rail
3.3 V — MCP1755T-3302E/OT
Gate/aux rail
12 V — L78L12ABUTR (linear)
Board
26 × 13 mm, 4-layer, ~52 layout components
Density
73% component-area fill (flagged critical)
Status
Flight-tested; pre-fab review items open
What's on the board
Built and on the board today:
Three-phase MOSFET power stage — TPN2R703NL devices driven by MP1907 half-bridge gate drivers, the heart of the controller
Dedicated motor-control MCU — the EFM8BB21F16G handles real-time PWM generation and commutation
Current sensing — precision shunt for the firmware's current monitoring and limiting
Back-EMF sensing — for sensorless commutation and timing
Dual supply rails — 3.3 V logic and 12 V gate-drive, regulated on-board
2S–6S input range — runs from common LiPo pack voltages
Status LED — operational and diagnostic feedback
Firmware-updatable — bootloader MCU, programmable over the signal line
Designed for, and dependent on firmware configuration:
Protection — undervoltage, overvoltage, thermal, overcurrent. The hardware (shunt sensing, MCU inputs) is in place; actual behavior depends on BLHeli_S configuration and thresholds.
Regenerative braking during deceleration — supported by the topology, governed by firmware.
Configurable switching up to 32 kHz, set in firmware.
EMI filtering to keep RF noise down.
The split above is deliberate: what's physically built versus what depends on how you set up the firmware. Reviewers and remixers deserve to know which is which.
Why build an open ESC
Commercial ESCs are black boxes. They work, but the design and firmware are opaque, so when you want to tune behavior, tighten protection, or understand why a motor stutters on startup, there's nowhere to look.
This design is the opposite: full visibility into the hardware and a firmware target (BLHeli_S) you can read and reflash. The priorities, in order, were efficiency, thermal headroom, configurability, and compatibility with the flight-controller ecosystems people already use — standard PWM, OneShot, and DShot.
It's not trying to undercut a $5 hobby ESC for a stock build. It's a foundation you can specialize.
Control protocols
Standard PWM
OneShot
DShot
Other digital protocols common to modern flight controllers
Full firmware-source access means you can implement custom protocols if you need them.
Where to take it
The board flies as-is; the interesting frontier is around it. Roughly in order of value:
Close the review items — ground-plane layer, clear the polygon warnings, mark/handle the floating pins (the highest-leverage next step)
Add real protection — current shunt, TVS on VBAT, reverse-polarity, temperature sensing
Bidirectional telemetry — RPM, temperature, current back to the flight controller
Higher current — bigger copper, thermal vias, larger/parallel MOSFETs, more board area
CAN-bus variant — distributed motor control for larger or industrial vehicles
Field-oriented control (FOC) — maximum efficiency and torque
Hall-sensor inputs — guaranteed startup torque where it's needed
Built for tinkerers, not consumers
I built this in the open because the best hardware projects are the ones other people push further than the original author ever could. If you fork it, I'd genuinely love to see where it goes — a telemetry-equipped version, a higher-current heavy-lifter, a field-oriented-control experiment, or a thermal redesign built for brutal environments. The core motor drive already works; the remix space is everything around it, and that space is yours.
Done: flight-tested on a real quadcopter with brushless motors — the controller drives motors correctly in actual flight.
Recommended next: efficiency curves across RPM and load, thermal characterization under sustained high power, EMI compliance and filter-effectiveness measurements, and protection-circuit response-time analysis. See the @BUILD_LOG.md for what bench testing has already turned up.
Design notes
A few decisions worth recording, with room to expand:
MOSFET choice — TPN2R703NL for its low RDS(on) and 45 A continuous headroom over the 40 A target
Gate driver — MP1907 half-bridge per phase
Rails — separate 3.3 V logic and 12 V gate-drive supplies to keep switching noise off the MCU
4-layer stackup — for current handling and a quieter ground in a 26 × 13 mm board
Fork it, build it, fly it — and tell me what you'd change.
40A BLDC ESC for quadcopters, compatible with BLHeli_S firmware.
Built around TPN2R703NL MOSFETs (45A continuous / 90A peak) driven by an MP1907 half-bridge gate driver. Flight-tested on a real quadcopter with brushless motors.