E²SC: Small Dual FOC / Hall ESC based on the ESP32-S3

E²SC perspective view ESC designed for driving two BLDC motors per board, up to 32A per channel and 2x 15A indefinitely (reliably). The in-phase shunt resistors allow FOC, a feature not present in drone ESCs. Hall sensors are also supported. The control interface is 12Mbps USB for more flexible control and telemetry, in addition to in-the-field firmware updates.

Specifications规格SpezifikationenEspecificacionesTekniset tiedotSpecificaties

  • Two independent motor outputs
  • Input voltage: ~10 to 25V / 3-6S + 5V (from USB)
  • Output current (per motor): 2x 15A continuous, 32A peak (shared)
  • Size: 45mm long, 30mm wide, and approx 7mm thick (depending on heatsink)
  • Host interface: USB 2.0 Full Speed (12Mbps)
  • Amass XT-30 power input connector
  • Amass MR-30 motor connectors
  • Hall sensor pin header: 2x4, 1.27mm pitch
  • Power LED and firmware-configurable status LED
  • Debug UART shared with Hall header
  • Zener diodes to prevent voltage spikes (over 27V)
  • TVS diodes on the USB data lines

ESC perspective view

ESC top view

ESC bottom view

Design Goals

These ESCs are meant to fit in between the cheap, simple and compact quadcopter (BLHeli) ESCs and the more complex, featured and expensive VESC (and ODrive) ones.

Compared to quadcopter ESCs:

  • In-phase shunt resistors for FOC and other closed-loop control
  • Hall sensor support
  • Use connectors instead of soldering / desoldering (optional)
  • Have a high-speed interface that can directly connect to a Raspberry Pi, Nvidia Jetson or similar board
  • Two outputs to make maximum use of the MCU and limit the amount of interface wiring
  • MOSFET temperature monitoring
  • Input ESD / spike protection
  • Bus voltage spike protection
  • Mounting holes! For both securing the board and heatsink
  • No built-in BEC, 5V needs to be supplied
  • Open schematics
  • Open-source firmware

Compared to VESC:

  • Lower voltage and current rating (for costs reduction)
  • Only 5V Hall sensors with 3.3V pullups
  • Simpler firmware and interfacing for less debugging (hopefully) and easier application specific customisation
  • No CAN, wireless or IMUs
  • Fewer parts to break
  • Layout both much smaller and more sensible (like quadcopter ESCs)

Other considerations:

  • Components on the top side only to make mounting easier
  • These will be used with a power distribution board that has bulk capacitors (and very short power leads). A bulk cap can also be soldered to the input connector
  • The MOSFET area allows using a heatsink that sticks out at both sides so multiple boards can share one (for example)


These ESCs were designed for internal (prototyping) use, but with enough interest we can do production batches. When doing a decent run (~100) these will probably cost around $60 each, right in the upper end of the “two discrete” BLHeli_32 35A ESC ballpark.

Output power

The Amass XT-30 input connector is rated for 30A. For an idea of how well that fares in testing check for example this video

The two motor connectors are Amass MR-30 types which are rated for 15-30A DC current and 40A peaks. These are used for AC signals and should hold up fine.

Another factor would be the shunt resistors. These are 1mΩ and are rated for 1W, limiting the current to 32A. Using larger shunts would help, but also make the board quite a bit larger and more expensive.

The board itself consists of 4 layers: 3Oz / 105µm outer and 1Oz / 35µm inner copper thickness.

Finally the MOSFETS. These are rated for 68A and have a typical RDS(ON)R_{DS(ON)} of 3.9mΩ. The low ON-state resistance was the main attraction here, to create a board with good efficiency and low cooling requirements.

To summarise: With sufficient cooling the power stage should do fine up to ~32A per channel and more than that collectively.


These are v1.0.0 schematics, the v2.0.0 ones will be uploaded soon.

MCU, connectors and power

MOSFETs and drivers


Based on SimpleFOC. We’ll work to upstream all modifications and improvements.

Firmware TODO list

  • Allow switching the host interface to something RC style
  • Extend firmware with power profiling and energy / heat budgetting
  • Add DShot mode for USB pins (if possible)


  • Added V_BUS input voltage measurement
  • Switch gate drivers to U5315 ones over reported problems with the EG ones

  • Added Hall sensor support
  • Changed MOSFETs to lower RDS(ON)R_{DS(ON)} versions (3.9m typ. now)
  • Added zeners for voltage spike prevention
  • Added TVS diodes on USB D- and D+
  • Increased board size from 44.5 x 29 to 45 x 30mm
  • Increased outer copper thickness from 2Oz to 3Oz
  • Reduced board thickness from 1.6 to 1.2mm
  • Increased power cable pad sizes
  • Slightly increased solder bridge clearances
  • Added pinout on bottom of board

Initial board version. For a design review / dicussion check Reddit


The first beta batch will start production after the Chinese labour-day holiday, in week 19. Reach out if you want a beta board.