Skip to the content
PCBKitNew board
4 layers78 × 60 mmBalance Bot, the printed circuit board in 3D

PCB incorporating an ESP-WROOM-32 MCU with two DRV8825 stepper motor drivers.

Size
78 × 60 mm
Copper layers
4
Thickness
1.6 mm
Parts
57
Nets
76
Pads
253
Tracks, vias
634, 79
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
9 May 2025
Updated
9 May 2025

Overview

Balance Bot is an open-source printed circuit board by TheFlemoid, from the TheFlemoid/ESP-32-Stepper-Driver repository on GitHub. It is a 4-layer board of 78 × 60 mm with 57 parts on 76 nets, routed with 634 tracks and 79 vias.

It is built around the CH340C, MMBT2222A and SSP1117-5.0V, with the TSSA5U50 and TYPE-C16PIN among its other parts. Its parts include 13 resistors, 12 capacitors, 11 connectors, 9 ICs and 4 diodes. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

5

README

README.md

ESP-WROOM-32 Based Stepper Motor Controller

PCB integrating an ESP-WROOM-32 microcontroller with two A4988/DRV8825 stepper motor drivers.

This is a four layer PCB that I originally designed this for an ESP-32 controlled, NEMA17 powered robot. However it can also be useful for any other application requiring microcontroller control, stepper motors, and any form of SPI or I2C peripheral.


Before connecting and driving the DRV8825, ensure that you set the current limit on both DRV8825/A4988 stepper drivers.

Features include:

  • 'Battery drive'. Drive the board through a high voltage li-ion or LiPo battery, but enjoy three additional voltage rails:
    • 'Buck', aka the output from the onboard switching buck converter.
    • 5V rail through an onboard 5V LDO.
    • 3V3 rail through an onboard 3V3 LDO.
  • USB-C fast USB programming and UART.
    • USB-C programming for easy cable manipulation, but only fast USB (ie USB 2.0 speed specification) is supported.
    • 'Auto program' (utilizing USB to place the MCU in program mode) is supported.
  • Sleep, step, and direction pin connections for two DRV8825 stepper motor drivers. Control speed, direction, and sleep on/off (useful for low current operation) for two steppers individually.
    • This was designed with the thought that each controller would be handled via the ESP-32 MCPWM peripheral, but it's entirely feasible to control them through software if desired.
  • Breakout for SPI.
  • Breakout for I2C.
    • Three pins each for both I2C SDA and SCL.
  • Voltage divider / voltmeter for 'battery' voltage.
  • Breakouts for ESP-32 GPIOs 13, 25, 26, and 36.
    • These were unused in the original design, but can be handy for extra outputs (eg another SPI CS pin) or inputs.
  • Pin headers for 1/8, 1/16, and 1/32nd microstepping.
    • Each stepper driver can be independently set for microstepping as required by your application.

stepper_driver_f_cu.png

stepper_driver_render.png

Parts

57
QtyValueFootprintReferences
50.1uFCapacitor_SMD:C_0805_2012MetricC1, C2, C4, C5, C13
410KResistor_SMD:R_0805_2012MetricR1, R11, R12, R13
410uFCapacitor_SMD:C_0805_2012MetricC3, C7, C9, C10
4MountingHoleMountingHole:MountingHole_2.5mmH1, H2, H3, H4
31kResistor_SMD:R_0805_2012MetricR2, R3, R4
3LEDLED_SMD:LED_0805_2012MetricD1, D2, D3
21KResistor_SMD:R_0805_2012MetricR5, R6
2220uFeasyeda2kicad:CAP-SMD_BD10.0-L10.3-W10.3-LS11.3-FDC11, C12
25.1kResistor_SMD:R_0805_2012MetricR8, R9
2MMBT2222ASnap_EDA:SOT23_FASU8, U9
1100uHSnap_EDA:IND_BOURNS_SRR1210L1
110K Poteasyeda2kicad:RES-ADJ-TH_3P-L10.0-W10.0-P2.50-LR7
122uFCapacitor_SMD:C_0805_2012MetricC8
175KResistor_SMD:R_0805_2012MetricR10
1AMS1117-3.3_C347222easyeda2kicad:SOT-223-4_L6.5-W3.5-P2.30-LS7.0-BRU5
1BOOTeasyeda2kicad:SW-SMD_L6.0-W3.3-LS8.0BOOT
1Battery Powereasyeda2kicad:CONN-TH_2P-P5.00_MX126-5.0-GN01-02P-CU-S-ACN1
1CH340Ceasyeda2kicad:SOP-16_L10.0-W3.9-P1.27-LS6.0-BLU4
1Conn_01x10Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ11
1Conn_01x16Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ14
1DRV8825_0_LeftSnap_EDA:IC_DRV8825_STEPPER_MOTOR_DRIVER_CARRIERU2
1DRV8825_0_M0Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ5
1DRV8825_0_M1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1DRV8825_0_M2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1DRV8825_1_M0Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ8
1DRV8825_1_M1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ9
1DRV8825_1_M2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10
1DRV8825_1_RightSnap_EDA:IC_DRV8825_STEPPER_MOTOR_DRIVER_CARRIERU3
1ESP32-WROOM-EEspressif:ESP32-WROOM-32EU1
1LM2596S-ADJ_C5174629easyeda2kicad:TO-263-5_L10.0-W8.4-P1.70-LS15.3-BRU7
1LeftConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ12
1RESETeasyeda2kicad:SW-SMD_L6.0-W3.3-LS8.0RESET
1RightConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ13
1SSP1117-5.0Veasyeda2kicad:SOT-223_L6.5-W3.5-P2.30-LS7.0-BRU6
1TSSA5U50Snap_EDA:DIOM4325X250ND4
1TYPE-C16PINeasyeda2kicad:USB-C-SMD_TYPE-C16PINUSB1

Questions

How big is the Balance Bot PCB?

It measures 78 × 60 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Balance Bot use?

57 parts, built around the CH340C, MMBT2222A, SSP1117-5.0V and TSSA5U50. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Balance Bot KiCad files?

From the TheFlemoid/ESP-32-Stepper-Driver repository on GitHub, at the commit this page was made from: the board is Balance_Bot.kicad_pcb and its schematic Balance_Bot.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Balance Bot design in my own project?

Its repository states no licence, so its author keeps all rights: ask TheFlemoid before reusing the design.

Similar boards

  • 2 layers78 × 44 mmEsp32lcd, the printed circuit board in 3D

    Esp32lcd

    cjheath/esp32lcd

    A development board for the ESP32 with a 2.4" touchscreen LCD

    30 parts3
  • 2 layers109 × 78.5 mmESP32 Interface, the printed circuit board in 3D

    ESP32 Interface

    Saroja-J/ESP32-Board-

    Custom ESP32-WROOM-32D PCB designed in KiCad with USB-UART,I2C,VSPI, and Sensor Interfaces.

    62 parts1
  • 2 layers45 × 59.5 mmOmniDrive, the printed circuit board in 3D

    OmniDrive

    TLNKhanh/OmniDrive

    A general-purpose dual motor driver board with ESP32.

    79 parts1MIT
  • 2 layers98 × 56.3 mmESP32 HUB, the printed circuit board in 3D

    ESP32 HUB

    ANSHUMANDOCX/ESP32-Touch-Hub

    This is a Esp32 Hub that has a 3.5 inch tft touch screen

    77 parts
  • 2 layers73.5 × 92.8 mmBTL ESD, the printed circuit board in 3D

    BTL ESD

    DONGKHOA/SMART_LED_CONTROL

    152 parts
  • 2 layers65 × 86 mmPcb KE 2 JULIUS, the printed circuit board in 3D

    Pcb KE 2 JULIUS

    jliusgustalvoo/making-pcb-with-esp32-s3-with-sensor-actuator-i2c-pin

    making pcb with esp32-s3 with sensor,actuator,i2c pin for college task

    78 parts
  • 2 layers90 × 45 mmEsp32-dalitester, the printed circuit board in 3D

    Esp32-dalitester

    lukasprojects/esp32-dalitester

    Small ESP32 DALI tester for commissioning and maintaining light installations via the DALI bus

    84 parts