Sawppy the Rover

Motorized model of Mars rovers Curiosity, Mars 2020

Similar projects worth following
Sawppy is a motorized model whose layout and proportion mimics that of Mars rovers Curiosity and Mars 2020. It faithfully reproduces the suspension kinematics of real rovers and is intended to be a hardware platform for future software projects in autonomous operation. Go forth and boldly explore the back yard, Sawppy!

Sawppy the Rover was inspired by JPL's Open Source Rover project. Most of the differences between Sawppy and its JPL inspiration were motivated by a desire to reduce cost and complexity. JPL's rover is designed for education, to be assembled by a school team and give a robust foundation for structured curriculum. Sawppy is more suited for individual hobbyists like myself who are happy to tinker and willing to make some trade-offs to lower cost.

The budget was $500, and getting there required the following changes:

These two major design goals can be summarized as: Servo Actuated Wheels, Printed Interconnect For Extrusion. The acronym SAWPIFE led to the nickname "Sawppy".

See the "Links" section for pointers to additional information:

  • Live Onshape CAD file: This is where I'm tweaking and building Sawppy in full public view. Be warned the live file has upsides (latest ideas!) and downsides (latest idea doesn't work!)
  • Github: This is where the assembly instructions currently live. It also has a snapshot of Sawppy components in STL file format. These parts may lag behind the live CAD data, but they have been printed, installed, and proven to work on my rover.
  • Build Blog: The history of Sawppy, including stories of design goals and lessons learned from failures.

  • 3 × 1 kg spool of 3D printer filament Exact amount of filament used will depend on slicer settings, see "Instructions" section.
  • 10 × LewanSoul LX-16A Serial Bus Servo Design also can be adapted to use Dynamixel AX-12A or Herkulex DRS-0101
  • 3 × Box of 100 M3 * 8mm hex bolts Fastening 3D-printed components to aluminum extrusions
  • 3 × Box of 100 M3 hex nuts Fastening 3D-printed components to aluminum extrusions
  • 3 × Box of 100 M3 washers (< 10mm diameter) Fastening 3D-printed components to aluminum extrusions. Design can accommodate up to 10mm diameter washers, larger washers will require modifying CAD file.

View all 16 components

  • Daniel Perron's Sawppy

    Roger08/10/2018 at 19:55 1 comment

    I saw that had an article on JPL Open Source Rover. In the comments section, there was a comment by Daniel Perron (who had also commented on this project page) mentioning Sawppy. I think Daniel should have a project page for his own Sawppy but I haven't seen one under his account

    Which is a shame, because his rover is making good progress and his work totally deserves attention. So I'm going to draw attention to his build on my Sawppy page here.

    Here's a scaled-down copy of the image he linked from his comment. From this picture I can see a few changes from my design. The biggest change is in the structural beams. Daniel is using something other than the Misumi 3-series 15mm extrusion that I used. I'm curious to see how well these beams work. Their uninterrupted square profile should make Daniel's Sawppy more rigid than mine, and more rigidity is always good.

    And here's his YouTube clip showing his travel motor turning a wheel under control of his own servo control code.

    I'm super excited to see another Sawppy taking form. Your rover looks great, Daniel! Great job and I look forward to seeing your future progress.

  • Path to Sawppy is Paved with Plastic

    Roger07/17/2018 at 19:42 0 comments

    The behind-the-scenes path of Sawppy's design and fabrication was told one small (~300 words) story at a time on the build blog, and the storytelling has finally caught up to Sawppy's current version 1.0 status. Now that Sawppy is running around, I'm going to put a pause on hardware iteration for a while and focus on software.

    To celebrate this milestone, here's a group picture of Sawppy, plus all earlier iterations of 3D-printed components, with empty spools representing filament consumed.

  • Serial Bus Servo Overview

    Roger07/06/2018 at 19:37 0 comments

    As part of researching into how I can build Sawppy, I evaluated several serial bus servos. This information is useful for all kinds of projects, not just motorized Mars rover models, so an overview has been shared to the entire community.

  • Mechanical Assembly Instructions Posted

    Roger06/17/2018 at 18:57 0 comments

    The mechanical assembly instructions have been posted!

    For visual reference, the guide has all the pictures I took while I reassembled my rover with parts printed in PETG.

  • Moving Build Instructions to Github

    Roger06/14/2018 at 21:00 0 comments

    While continuing to add to Sawppy build instructions, I seemed to have run into some kind of limit on the infrastructure. As I continued to add pictures to later assembly steps, the pictures from earlier steps started disappearing!

    I can recover them, I'll just have to retrieve the originals from my camera's memory card and redo all the photo cropping and resizing. But with this loss of data I'm moving Sawppy build instructions elsewhere. I like the format of but their platform spinoff starts at $20/mo and that's more than I can justify for this hobby project. I'll keep looking for other alternatives.

    In the short term, I'll put instructions on It's a bit of a square peg in a round hole but I have more confidence pictures won't surprisingly disappear from my Github repository.

  • Instructions Being Posted

    Roger06/04/2018 at 02:55 0 comments

    Now that I'm satisfied with the rough draft printed in PLA plastic, I'm printing a final draft in more durable PETG plastic. And also printing slower for better accuracy and detail. As these PETG parts come off the printer, I'll take pictures to illustrate assembly instructions. 

    Keep an eye on the "Instructions" section of this project page, it will grow over the next few days/weeks.

  • Sawppy Climbs a Backpack

    Roger05/11/2018 at 06:55 0 comments

    Here's a short video clip of the alpha build chassis, showing that the design works.

  • What I Have Isn't Much, But It's Available Now!

    Roger05/09/2018 at 17:43 0 comments

    This project is open and fully intended for others to build their own Sawppy the Rover. The design is not fully baked but as someone who is personally frustrated by many "it'll be shared when it is ready" projects, I'm putting my own project out there in all its incomplete awkwardness.

    What's available today:

    Onshape CAD document: Sawppy is developed in Onshape, a web-based CAD (computer aided design) tool usable on anything from Chromebooks to full power engineering workstations. (You will need a good internet connection.) Hobbyists can create a free account to access public Onshape documents like Sawppy. This is the live development file with all its upsides (latest update!) and downsides (latest update doesn't work!)

    I've already received several requests to release Sawppy CAD data in OpenSCAD format. Sadly my OpenSCAD skill is not good enough to create Sawppy's geometry. If anybody is willing to take my Onshape design and convert it to OpenSCAD, please let me know and I'll be happy to link to your project!

    Github: For those who don't want to create an Onshape account, the 3D printer data files (STL format) exported from Onshape is also available and hosted on Github. This will be a periodic snapshot of designs that have been printed and verified to work on Sawppy. This is good for casual browsing and printing my designs as-is but any editing should be done via Onshape. 

    Build blog: CAD and STL is good for conveying the what of Sawppy, but they won't necessarily cover why. The build blog describes the design decisions behind Sawppy. Each daily blog entry is a short ~300 word story about one specific topic.

  • Construction Technique Shared on

    Roger05/09/2018 at 17:18 0 comments

    After receiving positive feedback about the techniques I used to build Sawppy, I decided it was worth writing up to share on This is a technique I've been evolving over the past few projects (see my profile) and it's been a really great way to bring ideas to reality. It won't be the way to build every project, of course. Use the right tool for the job, etc. And now, this tool is available to more people!

View all 9 project logs

  • 1
    New Home for Sawppy Build Instructions

    After a loss of data event for instructions posted to, Sawppy the Rover's build instructions are now hosted on Github.

View all instructions

Enjoy this project?



Bob wrote 10/09/2018 at 14:44 point

Is there any firmware for the rover? Even an incomplete codebase would be valuable and allow builders to evolve the code forward.

  Are you sure? yes | no

Roger wrote 10/10/2018 at 00:55 point

I'm working towards making Sawppy work with the open source Robot Operating System. As an interim solution, my rover is running the code I wrote for SGVHAK Rover but configured to send commands to Sawppy's LewanSoul serial bus servos.

  Are you sure? yes | no

Bob wrote 10/10/2018 at 01:15 point

Roger that. ;-) 

I'm still printing. And given everything else on our plates, may be for awhile. We'll first print your reference design and get it running with the LewanSoul servos. But we're really here to explore how a modified rover architecture would handle itself in the FIRST Robotics ring. Yes, that would involve looking at rigidity, drive train, firmware, scalability, configurability, durability, stability, and 5 other flavors of 'ability. But have you seen Erector Set pieces and decade-old electronics most commonly used on FTC bots?

Thanks for putting your design out for all to explore. You've done a terrific job. It's exciting to have the OnShape geometry available to configure. As somebody coming at this as a 3D'er, we really like it when we have full control of the geometry to configure based on our needs.

  Are you sure? yes | no

Quinn Morley wrote 09/15/2018 at 15:42 point

Roger, how much scale-ability do you think there is to be had by merely changing the length of the aluminum extrusion and changing the wheel diameter? I want to create one approximately the same size as Curiosity to use as a testbed. 

  Are you sure? yes | no

Roger wrote 09/17/2018 at 20:06 point

Sawppy is approximately 1/4 scale of Curiosity. When scaling up, the first limitation will be the servo motors I used. I tried them with a 1/3 scale wheel and they struggled to climb modest obstacles, so an actual-size rover will need more powerful motors. I haven't experimented beyond 1/3 scale so I don't know for sure what else will be problematic, but here are my guesses: 

(1) 15mm extrusion beams start twisting along their axis. Possible solution: use larger extrusion beam profiles like 60mm or alternate structural members.

(2) 3D printed connectors deform under load. Possible solution: print with very rigid materials like carbon fiber infused nylon.

(3) 8mm steel drive and steering shafts start bending. Possible solution: larger diameter shafts and corresponding larger bearings.

Personally my 1/4 scale rover already takes up too much space at home and barely fits in my car's seat for transport. I admire your goal of going full size, that's huge! (I mean that both as a compliment and literally.) Whether you end up using my Sawppy design or not, please document your project online. I'd love to watch as it progresses.

  Are you sure? yes | no

Quinn Morley wrote 09/18/2018 at 07:29 point

Great answer. I'll think about the wheels and wheel motors. Your plastic parts may work if we scale them up for 60mm extrusion, they should have a much higher stiffness. Different motors, shaft diameters etc would be the biggest obstacle. I'll post the project when I get started. I really appreciate your feedback and love your design! Thanks again.

  Are you sure? yes | no

Dongwon Lee wrote 09/14/2018 at 06:09 point

Hello. Thank you for nice 3D modeling of Mars Rover. I started to print out each parts. I'm considering electric configuration. First of all is power. How much power will be need per 1 servo?. I will use 5200mAh 2S 30C battery..  the other thing is motor/control balance. 10 servo+ 1 controller  or 5 servo + 1 controller at each left/right side .. which one is better?

  Are you sure? yes | no

Roger wrote 09/17/2018 at 19:38 point

Your battery will be more than adaquate. The LewanSoul LX-16A servo I used drew a little over 1A when stalled at maximum effort. In the worst case (and hopefully very unlikely) scenario with all ten servos stalled, that's over 10A. Let's say 15A to be conservative. A 5200mAh 30C battery can withstand peak draw of 5.2A * 30 = 156A, so your battery can provide peak power over ten times what's needed.

  Are you sure? yes | no

Roger wrote 09/17/2018 at 19:42 point

All the motor control power management circuit is built in to the LewanSoul LX-16A servo so each motor has their own controller. The LewanSoul "debug board" controller is primarily a serial communications translator so a single one will be fine for the entire servo network.

  Are you sure? yes | no

todbot wrote 07/09/2018 at 22:15 point

Hi Roger,  it was great chatting with you at the SGVHAK BBQ. We talked a bit about traction add-ons for Sawppy's wheels.  I'm sure you've already considered this, but I've always admired the O-rings on the original Big Trak as a cheap & repairable solution. I found these 4" diameter ones on McMaster that are 50 for $12.

  Are you sure? yes | no

Roger wrote 07/12/2018 at 23:56 point

That's a nice and inexpensive venue to explore. I'll start brainstorming what kind of rover wheel I could build with these rings. Thanks for the pointer!

  Are you sure? yes | no

Daniel Perron wrote 06/05/2018 at 11:23 point

I love what you did and  I start to made my own  with my 3D printer. All the wheel are done using PETG and I'm doing the  boogie wheel right now. I'm missing the aluminium extrusion dimension but I will use wood stick cut from my bench saw instead.  I still missing a lot of 3D printer parts so I suppose that the dimension will show itself when I put all pieces together.  I did create a python3 class object for the LX16A.  I will refine that class to add the missing catch exception handler.    

  Are you sure? yes | no

Roger wrote 06/05/2018 at 17:20 point

Thanks for letting me know you're building one. It's very encouraging to hear! As you've noticed it's still a work in progress with incomplete information, but I'm happy to expedite filling in information holes on request. Since you would like aluminum extrusion dimensions, I've filled in the "Components" section with extrusion beams and their lengths. Let me know if you need anything else.

  Are you sure? yes | no

Daniel Perron wrote 06/16/2018 at 02:34 point

I start to learn little by little onshape.  I did change your servo coupler. I'm using 12mm M3 flat head hex screw and I change the length of  the servo coupler  to 8mm instead of 10mm. This way I could use the 12mm screw to attach the  coupler  with the provided adapter to the LX16A motor. I also grind a part of the wheel to be able to  tight the lock screw of the wheel using allen key.

  Are you sure? yes | no

Roger wrote 06/17/2018 at 19:10 point

Great work! Have you considered creating a page for your Sawppy build? I'd love to see you detail your modifications. Why you made them, and how well they worked. Together we will keep improving the design in the spirit of open source!

  Are you sure? yes | no

terence.d.healy wrote 05/17/2018 at 15:18 point

Excellent rover and very nice work.  I'm very interested to hear how you are using the servo motors rather than gear motors with encoders. Can you tell us about the software a bit? Do you use ROS - if so, what computing hardware? 

  Are you sure? yes | no

Roger wrote 05/17/2018 at 16:29 point

I do have ambition to put ROS on Sawppy and give it some autonomy, but for now I'm still working on the chassis hardware. At the moment Sawppy's brain is a bare-bones piece of software that allows simple tele-operation and runs on a Raspberry Pi. (Translation: right now it's just a very expensive remote control car.) Code is up on Github, search for "SGVHAK Rover"

  Are you sure? yes | no

John Whitten wrote 05/16/2018 at 19:21 point

Awesome. I am both intrigued and jealous. I applaud your good efforts and eagerly await your next developments. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates