Do a deep dive into this project and come up with...

Thinking for 10 hrs 22 mins...
Thought for a moment — Searching for components
Search "In the current project, identify the power archite...".
Search "In the current project, identify the power archite...".
Search project.
Thought for a moment — Searching for data components
Search project.
Search project.
Thought for a moment — Exploring asset options
Search project.
Search project.
Thought for 2 sec — Analyzing feedback sections
Search project.
Search project.
Search project.
Running 5 design checks.
Reading schematic for U1, U2, U3 and 86 more.
Reading schematic for U1, U2, U3 and 86 more.
Reading schematic for U2, Q1, R1 and 86 more.
Reading schematic for R6, R7, R8 and 86 more.
Thought for 14 sec — Considering local divider current
Search "What are the main power rails in this project, and...".
Thought for a moment — Searching for power components
Search "What are the main power rails in this project, and...".
Thought for a moment — Investigating net connections
Search "What are the main power rails in this project, and...".
Search "What are the main power rails in this project, and...".
Thought for a moment — Exploring component search options
Search "What are the main power rails in this project, and...".
Thought for a moment — Searching for components
Search "What are the main power rails in this project, and...".
Thought for a moment — Investigating net components
Search "What are the main power rails in this project, and...".
Thought for a moment — Searching for resistor information
Search "What are the main power rails in this project, and...".
Thought for a moment — Analyzing RC network components
Search "What are the main power rails in this project, and...".
Search "What are the main power rails in this project, and...".
Thought for 18 sec — Identifying voltage components
Searched "What are the main power rails in this project, and..." — 1297 results.
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Exploring component options
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Improving search queries
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Searching for component information
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Searching for component associations
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Searching for design documents
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Looking for components info
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Searching for PCB footprints
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for 3 sec — Identifying bootstrap capacitors
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Searching for specifics
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Thought for a moment — Organizing components
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Search "Reconstruct the exact A/B/C phase sensing channel ...".
Searched "Reconstruct the exact A/B/C phase sensing channel ..." — 948 results.
Running calculation.
Running calculation.
Running calculation.
Running calculation.
Running calculation...
U4
U6
Manufacturer Part Number
MCP1755T-3302E/OT
U5
U2
U3
Manufacturer Part Number
EFM8BB21F16G-C-QFN20R
R12
Resistance
10kΩ
R21
Resistance
10kΩ
R15
Resistance
47 Ω
R6
Resistance
47 Ω
R25
Resistance
3.3kΩ
R22
Resistance
47 Ω
R26
Resistance
1kΩ
R8
Resistance
10kΩ
R24
Resistance
10kΩ
R16
Resistance
10kΩ
R27
Resistance
10kΩ
R14
Resistance
47 Ω
R20
Resistance
10kΩ
R7
Resistance
47 Ω
R3
Resistance
10kΩ
R4
Resistance
10kΩ
R10
Resistance
1kΩ
R2
Resistance
470 Ω
R23
Resistance
47 Ω
R13
Resistance
10kΩ
R18
Resistance
1kΩ
R9
Resistance
3.3kΩ
R1
Resistance
10kΩ
R5
Resistance
10kΩ
R17
Resistance
3.3kΩ
Cpwm
Bpwm
C2CK
RC_IN
MUXA
DRVH_B
MUXA
Cpwm
DRVL_A
Acom
MUXB
DRVL_A
Comp_Com
DRVH_C
DRVL_C
C2D
C2CK
Acom
EN_GLOBAL
SW_C
Comp_Com
Ccom
SW_C
MUXB
DRVL_B
Bpwm
MUXC
RC_IN
DRVH_A
DRVH_A
Comp_Com
SW_B
Apwm
Ccom
EN_GLOBAL
EN_GLOBAL
SW_A
SW_A
Comp_Com
DRVL_C
SW_B
DRVL_B
Bcom
DRVH_C
Apwm
DRVH_B
Bcom
C2D
MUXC
Q4
Q2
Q6
Q5
Q3
Q1
C12
Capacitance
1uF
+VBAT
+12V
+12V
+VBAT
+3V3
+VBAT
+3V3
+12V
+3V3
C7
Capacitance
1uF
C13
Capacitance
1uF
+VBAT
C9
Capacitance
1uF
+3V3
+VBAT
+12V
+12V
C11
Capacitance
1uF
+VBAT
+3V3
C6
Capacitance
22uF
PWR_GND
A_PAD
C1
Capacitance
47uF
C_PAD
RC_IN
C10
Capacitance
0.1uF
GND_PAD_3
C4
Capacitance
22uF
B_PAD
3V3_PAD
C3
Capacitance
22uF
C5
Capacitance
22uF
C18
Capacitance
0.1uF
C8
Capacitance
0.1uF
C2D
C19
Capacitance
0.1uF
C_PAD_2
PWR_VBAT
C2CK
GND_PAD_2
C2
Capacitance
22uF
U1
Manufacturer Part Number
L78L12ABUTR

Refine this doc
Ask about this doc
README 2
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.
ESC board

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.
The build, board by board:
  • Motor drive → this 40 A ESC (×4)
  • Brains & stabilization → STM32F4 Flight Controller (STM32F4 + 6-axis IMU + MAX7456 OSD)
  • Frame, motors, radio, FPV → in progress
The 30-second version
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


ItemDetail
Type40 A BLDC ESC / 3-phase inverter
FirmwareBLHeli_S-compatible (C type)
Power stage3 × half-bridge, 6 × N-channel MOSFET
MOSFETsTPN2R703NL — 45 A continuous / 90 A peak
Gate drivers3 × MP1907A half-bridge
MCUEFM8BB21F16G (QFN20)
Logic rail3.3 V — MCP1755T-3302E/OT
Gate/aux rail12 V — L78L12ABUTR (linear)
Board26 × 13 mm, 4-layer, ~52 layout components
Density73% component-area fill (flagged critical)
StatusFlight-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:
  1. Close the review items — ground-plane layer, clear the polygon warnings, mark/handle the floating pins (the highest-leverage next step)
  2. Add real protection — current shunt, TVS on VBAT, reverse-polarity, temperature sensing
  3. Bidirectional telemetry — RPM, temperature, current back to the flight controller
  4. Higher current — bigger copper, thermal vias, larger/parallel MOSFETs, more board area
  5. CAN-bus variant — distributed motor control for larger or industrial vehicles
  6. Field-oriented control (FOC) — maximum efficiency and torque
  7. 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.
  • Part of a bigger build: the open quadcopter

  • The 30-second version

  • At a glance

  • What's on the board

  • Why build an open ESC

  • Control protocols

  • Where to take it

  • Built for tinkerers, not consumers

  • Validation — done and recommended

  • Design notes

Documents

  • README 2

  • First Time Flashing

  • ESC Project Explanation and ERC/DRC Risk Review

  • High-Current Layout Path Review

  • README

  • Phase Output Simulation

  • README 3

Assets

Electronic Speed Controller Template image.png

Electronic Speed Controller Template image.png

Electronic Speed Controller Template image
Electronic Speed Controller Polygon image.png

Electronic Speed Controller Polygon image.png

Electronic Speed Controller Polygon imageThumbnail

Electronic Speed Controller

Electronic Speed Controller thumbnail
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.

Pricing & Availability

Distributor

Qty 1

Arrow

$1.83–$3.11

Digi-Key

$4.88

HQonline

$1.76

LCSC

$3.43–$3.43

Mouser

$14.15

TME

$4.92

Verical

$1.38–$129.40

Controls