






Sawppy Rover
✓ Links verified Jul 16, 2026
Sign up to InstallAbout this program
491 stars on GitHub.
Sawppy the Rover is a 3D-printed, motorized model of NASA's Mars rovers Curiosity and Perseverance, buildable for under $500 in parts. Created by Roger Randolph as a more accessible alternative to the JPL Open Source Rover, Sawppy replicates the iconic rocker-bogie suspension system that allows rovers to traverse rocky terrain with all six wheels remaining in contact with the ground.
Source: https://github.com/Roger-random/Sawppy_Rover
The suspension uses the same kinematics as the real Mars rovers — a passive differential mechanism connects the rocker-bogie suspension arms so the rover body stays level even when wheels traverse obstacles at different heights. All structural parts are fully 3D-printable on a standard FDM printer; the STL directory contains 30 tested parts (this Print All set keeps the 23 canonical LX-16A parts plus an optional 2-part display housing — see Printing below).
Drive hardware uses LX-16A serial bus servos (10 total: 6 wheel drive, 4 steering), which are significantly cheaper than the equivalent Dynamixel servos while offering position feedback. The control stack runs on a Raspberry Pi and supports Arduino wired control, R/C control, ROS Kinetic, ROS Melodic, and ROS2 Humble — including full Gazebo simulation support.
An active builder community exists on Hackaday.io with numerous documented builds. A "Micro Sawppy" variant targeting $100 and elementary-school builders is also available. Live Onshape CAD allows full modification.
License: MIT.
Install Notes
Sawppy's software stack varies by hardware variant — the original uses LewanSoul LX-16A serial bus servos; newer variants use different controllers. Software lives in separate platform-specific repos (search for "Sawppy ROS" or "Sawppy ESP32"). The orobot Program code is a reference stub. Start from the Sawppy docs directory which links the correct sub-project for your build.
Printing
Six-wheel rocker-bogie rover. The 23 canonical structural STLs below are from the upstream STL/ directory and match the BOM's LewanSoul LX-16A serial-bus servos (6 drive + 4 steering = 10 total). Print quantities are per rover, not one-each:
Wheels & steering (the big multiples):
- Wheel — print 6× (all six wheels)
- Wheel-Hub — print 6×
- Bogie-Wheels — print 6× (wheel mounts)
- Steering-Knuckle — print 4× (the four corner/steering wheels)
- Fixed-Knuckle — print 2× (the two middle, non-steering wheels)
- LX-16A---Coupler — print 6× (one per drive servo)
- LX-16A---Bracket — print ~10× (servo brackets; one per LX-16A)
Corners & suspension (print 1× unless noted):
- Front-Corner ×2, Rear-Corner ×2, Body-Corner ×4 (rocker-bogie corner brackets)
- Rocker ×2, Rocker-Body-Mount ×2, Bogie-Body ×2 (left + right suspension arms)
- DiffBrace, DiffEnd, DiffLink, DiffLower, DiffUpper — the passive differential (×1 each unless your build doc says otherwise)
- Rod-Support — for the 8 mm shafts (print as needed)
- Clip2n125, Clip3n20 — small retaining clips (print several of each)
Chassis / electronics (1× each):
- Battery-Tray, Power-Panel
Optional add-on (kept, ≤3 optional):
- DisplayBottom + DisplayTop — a small status-display housing (community add-on). Skip if you are not fitting a display.
Removed alternates (not needed for the LX-16A build): the upstream community modification set under modifications/Marco_Walther was trimmed out — AX-12-Bracket, AX-12-Coupler (these are for Dynamixel AX-12 servos, not the LX-16A in the BOM), and 25D-Coupler, Fixed-Knuckle-25D, Steering-Knuckle-25D (a 25 mm-motor variant). If you are building the AX-12 / 25D variant instead, print those from the upstream repo's modifications/ folder in place of the LX-16A brackets/knuckles.
Use ~3× 608 bearings per build along with M3 heat-set inserts. PLA on a standard FDM printer is fine.
🖨 Print Files (25)
DisplayBottom.stl
DisplayTop.stl
Battery-Tray.stl
Body-Corner.stl
Bogie-Body.stl
Bogie-Wheels.stl
Required Hardware
| Qty | Part | Cost (est.) | Notes |
|---|---|---|---|
| 10 | LewanSoul LX-16A serial bus servo | ~$20 ea | Primary actuators — 6 drive, 4 steering |
| 30 | 608 bearings (10-pack, need 3) | ~$8/10-pk | Standard inline-skate bearing |
| 1 | M3 screw assortment kit (socket head, 600-pc) | ~$14 | Covers all M3 fasteners |
| 1 | M3 threaded inserts (heat-set, 100-pc) | ~$10 | Press into 3D-printed joints with soldering iron |
| 1 | 8mm steel rod (~1m) | ~$12 | Differential shaft — cut to length |
| 1 | 8mm aluminum rod | ~$10 | Non-load shafts |
| 1 | Raspberry Pi 3 B+ (or newer) | ~$35 | Primary controller — runs ROS or custom stack |
| 1 | ESP32 development board | ~$8 | Optional — ESP32 control stack available in repo |
| 1 | 2S LiPo battery 7.4V 5000mAh (single) | ~$30 | Main power; buck converter steps down to 5V for Pi |
| 1 | 5V buck regulator | ~$10 | Stable 5V for Raspberry Pi from 7.4V LiPo |
B