Personal project · Dec 2025 – Jan 2026
Rocker-Bogie Mars Rover
A 3D-printed, ESP32-controlled terrain rover
Over winter break of first year, I teamed up with an engineering student from the University of Waterloo to build a six-wheel rover using rocker-bogie suspension, the same passive design NASA uses on its Mars rovers. It combined mechanical design, manufacturing, electronics, and embedded code in one build.
Design
Every part was modelled in Fusion 360. The two rockers pivot independently and connect through a central differential that averages their angles, which keeps the body level while individual wheels climb. I iterated on the differential geometry before printing, then hand-sanded its contact surfaces until it rotated freely.
Electronics
An ESP32 drives two motor driver modules, one per side, each running a stepper motor chosen for its low-speed torque. I wrote the firmware in the Arduino IDE and tuned step timing by hand to get smooth movement without skipped steps.
Result
The rover drives over obstacles and carpet with the platform staying level. Push one side over an object and the body barely tilts.
What I'd change
The motor housings sit too low and hit large obstacles before the wheels can climb, the battery couldn't supply steady torque, and glued wheels kept coming loose. Version two raises the motor mounts, adds a built-in battery bay, and uses a press-fit bushing in each wheel hub. Next I want to add an I²C gyroscope to log pitch and roll and classify terrain.

| Suspension | Six-wheel rocker-bogie with central differential |
|---|---|
| CAD | Fusion 360 |
| Fabrication | 3D-printed PLA, M4 hardware, hand-sanded bearing surfaces |
| Controller | ESP32, Arduino IDE |
| Drive | 2 stepper motors, 2 motor drivers |
| Team | 2 (UBC + Waterloo) |




