In 1lb and 3lb combat robotics, every gram counts, so I prefer to build custom control boards to minimize weight. However, designing a new board for each robot became tedious, especially when most share the same fundamental requirements: receiving commands from a handheld controller and driving motors—both for movement and a high-current ESC/BLDC weapon system.
To streamline future builds, I designed a compact, universal control board that integrates these core functions, making it adaptable to any new robot design.
At its heart is a custom-programmed ESP32-C3-MINI, which communicates via BLE with an Xbox gamepad for seamless wireless control.
After spending some time testing the new revision of my combat robot control board and refining the firmware, it's finally performing as expected. In this post, I’ll go into more detail about the board’s functionality and features.
I’ve included a quick overview video, but if you're looking for the full breakdown, keep reading!
Features Overview
This second revision of the combat robot control board was built with modularity, compactness, and power in mind—making it easy to integrate into a variety of designs while supporting high-current loads and reliable wireless control. Here's a breakdown of the main features:
ESP32-C3-MINI
At the heart of the board is the ESP32-C3-MINI with a built-in PCB antenna for Bluetooth Low Energy communication with an Xbox controller. It offers plenty of GPIO for controlling onboard components, with additional pins available for UART and future expansions.
High-Current DC Input
Designed to accept up to 30V DC, the board features reverse polarity protection and large, easily solderable input pads. The power input is protected for continuous draws up to 30A—though trace limits are still being tested. With a 4-layer PCB and wide copper areas, it should hold up under combat conditions.
3.3V Step-Down Converter
A robust AP63203 buck converter supplies a regulated 3.3V output at up to 2A. This powers the ESP32-C3 and also provides clean power to external peripherals and sensors.
Dual DRV8871 Motor Drivers
Two onboard DRV8871 drivers deliver up to 2A each to brushed DC motors—ideal for robot drive systems. They’re compact, thermally improved over the previous version, and simple to control via PWM.
External Switch Connector
For safety and convenience, a pair of solder pads allows you to add a remote-mounted power switch—acting as a master cutoff without obstructing access to the board.
High-Current Output Pads
Parallel to the main power input, these pads allow direct connection to ESCs or other high-current devices, simplifying power distribution within the robot.
User I/O and Debug Tools
The board includes a basic debug LED, a tactile pushbutton for custom input, and two I/O headers with 3.3V and GND pins for expansion or prototyping.
I love how small these boards are! There's so much functionality and power capacity packed in a small form and will be perfect for my small combat robots. Here's a size comparison of V1 and V2
I was hesitant to switch from the LDO voltage regular to a buck converter, but the thermals on the board with just the ESP32 running are already noticeably improved.
With multiple signal and power planes and at least 100 vias, this is by far the most complicated and tightly packed board I have developed, but JLCPCB did an amazing job with the fabrication and assembly.
The initial power test and communication check with the ESP32 chip was successful. I'll have updates from the motor tests uploaded soon and hopefully some drive tests of the robot!
UART (TX/RX) optional connection (can be repurposed for additional I/O)
1 additional /O port that can be soldered to
WIFI and BLE support with the ESP32-C3-Mini preassembled PCB antenna
Lessons from Version 1: Refining My Combat Robot Control Board
Version 1 of this design was my first attempt at creating a versatile combat robot control board—one that could be easily integrated into different robots without requiring custom PCBs for each build. However, as I started designing my first robot around it, I encountered several challenges that needed to be addressed.
Connector Placement Issues
The XT30 connectors for the LiPo battery made board installation more difficult than expected. The additional space required for both the connectors and their wire leads took up valuable real estate on the PCB. I realized that using solderable pads instead of through-hole connectors would allow wires to be soldered at a more convenient angle, simplifying routing and making push connections easier to manage.
Master Power Switch Accessibility
The placement of the master power switch also posed an issue. It needed to be easily accessible with a tool, without requiring the robot to be disassembled. This meant ensuring that no batteries or other components were mounted above or below the board, as a screwdriver needed a clear path to torque down the switch. This wasted a lot of potentially usable volume to house other peripherals.
Motor Driver & Thermal Issues
The DRV8870 motor drivers were non-functional, and I discovered that the GND plane beneath the IC was not exposed—an important reminder to always double-check footprint details from EasyEDA/LCSC! Without proper thermal dissipation, the ICs likely entered rapid thermal shutdown during testing. Additionally, the current sense resistor was oversized, while the power input capacitors for the DRV8870 were undersized.
To address these issues and improve performance, I decided to switch to the DRV8871 in the next revision, as it offers better built-in features and should handle heat dissipation more effectively when I actually include proper grounding.
Improving Debugging & Status Indicators
The single debug LED provided minimal visual feedback for board status. To make fault detection and battery level monitoring more intuitive, I plan to replace it with an WS2812 RGB LED, allowing for clearer visual indicators.