Skip to the content
PCBKitNew board
2 layersRobot Arm PCB, the printed circuit board in 3D

This document consolidates the power architecture, wiring, BOM additions, and system diagram for an ESP32-based robot arm controller using:

Copper layers
2
Thickness
1.6 mm
Parts
26
Nets
109
Pads
248
Tracks, vias
438, 36
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
29 Dec 2025
Updated
26 Feb 2026

Overview

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.

Main components

5

README

Readme.md

USB-C PD Powered ESP32 Servo Controller

This document consolidates the power architecture, wiring, BOM additions, and system diagram for an ESP32-based robot arm controller using:

  • USB-C Power Delivery (PD) via STUSB4500QTR
  • ESP32 MCU
  • PCA9685 PWM servo controller
  • CH340X USB-to-UART programmer
  • Cheap / low-load servos (budget-friendly design)

1. System Overview

The board negotiates a higher-voltage USB-C PD contract, then generates two isolated rails:

  • SERVO_6V – high-current rail for servos
  • +3V3 – logic rail for ESP32, PCA9685, and STUSB4500

Key design goal: prevent ESP32 brownout caused by servo current spikes.


2. Power Domains

Rails

  • VBUS_IN: USB-C VBUS (5–20V after PD negotiation)
  • VSYS: Post power-path rail
  • SERVO_6V: Buck-regulated servo rail
  • +3V3: Logic rail

Critical Rules

  • ESP32 must only see 3.3V
  • Servo power must not be drawn from 3.3V
  • Servo current must not share thin traces or return paths with ESP32 logic ground

3. Wiring Map (Net-Level)

USB-C → STUSB4500QTR (PD)

  • USBC_CC1 (A5) -> STUSB_CC1
  • USBC_CC2 (B5) -> STUSB_CC2
  • USBC_VBUS -> VBUS_IN
  • USBC_GND -> GND

USB-C → CH340X (USB2)

  • USBC_D+ (A6/B6 tied) -> CH340_UD+
  • USBC_D− (A7/B7 tied) -> CH340_UD−

CH340X → ESP32 (UART)

  • CH340_TXD -> ESP32_U0RXD (GPIO3)
  • CH340_RXD -> ESP32_U0TXD (GPIO1)
  • CH340_DTR/RTS -> ESP32_EN / ESP32_IO0 (auto-program circuit)

ESP32 ↔ STUSB4500QTR (I2C + Status)

  • 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 ↔ PCA9685 (I2C)

  • ESP32_GPIO21 (SDA) <-> PCA_SDA
  • ESP32_GPIO22 (SCL) <-> PCA_SCL
  • PCA_VDD -> +3V3
  • PCA_V+ -> SERVO_6V
  • PCA_GND -> GND

Power Chain

  • VBUS_IN -> Power Path -> VSYS
  • VSYS -> Buck (6V) -> SERVO_6V
  • VSYS -> Buck/LDO -> +3V3

4. Layout Notes (Brownout Prevention)

  • Route SERVO_6V with wide copper pours
  • Return servo current directly to power entry ground (star-like topology)
  • Place bulk capacitors close to servo headers
  • Isolate logic rail with ferrite bead if needed

5. BOM Additions (Budget / Low-Load Servo Design)

5.1 Servo Rail Buck (VSYS → 6.0V)

Recommended IC

  • MP1584EN-LF-Z – 3A buck regulator (cheap, common)

Typical Supporting Parts

  • Inductor: 4.7µH, ≥3A shielded
  • Input caps: 22–47µF MLCC
  • Output caps: 2× 47µF MLCC + bulk electrolytic
  • Feedback resistors: set to 6.0V

5.2 Logic Rail (VSYS → 3.3V)

Option A (quieter, recommended)

  • Buck to 5V: MP1584EN
  • LDO to 3.3V: AP2112K-3.3TRG1 (600mA)

Option B (fewer parts)

  • Single MP1584EN configured for 3.3V

5.3 USB Protection

  • USB D+/D− ESD: USBLC6-2SC6
  • CC line ESD (optional): PESD5V0S1UL (one per CC)

5.4 Ferrite Bead (Logic Isolation)

  • BLM21PG600SN1D (0603)

5.5 Bulk Capacitors

Servo Rail

  • 470µF – 2200µF electrolytic or polymer (≥10V)

Logic Rail

  • 22µF bulk
  • 0.1µF decoupling near ESP32 VDD

5.6 I2C Pull-ups

  • SDA: 4.7kΩ to +3V3
  • SCL: 4.7kΩ to +3V3

5.7 Optional Servo Signal Conditioning

  • 33–100Ω series resistor on each PCA9685 PWM output

6. System Wiring Diagram (Mermaid)

mermaid
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"| ESDCC

7. Next Steps

Before PCB layout:

  • Confirm servo count and stall current
  • Decide PD voltage request (9V vs 12V)
  • Lock in buck inductor + capacitor values per datasheet

Once confirmed, this design is PCB-ready for a low-cost, reliable USB-C powered robot arm controller.

Parts

26
QtyValueFootprintReferences
4Motor_ServoConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalM1, M2, M3, M4
310kResistor_SMD:R_0201_0603MetricR1, R4, R5
3470uFCapacitor_SMD:C_0201_0603MetricC4, C5, C6
21uFCapacitor_SMD:C_0201_0603MetricC1, C2
24.7kResistor_SMD:R_0201_0603MetricR2, R3
2MMBT3904Package_TO_SOT_SMD:SOT-23Q1, Q3
2PESD5V0L1ULDiode_SMD:D_SOD-882D1, D2
10.1uFCapacitor_SMD:C_0201_0603MetricC3
1470 uFCapacitor_SMD:C_0201_0603MetricC7
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U4
1CH340XPackage_SO:MSOP-10_3x3mm_P0.5mmU5
1ESP32-WROOM-32UE-R2RF_Module:ESP32-WROOM-32UEU1
1PCA9685BSPackage_DFN_QFN:QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mmU3
1STUSB4500QTRPackage_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mmU2
1USB_C_PlugConnector_USB:USB_C_Receptacle_CNCTech_C-ARA1-AK51XP1

Questions

What parts does the Robot Arm PCB use?

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.

Where can I download the Robot Arm PCB KiCad files?

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.

Can I use the Robot Arm PCB design in my own project?

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

Similar boards

  • 2 layers116.8 × 116.8 mmBentoboard, the printed circuit board in 3D

    Bentoboard

    torbers/bentoboard

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

    381 parts
  • 4 layers60 × 80 mmWisp, the printed circuit board in 3D

    Wisp

    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.

    91 partsMIT
  • 4 layers72.6 × 35.8 mmEsp32 cam, the printed circuit board in 3D

    Esp32 cam

    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.

    54 parts
  • 4 layers32.6 × 40 mmESP32 C3 Mini, the printed circuit board in 3D

    ESP32 C3 Mini

    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

    31 parts
  • 4 layers29 × 31.7 mmESP32-C3-mini, the printed circuit board in 3D

    ESP32-C3-mini

    max-bispham/esp32-module-board-tutorial

    Tutorial design I followed in order to learn kicad, pcb design process and schematic layout

    29 parts
  • 4 layers30.6 × 35.8 mmEsp32-c3-mini, the printed circuit board in 3D

    Esp32-c3-mini

    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.

    29 partsMIT
  • 2 layers110.7 × 109.2 mmESP32S3R8 XR GL, the printed circuit board in 3D

    ESP32S3R8 XR GL

    Supriya648/ESP32-S3-XR-Glasses-PCB

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

    80 parts