Sawppy Rover Dances Like Real Rovers

Whenever I build something physical from my imagination, the reality always served a few surprises I failed to anticipate in my mind. Two recurring themes are seeing real joints flexing beyond their primary rotation axis, and realizing physical objects aren’t as perfectly rigid as they are in CAD. Nothing exemplifies this more than the rocker-bogie suspension of my Sawppy rovers. Their movement are well-defined when I articulate them in CAD, but once printed and assembled, I saw movement that weren’t in my CAD model. When rolling over obstacles, Sawppy would wobble and bounce in response to mechanical shocks that weren’t absorbed by its curved wheel spokes. A few other Sawppy rovers builders have asked me to check if this was supposed to happen on their rovers. I answered that it was not an intentional design feature, but they have done nothing wrong as I see it on my rover as well. I joked that our rovers are just dancing.

Part of this comes from Sawppy’s low-cost construction. The aluminum extrusion beams are not as rigid as the carbon composite tubes of real Mars rovers, and the 3D-printed connectors for those beams are not as rigid as CNC-machined metal components. The commodity 608 bearings I used for Sawppy’s joints give me smooth movement and load bearing capability, but they also add some mechanical slop to the system.

But part of this came from the suspension geometry itself, which is unlike suspension systems of cars we drive here on planet earth. Due to far higher speeds involved, our car suspensions are robust and bolted to car chassis at multiple points for added rigidity. In contrast, Mars rovers experience road impacts at a far slower rate, reducing the need for a heavily braced system. Such bracing are undesirably heavy on their strict weight management regimen. So rover suspension components are rather spindly and are attached at only one (or in rare cases, two) points. With so few attachment points, and a multi-segmented construction that puts large subassemblies at the end of several joints, any component movement and flex is compounded.

I had been curious how this tradeoff manifested on real Mars-bound rovers. They have sturdier components, but Sawppy copied their geometry and share the associated challenges. I kept my eyes open on footage of Perseverance rover while it was being tested to see if I see any wobble or bounce, but those tests are slow-moving affairs that imposed no major mechanical shocks to propagate through the system. Since I don’t expect anyone to swing a sledgehammer at the rover, I had resigned to never knowing.

But then I was happily surprised when I watched video footage of Perseverance landing sequence, specifically the part where the descent stage unspooled its tethers to lower the rover. (Thanks to Emily Velasco for turning it into an animated GIF I can embed here.)

Perseverance rover descends during skycrane maneuver

During this sequence, Perseverance suspension was released from its compact travel configuration and unfolded to its driving configuration in preparation for landing. This drop-and-lock action imposed mechanical shock on rover suspension elements, and we can see everything wobbling and bouncing just as I see frequently on my own little rover. It was both enlightening and entertaining to know that real Martian rovers can dance, too! They just choose not to, most of the time.

[Title image by NASA/JPL-Caltech]

Mars 2020 Perseverance Surface Operations Begin

I’m interrupting my story of micro Sawppy evolution today to send congratulations to the Mars 2020 entry/descent/landing (EDL) team on successful mission completion! As I type this, telemetry confirms the rover is on the surface and the first image from a hazard camera has been received showing the surface of Mars.

Personally, I was most nervous about the components which are new for this rover, specifically the Terrain Relative Navigation (TRN) system. Not that the rest of the EDL was guaranteed to work, but at least many of the systems were proven to work once with Curiosity EDL. As I read about the various systems, TRN stood out to be a high-risk and high-reward step forward for autonomous robotic exploration.

When choosing Mars landing sites, past missions had to pick areas that are relatively flat with minimal obstacles to crash into. Unfortunately those properties also make for a geologically uninteresting area for exploration. Curiosity rover spent a lot of time driving away from its landing zone towards scientifically informative landscapes. This was necessary because the landing site is dictated by a lot of factor beyond the mission’s control, adding uncertainty to where the actual landing site will be.

TRN allows Perseverance to explore areas previously off-limits by turning landing from a passive into an active process by adding an element of control. Instead of just accepting a vague location dictated by unknown Martian winds and other elements of uncertainty, TRN has cameras that will look at the terrain and can maneuver the rover to a safe location avoiding the nastier (though probably interesting!) parts of the landscape. While it has a set of satellite pictures for reference, they were taken at much higher altitude than what it will see through its own cameras. Would it get confused? Would it be unable to make up its mind? Would it confidently choose a bad landing site? There are so many ways TRN can go wrong, but the rewards of TRN success means a far more scientifically productive mission making the risk worthwhile. And once it works, TRN successors will let future missions go places they couldn’t have previously explored. It is a really big deal.

Listening to the mission coverage, I was hugely relieved to hear “TRN has landing solution.” For me that was almost as exciting as hearing the rover is on the ground and seeing an image from one of the navigation hazard cameras. The journey is at an end, the adventure is just beginning.

[UPDATE: Video footage of Perseverance landing has shown another way my Sawppy rovers successfully emulated behavior of real Mars exploration rovers.]

“Surface operations begin” signals transition to the main mission on the surface of another planet. A lot of scientists are gearing up to get to work, and I return to my little rovers.

Perseverance Rover Interactive 3D Model

NASA released a 3D printable static display model of Mars rover Perseverance, which seems to have some improvements over the earlier Curiosity model. But that’s not the only 3D resource for the rover currently on its way to Mars. There is also a version designed for on-screen display rather than 3D printing.

Both the 3D printable (in STL file format) and 3D render (GLB file format) models were listed on the Mars 2020 rover page, which as of this writing has curiosity disappeared from the index page of NASA 3D resources. I’m not sure what’s going on there, but hopefully it’ll be fixed shortly.

When I listed 3D resources for Curiosity there was also a model suitable for 3D rendering. Available as download files for Blender the open source 3D graphics tool and as files embedded in a web page for interactive viewing. The latter is again available: The Mars 2020 mission page has a 3D model of Perseverance that we can interact within a web browser.

This browser interactive model is the most easily accessible version, there’s no need to install Blender or any other piece of software. It serves as an index page to many other pieces of information talking about the rover. While it has a lot of detail missing from the 3D printable model, it still has a few minor flaws. One of them I noticed only because I’ve been a fanatic of the rover: the online interactive rover’s right side wheels are reversed from the actual rover.

Perseverance, like Curiosity before it, has wheel spokes that are curved to absorb impact. I simplified the idea and translated it into a 3D-printable shape for Sawppy’s wheel. For both rovers, the direction of curvature for wheel spokes are the same for all six wheels, clearly visible in rover test footage. Shot in JPL’s vehicle assembly bay, we can see that the wheel spoke curvature is “clockwise” on all six wheels of Curiosity and Perseverance.

On the online interactive 3D model, its left side wheels match the real rover but its right side wheels had been flipped so the spokes point counter-clockwise.

It’s a tiny detail that would only be noticed by the most particular of rover fans, which I certainly am. Surprisingly, I’m not the only one! Because I’ve received questions about whether Sawppy’s wheels should be printed in mirrored orientation. Some Sawppy builders choose as I did, to have six identical wheels matching the real rover. Others chose to mirror three of the wheels as the web page interactive model did.

UPDATE: As one of the items leading up to (successful!) landing, the power team responsible for the radioisotope thermoelectric generator posted a different browser interactive 3D model online. This model is tailored more for engineering information than looking good, with components in false colors for contrast. But it is FAR more detailed, including wiring harnesses for wheel drive and steering motors. It also wins on accuracy in my book, as I see the wheel spokes are pointing in the correct direction.

And an extra bonus on this version: it includes Ingenuity, the first aircraft built by humans to fly in the atmosphere of another planet.

Wheel Drive Motor Gearbox Swap for JPL Open Source Rover

It’s a lot of fun to run the JPL Open Source Rover across rough terrain, seeing its rocker-bogie suspension system at work. But it is possible to play too rough and break some gears in the wheel drive gearbox. Some rover builders on the forum who ran into this problem decided they wanted sturdier motors and upgraded all six drive motors to something bigger and beefier. I understand this upgrade was done for the JPL-owned example as well. But that can be an expensive proposition.

If a rover is not strictly required to traverse rough terrain, we can decide to stay with kinder gentler terrain. Returning to the official parts list we see they are Pololu’s item number 4888, 172:1 Metal Gearmotor LP 12V with 48 CPR Encoder. As of this writing, $35 each. The easy solution is to buy more of them but I hunted for a less expensive proposition.

My first question is: “Can we make replacement gears?” and I quickly decided it was not practical. These gears are too small for consumer grade FDM 3D printers to handle and demands more strength than 3D-printed plastic can deliver. I don’t have a machine shop with metal gear cutting equipment.

The next question is: “Can we buy replacement gears?” And I had no luck here as I didn’t know how to navigate the manufacturing industry landscape to find who might be willing to sell small numbers of these gears to individual consumers.

Following that: “Can we buy replacement gearboxes?” The best I found was a company selling them with a minimum order quantity of 1000. I suppose I could buy a pallet and go into business selling replacement gearboxes to rover builders, but that’s not my idea of entrepreneurship today. (UPDATE: While sharing this information to OSR forums, I found a vendor on Amazon(*) selling them at $16 each. For lowest cost, I also found a company on Alibaba willing to sell individual gearboxes as samples at $2.79 each.)

What’s left? Well, Pololu’s product chart shows item 3256 is the same motor and gearbox, but without the encoder. As of this writing, these are $20 each, a significant discount for not buying another encoder.

It offers a lower cost alternative to direct replacement. I had two broken gearboxes on hand. They correspond to the two front wheels on a rover that took too big of a drop off a curb. I bought two #3256 gearmotors without encoder, and swapped their gearboxes out with the rover’s two #4888 gearmotors with encoders, bringing the rover back up and running.

(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

4S LiPo Battery Tray for JPL Open Source Rover

As of late August 2019, the official JPL Open Source Rover specifications call for this battery pack. Based on specifications listed on that page, it appears to be built from 18650 Lithium Ion battery cells in a 4S2P configuration. (4S2P means four cells in series, two sets of them in parallel, for a total of eight 18650 battery cells.) The key feature that made this pack desirable for JPL is the extra safety it offers: this battery pack features an integrated battery protection circuit board backed up by a polyswitch. This is great protection against battery abuse such as over-charging and over-discharge including short circuits. Like many facilities working with leading edge engineering, JPL had its own experiences with runaway batteries so it’s no surprise they would recommended the safest thing available.

The safety, however, comes at significant cost as the pack costs over double that of a commodity battery pack popular with remote control vehicles. (Multi-rotor aircraft, monster trucks, etc.) And that’s before factoring availability and its impact on shipping costs. The rover specifications already include a 10A fuse on board, plus a power monitoring module that can be programmed to sound an alert when the battery has been discharged too low. This provides a baseline level of protection so rover builders like myself can choose to forgo the belts-and-suspenders safety of a premium battery.

But in order to use commodity battery packs, we’ll need a different battery tray, and that’s where this project came in. It also makes the battery more easily accessible via a rear door for charging, replacement, or in the worst case scenario, yank it out of the rover quickly in an emergency.

This battery tray was designed for a 4S LiPo battery pack (*) with a hard outer shell for physical impact protection, and the tray bolts on to the bottom plate of rover body. CAD file is an online Onshape public document for anyone to modify to suit different battery packs. For those who don’t need to make modifications, ready-to-print STL (and DXF for updated rear panel) have been posted on Thingiverse, and a video walkthrough has been posted to YouTube:

(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Tool-less Corner Steering Motor Cover for JPL Open Source Rover

While building a JPL Open Source Rover, I would put the rover chassis in many different orientations in order to better access whichever part I was working on at the time. I’ve experienced recurring problems with the default corner steering motor cover popping off under sideways load, which happens when I have the rover on its side or on its back. The motors themselves are relatively robust but the wiring terminals at the end are fragile and difficult to repair if broken off. So I’d like to keep them protected as I work on other parts of the rover. I know I’m prone to accidental bumps that, thanks to Murphy’s Law, tend to impact the fragile and difficult to repair parts of my project.

Thus the motivation for this quick 3D printing project: an alternate design for steering motor covers. I had the following project goals:

  • Easy to print, without overhangs that would require support.
  • Tool-less installation and removal
  • Robust against sideways forces
  • Round shape to reduce chance of catching on obstacles.

In order to take advantage of nature of 3D printed parts, it was broken up into two pieces. The inner clip is printed at an orientation suited to clip onto the Actobotics aluminum rail without worrying about layer separation. The cap is printed at an orientation that makes it easy to print without supports. Separating the cap from the clip also makes it easy to create variants on the cap without worrying about compromising the Actobotics clipping capability.

With these caps installed on my corner steering motors, I was able to work in various orientations without worry of the cap falling off. I could also move the rover about and, thanks to the round surface, the cap is unlikely to catch on things and fall off. So even if a rover ultimately has plans for other caps, the round cap is still useful to have installed during construction and maintenance.

I’ve released this design on the JPL rover builder’s forum, hoping others would find it useful to build upon. The original CAD is a public document in Onshape, the read-to-print STLs have been uploaded to Thingiverse, and a video walkthrough explaining how it works has been posted to YouTube.

3D Printed Spacer For Rover RoboClaw

A 3D printer is not a fast worker, but as slow as they are, they are still faster than waiting for shipping. This means owning a 3D printer can sometimes be a convenience feature, unblocking project progress while real objects are in transit or perhaps substituting them entirely.

While following the current iteration of JPL Open Source Rover instructions, I was tripped up by an error in the parts list reference. As a practical matter, it meant I didn’t have the aluminum spacers on hand to mount RoboClaw motor controllers to the rover mainboard. Once I understood what was going on and filed the issue on Github, I ordered correct parts from McMaster-Carr and they will arrive in a few days.

But what do I do in the meantime? If I’m not able or willing to wait for the correct spacers, I can design and print my own. It is a very simple shape and a small part that will be quick to print. I didn’t model the threads but it would have been too fine to print anyway – the screws will just self-tap into 3D-printed plastic.

Here are 3 printed and 1 metal spacers on a test run on the rover mainboard, before I installed a RoboClaw to verify all parts worked as planned.

RoboClaw spacer 3P1M

While these plastic parts are weaker than the proper aluminum bits, in this particular application I don’t expect the material strength differences to matter. What is far more useful is the fact they are here right now and I did not have to wait for an UPS truck.

Drilling Wheels For JPL Open Source Rover

Jet Propulsion Laboratory’s Open Source Rover uses six wheels adapted from Traxxas remote control trucks. Traxxas suspension has a hex shaped mounting point for these wheels, but the ServoCity motor hubs used by OSR does not fit. To bolt these wheels onto those hubs, rover builders need to drill two holes aligned with two diagonally opposite holes on the ServoCity hub. Precisely locating these holes may prove challenging, and some rover builders have offered their solution to the problem. This post outlines my approach.

The heart of my approach is a 3D printed jig that is clamped in a drill press vise. It is tall enough to accomodate one of these wheels, with a cylindrical tip that locates the center hole for the wheel. There are two holes on either side of this tip, corresponding to the locations where we want to drill. For setup, the vise and jig are positioned such that one of the holes are aligned with the location of our drill bit.

OSR wheel drill jig with wheel 1

Once aligned, a wheel is mounted on the jig and we drill our first hole. Once that is done we turn the wheel 180 degrees. We can visually align the newly drilled hole to the printed hole in the jig, or we can use another drill bit as a locating pin. Drop this drill bit through the just-drilled hole into the 3D printed hole in order to locate the wheel.

OSR wheel drill jig with wheel 2

This setup has room for improvement in terms of precision. The holes aren’t precisely the correct size so the location pin/drill bit has room to move. But it is sufficiently precise for the task at hand so I didn’t put in the time to revise the jig for additional precision.

The 3D printed jig is shared on Thingiverse, and a video demonstration has been posted to YouTube:



JPL Open Source Rover is Officially Official

OSR RocksBack in January of this year I joined a team of pre-release beta testers for a project out of nearby Jet Propulsion Laboratory (JPL). While not exactly a state secret, we were asked not to overtly broadcast or advertise the project until after JPL’s own publicity office started doing so. This publicity release happened two days ago so the JPL Open Source Rover is now officially public.

Our team members drew from SGVHAK, so we’ve been calling our rover SGVHAK rover instead of JPL open source rover. Past blog entries talking about SGVHAK’s customization were described as done in contrast to a vague undefined “baseline rover.” I’ve gone back and edited those references (well, at least the ones I could find) to point to JPL’s rover web site. Which had gone live a few weeks ago but that was a “soft opening” until JPL’s publicity office made everything officially public.

After SGVHAK team completed the rover beta build in March, I went off on my own to build Sawppy the Rover as a much more affordable alternative to a rover model. To hit that $500 price point, I had described the changes and trade-offs against SGVHAK rover but it was really against JPL’s open source rover. I’ve fixed up these old blog posts minimally – the references are now correct though some of the sentence structures got a little awkward.

As part of JPL’s open source rover project, they had established a public web forum where people can post information about their builds. To share our story I’ve gone ahead and created a forum thread for SGVHAK rover, and a separate one for Sawppy.

I look forward to seeing what other people will build.

Embedding an Instagram Post with BBCode Without Plugin

UPDATE: The media retrieval endpoint described below is no longer supported after October 24, 2020. See developer documentation here for details on how to migrate to a replacement endpoint. Thanks [Andrew].

Embedding an Instagram post is trivial on a WordPress blog like this one: copy the full Instagram URL (like and paste it into the visual editor window. Behind the scenes, that URL is parsed to create an embed as shown here.

There are similar plugins to add an tag to a BBCode-based web forum. But what if a forum does not have such direct support installed? This was the case for the web forum set up as community driven support for JPL’s Open Source Rover.

On every Instagram post, there’s an “Embed” option that will bring up a chunk of HTML (which links to some JavaScript) to create an embed. However, a BBCode based web forum does not allow embedding arbitrary HTML like that.

Time to read the manual which in this case is Instagram’s developer resources page about embedding. They prefer that people use the fancy methods like that chunk of HTML we can’t use. But way down towards the bottom, they do describe how to use the /media/ endpoint to pull down just an image file with no active components.

Instagram Rover L

This is simple enough to use within the BBCode [IMG] tag. Then we can surround that image tag with a [URL] tag to turn it into a link to the Instagram post.


It’s not as fancy as the full embed code, but it does get the basic point across and provides an easy way to access the original Instagram post. Good enough for a SGVHAK Rover post on the JPL OSR web forum.

Github Seems To Have Stopped Showing STL Changes

A few years ago Github courted the 3D printing crowd by offering a 3D model viewer to see STL files, and then added a feature to visualize differences between revisions of STL files.


One of the reasons I put Sawppy STLs on Github is for people to see parts in their browser without having to install any software. I thought it would also be cool for people to see parts as they evolved. When I first started playing with putting STL files on Github, I thought this was a great way to track changes across major revisions.

Unfortunately, the revision visualization module seems to be gone. The 3D model viewer is still there so the primary motivation for putting STLs on Github is still good. But when I try to view file changes, the changes are no longer shown. The official help documentation still talks about the feature, it just doesn’t seem to work.

I liked seeing STL diffs visually and it makes me sad the feature is now inaccessible.

Road to Sawppy is Paved with Plastic

Today our Sawppy storyline on this blog has caught up to Sawppy version 1.0. The mechanical design for the six-wheel chassis has matured enough that it is a sufficiently functional platform for future projects. We still have mechanical tasks to do ahead of us: the camera mast still needs work, and Sawppy needs a robot arm like the real rovers. But the mechanical work will take a pause, so refinements in electrical design and software can catch up.

As part of declaring version 1.0, the assembly process has been documented on Github in the hopes that other people will build their own Sawppy. I know there’s interest but I don’t know how that interest will translate into action. It would be very rewarding for me to see other rovers running around.

The version 1.0 milestone also marks a time for housecleaning. I had been keeping all iterations of parts I’ve designed and printed on this project in a big bucket of fail. This is occasionally useful when I need to refer back to what I did for comparison to see if I’m actually improving the design. It was also useful to dig up for illustrating various posts on this blog as I tell Sawppy’s story. Now that I’ve completed documentation on Github and told the story of Sawppy evolution on this blog, it’s time to discard them.

But before we do that, a big group picture of all the retired parts with Sawppy the Rover version 1.0.


Sawppy the Rover Receives WiFi Upgrade, Increases Range

Sawppy is now back up and running with all its 3D printed parts recreated in MatterHackers PETG plastic. While the pieces could be replaced piecemeal, I decided to take everything apart and reassemble the whole thing so I could take pictures along the way and document the assembly process. Since I was basically rebuilding the rover from scratch anyway, I performed another upgrade: the compact Netgear WiFi router previously installed has been replaced with larger dual-band unit, the Asus RT-AC1200. Test drives have proven the new router gives Sawppy significantly more range!

Sawppy can now rove a decent distance from its handler. Far enough that it’s no longer easy to see exactly which way the rover is pointed, and we need to occasionally refer to Sawppy’s on-board camera video feed to see what’s going on. In the picture below, John is holding his phone showing the video feed while Emily is on the driving controls. This picture was taken as Emily drove Sawppy back towards us. In the relatively quiet RF environment of this industrial park, Sawppy can drive about three times further away than the distance shown in the picture before wireless communication suffers occasional data dropouts.

This range test proved that Sawppy can get far enough away that driving it around becomes a team activity: one to monitor the situation and another on the controls. This is more than enough range for most of our purposes.

What’s still unknown is Sawppy’s tolerance of noisy RF environments. That test will come, eventually…

Sawppy Pilots

Reclaiming Bearings From 3D Printed Parts: Round 2

Now that PETG is up and running smoothly on my printer, it was put to work reprinting all Sawppy parts so I could replace the existing PLA parts with PETG parts. Retiring parts means throwing away things like heat-set inserts, but the bearings could be recovered. I originally designed a few holes into the parts to make bearing removal easier, but I’ve since realized those holes are unnecessary. Plastic — both PLA and PETG — are soft enough for the bearings to flex and move inside their assigned positions. This flex allows us to work bearings loose by twisting a shaft inside the bearing.

Bearing Extraction

I tried describing this with words but my vocabulary really isn’t up to the task. Here’s a video to illustrate the technique.

This works well enough I think those bearing removal assist holes I added before are now unnecessary. I’ll probably remove the holes on my next revision of rover parts so it looks less like a piece of Swiss cheese.

Problems Printing PETG With Monoprice Maker Select (Wanhao Duplicator i3)

The first experiment in PETG was printing a servo coupler. It was small, printed at 0.1mm layer height. After the success of that initial experiment, I set the printer to work on a Sawppy rover wheel overnight at 0.3mm layer height. It did not turn out well.

First Complex PETG

Little bits of extraneous PETG strings all over the place! Stringing is usually credited to poor retraction settings, but that’s not the whole story here. Once this print gets above the first 20mm and no longer printing the center hub, it no longer performs any retracts – the wheel is printed in a continuous motion without retracts.

What these strings actually demonstrate is not poor retraction, but very poor layer adhesion. As the print head circles the perimeter laying down filament, it’s not all sticking and instead dragging along little bits of PETG causing these strings. It’s not very visible from this camera angle, but there are visible gaps between layers. And the layers came apart with only minor physical handling.

The layers came apart more easily in the middle sections. This was puzzling – what problem would be worse in the middle of the night but magically recover by morning? The answer: ambient air temperature. Apparently PETG needs more time than PLA to properly bond with the previous layer, and when cooled too quickly it won’t bond. I can’t change the weather on command, but I could turn off the print cooling fan.

Turning off print cooling helped somewhat, but it was not the whole solution. PETG melts less easily than PLA, which is a desired feature when it comes to rover parts that don’t deform under heat. But that attribute also creates printing headaches. The 0.1mm layer height print bonded well but the 0.3mm print did not, leading to the hypothesis that the print nozzle couldn’t melt PETG fast enough to deliver triple the volume of plastic.

To test this hypothesis, the print speed was cut to 1/3 of previous speed. The test object worked well, but this print speed is not acceptable. It would turn a rover wheel from an 8-hour print project to an all-day 24 hour print!

Another test is to turn up the heat on the nozzle, hopefully a hotter nozzle will melt PETG more quickly. This worked… briefly. It got too hot for the liner and it deformed, jamming the print path.

Damaged PTFE liner

The liner was original so perhaps it was just time for a replacement anyway. But when the replacement liner also jammed up within a few prints, I knew this was not going to work.

Given these data points, the hypothesis of “hot end couldn’t melt PETG fast enough” has merit. We know slowing down works, but is unacceptably slow. We know heating up works, until the liner quits.

I was not willing to accept the slowdown, so the alternative is to upgrade the hardware.

Sawppy at Hackaday LA

Sawppy at Hackaday LA

I brought Sawppy the Rover to the June 2018 meet for Hackaday Los Angeles. As is typical of these events, there were two scheduled speakers who gave half-hour talks then the floor opens for anyone present to do a quick 2-minute “Lightning Talk”. I presented Sawppy the Rover to the Hackaday LA audience.

I remember the first time I signed up to do a Lightning Talk months ago and was horribly nervous. I still get nervous when it came time to hold the microphone and speak to the crowd, but it gets a little bit easier every time I do it. I really appreciate the opportunity to practice public speaking in little 2-minute chunks.

The audience seemed to really like Sawppy. When I started driving my rover down the center isle between the chairs, a lot of cell phone cameras came out to take quick snaps. Several people came up to ask for more details afterwards during the socializing session, including Jacob who just bought a book that’s all about Curiosity and is at least as big of a fan of the Mars rovers as I am. Jacob says he wants to build a Sawppy of his own, and I said I’m happy to help his efforts. There was also a little boy who seemed to be around 7 years old, asking questions about Sawppy that were far more sophisticated than I had expected of that age. I was definitely impressed.

At least one of those cell phone pictures has already made it online. It’s not exactly being internet famous but I’ll happily take it!

Monoprice Maker Select (Wanhao Duplicator i3) As Rover Workhorse

The story told so far of Sawppy the Rover is about its development and construction, and that story has reached the point where Sawppy is running into shortcomings of PLA plastic. The next step in that story is to look into rebuilding Sawppy in PETG plastic, but before we take that step, I’m going to rewind a bit and tell a different aspect of the story.

The story of the 3D printers behind the rover parts.

A very deliberate design goal for Sawppy is for it to be accessible to interested builders who don’t have a high end expensive 3D printer. Designing to be printable on low-end machines means avoiding printing parts that demand tight tolerances, so Sawppy uses pre-made gears and bearings instead of printing them. I’ve been pretty happy with my Monoprice Maker Ultimate (Wanhao Duplicator i6) but I know it is a few steps up from entry level. To make sure Sawppy can be printed on entry level machines, the best thing is to buy one and use it to print Sawppy.

So off we go to to buy an open-box Maker Select (Wanhao Duplicator i3) which is one of the most affordable Prusa i3 clones available on the market. There are cheaper printer kits, but ready-built printers don’t come much cheaper than these either in price or quality.

This is actually my second go at one of these printers. I had purchased a new (not open-box) Maker Select before as a relative 3D printing beginner and it printed well for a month. But a few days out of the 30-day satisfaction guarantee period, the control box started filling the room with smoke of burnt electronics and it never powered on again. I returned that machine under the 1-year warranty and used the store credit towards the Maker Ultimate I have now.

This time around, in exchange for the open-box discount, I fully expect a problematic printer. People don’t return 3D printers for no reason, so it’ll be a complete luck of the draw on the particular…. personality… of an open-box 3D printer. And this time around, with a year of 3D printing under my belt, I hope to better able to deal with printer issues.

I expected an adventure, and I got one! This is the story of an open-box printer that was (eventually) able to print PETG parts for Sawppy the Rover version 1.0.Monoprice218641

Sawppy the Rover’s PLA Wheels Deformed Under Heat

Sawppy tearing up its right-front steering coupler was the most obvious attrition from spending a day showing off to JPL employees. There was another problem less visible to casual onlookers: Sawppy’s wheels were slowly deforming under the southern California sun. By the end of the day, some of the wheels were decidedly out of round.

Out of round PLA rover wheel

The 3D printers that printed Sawppy’s parts were loaded with Monoprice’s PLA plastic filament. PLA plastic is relatively cheap, easy to print, and rigid which makes the material good for prototyping mechanical components. Part of why it is easy to print is that it is easy for the print head to melt the material for extrusion then quickly solidifies into the proper shape. The downside of this “easy to melt” behavior is that it doesn’t take a lot of heat before PLA plastic softens. Sawppy’s thin delicate wheels couldn’t hold their shape after spending a few hours on sun-heated concrete and asphalt.

Earlier tests indicated the rigidity – and corresponding brittleness – was a weakness of printing these wheels in PLA. Now we can add lack of temperature tolerance to the list. It was not surprising but still mildly disappointing to see PLA distort.

Given this experience with brittleness and deformation under summer sun, we have motivation to look into a more ductile plastic material that is less likely to deform in the summer. The first candidate is ABS plastic, which I’ve tried to print before without much success. The second candidate is MatterHackers PETG, which is a favorite among local makers.

Now I have motivation to give it a try.

The Curse of the Right-Front Rover Wheel

During JPL’s IT Expo, Sawppy was on display and roaming around. Partway during the day, when setting up for a photo shoot, a shaft coupler tore out of Sawppy’s right-front steering servo. This was embarrassing and Sawppy limped along with some field repairs until the end of the day when we could analyze its failure and devise a path forward for all of Sawppy’s servos, not just the front-right wheel steering that failed.

On that day, the baseline JPL Open Source Rover was on display but was not driving because one of the steering couplers had failed on an earlier JPL outreach event and has yet to be repaired. Which wheel failed? The right-front wheel.

Even earlier – when the SGVHAK rover was just about to make its debut at SCaLE, a test drive session damaged the gearbox in one of the steering mechanisms. This required a short-term servo hack to get the rover back up and running in time for SCaLE. Which wheel was damaged and needed the hack? The right-front wheel.

Rover Servo Steering Hack

Spirit, one of the actual rovers on Mars, has a recurring mechanical issue with one of its wheels. Which wheel was it? The right-front wheel.

Four rovers, same problematic wheel.

There are likely some perfectly logical explanations for why this might happen, but to the irrational human mind, such stories are where superstitions are born.

Upgrade Servo Horn Fastener To Address Coupler Weakness

Sawppy the Rover’s steel shaft upgrade for bigger flatter detents, along with applying thread locking compound to set screws, was the final task completed before it was time to go visit JPL. Since Sawppy will be running throughout the day, I expected that the next weakest point in the system will surface. And indeed one did! The winner of “next weakest link in the chain” is the shaft coupler holding the servo horn to the steel shaft.

The coupler was 3D-printed and designed around the LewanSoul LX-16A servo and the servo horn mounting screws that came in its package. LewanSoul products using these servos are made of thin sheet metal, so these screws are very short. In fact they are exactly as long as the servo horn is thick, possibly to ensure that it’s impossible to accidentally fasten the servo horn into the servo body.

Unfortunately, what this also means is that when used to fasten a 3D-printed plastic part, there is not enough thread engagement for a good grip. So when one of Sawppy’s corner steering is over-stressed, the screws tore out of the servo horn.

This particular coupler design only used three screws. I tried to perform a field repair by fastening into alternate holes on the horn but that quickly tore out as well. By the end of the day we have this mess: a servo horn where every hole is damaged.

Chewed up servo horn

It’s clear that to accomodate a 3D-printed shaft coupler, we can’t rely on the short screws that came in the servo package. We’ll have to upgrade to something longer and these screws (McMaster-Carr catalogue item# 98685A220) look like good candidates.

Longer screw for servo horn