Hexapod Robot

A six legged walking robot. Contrary to popular belief, it's not a turtle.

Background

Between November 2024 and April 2025, I designed and built a hexapod robot as a personal project. I thought it would be a good introduction to robotics, as prior to this project I didn’t have any experience with soldering, PCB design, gait programming, 3D modeling, fabrication, assembly, or just about any of the skills I actually used while making it.

I decided to make a hexapod instead of any other kind of robot because I had recently been binging YouTube videos about hexapods online and really wanted my own.

I 3D modeled the robot using SolidWorks, printed it on 3D printers provided by my university’s makerspace, designed the PCB using KiCAD, got the PCB manufactured by PCBWay, soldered the components to the board, and programmed the gait code using Micropython on the Raspberry Pico.

The Process

Mechanical System

Since I had no prior experience with 3D modeling, I followed along with this Youtube series on modeling a robot arm in SolidWorks before starting on the robot’s design. The robot consists of a main chassis that all the legs connect to, the legs themselves, and a shell. The shell on top of the robot protects the PCB from damage and holds the battery inside. The chassis has holes on the bottom for the servo wires to connect directly into the PCB, as well as screw holes to mount the PCB and secure the shell to it.

Due to the cost of the servo motors, I opted for 2-joint legs instead of 3 joints, allowing for 270 degrees of rotation along the pitch and yaw axes. Though it restricted the robot’s movement by preventing it from neatly sitting down and standing up, it did save me about $50.

The leg joints were originally designed from laser cut plywood. Plywood sheets were wood glued atop one another to provide more durability to the joints and provide me with enough space to drill a hole into for inserting screws. I ultimately scrapped the laser cut joint idea and 3D printed them instead, as the plywood didn’t provide the friction needed to keep the screws from sliding out when the robot walked.

Electrical System

The electrical system was designed using the Schematic Capture and PCB design tools provided by KiCAD. A hexagonal shape was chosen to minimize the distance the wires had to travel from the servo to the PCB.

I used a Raspberry Pico for the microcontroller, a PCA9685 as the motor driver, 12 MG996R 12kg servo motors as the actuators, an NRF24L01+ transceiver with a decoupling capacitor to receive remote control commands, and an AA battery pack to power the robot.

Given that this was my first time making a PCB and soldering, I opted to connect header pins and sockets to the board instead of soldering the components directly since I was worried about messing something up and needing to replace or reorient a component. I used THT soldering to attach the socket and header pins to the board since I wanted to keep things simple and the makerspace I was working in didn’t have the equipment or components needed for SMD soldering.

If you’re interested in building something similar, I definitely don’t recommend using this PCB as a reference! I hadn’t learned about the importance of lots of common PCB techniques like power trunks or ground planes at the time of making it, so you’ll likely run into lots of issues in your project if you try copying it. Check out some of my other hardware projects for better examples of PCB design!

Gait & Software

I programmed the microcontroller using Micropython in the Thonny IDE. I referenced the wave gait explanation from this fantastic explanation of hexapod gaits while programming it, though I think the one I made falls somewhere on the spectrum between wave gait and ripple gait. I also used drivers for the NRF24L01+ to handle communication between the robot and the remote control (which was also made of a Raspberry Pico with the same transceiver model), allowing me to tell the robot to move forwards, backwards, left, or right. Below is a clip of the robot walking.

The Final Robot

The robot now sits on my windowsill, keeping watch over my other projects and gazing out into the parking lot.

Component & Cost Breakdown

Though I hadn’t yet discovered the importance of a component list while I was making this, I’ve done my best to list the ones I used here. I hadn’t yet developed an inventory of components at the start of this project, so lots of component kits had to be purchased for it.

ComponentDetailsCost
MicrocontrollerRaspberry Pico (x2)$10
Motor DriverPCA9685$8.99
TransceiverNRF24L01+$7.87
SwitchSPDT Toggle$7.99
CapacitorsElectrolytic Kit$9.99
Header SocketsSocket Kit$12.75
Header PinsPin Kit$7.11
Power SupplyAA Batteries$20.99
Battery Holder4x AA Holder$8.39
ActuatorsMG996R Servos (x3 packs)$53.97