Small Dual FOC ESC based on the ESP32-S3

ESC top view ESC designed for driving two BLDC motors per board, up to approx 15A for a few seconds and 5A indefinitely (reliably). The in-phase shunt resistors allow FOC, a feature not present in drone ESCs. The control interface is 12Mbps USB for more flexible control and telemetry, in addition to in-the-field firmware updates.

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
  • Have the ability to use connectors instead of soldering / unsoldering
  • 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
  • Mounting holes! For both securing the board and, if desired, a heatsink

Compared to VESC:

  • Lower voltage and current rating (for costs reduction)
  • No sensored support to reduce costs and clutter
  • Simpler firmware and interfacing for less debugging (hopefully) and easier application specific customisation
  • 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 usign a heatsink that sticks out at both sides so multiple boards can share one (for example).
  • While having connectors these boards aren’t meant to be unplugged often, for cost and space reasons there aren’t any protection features.

Specifications规格SpezifikationenEspecificacionesTekniset tiedotSpecificaties

The converging of above design goals, time budget and parts availability lead to these specs:

  • Two independent motor outputs
  • Input voltage: ~10 to 25V / 3-6S + 5V (from USB)
  • Output current (per motor): 5A continuous, 10A for 30 seconds, 15A for 3 seconds^[1]
  • Size: 44.5mm long, 29mm wide, and approx 7mm thick
  • Host interface: USB 2.0 Full Speed (12Mbps)
  • Amass XT-30 power input connector
  • Amass MR-30 motor connectors
  • Power LED and firmware-configurable status LED
  • Debug UART header (unsoldered)

ESC top view

ESC bottom view

[1]: The power stages are based on a drone ESC design rated for 30-40A. Using a heatsink will probably allow closer matching their performance

Schematics

MCU, connectors and power

MOSFETs and drivers

Voltage and current measurement

Board design

Top solder maskTop copperInner layer 1Inner layer 2Bottom copper