ZeroBug Hexapod

This hexapod robot is a hobby project that I finished a few months ago. I have always been fascinated by Matt Denton’s hexapods and wanted to build one myself.
And this is as close as I could get with my programming experience :slight_smile:

Programming the locomotion was the most difficult part. I didn’t want to rely on the Pheonix code, so I programmed this completely from scratch.
To speed up the development I made a little simulator using Processing:

It took a while to figure this out but I am really happy with how smooth the robot walks now.

Hardware-wise Zerobug uses regular RC servos, which makes it cheap to build. The servos are controlled by a STM32F103 that sits on a custom PCB. There is a port to plug in a Raspberry Pi Zero W, which handles the inputs from an Xbox controller or from a web interface. The Raspberry Pi then sends high-level commands to the STM32 that runs the locomotion code.

You can find more details about the build on ZeroBug - DIY Hexapod Robot |
And there are a few videos that show the Zerobug in action:

Right now I am looking for ways to improve the robot, maybe as a version 2.0:

  • The boot time of the Raspberry Pi Zero is annoying. Switching to an ESP32 would speed this up and reduce complexity, but supporting game controllers is much more complicated.
  • Collision avoidance of the legs is very basic at the moment. I have not found a clever way to improve this yet.
  • I would like to improve the movement to speed the legs up if the robot needs to move faster. Right now everything is running at a fixed speed.
  • The robots has similar proportions to Matt Denton’s µBug, so there is very little room for the PCB. I am thinking about completely redesigning the body.

I would be very happy to hear any suggestions or advice.


Great project @wingman :smiley:

What is currently the top speed of this little bug? :slight_smile:

Thank you.

Thanks! Currently the speed is limited in software, the servos can go a lot faster. I just think it looks nice that way.
Right now there are two variables for speed: The leg speed that is based on the gait sequence and the movement speed that is based on user inputs. If the movement speed is not limited the legs might not be able to catch up without colliding. That’s one of the areas where I want to improve the code.

1 Like

Excellent :slight_smile: Thank you for this explanation :slight_smile:

How much did this project cost you approximately?

You could build the robot for 150-200€ but I ended up buying some extra parts and servos, so it might have been more than that.

1 Like

@wingman Welcome to the RobotShop Community! The way you printed the frame and parts seems like it’s commercial. Well done! You indicated “custom PCB” - did you design and create it yourself?

You might be interested in the Lynxmotion SES V2 Hexapod project too:

Although Mat Denton was unavailable to participate in this latest Lynxmotion project, we do have all the regular hexapod gurus: KurtE, Xan, Zenta and more. The current status of the project is that there has recently been an LSS firmware update and some fixes are being worked on.

1 Like

Thank you! I designed the PCB myself. It contains mostly just the STM32, a PWM driver and a connector for the Raspberry Pi.
I’ve already had a quick look at the Lynxmotion Hexapod thread, it definitely a good place to look for inspiration. And nice to see that firmware is still being worked on.

1 Like