






Hexapod
About this program
Hexapod — 3D Printed Six-Legged Walking Robot
A fully 3D-printed hexapod robot with 18 servo motors (three per leg) providing lifelike, agile locomotion. Designed by rookidroid.com, this project uses either an ESP32 or Raspberry Pi Pico W/2W controller board with built-in WiFi for wireless remote control. The firmware supports over-the-air (OTA) updates so you can iterate on motion patterns without touching the hardware.
Hexapod v2 is the recommended build. The original v1 used MG90S servos which are prone to failure; v2 upgrades to stronger 21G DS Power/Miuzei servos and is significantly more reliable. Do not use MG90S.
Note: The controller board is proprietary to rookidroid.com. A generic ESP32 dev board can substitute — check the firmware docs for pin mapping.
Specifications
| Property | Value |
|---|---|
| Legs | 6 |
| Servos | 18 x 21G (3 per leg: hip, knee, ankle) |
| Controller | ESP32 or Raspberry Pi Pico W/2W |
| Communication | WiFi (UDP port 1234) + OTA updates |
| Power | 2 x 18650 Li-ion cells |
| Printed Parts | 20 STLs, all print without supports |
| Print time | ~40–60 hours total |
| Skill level | Intermediate |
Motion Modes
The ESP32 firmware implements a pre-computed look-up-table gait system with 18 motion modes including: directional walking at 0, 45, 90, 135 degrees (left and right variants), 180 degrees; fast forward and backward; turn left and right; climb forward and backward; body rotations on X, Y, Z axes; and a twist mode.
Attribution
Creator: rookidroid.com Source: https://github.com/rookidroid/hexapod License: GNU GPL v3
Printing
This is a complete, modular set of 20 unique parts. Because the hexapod has 6 identical legs (each with 3 joints), many parts must be printed in multiples. Per the upstream build guide, print the following quantities:
Body (print once each): body_base ×1, body_top ×1, body_top_cover ×1, body_battery ×1. Body (print in pairs): body_side ×2, body_front_back ×2. Servo brackets (one per leg): body_servo_side1 ×6, body_servo_side2 ×6, body_servo_top ×6.
Legs and joints (per-leg multiples): joint_bottom ×12, joint_top ×12, joint_cross ×6, leg_bottom ×6, leg_top ×6, leg_side ×12. Feet (one set per leg): foot_bottom ×6, foot_top ×6, foot_ground ×6, foot_tip ×6.
Optional: accessory_cable_holder ×1 (a cable-management add-on, not required for the robot to function).
No supports are needed — orient each part as shown in the upstream print thumbnails. All 20 files are the correct, current parts; there are no duplicates, alternates, or version variants to choose between.
🖨 Print Files (20)
body_base.STL
body_side.STL
body_front_back.STL
body_top.STL
body_top_cover.STL
body_battery.STL
Required Hardware
Hexapod Parts
| Item | Qty | Notes | Source |
|---|---|---|---|
| 21 g metal-gear digital servo (DS Power / Miuzei) | 18 | 3 per leg — v2 spec; do NOT use MG90S | Amazon |
| Hexapod ESP32 controller board | 1 | Original controller sold by RooKiDroid; a generic ESP32 DevKit works with firmware tweaks | RooKiDroid |
| 18650 Li-ion cells | 2 | Buy protected button-top cells from a reputable seller | Amazon |
| 18650 battery holder (2-slot) | 1 | — | Amazon |
| Rocker switch (KCD1) | 1 | — | Amazon |
| M2 screw/nut assortment | 1 kit | — | Amazon |
| MR74-2RS bearing (4×7×2.5 mm) | 18 | Leg joints; sold in 10-packs — buy 2 | Amazon |
B