Skip to the content
PCBKitNew board
2 layers56.3 × 118.2 mmRobot, the printed circuit board in 3D

Controller board for building servo-based robots, such as hexapods.

Size
56.3 × 118.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
90
Nets
139
Pads
472
Tracks, vias
1,186, 104
Pours
528
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
15 Jan 2023
Updated
18 Nov 2023

Overview

Robot is an open-source printed circuit board by jhud, from the jhud/robot_board repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 56.3 × 118.2 mm with 90 parts on 139 nets, routed with 1,186 tracks and 104 vias.

It is built around the ESP32-S3-WROOM-1-N8, PCA9685PW and DS2438Z+. Its parts include 19 capacitors, 15 resistors, 15 connectors, 7 ICs and 6 switches. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

3

README

README.md

Robot controller board

Controller board for building servo-based robots, such as hexapods.

robot image Render of board rev 2

This project was designed to allow rapid prototyping of different types of servos and sensors for walking robots: it's easy to switch out different sensors, and I2C buses are exposed for adding standard plugin components, such as those from Adafruit. But the board could be used for any projects needing a lot of servos.

The main benefit of this over a standard Arduino is the number of PWM pins and the server sockets, plus the power supply monitoring circuitry.

You should be able to get a standard "spiderbot" Arduino sketch running on this hardware quite easily: I'll shortly publish some test sketches and controller firmware.

Have fun!

robot board Board in action

Features

Core features:

  • ESP32 processor, Arduino compatible
  • 32 PWM servo channels (ie max 10 legs)
  • 6 foot contact sensors
  • 7.6v LiPo battery, or power supply input
  • Power supply monitoring for:
    • main battery voltage + current
    • 3.3v regulated rail voltage
    • 2x 5v rail servo voltages

With standard plugin modules installed in sockets:

  • speech and audio output
  • infrared beacon detection
  • inertial measurement unit
  • extra PWM channels

See it running here (video):

Hanging out with my robot and asking it to do things http://www.youtube.com/watch?v=hFirgdrsIpw

Building it

ESP32 CAM

The ESP32 CAM module can run on 3.3v or 5v. If you are getting freezes and dropped frames from the camera, try running it from the robot's 5v rail instead of 3.3v.

The ESP32 CAM has a XC6206-2.8V regulator after its 3.3v regulator, and this component has a dropout voltage up to ~500mV according to the specs. My hypothesis is that the camera crashes on slight undervoltages.

So the 3.3v rail must be rock solid - this may not be the case with your regulator, so it's generally recommended to run the ESP32 CAM off the 5v rail. Even with many noisy servos, the camera works fine on the robot on the 5v rail.

Pullup resistors

Pullups can vary between 2K and 10K - if there are problems communicating with I2C, try reducing the pullups. Higher pull-ups waste less power.

Revisions

Note that the main branch is a work in progress: please take an earlier revision if you want a working layout. These are tested and working (with some minor noise issues and a couple of bodge wires needed).

  • main branch is a work in progress: I am upgrading to ESP32-S3 and have fixed some noise issues and minor annoyances. Use an older tag if you want something that works.
  • 2nd revision: 32 PWM channels onboard, 6 foot switches + power pins for IR proximity sensors
  • 1st revision: 16 PWM channels, 4 foot switches

Parts

90
QtyValueFootprintReferences
12104Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C2, C4, C6, C8, C9, C11, C13, C15, C16, C17, C18
8220Resistor_SMD:R_Array_Concave_4x0603RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8
8HEADER-3X04Adafruit:3X04JP1, JP2, JP3, JP4, JP6, JP7, JP8, JP9
710KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R3, R4, R5, R6, R9
4106Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC3, C5, C10, C14
4470Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR7, R8, R12, R28
3+5V JOINTestPoint:TestPoint_Pad_D2.0mmTP2, TP3, TP4
2220Capacitor_SMD:C_Elec_6.3x5.4C7, C12
2DS2438Z+DS2438:Maxim-S8-5-0-P-IPC_AU4, U5
2PCA9685PWPackage_SO:TSSOP-28_4.4x9.7mm_P0.65mmU2, U7
2Servo pwrConnector_PinHeader_2.54mm:Connector_SolderPadsx3J8, J10
2VCCConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7, J13
1+5VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ14
1100KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR11
12.6A 12VFuse:Fuse_2010_5025MetricF1
13V3 REGPackage_TO_SOT_THT:TO-220-3_VerticalU3
1470Capacitor_SMD:C_Elec_6.3x7.7C19
147KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR26
14K7Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR27
15V REGPackage_TO_SOT_THT:TO-220-3_VerticalU6
1ActionButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW2
1BATT inConnector_JST:JST_VH_B2P-VH-B_1x02_P3.96mm_VerticalJ9
1BUSYLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD4
1ERRORLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1
1ESP32-S3-WROOM-1PCM_Espressif:ESP32-S3-WROOM-1UU8
1ExpansionConnector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_VerticalJ6
1FlashButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW4
1GAINJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP5
1I2CConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ12
1I2SConnector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalJ2
1IMUConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ4
1INFOLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD3
1ONEWIRE_BUSTestPoint:TestPoint_Pad_D2.0mmTP1
1OPTIONButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW6
1PCA9865 2Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ1
1POWERKiCAD Custom Libs:Switch-SS12F23SW5
1ProgrammingConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ3
1ResetButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW1
1SCL_1TestPoint:TestPoint_Pad_D2.0mmTP5
1SDA_1TestPoint:TestPoint_Pad_D2.0mmTP6
1SHUNTResistor_SMD:R_1812_4532Metric_Pad1.30x3.40mm_HandSolderR25
1STATUSLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD2
1SwitchesConnector_PinSocket_2.54mm:PinSocket_2x08_P2.54mm_VerticalJ5
1USB_B_MicroConnector_USB:USB_Micro-B_Amphenol_10104110_HorizontalJ15
1VERBOSEButton_Switch_THT:SW_Slide_1P2T_CK_OS102011MS2QSW3
1VinConnector_JST:JST_VH_B2P-VH-B_1x02_P3.96mm_VerticalJ11

Questions

How big is the Robot PCB?

It measures 56.3 × 118.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Robot use?

90 parts, built around the ESP32-S3-WROOM-1-N8, PCA9685PW and DS2438Z+. 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 KiCad files?

From the jhud/robot_board repository on GitHub, at the commit this page was made from: the board is robot.kicad_pcb and its schematic ports.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Robot design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers21.8 × 20.8 mmSiot node current clamp, the printed circuit board in 3D

    Siot node current clamp

    simpleiot/hardware

    Hardware designs for IoT devices and sensor nodes.

    9 parts9Apache-2.0
  • 2 layers68.5 × 61.5 mmHexapod, the printed circuit board in 3D

    Hexapod

    pokitoz/hexapod-ium

    An hexapod robot using arduino and servo motors

    57 parts5
  • 2 layers139.5 × 153 mmPannel, the printed circuit board in 3D

    Pannel

    cocobot/cocotter

    370 parts2
  • 2 layers143.4 × 82.3 mmMainBoardV4, the printed circuit board in 3D

    MainBoardV4

    Unimakers/Docs-Unimakers-CDR-2024

    La sous répertoire dédiée a l'équipe d'unimakers de la coupe de France de robotique 2024

    119 parts2
  • 2 layers80 × 145 mmMainboard2, the printed circuit board in 3D

    Mainboard2

    midarubiccube/mainboard2

    178 parts
  • 4 layers100 × 74 mmMission board, the printed circuit board in 3D

    Mission board

    tmb5932/fixed-wing-drone

    The basics needed to allow a RC plane to be turned autonomous on signal.

    128 parts
  • 2 layers220 × 329.2 mmControl Boards, the printed circuit board in 3D

    Control Boards

    nasa-jpl/open-source-rover

    A build-it-yourself, 6-wheel rover based on the rovers on Mars!

    148 parts9.8kApache-2.0