Hexapod
A 3D Printed Hexapod Robot
Install / Use
/learn @rookidroid/HexapodREADME
<img src="./images/hexapod-logo.svg" alt="logo" width="64"/> Hexapod
A 3D Printed Hexapod Robot
It is strongly recommended to start with Hexapod v2 rather than building Hexapod v1. Our experience has shown that MG90S servos used in Hexapod v1 frequently fail due to their inherent weaknesses and inconsistencies in quality.
<img src="./images/hexapod_photo.jpg" alt="hexapod_photo" width="300"/><img src="./images/hexapod_photo_battery.jpg" alt="hexapod_photo" width="300"/>
<img src="./images/hexapod_lego_1.jpg" alt="hexapod_photo" width="300"/><img src="./images/hexapod_lego_2.jpg" alt="hexapod_photo" width="300"/>
Introduction
This agile, 3D-printed hexapod robot is designed to work with either a Raspberry Pi PICO or an ESP32, providing flexibility and enhanced performance. Equipped with stronger and faster 21G servos, it offers a range of advanced features, including:
- A robust, durable structure
- WiFi-enabled remote control
- Smooth, agile movement
- Over-the-air (OTA) firmware updates for easy maintenance
Electronics
| Name | Thumbnail | Required # | Note | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Controller Board | <img src="./images/controller_esp32.png" alt="controller_esp32" width="300"/> or <img src="./images/controller_pico.png" alt="controller_pico" width="300"/> | 1 | Purchase ESP32 version or RPi Pico version | | 21G Servo | <img src="./images/dspower_21g.jpg" alt="dspower_21g" width="200"/> | 18 | DS Power or Miuzei 21G servo | | Rocker Switch | <img src="./images/switch.jpg" alt="switch" width="300"/> | 1 | | | 18650 battery | <img src="./images/battery.jpg" alt="battery" width="300"/> | 2 | | | 18650 battery holder | <img src="./images/battery_holder.jpg" alt="batter_holder" width="300"/> | 1 | |
Connection Diagram
ESP32

Respberry Pi Pico W/2W

Assembly

3D-Printed Parts
Body x 1

| Filename | Thumbnail | Required # | | ---------------- | ----------------------------------------------------------------------------- | ---------- | | body_base | <img src="./images/body_base.jpg" alt="body_base" width="400"/> | 1 | | body_side | <img src="./images/body_side.jpg" alt="body_side" width="400"/> | 2 | | body_front_back | <img src="./images/body_front_back.jpg" alt="body_front_back" width="400"/> | 2 | | body_top | <img src="./images/body_top.jpg" alt="body_top" width="400"/> | 1 | | body_top_cover | <img src="./images/body_top_cover.jpg" alt="body_servo_top" width="400"/> | 1 | | body_battery | <img src="./images/body_battery.jpg" alt="body_battery" width="400"/> | 1 | | body_servo_side1 | <img src="./images/body_servo_side1.jpg" alt="body_servo_side1" width="400"/> | 6 | | body_servo_side2 | <img src="./images/body_servo_side2.jpg" alt="body_servo_side2" width="400"/> | 6 | | body_servo_top | <img src="./images/body_servo_top.jpg" alt="body_servo_top" width="400"/> | 6 |
Use the orientations of the thumbnials to print, no support is needed.
Joint x 3 + Mirrored Joint x 3
Check the images of the fully assembled robot for the orientations of the joints and the mirrored joints

| Filename | Thumbnail | Required # | Note | | ------------ | --------------------------------------------------------------------- | ---------- | ---- | | joint_bottom | <img src="./images/joint_bottom.jpg" alt="joint_bottom" width="400"/> | 12 | | | joint_cross | <img src="./images/joint_cross.jpg" alt="joint_cross" width="400"/> | 6 | | | joint_top | <img src="./images/joint_top.jpg" alt="joint_top" width="400"/> | 12 | |
Use the orientations of the thumbnials to print, no support is needed.
Leg x 6

| Filename | Thumbnail | Required # | | ---------- | ----------------------------------------------------------------- | ---------- | | leg_bottom | <img src="./images/leg_bottom.jpg" alt="leg_bottom" width="400"/> | 6 | | leg_side | <img src="./images/leg_side.jpg" alt="leg_side" width="400"/> | 12 | | leg_top | <img src="./images/leg_top.jpg" alt="leg_top" width="400"/> | 6 |
Use the orientations of the thumbnials to print, no support is needed.
Foot x 3 + Mirrored Foot x 3
Check the images of the fully assembled robot for the orientations of the feet and the mirrored feet

| Filename | Thumbnail | Required # | Note | | ----------- | ------------------------------------------------------------------- | ---------- | ---- | | foot_bottom | <img src="./images/foot_bottom.jpg" alt="foot_bottom" width="400"/> | 6 | | | foot_top | <img src="./images/foot_top.jpg" alt="foot_top" width="400"/> | 6 | | | foot_ground | <img src="./images/foot_ground.jpg" alt="foot_ground" width="400"/> | 6 | | | foot_tip | <img src="./images/foot_tip.jpg" alt="foot_tip" width="400"/> | 6 | |
Use the orientations of the thumbnials to print, no support is needed.
Accessory
| Filename | Thumbnail | Note | | ---------------------- | ----------------------------------------------------------------------------------------- | ---- | | accessory_cable_holder | <img src="./images/accessory_cable_holder.jpg" alt="accessory_cable_holder" width="400"/> | |
Use the orientations of the thumbnials to print, no support is needed.
Others
| Name | Spec | Required # | | --------- | ------------------------------------- | ---------- | | Screw | M2 6mm | 36 | | Screw | M2 10mm | 198 | | Nuts | M2 | 234 | | Pin (304) | M4 6mm | 18 | | Bearing | MR74-2RS (4mm ID, 7mm OD, 2.5mm Bore) | 18 |
Software
ESP32-Arduino
Source code is under ./hexapod_arduino.
hexapod_arduino.ino: Main Arduino sketchconfig.h: Configuration header. Change the configurations based on your servo connectionsmotion.h: Automatically generated motion look-up-table using `path_tool'
Android
Working in progress
PC
Working in progress
Calibration
Check the following image for the initial positions of all the leg joints while all the servos are at 90 deg.
Adjust the following two lines in in config.h to correct the installation offsets.
static int left_offset_ticks[3][3] = {{-5, 10, 0}, {-15, 5, -20}, {20, -10, 10}};
static int right_offset_ticks[3][3] = {{20, -10, 0}, {-15, 0, -5}, {-10, 0, -20}};


Related Skills
node-connect
352.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
