Skip to the content
2 layers59.6 × 27.2 mmSmart servo v2, the printed circuit board in 3D

Smart servo v2

aj-floater/hexapod

This repository contains the public engineering artifacts for a six-legged robot project. It combines embedded firmware for RP2040-based control experiments, host-side tooling for communicating with and visualizing…

Size
59.6 × 27.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
53
Nets
67
Pads
215
Tracks, vias
389, 87
Pours
16
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Oct 2025
Updated
2 May 2026

Overview

Smart servo v2 is an open-source printed circuit board by aj-floater, from the aj-floater/hexapod repository on GitHub. It is a 2-layer board of 59.6 × 27.2 mm with 53 parts on 67 nets, routed with 389 tracks and 87 vias.

It is built around the RP2040, DRV8837DSGR-MS and MP2315GJ-P, with the W25Q32JVSSIQ and ABM8-272-T3 among its other parts. Its parts include 22 capacitors, 12 resistors, 8 ICs, 6 connectors and 3 diodes. It belongs with the robots and motor control boards and the RP2040 boards of this library.

Main components

5

README

README.md

Hexapod Robot Public Repository

Introduction

This repository contains the public engineering artifacts for a six-legged robot project. It combines embedded firmware for RP2040-based control experiments, host-side tooling for communicating with and visualizing device state, a C++ simulation/editor shell, hardware design files, and supporting media used during development.

The public repository is organised to let a technically competent reader inspect the control stack, reproduce the host tooling, build the current simulation executable, and review the mechanical and electronics design files. It is intended as the software and hardware workspace for the project rather than a polished end-user product.

Contextual Overview

The project is split into four main layers:

text
hardware/ CAD and PCB assets
    ->
firmware/ RP2040 targets implementing control loops and devlink endpoints
    <-UART/devlink->
tools/devlink_dashboard/ Python host tooling for monitor, replay, commands, and GUI

software/simulation/ C++ editor-style sandbox for kinematic and UI experiments
media/ public images and videos used to illustrate development results

In practice, the most direct public workflow is to run a firmware target on an RP2040 board, connect it over the current devlink serial path, and inspect or record the device stream with devlink-dashboard.

Repository Layout

  • firmware/: RP2040 firmware targets, shared support code, and experimental control programs
  • tools/devlink_dashboard/: Python package for serial monitoring, command dispatch, recording, replay, and the desktop GUI
  • software/simulation/: Magnum-based C++ simulation/editor shell with vendored third-party dependencies
  • hardware/: FreeCAD assemblies, KiCad projects, and board-level hardware assets
  • media/: images and videos that illustrate assembly, calibration, and control behaviour

Installation Instructions

1. Clone the repository

bash
git clone git@github.com:aj-floater/hexapod.git
cd hexapod

2. Host tooling prerequisites

Required for tools/devlink_dashboard/:

  • Python >=3.11
  • pip
  • serial support via pyserial
  • GUI support via PySide6 and pyqtgraph when using the desktop dashboard

Install the package from the repository root:

bash
python3 -m pip install -e './tools/devlink_dashboard[gui]'

If you only need parser, replay, or non-GUI workflows, install the lighter serial extra instead:

bash
python3 -m pip install -e './tools/devlink_dashboard[serial]'

3. Simulation prerequisites

Required for software/simulation/:

  • CMake >=3.24
  • a C++17 compiler
  • a desktop OpenGL-capable environment

The simulation currently vendors its external dependencies under software/simulation/third_party/, so no separate package manager is required for Corrade, Magnum, SDL, ImGui, or ImGuizmo in the default workflow.

4. Firmware prerequisites

Required for firmware/ work:

  • Raspberry Pi Pico SDK / RP2040 toolchain
  • CMake and a C/C++ compiler
  • an SWD probe such as Pico Probe or a compatible CMSIS-DAP device for flashing and debugging
  • UART wiring when using the current devlink path

Board-specific notes in firmware/board.md currently assume:

  • GP4 -> host RX
  • GP3 -> host TX
  • shared GND

5. Hardware prerequisites

Required for hardware/ inspection and editing:

  • FreeCAD for .FCStd assemblies and parts
  • KiCad for PCB and schematic projects

How to Run the Software

Host dashboard

Launch the desktop dashboard against a live serial device:

bash
devlink-dashboard gui --port /dev/ttyACM0 --record session.jsonl

Other useful host workflows:

bash
devlink-dashboard monitor --port /dev/ttyACM0 --record session.jsonl
devlink-dashboard replay session.jsonl

Simulation

Configure, build, and run the current simulation shell:

bash
cmake -S software/simulation -B software/simulation/build
cmake --build software/simulation/build
./software/simulation/build/bin/hexapod-simulation

Firmware example

One simple public firmware workflow is the RP2040 blink/debug example:

bash
cd firmware/blink_any_copy
make build
make flash

More advanced control targets live under firmware/control_testing/, firmware/basic_control_testing/, and related subdirectories.

Technical Details

  • The host-device protocol work is centered on devlink, with typed messages, NDJSON logging/replay, and capability-driven host state reconstruction in tools/devlink_dashboard/.
  • Current firmware work targets RP2040 boards and uses a UART-based devlink transport. The public board notes document the active wiring assumptions and shared RX helper usage.
  • The simulation executable is an editor-style sandbox rather than a full robot simulator. It currently focuses on a dockable viewport, scene hierarchy, gizmo manipulation, and persistence while replay and joint-domain integration remain future work.
  • The simulation build intentionally vendors its major third-party dependencies under software/simulation/third_party/ and pins them through the local CMake configuration.
  • Hardware assets are maintained directly in native design formats so the repository doubles as a source tree for mechanical and PCB iteration, not only as an exported artifact store.

Known Issues and Future Improvements

  • The repository is large because it includes vendored C++ dependencies, CAD files, PCB assets, images, and captured telemetry recordings.
  • Some tracked recordings and generated artifacts are large enough to trigger GitHub large-file warnings and may need Git LFS or curation later.
  • The simulation scope is still limited to the editor/bootstrap phase; full replay, model import, and complete multi-joint behaviour are not finished.
  • Firmware workflows are target-specific and assume local toolchain, probe, and serial environment setup rather than a single turnkey build.
  • Hardware and software subsystems are evolving in parallel, so interfaces and assumptions may continue to change as the robot architecture matures.

Parts

53
QtyValueFootprintReferences
80.1uFCapacitor_SMD:C_0603_1608MetricC4, C5, C16, C17, C18, C19, C20, C21
81uFCapacitor_SMD:C_0603_1608MetricC6, C7, C8, C9, C10, C12, C13, C15
31kResistor_SMD:R_0603_1608MetricR3, R10, R11
322uFCapacitor_SMD:C_0603_1608MetricC1, C2, C22
3Conn_01x05Connector_JST:JST_PH_B5B-PH-K_1x05_P2.00mm_VerticalJ1, J2, J3
3DRV8837DSGRFootprints:SON50P200X200X80-9NU2, U3, U4
3ORANGELED_SMD:LED_0603_1608MetricD1, D2, D3
215pCapacitor_SMD:C_0603_1608MetricC3, C14
2Conn_01x03Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ5, J6
1100kResistor_SMD:R_0805_2012MetricR6
110uFCapacitor_SMD:C_0603_1608MetricC11
1120Resistor_SMD:R_0603_1608MetricR8
12.2kResistor_SMD:R_0603_1608MetricR12
120Resistor_SMD:R_0603_1608MetricR5
120kResistor_SMD:R_0603_1608MetricR9
140.2kResistor_SMD:R_0805_2012MetricR1
15.5uHInductor_SMD:L_Bourns_SRP7028A_7.3x6.6mmL1
17.5kResistor_SMD:R_0603_1608MetricR2
175kResistor_SMD:R_0805_2012MetricR4
1ABM8-272-T3Footprints:ABM8272T3Y1
1AP7370-33SA-7Footprints:SOT96P240X110-3NIC1
1Conn_01x04Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ4
1DNF (10k)Resistor_SMD:R_0805_2012MetricR7
1MP2315GJ-PFootprints:SOT65P280X100-8NIC2
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU1
1TL431IDBZR,215Footprints:SOT95P255X145-3NU5
1W25Q32JVSSIQFootprints:SOIC127P790X216-8NU6

More from aj-floater/hexapod

1
  • 2 layers35.5 × 23.1 mmSmart servo, the printed circuit board in 3D

    Smart servo

    aj-floater/hexapod

    This repository contains the public engineering artifacts for a six-legged robot project. It combines embedded firmware for RP2040-based control experiments, host-side tooling for communicating with and visualizing…

    18 parts

Similar boards

  • 2 layers225 × 63.5 mmGnss-7-seg clock, the printed circuit board in 3D

    Gnss-7-seg clock

    Tosainu/gnss-7-seg-clock

    GNSS-powered, seven-segment table clock

    90 parts6MIT
  • 4 layers119 × 63.2 mmOpenChordM1, the printed circuit board in 3D

    OpenChordM1

    FugLong/OpenChord

    An open-source music device for portable, expressive, and extensible audio creation.

    75 parts3MIT
  • 4 layers44 × 44 mmNode pcb, the printed circuit board in 3D

    Node pcb

    marino222/digital-clock72

    Kinetic Art Clock consisting of LCD displays

    55 parts2MIT
  • 4 layers210.9 × 127 mmDual panel, the printed circuit board in 3D

    Dual panel

    fchorney/krakenpad-poc

    proof of concept and research into making kraken pad

    174 parts1
  • 2 layers289.8 × 99.2 mmLard61, the printed circuit board in 3D

    Lard61

    beulard/lard61

    A custom 60% ansi keyboard PCB.

    157 partsCC0-1.0
  • 2 layers15 × 37 mmEvil ducky, the printed circuit board in 3D

    Evil ducky

    CoryPearl/evil_ducky

    A easy to use usb-c device that preteneds to be a keyboard when plugged into a computer

    28 parts
  • 6 layers80 × 60 mmIce core, the printed circuit board in 3D

    Ice core

    enkhbold470/ice-core

    iCE40UP5K FPGA board with 8 MB PSRAM and three Pmods, programmed over USB-C by an RP2040. 6-layer KiCad 10 board.

    78 partsCERN-OHL-S-2.0
  • 2 layers120 × 50 mmBinary clock, the printed circuit board in 3D

    Binary clock

    KacperBizon/rp2040_binary_clock

    binary clock with 17 diodes and rtc clock

    87 partsMIT

Questions

How big is the Smart servo v2 PCB?

It measures 59.6 × 27.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Smart servo v2 use?

53 parts, built around the RP2040, DRV8837DSGR-MS, MP2315GJ-P and W25Q32JVSSIQ. 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 Smart servo v2 KiCad files?

From the aj-floater/hexapod repository on GitHub, at the commit this page was made from: the board is hardware/smart_servo_v2/smart_servo_v2.kicad_pcb and its schematic hardware/KiCad 9 ESP32 Demo/KiCad 9 ESP32 Demo.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Smart servo v2 design in my own project?

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