

Motor controller
A quadruped robot dog!
- Size
- 100 × 40 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 67
- Nets
- 62
- Pads
- 238
- Tracks, vias
- 548, 74
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 12 Jun 2021
- Updated
- 23 Jun 2022
Overview
Motor controller is an open-source printed circuit board by reubenstr, from the reubenstr/zuko repository on GitHub, published under the MIT licence. It is a 4-layer board of 100 × 40 mm with 67 parts on 62 nets, routed with 548 tracks and 74 vias.
It is built around the ULN2003 and BSS138. Its parts include 35 connectors, 14 resistors, 6 capacitors, 3 ICs and 2 transistors. It belongs with the robots and motor control boards and the NXP (LPC, Kinetis, i.MX RT) boards of this library.
Main components
2README
README.mdZuko - A quadruped robot dog!
![]() |
|---|
| Frame v2.2 CAD design. |
![]() |
|---|
| Zuko himself! |
![]() |
|---|
| Frame v2.1 parts printed. |
![]() |
|---|
| Expansion board v1 for direct RPi inteface. |
![]() |
|---|
| Frame v2.1 first time standing. |
![]() |
|---|
| Frame v2.1 upper leg's servo horn, linked leg bridge, and bridge bearing press fit together. |
Status
Development.
V2.2 Frame is being tested and is nearly ready for replication
General
Zuko uses the ROS2 framework for communication, launching, and 3rd party addons. Zuko uses a Rasberry Pi 4 with a custom expansion board for motor and peripheral control via a Playstation 4 controller.
Current Major Tasks
- Complete ROS2 tasks - in progress
- Fab/test expansion-board PCB
- Update BOM
- Create PCB BOM
- Upload STL's
- Create print time/weight sheet
- Create how to documentation for end user
ROS2 Workspace
ROS2 source code is contained the quad_ws directory.
My contributions
- Frame redesign using larger servos, providing more space for electronics, rework of the leg/hip system, and addition of aesthetic features (tail, etc).
- Migration of source code from ROS1 to ROS2 (Robot Operating System) frameworks.
- Inverse kinematics for a linked leg system for OpenQuadruped / Spot Mini Mini based quadrupeds.
- Parameterized duplicated hard-coded values.
- Created servo calibration script for quicker calibration and servo support.-
- A more feature rich motor and peripheral expansion board using a Teensy 4.0 supporting aux servos, foot sensors, NeoPixls, etc.
- 8x 18650 user accessable battery holder with onboard BMS (battery management system).
Credits
- Simulation, kinematics, bezier curves, and machine learning are largely based on the work from Spot Mini Mini: https://github.com/OpenQuadruped/spot_mini_mini
- Spot Mini Mini is based on SpotMicroAI: https://spotmicroai.readthedocs.io/en/latest/
- Frame and leg linkage design inspired by Baris Alp's Kangel robot dog: https://grabcad.com/library/diy-quadruped-robot-1
Communities
- SpotMicroAI Discord: https://discord.gg/m5fsENhT
- Quadrupedalism: https://quadrupedalism.com/
Parts
67| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J19, J20, J21, J22, J23, J24, J25, J26, J27, J28, J29, J30, J31, J32, J33, J34 +1 |
| 8 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3, J4, J7, J8, J9, J11, J12, J13 |
| 8 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1, J2, J5, J10, J15, J16, J17, J18 |
| 6 | 10k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R2, R4, R5, R6, R7, R11 |
| 4 | 1.2k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R3, R8, R10 |
| 4 | 2200uF | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C3, C4, C5, C6 |
| 3 | Jumper_3_Open | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP1, JP2, JP3 |
| 2 | 20k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R9, R12 |
| 2 | 500Ω | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R13, R14 |
| 2 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 1 | 100nF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C2 |
| 1 | 1nF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1 |
| 1 | ACS712xLCTR-20A | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1 |
| 1 | Conn_01x02 | Connector_AMASS:AMASS_XT30U-M_1x02_P5.0mm_Vertical | J6 |
| 1 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J14 |
| 1 | Teensy4.0 | Teensy:Teensy40 | U2 |
| 1 | ULN2003 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U3 |
The 63 most common of 67 parts.
Questions
How big is the Motor controller PCB?
It measures 100 × 40 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Motor controller use?
67 parts, built around the ULN2003 and BSS138. 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 Motor controller KiCad files?
From the reubenstr/zuko repository on GitHub, at the commit this page was made from: the board is pcbs/motor-controller/motor-controller.kicad_pcb and its schematic pcbs/battery-board/battery-board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Motor controller 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).
More from reubenstr/zuko
2- 4 layers100 × 49.8 mm

- 2 layers98 × 160 mm

Similar boards
- 2 layers75 × 60 mm

DUTler V2
TheYoctoJester/dutler
A bench butler for your Device Under Test: turns a Raspberry Pi Pico into a USB-serial console bridge with power-relay and MOSFET strap/reset control for embedded-Linux bring-up and hardware-in-the-loop.
54 parts23Apache-2.0 - 4 layers92 × 95 mm

- 2 layers120.7 × 77.5 mm

Control Board
stormbots/MarketingBot
See the attached Wiki for documentation about the general system functionality
57 parts3 - 4 layers99.6 × 76.2 mm

- 2 layers31 × 64 mm

Power driver
jmfriedt/SDR-GB-SAR
Opensource, openhardware implementation of a Software Defined Radio (SDR) Ground Based Synthetic-Aperture RADAR (GB-SAR)
6 parts70 - 2 layers160 × 100 mm

MPCNC Nano Estlcam Shield
tnn85/MPCNC-Nano-Estlcam-Shield
Ein CNC Shield für die MPCNC in Verwendung mit Estlcam
96 parts70 - 2 layers42.5 × 43.2 mm

ElectronicFocuser
jlecomte/ascom-oag-focuser
Open Source ASCOM-Compatible OAG Focuser For Astrophotography
4 parts55MIT - 2 layers134 × 91 mm








