Engineering Projects — Electronics

Tipsy

Tipsy is a 3D-printed quadruped walking robot controlled via a custom web interface hosted directly on the robot, built around an ESP32 microcontroller with 8 servo joints and an OLED display.

Year

2026

Status

Complete

Main image
Detail 1
Detail 2

Inspired by an image online, I designed and built Tipsy from scratch — all mechanical parts were custom CAD models I 3D printed, and the electronics and firmware were self-taught from the ground up using Arduino IDE. The project pushed my programming skills into new territory, including writing a non-blocking gait state machine, implementing a WiFi access point with a mobile joystick controller, and solving real hardware constraints like current draw forcing a battery upgrade from AAs to a lithium cell. More than anything it was a project built for fun, but it ended up teaching me more about embedded systems, CAD, and iterative problem-solving than I expected.

Overview image

The CAD model of Tipsy.

Starting with a single leg in CAD to figure out the dimensions and joint placements, I 3D printed prototypes to test the range of motion and clearances. Once I was happy, I expanded to 4 legs and designed a central body to connect them, which also housed the microcontroller and battery. Programming the gait was a challenge — I had to implement a state machine that could handle the timing of each leg's movement without blocking the main loop, which was new territory for me, with plenty of troubleshooting using Claude. Once I was happy with it, I reprinted all the components in PETG for better durability and colors.

Process step 1
Process image 1
Process step 2
Process image 2

Originally Tipsy was red PLA for prototyping.

After getting the mechanics and firmware working, I designed a custom web interface that runs on the ESP32 itself, allowing me to control the robot from my phone without needing a separate controller. This was a fun challenge that involved setting up a WiFi access point on the ESP32 and writing a simple webpage with buttons and a joystick control. It was rewarding to see everything come together in a cohesive project that I could show off to friends and family.

If I had to start over there are a couple things I would change — I would have gone with a lithium battery from the start instead of prototyping with AAs, which caused some headaches with power delivery. I also would have spent more time on the initial leg design to get the range of motion and clearances right before moving on to the full body, which would have saved some time in the long run. But overall I'm happy with how it turned out — it's a fun little project, and it taught me a ton about embedded programming and web development.

Overview image

Final product.

← Lego Cars Jukebox →