
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…

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…
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.
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.
The project is split into four main layers:
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 resultsIn 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.
firmware/: RP2040 firmware targets, shared support code, and experimental control programstools/devlink_dashboard/: Python package for serial monitoring, command dispatch, recording, replay, and the desktop GUIsoftware/simulation/: Magnum-based C++ simulation/editor shell with vendored third-party dependencieshardware/: FreeCAD assemblies, KiCad projects, and board-level hardware assetsmedia/: images and videos that illustrate assembly, calibration, and control behaviourgit clone git@github.com:aj-floater/hexapod.git
cd hexapodRequired for tools/devlink_dashboard/:
>=3.11pippyserialPySide6 and pyqtgraph when using the desktop dashboardInstall the package from the repository root:
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:
python3 -m pip install -e './tools/devlink_dashboard[serial]'Required for software/simulation/:
>=3.24The 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.
Required for firmware/ work:
Board-specific notes in firmware/board.md currently assume:
GP4 -> host RXGP3 -> host TXGNDRequired for hardware/ inspection and editing:
.FCStd assemblies and partsLaunch the desktop dashboard against a live serial device:
devlink-dashboard gui --port /dev/ttyACM0 --record session.jsonlOther useful host workflows:
devlink-dashboard monitor --port /dev/ttyACM0 --record session.jsonl
devlink-dashboard replay session.jsonlConfigure, build, and run the current simulation shell:
cmake -S software/simulation -B software/simulation/build
cmake --build software/simulation/build
./software/simulation/build/bin/hexapod-simulationOne simple public firmware workflow is the RP2040 blink/debug example:
cd firmware/blink_any_copy
make build
make flashMore advanced control targets live under firmware/control_testing/, firmware/basic_control_testing/, and related subdirectories.
devlink, with typed messages, NDJSON logging/replay, and capability-driven host state reconstruction in tools/devlink_dashboard/.software/simulation/third_party/ and pins them through the local CMake configuration.| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C4, C5, C16, C17, C18, C19, C20, C21 |
| 8 | 1uF | Capacitor_SMD:C_0603_1608Metric | C6, C7, C8, C9, C10, C12, C13, C15 |
| 3 | 1k | Resistor_SMD:R_0603_1608Metric | R3, R10, R11 |
| 3 | 22uF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C22 |
| 3 | Conn_01x05 | Connector_JST:JST_PH_B5B-PH-K_1x05_P2.00mm_Vertical | J1, J2, J3 |
| 3 | DRV8837DSGR | Footprints:SON50P200X200X80-9N | U2, U3, U4 |
| 3 | ORANGE | LED_SMD:LED_0603_1608Metric | D1, D2, D3 |
| 2 | 15p | Capacitor_SMD:C_0603_1608Metric | C3, C14 |
| 2 | Conn_01x03 | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J5, J6 |
| 1 | 100k | Resistor_SMD:R_0805_2012Metric | R6 |
| 1 | 10uF | Capacitor_SMD:C_0603_1608Metric | C11 |
| 1 | 120 | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 2.2k | Resistor_SMD:R_0603_1608Metric | R12 |
| 1 | 20 | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | 20k | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 40.2k | Resistor_SMD:R_0805_2012Metric | R1 |
| 1 | 5.5uH | Inductor_SMD:L_Bourns_SRP7028A_7.3x6.6mm | L1 |
| 1 | 7.5k | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 75k | Resistor_SMD:R_0805_2012Metric | R4 |
| 1 | ABM8-272-T3 | Footprints:ABM8272T3 | Y1 |
| 1 | AP7370-33SA-7 | Footprints:SOT96P240X110-3N | IC1 |
| 1 | Conn_01x04 | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J4 |
| 1 | DNF (10k) | Resistor_SMD:R_0805_2012Metric | R7 |
| 1 | MP2315GJ-P | Footprints:SOT65P280X100-8N | IC2 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U1 |
| 1 | TL431IDBZR,215 | Footprints:SOT95P255X145-3N | U5 |
| 1 | W25Q32JVSSIQ | Footprints:SOIC127P790X216-8N | U6 |

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…


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




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

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.

It measures 59.6 × 27.2 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask aj-floater before reusing the design.