Skip to the content
PCBKitNew board
4 layers133.1 × 115.3 mmMad Bot, the printed circuit board in 3D

Exploratory project in Embedded and Multi-Agent Robotics

Size
133.1 × 115.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
95
Nets
119
Pads
403
Tracks, vias
1,270, 341
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
17 Sep 2024
Updated
8 Dec 2025

Overview

Mad Bot is an open-source printed circuit board by Incomprehensible, from the Incomprehensible/Mad_Bot repository on GitHub, published under the MIT licence. It is a 4-layer board of 133.1 × 115.3 mm with 95 parts on 119 nets, routed with 1,270 tracks and 341 vias.

It is built around the ESP32-S3-WROOM-1-N8R8, MP6550GG-Z and RT6150BGQW, with the MCP73831T-2ACI/OT-HXY, MPU-6500 and WMM7027ATSN1-4/TR among its other parts. Its parts include 33 capacitors, 26 resistors, 12 ICs, 7 diodes and 5 connectors. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

9

README

README.md

Mad_Bot

Exploratory project in Embedded Robotics and Swarm Algorithms

Warning: This is an ongoing project, and the repository is under construction!

Features

  • Small PCB-based frame, minimum 3D printed parts
  • ESP32-S3 MCU with vector instructions, acceleration for neural network computing and signal processing workloads
  • Wi-Fi, Bluetooth 5 and BLE connectivity
  • Omnidirectional movement
  • Quadrature encoders for precise movement
  • 8 MB PSRAM for image processing
  • 2 Megapixel camera and ToF sensors for running embedded robotics algorithms
  • Powered via USB-C or 3000mAh LiPo battery with inner protection and external charging circuit
  • Load sharing circuit for operating the robot while charging
  • Buck-Boost converter for powering the MCU and peripherals
  • 6V regulator for powering the middle power range motors
  • ESPNOW, ESP-WIFI-MESH or ESP-BLE-MESH for communication between several robots
  • Integrated MEMS microphone for sound recognition
  • micro-ROS support

Note: Software support for some features is still in progress.

Fusion360 design

URDF model

RobotWheel

Operation demo

Forward movementBackward movementRotation

Charging mode

Board layout

Future work

  • Add a BOM
  • Design a carrier extension in Fusion360
  • Test battery charging circuit
  • Test load sharing circuit
  • Test basic functionality with motors and ESP32-S3
  • Test Wi-Fi
  • Motors library (in progress)
  • Encoders testing
  • Device firmware (in progress)
  • Sensors testing (in progress):
    • Camera
    • ToF
    • IMU
    • MEMS microphone (requires PCB bug fix)
  • Remote controller based on ESP32
  • PSRAM memory testing
  • ROS2 integration via micro-ROS (in progress)
  • Web page with control interface and telemetry
  • URDF model
  • Joystick control via ROS2
  • Digital twin for simulation in Gazebo and Mujoco
  • ESPNOW and Mesh experiments
  • Multi-agent algorithms
  • Computer vision algorithms
  • Mini SLAM experiments

Fix list for new hardware revisions

  • MEMS microphone footprint flipped
  • Non-fixed Buck-Boost mentioned in the schematics instead of 3.3V fixed
  • 6V regulator doesn't disconnect the load if disabled because of topology - extra switch needed
  • Battery connector is hard to remove - source power switch needed
  • Better (aligned) placement for camera & ToF sensors

Software Troubleshooting

micro-ROS build issues

If you encounter issue like this building micro-ROS for the ESP32-S3 platform, edit libmicroros.mk file at line 110 to include esp32s3 as follows:

makefile
ifeq ($(IDF_TARGET),$(filter $(IDF_TARGET),esp32s2 esp32c3 esp32c6 esp32s3))

Acknowledgements

This project takes inspiration from the following open-source projects:

Parts

95
QtyValueFootprintReferences
100.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C7, C11, C20, C26, C30, C31, C33, C34, C36
10250kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R8, R10, R21, R22, R23, R24, R25, R26, R28
510uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC6, C9, C13, C24, C29
41uFCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC5, C8, C12, C22
30.1nFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC1, C10, C14
38.5kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2, R5
3EncoderConnMad_Bot:JST_S6B-ZR-SM4A-TF_1.5mmJ1, J2, J3
3MP6550GG-ZMad_Bot:IC12_MP6550_MNPU1, U2, U3
21kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR14, R18
220pFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC21, C23
222Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR16, R17
24.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4, R11
24.7uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC15, C17
247uFCapacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC16, C18
25.1kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR12, R15
2ESDA5V3LPackage_TO_SOT_SMD:SOT-23D4, D5
1100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3
110nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC32
1150kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR13
11MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
12.2uHMad_Bot:FNR4020S2R2MTL1
122Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR27
122uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC19
12kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR7
1470Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9
1ArducamOV2640Mad_Bot:Arducam_Socket_2x09_P2.54mm_Vertical_SMDU10
1BATTTestPoint:TestPoint_Pad_1.5x1.5mmTP5
1CCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC35
1CHRG_LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1
1D_SchottkyDiode_SMD:D_SOD-123FD3
1ESP32-S3-WROOM-1-N8R8Mad_Bot:XCVR_ESP32S3WROOM1N8R8U6
1Flash_EnMad_Bot:Flash_Jumper_1x02_P2.00mm_VerticalJP1
1LOGONadSilk:brain_logoG***
1LiPoMad_Bot:JST_S2B-PH-SM4-TB_LF__SN_J4
1MCP73831T-2ACI_OTMad_Bot:SOT95P280X145-5NU5
1MCU_RSTMad_Bot:PTS526SK15SMTR2LFSS1
1MI_SENSE1TestPoint:TestPoint_Pad_1.5x1.5mmTP1
1MI_SENSE2TestPoint:TestPoint_Pad_1.5x1.5mmTP2
1MI_SENSE3TestPoint:TestPoint_Pad_1.5x1.5mmTP3
1MPU-6500Mad_Bot:QFN24_3X3X0P9_MPU6500U9
1PCA9685PW_118Mad_Bot:SOP65P640X110-28NU8
1PWROFF_SwitchMad_Bot:DV7SA-02F-01_SW_DIP_SPSTx02_SlideSW3
1PWR_LED_3.3VLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD6
1PWR_LED_6VLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD2
1Q_PMOS_GSDPackage_TO_SOT_SMD:SOT-23Q2
1RT6150BGQWMad_Bot:SON50P250X250X80-11N-DIC1
1ReservCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC25
1TYPE-C-31-M-12Mad_Bot:HRO_TYPE-C-31-M-12J5
1U3V40F6Mad_Bot:U3V40F6_updU4
1VCCTestPoint:TestPoint_Pad_1.5x1.5mmTP4
1VL53L7CXMad_Bot:CONN_S4B-XH-SM4-TB_JSTU7
1VdriveTestPoint:TestPoint_Pad_1.5x1.5mmTP6
1WMM7027ATSN1Mad_Bot:WMM7027ATSN1-4TRU11
1WS2812BMad_Bot:WS2812BLED1

Questions

How big is the Mad Bot PCB?

It measures 133.1 × 115.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Mad Bot use?

95 parts, built around the ESP32-S3-WROOM-1-N8R8, MP6550GG-Z, RT6150BGQW and MCP73831T-2ACI/OT-HXY. 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 Mad Bot KiCad files?

From the Incomprehensible/Mad_Bot repository on GitHub, at the commit this page was made from: the board is pcb_design/Mad_Bot.kicad_pcb and its schematic schematics/Mad_Bot.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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

Its repository publishes it under the MIT 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 layers27 × 25 mmLightSound, the printed circuit board in 3D

    LightSound

    sean618/MakerTiles

    Modular STM32 electronic-tile system: hardware, firmware, the MicroBus + Field Protocol stack, and a Python daemon.

    23 partsMIT
  • 4 layers31.5 × 65 mmUrchinCam 01, the printed circuit board in 3D

    UrchinCam 01

    nickraymond/nereus_Pi_shield_ADIN2111

    A Raspberry Pi Zero 2W shield built from a copy of the Sofar Bristlemouth mote: ADIN2111 two-port 10BASE-T1L with PoDL, powered from the bus, 5 V for the Pi, a 24 V payload port, and the Sofar mote's power path…

    96 parts
  • 2 layers100 × 100 mmCopperPilotDrone, the printed circuit board in 3D

    CopperPilotDrone

    CopperPilot/CopperPilotDronePCB

    Flight controller and airframe on one ESP32-S3 board. Fly it from any phone over its own Wi-Fi. Motor traces sized to IPC-2221 for about 3 A.

    109 parts1
  • 4 layers53.4 × 92.4 mmMain revb, the printed circuit board in 3D

    Main revb

    conol-ai/openwalkietalkie

    OpenMicroDial firmware — Rust/embassy on SiFli SF32LB52 (LilyGo T-Display SF32 dev board)

    142 parts3MIT
  • 2 layers55 × 85 mmChess card, the printed circuit board in 3D

    Chess card

    Hung-Chi970104/chess_card

    Business-card-scale RP2040 and e-paper hardware prototype for a portable chess interface.

    70 parts1
  • 2 layers130 × 51 mmGameboy, the printed circuit board in 3D

    Gameboy

    Hung-Chi970104/gameboy

    Compact RP2040 handheld-console hardware with custom controls, power circuitry, display interface, and fabrication files.

    60 parts
  • 2 layers70 × 70 mmMarmota, the printed circuit board in 3D

    Marmota

    OpenGamePlayer/SuperPad-V1

    超级手柄 - V1

    66 partsGPL-2.0