EmbeddedRelated.com

Minimalist ESP32-S3 Flight Controller for Brushed Motors

A minimal ESP32-S3-based prototype flight controller for small motors, with IMU sensing and motor output control.

Intermediate Project — This is intermediate because it combines real-time motor control, IMU-based stabilization, power integrity issues from noisy motors, and likely custom PCB or wiring work, even though the ESP32-S3 makes the firmware and connectivity side approachable.
Assumptions:
  • You mean a small multirotor-style flight controller, not a fixed-wing autopilot.
  • The ESP32-S3 SuperMini is the main controller board and you want a prototype, not a production-ready ESC-integrated board.
  • Small motors means brushed or small BLDC motors driven through external motor drivers/ESCs, not directly from the ESP32 pins.
  • You want basic stabilization/attitude control first, with wireless connectivity available for tuning or telemetry.

Bill of Materials

Microcontroller
Top Pick ESP32-S3-MINI-1 Espressif Systems From our database
ESP32-S3-MINI-1 is the best fit here because it matches your stated ESP32-S3 SuperMini direction, gives you Wi-Fi/BLE for tuning and telemetry, and has enough CPU for a basic flight-control loop on a compact prototype. Note: this MCU includes built-in WiFi and/or Bluetooth — no separate connectivity module needed.
Digikey $5.43 (6,025 in stock) Mouser $5.28 (1,424 in stock)
Dev Board ABX00083 Arduino
Ready-to-use board for prototyping with this chip
Digikey $19.30 (1,596 in stock) Mouser $19.30 (1,684 in stock)
ESP32-S3-DEVKITC-1-N8R8 Espressif Systems From our database
Very practical prototype board with USB, regulator, and plenty of flash/RAM for firmware development, logging, and wireless features. Easier to debug than a tiny SuperMini board, though larger than the final target form factor.
ESP32-S3-DevKitC-1-N32R16V Espressif Systems From our database
Higher-memory ESP32-S3 dev board that is useful if you expect to add more telemetry, filtering, or future features like logging and OTA updates. Good for firmware bring-up before shrinking to a SuperMini-class board.
IMU Sensor
Top Pick ISM330ISTR STMicroelectronics From our database
ISM330ISTR is the best choice for a flight controller prototype because the gyro and accelerometer are the critical sensors, and a simpler 6-axis IMU is usually easier to tune and less sensitive to magnetic interference than a 9-axis part.
Digikey $6.35 (3,032 in stock) Mouser $6.35 (2,451 in stock)
4517 Adafruit Industries LLC From our database
Breakout based on the LSM6DSOX plus LIS3MDL, giving a 6-axis IMU and magnetometer in a hobbyist-friendly board. Good for prototyping because it is easy to wire over I2C/SPI and includes a magnetometer if you want heading data later.
ICM-20948 TDK InvenSense From our database
Compact 9-axis motion sensor with accel, gyro, and magnetometer, commonly used in embedded motion projects. Useful if you want all-in-one sensing on a small board and are comfortable handling magnetometer calibration near motor currents.
Motor Driver
The best choice depends on your motor type. If your motors are brushed, DRV8833 is the simplest fit. If they are brushless, BD63731EFV-E2 or an alternative part are more appropriate, with an alternative part being the more flexible option for a custom BLDC stage.
DRV8833 Texas Instruments From our database
Common dual H-bridge driver for small brushed DC motors, which makes it a strong fit if your 'small motors' are brushed. Simple logic interface and widely used in compact robotics prototypes.
Digikey $2.71 (13,308 in stock) Mouser $2.18 (2,746 in stock)
BD63731EFV-E2 ROHM Semiconductor From our database
BLDC motor driver PMIC intended for brushless DC motor control, so it is a better match if your motors are small brushless outrunners or similar. More appropriate than a brushed H-bridge when you need three-phase drive.
Power Supply
Top Pick MCP73871-2CCI/ML Microchip Technology From our database
MCP73871-2CCI/ML is the best overall prototype power part because it supports LiPo charging plus load sharing, which makes USB bring-up and battery-powered testing much easier on a flight controller.
Digikey $2.41 (2,179 in stock) Mouser $2.41 (4,494 in stock)
BQ24040 Texas Instruments From our database
Single-cell Li-Ion/Li-Poly charger with power-path management, which is very useful for a battery-powered prototype that may also be connected to USB during development. Helps keep the system powered while charging and simplifies prototyping.

Compatibility Notes

  • ESP32-S3 logic is 3.3 V, so the IMU and any motor-control interface should also be 3.3 V compatible or use level shifting.
  • The IMU should be mounted away from motor power traces and high-current switching nodes to reduce vibration and EMI-induced attitude errors.
  • If you use DRV8833, it is for brushed motors only; brushless motors need a BLDC driver such as BD63731EFV-E2 or ESP32-S3-MINI-1 plus the appropriate power stage.
  • A flight controller prototype usually needs a clean regulated rail for the MCU and sensors, while motors should have their own noisy high-current supply path.
  • Wi-Fi/BLE is fine for configuration and telemetry, but do not rely on it for the real-time stabilization loop.

You'll Also Need

  • Motor power stage, connectors, and wiring for the actual motors and battery are not fully defined.
  • You will need a PCB or carrier board, decoupling capacitors, pullups for I2C if used, and likely a 3.3 V regulator if your SuperMini board does not already provide a suitable rail.
  • If using brushless motors, you may also need external MOSFETs or ESCs depending on the chosen driver architecture.
  • Mechanical mounting hardware, vibration isolation, and prop/motor safety parts are not covered here.
  • Firmware for PID control, arming/disarming logic, failsafe handling, and calibration routines must be developed separately.
Estimated BOM Cost: $20-25 (based on live distributor pricing)
Add to Digi-Key Cart

Design Considerations

Control Loop Timing
A flight controller needs a stable control loop, typically 500 Hz to 2 kHz for small multirotors. On ESP32-S3, keep the attitude estimator and motor update path deterministic, and avoid doing Wi-Fi work in the same high-priority loop. Use a watchdog and a failsafe that cuts or neutralizes motor output if loop timing slips.
IMU Placement and Vibration
The IMU should be mounted as close as possible to the vehicle center of rotation and isolated from motor vibration. Even small amounts of vibration can saturate the gyro or corrupt accelerometer data, which shows up as drift or oscillation. A stiff mount with light damping is usually better than a soft, floppy mount.
Motor Type Decision
Decide early whether the motors are brushed or brushless, because that changes the entire output stage. DRV8833 is appropriate for brushed motors, while brushless motors need a three-phase driver or ESC-style power stage. Mixing the wrong driver with the wrong motor type is a common prototype failure.
Power Integrity
Motor current spikes can reset the ESP32-S3 if the logic rail is not isolated well. Use separate power routing for motors and logic, with local bulk capacitance near the motor driver and a clean 3.3 V rail for the MCU and IMU. Brownout detection should be enabled so you can diagnose power dips instead of getting random crashes.
Firmware Safety
Implement arming logic, throttle limits, and a hard disarm path before you ever spin motors. On a prototype, a startup bug or sensor fault can otherwise cause immediate motor runaway. Add calibration checks for gyro bias and a startup self-test that refuses to arm if the IMU is not responding.
Wireless Use
Wi-Fi and BLE are useful for tuning, logging, and parameter updates, but they should be treated as non-critical. Keep radio tasks lower priority than the stabilization loop, and design the system so it can fly safely with the radio completely disabled. That separation makes the prototype much more robust.

Want to customize this project or build something different?

Try the Project Advisor