Hexapod Robot
A six-legged robot powered by a Raspberry Pi Pico, featuring 18 digital servos, IMU auto-leveling, and multiple control inputs.
- Quadruped
- Open source
- Work in progress
- 3D printable
Suggested by Robotheca, created by @gitcfyang (opens in a new tab), from github.com/gitcfyang/hexapod_robot (opens in a new tab). Pinned to commit 496f54f (opens in a new tab).
- Hardware license
- GPL-3.0-only (opens in a new tab)
- Software license
- GPL-3.0-only (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (1 script)
Photo and 3D model
3D preview converted from github.com/gitcfyang/hexapod_robot at 496f54f, under GPL-3.0-only. View the original files from GitHub (12.0 MB) (opens in a new tab)
- Degrees of freedom
- 18
What it can do
Written by Robotheca from the project's documents.
- Walks with four gaits (triangle 6/8, ripple, wave) and bio-inspired variable speed
- Balances in place using IMU auto-leveling (optional)
- Supports three control inputs: ELRS CRSF radio, PS2 gamepad, or USB serial
- Runs inverse-kinematics solver at 50–200 Hz with adjustable control loop
- Has factory preset modes (unlock, balance, gait, stand pose) mapped to remote channels
- Stores 92 runtime parameters in flash (persist across power cycles)
- Logs events (boot, battery, calibration) in a ring buffer
- Provides TCP/IP remote access via built-in serial-to-TCP bridge
Bill of materials
38 parts38 of 38 parts shown
38 of 38 parts have no price in the source, so there is no parts total. Read from hardware/bom/hexapod_bom.csv at the pinned commit.
Build guide
The creator's steps, each with its instructions.
- 1Assemble mechanical structure
- 2Install servos and wiring
- 3Mount Raspberry Pi Pico and PCA9685 boards
- 4Connect IMU (BNO055)
- 5Install battery and power management
- 6Flash firmware and calibrate servos
- 7Configure and test control inputs
The guide appears here as you scroll.
Guide by @gitcfyang (README.md), under GPL-3.0-only. The English translation is by Robotheca, shared under the same license.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Raspberry Pi Pico (RP2040) MCU
- Two PCA9685 16-channel PWM driver boards for 18 digital servos
- 2S 18650 battery pack with XT60M connector
- AO4407A MOSFETs for servo power switching
- LM2596S-5.0 buck converter for 5 V logic
- SMBJ12A/18A TVS diodes on power rails
- XT60M power input, two-position switch, 47 µH inductor, 220 µF 10 V capacitors
- Dual LEDs, passive buzzer, six foot-end micro-switches
- PS2 remote receiver and gamepad kit
- ELRS CRSF radio receiver (optional)
- GP28 ADC2 with 330 kΩ + 47 kΩ divider for battery monitoring
Connections
- Pico UART0 exposed on GP0/GP1 for external use
- Pico GP26/GP27 available for external I2C or ADC
- PCA9685 PWM outputs wired to 18 digital servos
- Servo power rail switched by AO4407A MOSFETs controlled from Pico GP pins
- XT60M battery input → LM2596S-5.0 → 5 V logic rail
- Battery voltage divider (330 kΩ + 47 kΩ) to Pico GP28 ADC2
- Foot-end micro-switches on GP16–GP21
- PS2 receiver connected via XH2.54 6P connector
- CRSF receiver connected via KF301 2P connectors
Cables and connectors
From the parts list.
- XH2.54 6P CN1 × 1
- 遥控器及接收机 PS2手柄套装 手柄+横插转接板XH2.54 × 1
- 其他 xh2.54 6P 连接线 双头同向 × 1
- 扎带(整理线材) × 1