
Bentoboard
torbers/bentoboard
as many ready-to-use electronics as i could fit on a 4"x4" PCB.

This document consolidates the power architecture, wiring, BOM additions, and system diagram for an ESP32-based robot arm controller using:
Robot Arm PCB is an open-source printed circuit board by JoshAyersSBT, from the JoshAyersSBT/Robot_Arm_PCB repository on GitHub. It is a 2-layer board with 26 parts on 109 nets, routed with 438 tracks and 36 vias.
It is built around the CH340X, PCA9685BS and AP2112K-3.3, with the MMBT3904 and PESD5V0L1UL among its other parts. Its parts include 7 capacitors, 5 resistors, 5 ICs, 2 diodes and 2 transistors. It belongs with the robots and motor control boards and the ESP32 boards of this library.
This document consolidates the power architecture, wiring, BOM additions, and system diagram for an ESP32-based robot arm controller using:
The board negotiates a higher-voltage USB-C PD contract, then generates two isolated rails:
Key design goal: prevent ESP32 brownout caused by servo current spikes.
USBC_CC1 (A5) -> STUSB_CC1USBC_CC2 (B5) -> STUSB_CC2USBC_VBUS -> VBUS_INUSBC_GND -> GNDUSBC_D+ (A6/B6 tied) -> CH340_UD+USBC_D− (A7/B7 tied) -> CH340_UD−CH340_TXD -> ESP32_U0RXD (GPIO3)CH340_RXD -> ESP32_U0TXD (GPIO1)CH340_DTR/RTS -> ESP32_EN / ESP32_IO0 (auto-program circuit)ESP32_GPIO21 (SDA) <-> STUSB_SDA (pull-up to +3V3)ESP32_GPIO22 (SCL) <-> STUSB_SCL (pull-up to +3V3)STUSB_ALERT -> ESP32_GPIO (input, optional)ESP32_GPIO -> STUSB_RESET (optional; otherwise pull-up)ESP32_GPIO21 (SDA) <-> PCA_SDAESP32_GPIO22 (SCL) <-> PCA_SCLPCA_VDD -> +3V3PCA_V+ -> SERVO_6VPCA_GND -> GNDVBUS_IN -> Power Path -> VSYSVSYS -> Buck (6V) -> SERVO_6VVSYS -> Buck/LDO -> +3V3Recommended IC
Typical Supporting Parts
Option A (quieter, recommended)
Option B (fewer parts)
Servo Rail
Logic Rail
flowchart LR
USBC["USB-C Receptacle P1"]
PD["STUSB4500QTR U2"]
PPATH["Power-Path / Protection<br/>(eFuse or Load Switch)"]
CH340["CH340X U5"]
ESP["ESP32 U1"]
PCA["PCA9685 U3"]
LDO33["3.3V Regulator<br/>(LDO or Buck)"]
SERVOS["Servo Headers / Servos"]
ESDUSB["USB ESD<br/>(D+/D−)"]
ESDCC["CC ESD (opt)"]
%% ---------------- USB2 PROGRAMMING ----------------
USBC -->|"A6/B6 D+ → D+ IN"| ESDUSB
USBC -->|"A7/B7 D− → D− IN"| ESDUSB
ESDUSB -->|"D+ OUT → UD+"| CH340
ESDUSB -->|"D− OUT → UD−"| CH340
CH340 -->|"TXD → ESP GPIO3 U0RXD"| ESP
CH340 -->|"RXD → ESP GPIO1 U0TXD"| ESP
CH340 -->|"DTR/RTS → EN/IO0 auto-prog"| ESP
%% ---------------- USB-C PD NEGOTIATION ----------------
USBC -->|"A5 CC1 → CC1 IN"| ESDCC
USBC -->|"B5 CC2 → CC2 IN"| ESDCCBefore PCB layout:
Once confirmed, this design is PCB-ready for a low-cost, reliable USB-C powered robot arm controller.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | Motor_Servo | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | M1, M2, M3, M4 |
| 3 | 10k | Resistor_SMD:R_0201_0603Metric | R1, R4, R5 |
| 3 | 470uF | Capacitor_SMD:C_0201_0603Metric | C4, C5, C6 |
| 2 | 1uF | Capacitor_SMD:C_0201_0603Metric | C1, C2 |
| 2 | 4.7k | Resistor_SMD:R_0201_0603Metric | R2, R3 |
| 2 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1, Q3 |
| 2 | PESD5V0L1UL | Diode_SMD:D_SOD-882 | D1, D2 |
| 1 | 0.1uF | Capacitor_SMD:C_0201_0603Metric | C3 |
| 1 | 470 uF | Capacitor_SMD:C_0201_0603Metric | C7 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | CH340X | Package_SO:MSOP-10_3x3mm_P0.5mm | U5 |
| 1 | ESP32-WROOM-32UE-R2 | RF_Module:ESP32-WROOM-32UE | U1 |
| 1 | PCA9685BS | Package_DFN_QFN:QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mm | U3 |
| 1 | STUSB4500QTR | Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mm | U2 |
| 1 | USB_C_Plug | Connector_USB:USB_C_Receptacle_CNCTech_C-ARA1-AK51X | P1 |
26 parts, built around the CH340X, PCA9685BS, AP2112K-3.3 and MMBT3904. 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.
From the JoshAyersSBT/Robot_Arm_PCB repository on GitHub, at the commit this page was made from: the board is Schematic/Schematic.kicad_pcb and its schematic Schematic/Schematic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask JoshAyersSBT before reusing the design.

torbers/bentoboard
as many ready-to-use electronics as i could fit on a 4"x4" PCB.

huulanka/wisp
Open-source ESP32 room climate monitor — CO2, VOC, humidity, temperature and light sensing with custom PCB, MQTT/HomeKit integration, and OTA firmware updates. Full hardware + software, from schematic to BOM.

akashh218/ESP32-CAM-Devlopment-board
Custom 4-layer ESP32-S3 camera development board designed in KiCad, featuring camera and microSD interfaces, dual USB-C connectivity, UART programming, GPIO expansion, power management, and RF-aware PCB layout.

marouane-daoudi/esp32-c3-dev-board
4-layer ESP32-C3 WROOM development board with USB-C, ESD protection, LDO regulation and differential pair routing — designed in KiCad

max-bispham/esp32-module-board-tutorial
Tutorial design I followed in order to learn kicad, pcb design process and schematic layout

Srushti-D-Hebbar/esp32-c3-wroom02-development-board
A custom 4-layer ESP32-C3-WROOM-02 development board designed in KiCad 10 - includes USB-C power/data, schematics, PCB layout, and manufacturing files.

Supriya648/ESP32-S3-XR-Glasses-PCB
Custom PCB with ESP32-S3 camera module for AI/XR glasses
