Sawppy the Rover’s Folding Camera Mast

The tallest object on Mars rover Curiosity is a camera and sensor array mounted on top of a mast. During Curiosity’s journey from Earth to Mars, this mast was folded down for transport. As a motorized model of the rover, Sawppy will also feature a sensor-topped mast. And while packaging constraints aren’t as strict for a hobbyist rover model, it would still be very convenient to fold the mast for transport.

As a simple first draft, we’ll have a fixed non-folding mount for the camera mast, which is a piece of PVC pipe. This will serve as the fallback solution. If Sawppy doesn’t get an elegant folding solution, I could at least pull the PVC out of this non-folding mount for transport.

Mast - Fixed

With a fallback in place, let’s set goals of this project:

  • Use PVC pipe for mast structure.
  • Hollow center to run wires.
  • Fold and unfold without use of tools.
  • For sake of camera image, mast must be stable when raised.
  • Stability less important when mast is lowered.
  • Leverage natural flexibility of plastic to hold movable things in position.

The last bullet point turned out to be more difficult than expected. Our world is full of plastic spring clips, and familiarity lead to an incorrect impression it would be easy. It actually takes a fine control over dimension tolerances to make a plastic clip that flexes to allow movement yet clips tightly for a stable position. We also need good control over surface finish to create a mast hinge that rotates smoothly. Both are within reach of hobbyist level 3D printer but it takes effort.

The first few iterations focused on a rigid cylindrical collar over the end of the PVC pipe, and a U-shaped mounting block on the body that clips onto that collar. The basic concept is for the U-shaped mounting block to have indents that favor two collar positions. Raised mast and 90-degrees rotated lowered mast. The U should be flexible enough to allow the collar to rotate between these two positions, but rigid enough to hold collar position once it reached one of the indents, plus a smooth surface finish so collar rotates well between the positions. This proved challenging and all of these iterations were either too stiff to be moved, or didn’t hold tightly enough after mast is deployed.

Mast - U clip variations

After these failures trying to make a mounting block that can balance rigidity and flexibility requirements, the requirements were split up to separate parts so each can focus on their job. The mounting block will focus on being rigid, and springy flexibility will be delivered by a separate external clip.

This second design also had a back-up provision for a screw to hold PVC collar in place. This would fail to meet the tool-less requirement but it didn’t take much effort to add to the experiment. It turns out the screw position had too little leverage to hold things in place anyway.

Mast - External Clip 1

Since this mount block and PVC collar worked well enough to deliver rotational motion, design iteration focused on evolving the spring clip design. The clip got bulkier to help reinforce rigidity of the mounting block, but it also had a flexible clip for the PVC pipe placed so it had good leverage to hold the pipe in place without compromising the collar’s ability to reinforce the mounting block.

Mast - External Clip 2

This is still really crude but it covers the basic functional requirements. It’ll be good enough for Sawppy’s first public appearance at JPL. In fact it was good enough to elicit delighted appreciation from a JPL engineer whose day job is running the real mastcam on Curiosity. Of course, she told me I should motorize my mast mechanism because her real mastcam does. Maybe in a future iteration! I definitely intend to put more effort into polishing this mechanism.

Sawppy the Rover’s Own Wireless Network

So far all of Sawppy tests have been performed as a client of a nearby wireless network. But we won’t always have a network to connect to. Sawppy may venture where we don’t have access privileges to a nearby network or possibly go places where there is no network at all.

This problem was encountered before on the SGVHAK rover project. The Raspberry Pi 3 on SGVHAK rover were modified to become its own wireless network access point by following directions posted on Raspberry Foundation website. The downside of Pi configured to be its own network is that we lose the ability to connect to the internet. This is probably a problem that can be solved by diving deeper into Linux networking configuration but there was also the problem of limited power of Raspberry Pi’s on-board wireless hardware.

As an experiment to reduce configuration headaches and to increase wireless power range, a TP-Link TL-WR802N mini router was added to the rover chassis. Now Sawppy the Rover has its own wireless network, giving us the following advantages:

  • We can use Raspberry Pi in its default configuration – no need to reconfigure Raspbian networking stack.
  • A wireless router is already designed to work to establish both (1) a standalone wireless network and simultaneously (2) have the ability to connect to an external wired network. Plug in an Ethernet cable and Sawppy is on the internet, no reconfiguration required.
  • A wireless router is already set up to be secure. TP-Link may or may not have covered all the bases, but it is expected to be more secure than a Raspberry Pi configured by a Linux networking amateur.
  • A dedicated wireless router has a more powerful wireless antenna.
  • Additional modules can be added to Sawppy and communicate over local wireless network. For example, adding a commodity wireless IP camera.

The mini router is mounted to a stand bolted above the rear right corner. This location was chosen because that’s where real Mars rover Curiosity’s UHF communications antenna is mounted. Power for this little router comes from a micro-USB cable, so we could power it with another unit of the same power converter used to power the Raspberry Pi.

Mini router

The TL-WR802N is a nice compact solution that avoided having to mess with Raspbian (Linux) networking and, more importantly, the risk of doing it wrong. It was also more powerful than a Raspberry Pi’s on board wireless networking, but sadly not by as much as originally hoped.

Sometime in the future Sawppy will get a more powerful router for greater range, hopefully a dual-band unit to access the less crowded 5 GHz WiFi band. With more power and 5 GHz ability, Sawppy should have a better chance of tolerating noisy RF environments like SCaLE exhibit floor.

Laser-Cut Acrylic For Sawppy the Rover’s Equipment Bay

Up until this point, all the equipment inside Sawppy the Rover’s equipment bay has been installed onto the bay’s aluminum extrusion beams in an ad-hoc fashion. Sometimes they were zip-tied onto a beam, sometimes taped, and sometimes they sat on a small 3D-printed shelf. None of them were very robust and they all shared the problem they can be damaged by obstacles Sawppy is trying to climb over.

They were just temporary placeholder solutions until we could get access to a laser cutter to create a sheet of acrylic to serve as the bottom of Sawppy’s equipment bay. One was drawn up to match equipment bay dimensions in CAD and the file waited until laser cutter access was available.

Box bottom pre installation

Since the acrylic sheet’s dimensions came from CAD and not the actual box that has been built, it’s no surprise its installation exposed some assembly errors. This is a tale as old as engineering, made better (or worse) by CAD software. It fits in CAD!

Aside from overall dimension errors, there was also a problem caused by overlooking the room taken up by our M3 nut installation tool. Installation tool for panel wants to occupy the same physical space as installation tool for body corner. This doesn’t work very well in the real world. The real fix is to move fastener holes on the acrylic sheet. For now our workaround is to offset insertion tool and use only one of the M3 nuts.

Box bottom insert conflict

This first attempt fits well enough to proceed with Sawppy construction. Now we have a bottom panel to the equipment bay and components now have something nice to sit on.

But we have one final problem for today: laser cutting a sheet of clear acrylic means it is very hard to photograph. This picture tries to draw attention to the clear sheet with a hex wrench placed on top of the sheet. The hex wrench is not floating in mid-air!

Box bottom installed


Expandable Braided Sleeves Neaten Sawppy the Rover’s Wiring

After wheel traction was improved by a coat of Plati-Dip, focus turns to the other problem exposed by initial climb tests: serial bus servo wiring harness. First we have the functional problem of wires dangling and risk getting caught on obstacles. There are three wires in the bundle and it only takes one snagged wire to stop the fun.

We also have an aesthetic problem with the bundle. It was obviously assembled by an amateur with ill-fitting joints and unsightly transitions. The original idea was that we could tuck our wiring harness inside these aluminum extrusion beam’s channels, but the poor soldering job meant the wiring bundles are now too fat to fit.

The most obvious solution is to use more zip-ties to hold wires closer to suspension components, but there’s a downside to be aware of: zip ties grabbing tightly on wiring insulation is not good. Too tight, and it will chafe on the insulation and possibly cause short circuits long term. What we desire is a way to hold the wires in place, but not too tightly, distribute the fastening stress across all three wires (instead of whichever one happens to be ‘outside’) and give them a tiny bit of room to move around to avoid chafing.

The answer to all of the above wishes is an expandable braided sleeve. Sawppy the Rover is certainly not the first to have a need for wire management, and there are a wide assortment of sleeve materials and designs to choose from. For a serious engineering project, we’ll need to evaluate the material’s mechanical properties, thermal tolerance, and chemical resistance. But since a little hobbyist rover isn’t picky about such things, we’re going with a cheap PET variant from Amazon (*). In this particular instance, something cheap is far better than nothing at all.

Here are the two wiring harnesses (one for each side of the rover) in the middle of this wire management project. On top is the ‘before’ picture showing all its chaotic awkwardness, and below is the ‘after’ where braided sleeves have almost completely masked all the flaws. And with the eyesore factor eliminated, we can put them back on Sawppy’s chassis.

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

Plasti-Dipping Sawppy the Rover’s Wheels

Plasti-Dip is a spray-on flexible coating that has found a niche of car customization, which was how I encountered the product and used to turn ideas into reality. One subset of Plasti-Dip users take advantage of its temporary spray-on peel-off status to customize their car’s wheels, sometimes changing them around as often as other people change fingernail colors. It’s common enough that dip is available in “wheel kits” tailored for the purpose.

For automotive wheel customization, the dip goes on the metal with the rubber tire masked off from dip. I’m going to dip Sawppy’s wheels but doing the reverse – putting dip all around the outside perimeter of the wheel and by doing so, give Sawppy the rubber tire that it current lacks. The motivation comes from the fact Sawppy’s climbing ability is currently traction-limited despite the grousers printed on the outside surface. Experimentation has proved that 3D-printed hard plastic wheels lack grip against certain obstacles that I’d like Sawppy to climb. There are several ideas on how to improve traction on these wheels, the easiest one to try first is Plasti-Dip as there are a few spray cans on hand from earlier car projects.

Again as a reversal from dipping car wheels, I’ll mask off the interior surfaces. I had hoped this will give a nifty two-tone appearance, white innards contrasting with the outer coat of black dip. To accomplish this without tedious masking tape work, wheel covers were designed and printed.

Sawppy Wheel Dip 1 - Caps

They are installed to either side of the wheel on a 8mm steel rod.

Sawppy Wheel Dip 2 - Caps Installed

Plan A was to use an old rover wheel prototype as the base for a spray stand. This did not work as well as hoped because it meant the I had to move all around the stand in order to cover all sides of the wheel.

Sawppy Wheel Dip 3 - Stand

Plan B was to hold the steel rod and rotate it by hand during spraying. This dramatically reduced the effort but the results were uneven.

Sawppy Wheel Dip 4 - Handheld

Plan C worked the best – install 8mm rod into cordless drill chuck, set the gearbox to “Low”, and use it to turn the wheel at a much more consistent rate, which directly translated to a much more consistent coating.

Sawppy Wheel Dip 5 - Motorized

Sadly, all the effort spent on masking off the insides with wheel covers failed to deliver a crisp white/black contrast.

The first problem is a nature of 3D printing: gaps between layers are great at pulling liquids along with capillary action. Many of these gaps pulled liquid dip into various crevices between layers, resulting in an uneven coloration.

The second problem is user error. After a wheel was sprayed, it was set aside to dry and cure while the next wheel is sprayed. The smart thing to do would be to keep the wheels far away from the work area, or provide a divider, or at least make sure the work area is not upwind of the drying area. None of these occurred, which meant the white parts of the wheel now look really dirty thanks to overspray. Thanks to capillary action, a small droplet soaks in to make a big mess that is impossible to clean.

These are valuable lessons to remember if I try this again.

Sawppy Wheel Dip 6 - Overspray

Sawppy the Rover Conquers Backpack

Once Sawppy received its new power system that could deliver the amperage necessary for challenging climbs, it was time to see what the rover can do. Here’s video footage of a particular test where it climbed a backpack.


The most impressive part of this particular demonstration is the height of that backpack. At its highest point, the backpack was approximately double the diameter of Sawppy’s wheels. This was a little difficult to see from the angle of the above video, here’s a picture taken from a different angle.

Sawppy and Backpack.jpg

Credit for this climbing ability goes to the rocker-bogie suspension geometry copied from real rovers JPL sent to Mars.  It allows real rovers to roam a planet with no roads, and on this planet it allows little rover models to climb obstacles better than other wheeled vehicles of similar size.

While the suspension geometry is working marvelously, this series of climbing experiments exposed other limitations. Sometimes Sawppy’s servo motors do not have enough torque, and that is an understandable weakness of these $15 serial bus servos. Like we’ve said before: it’s a trade off for hitting its price target. Also, the wiring harnesses need to be better managed, it snagged on a few obstacles that the rover otherwise would have no problem climbing.

And lastly: grousers on these wheels only help in some situations. Sawppy’s climbing ability is frequently limited by lack of traction. The current design works well when there’s something for the grousers to grip – for example the rough texture of a backpack – but sometimes the grousers can’t find a feature to grip onto. This leaves us with the very limited friction of hard PLA plastic.

As an experiment to help Sawppy get a grip, we’ll try coating the wheel surfaces to see if we can improve traction.

Distributing Power Inside Sawppy the Rover

Now that Sawppy has a big battery pack sticking out the back, the next task is to think about how to distribute that power to internal components. This is not yet a big problem in Sawppy’s current configuration because we only have two things right now: the Raspberry Pi and the serial bus servo controller. But since Sawppy has ambition to grow in sophistication, it’s worth thinking about the problem while it’s still easy.

With two components, Sawppy already has two different voltage level requirements. The Raspberry Pi 3 requires regulated 5 volts up to 2.5 amps though fortunately that’s a problem with a known solution. The serial bus servos may draw up to 1 amp each. With ten of them on board, the potential maximum draw would exceed the capability of the voltage regulator used for the Pi. Fortunately the servos are OK with direct 2-cell lithium cell power so there’s no need to find a beefy voltage regulator.

One solution for rover power is to create a master power supply module that can regulate and deliver power required by each component. But at this point in Sawppy’s evolution, it’s too early to know what components never mind what power they want. It’s better to go with a distributed system where raw battery power is sent out and each endpoint is responsible for its own power regulation. This will mean lots of duplication, but it also offers freedom to swap things in and out for experimentation.

For the moment, that means the existing solution for Raspberry Pi will be used. That solves the electrical problem but physical robustness leaves something to be desired. We can’t leave wires dangling by their solder joints!

Flappy Pi Power

A 3D-printed enclosure was designed to hold both the step-down voltage converter and the micro-USB plug used to interface with the Raspberry Pi. They are now connected by a short segment of rigid wire, eliminating movement and a potential point of failure. Power input wires for the voltage converter now have a little bit of help against physical forces from the enclosure. It’s not full and proper strain relief but it’s a start.

Converter Enclosure - open

The two halves of the enclosure are held with zip-ties. Again, not a full and proper solution but much better than dangling wires and bare circuit boards. It’ll be good enough while Sawppy evolves.

Converter Enclosure - closed

Powering Sawppy the Rover

Once we had our first powered test drive (hooray!) It was time to address the most obvious problem it unveiled: the power supply. The test had used a small 2-cell lithium polymer battery pack that was over ten years old. Originally purchased for small lightweight remote-control aircraft, its capacity has diminished over time as lithium chemistry battery cells tend to do. Sawppy will need a higher capacity battery pack.

Remote control aircraft battery packs like the old unit on hand tend to be small, lightweight, and correspondingly expensive. Fortunately there is another remote control hobby niche that is less weight-sensitive and has power consumption profile nearly identical to Sawppy: remote-control off-road vehicles. The 1/10th scale monster truck category seems to have standardized on using a pair of 2-cell lithium packs so that’s what I bought.

A few accessories were purchased alongside the battery. First a pack of power switches so Sawppy can be turned on and off more elegantly than reaching in and unplugging the battery. To protect the battery, we’ll want an always-on and visible volt meter to monitor its voltage. To protect the rover, we’ll add a fuse holder in line with the battery and a variety pack of fuses. The battery pack is advertised to deliver up to 30C which is far more than any Sawppy component would want (or can tolerate.) Hence a fuse to cut power if there should be an unfortunate short-circuit.

Once all the parts were on hand, the next decision is where to put them all. Since Sawppy is intended to be a mechanically faithful model of actual Mars rovers, the answer is obvious: we’ll put our power system in the back, sticking out at an angle just like real rovers have their radioisotope thermoelectric generator (RTG). Sometime down the line we might print a cosmetic cover that makes it look more like the actual RTG, but for now we’ll settle for matching its position and orientation.

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

First Time Sawppy the Rover Rolled On Its Own Power

Once the serial bus servo wiring harness was soldered (twice, once for each side) they were examined with a multi meter for obvious mistakes: First to make sure there’s continuity across all the terminals that are supposed to be connected, and make sure the bits that are supposed to be separate are indeed independent. After that was verified, it was time to hook everything up and try it for real. All we needed was a Raspberry Pi 3 to run SGVHAK rover’s software (modified to command Sawppy’s serial bus servos) and finding an old two-cell lithium ion battery pack to power it all.

Once everything powered up, the rover could move but in a haphazard uncoordinated fashion because the steerable wheels weren’t pointing in the correct directions. Before it can move well, we needed to find and record their actual center position. In theory there shouldn’t be any work necessary because a servo knows its center position and all we need to do is line up with it. In practice, each servo has a tiny bit of error, each 3D-printed shaft coupler has a little bit of error, etc. Overriding all these little errors is the fact these steel steering shafts were cut by hand on a poor man’s lathe so the set screw detents on either end of these shafts don’t line up at all. All these sources of error add up and they’re why we needed the ability to adjust steering center position.

Once center positions were established, Sawppy was able to roll around on its wheels. There was still a lot of work to do but it was exciting to cross this threshold.

Servo Rover

Sawppy the Rover Needs Wiring Harnesses

With mechanical construction complete for Sawppy the Rover, the next thing to do is work on an electrical nervous system to drive this skeleton. First up: running wires for all ten LewanSoul LX-16A serial bus servos (*), six driving and four steering.

From an electrical design perspective this wiring is trivial. Each servo needs three wires: ~7.4V power from the battery, electrical ground, and a data wire over which they all communicate using 5V/ground TTL serial. Electrically they are all wired in parallel, and the physical shape of implementation is up to the builder.

The first option is daisy-chaining. Each servo has two ports that are electrically parallel so a single three-wire harness can go to one servo, then another harness can connect it to the next servo, and so forth. This works fairly well for small humanoid robots where there are a lot of servos in a line on a single robot limb, but it doesn’t scale very well to a rover with rocker-bogie suspension since there isn’t a convenient line to daisy-chain along.

The second option is run a wire from each servo to a central location in the rover’s body. This approach has the advantage of allowing us to use thinner wires. In other arrangements where multiple servos are hooked to a single wire, they may all be drawing power so wire gauge has to be beefy enough to meet the worst case power draw scenario even if it is rare. Giving each servo its own wire eliminates this power variability concern.

Each servo came with a short 10cm segment of wire for daisy chaining, which is not nearly long enough for Sawppy’s chassis. For reliability and neatness the best thing to do is to have custom long wiring harnesses built, but first we’ll try a few arrangements using parts on hand to figure out what works.

For the first build, each wire that came with the servo will be cut in half and additional wires spliced in to extend to length we need. A retired ATX PC power supply with lots of 18 gauge wire was scavenged for this project. Given the generous power capacity of 18 gauge wire, there was no need to worry about multiple servos drawing too much power for the wire.

The topology chosen for the first build is to mimic the topology of each rocker-bogie suspension assembly. When laid out it looks like a tree branch. This involves making a Y-shaped solder joint at each branching point, a task that’s just outside my soldering skill comfort zone. The solder joints look terrible to start but each one is a practice opportunity. By the end, the joints are halfway respectable. Or at least, not painful to look at.

From a physical functionality perspective, mimicking the physical chassis topology made sense. From a soldering task difficulty perspective, I’m not sure this was the best way to go. If I build a future revision I’ll try a different arrangement for comparison, but for now we have enough to proceed.

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

Differential Bar Brace Completes Mechanical Assembly of Sawppy Rover

After the assembly session at April 2018 Third Thursday SGVHAK meet-up, we could see the major outline of a rover but some parts were held only by friction and not yet properly fastened. Once everything was buttoned up, it uncovered a mechanical issue: there was a surprising amount of stress on the differential. Enough to bend its 8mm steel bar.

We need a brace to reinforce that bar.

The first version of the differential brace was made of four pieces – two pieces above the shaft, left-right and two pieces below. This was a beginner’s mistake that didn’t help at all against flexing because the stress went into narrowing/widening the gap between left/right pieces. Second version of the brace eliminated the left-right split and consisted only of two pieces – one above and one below the bar. Again, there’s some looseness in the gap between these two pieces, but a few M3 fasteners kept its flex in check so overall bending of differential bar was dramatically reduced.

Differential Bar Brace

With the differential bar enforced, mechanical assembly for initial build is complete. The rocker-bogie suspension geometry is fully active and now we can proceed to build the electric wiring harnesses we’ll need to bring Sawppy the Rover to life.

Sawppy Mechanical Assembly Complete

Sawppy Rover’s Negative Camber Traced to CAD Error

There were a few bumps in the road on the way to turn a rocker-bogie suspension idea starting from a side view in a JPL PowerPoint into a 3D-printed model. Here we’ll cover one particular error that didn’t surface until we had a physical prototype standing on its own.

When we put all the pieces together and held just by friction, we got a rough idea of how the rover will look. Since it was rough, there was no need to worry about minor alignments. Once things started getting buttoned down, though, weirdness become worrisome. Like this problem: the rover’s front wheels have a clearly visible negative camber. In this front view picture, it’s visible as a tilt to the left. In case the tilt is not visually obvious, look at where the wheel meets the table: it should be at the center of the wheel’s width, but the contact patch is actually to the left because the entire wheel assembly is tilted left.

Negative Camber

Negative camber is something occasionally seen on race cars that compete on maneuverability. It helps the tires “lean against” cornering forces at the expense of increased tire wear when going straight. There’s a whole car subculture of people who like to induce extreme negative camber into their cars for looks. And while I respect that people are free to do what they want to their own cars, I don’t care to do it to mine and I definitely didn’t set out to “stance” my rover. This is a bug, not a feature.

Tracing through CAD operations, the cause was pinned down to rotate operations performed on the suspension arm segment connecting rover body to front wheel. This aluminum extrusion beam is vertically tilted downward from the body to the joint, and also rotated horizontally to splay out away from the body. When I performed the vertical rotation followed by the horizontal rotation, I didn’t notice that the axis used for horizontal rotation was also affected by the vertical rotation. So I thought I was rotating about the vertical (Z) axis but I was actually rotating about an axis vertically tilted from Z. This oversight resulted in the camber.

Editing the transformations to make sure we rotate about the actual X, Y, and Z axis (instead of a rotated variant) resolved this particular issue. It’s just one example among many problems encountered while building a 3D printed rocker-bogie suspension.

Sawppy Rover Takes Shape at SGVHAK Meet

The April 2018 Third Thursday SGVHAK Meetup was a big day for Sawppy the Rover. It was the day a backpack full of 3D printed parts and a stack of aluminum extrusion beams met to take the shape that would become Sawppy.

At the beginning of the evening, Sawppy’s left-side rocker-bogie was fully assembled. This earlier assembly gave first hand physical feedback that its component pieces were overbuilt. The right-hand side suspension adopted the slimmed-down revision so we can compare side by side after the printed parts are assembled. The main body box and differential connecting the two sides were in a similar state – printed parts awaiting assembly.

[mle_makes] volunteered to help with assembly and the two of us started putting Sawppy together while chit-chatting with everybody else at the SGGHAK meet. Some of the discussions were motivated by people looking over the rover’s design and construction technique, and the positive feedback was a major encouragement for me to write it up for Hackaday.

Several hours of assembly later, we could definitely see the outline of a rover but the night was winding down and people started talking about leaving but not everything on the rover was buttoned up yet. It was close – we could taste it!

In order to show off to everyone who attended the meet, as well as letting [mle_makes] get some satisfaction for an evening’s worth of work, I decided to push the remaining assemblies together hoping they’ll stay together just by friction. It worked… somewhat. People at the meet got a lot more interested when they could see the rover in assembled state, even if it’s just loosely held together and has a tendency to fall apart every few minutes.

Sawppy Takes Shape

There are still a few more hours of physical assembly remaining before Sawppy can really stand on its own six wheels, but that milestone isn’t far away.

How Tightly To Bolt Onto Extrusion Beam? A Second Example.

A recurring design concern when using this construction technique of aluminum extrusion beams and 3D-printed connectors is how tightly the plastic parts should be grabbing on to their beams. In the theoretical world, we can precisely measure the forces these parts need to handle and based on that information, derive the number and location of fasteners. The real Mars rover Curiosity underwent this type of rigorous engineering study. But for our hobbyist-level Sawppy the Rover construction project, it’s an iterative process of trial and error. The previous post discussed Sawppy’s rocker-bogie suspension system components and how they were slimmed down for the second draft. This post talks about where the suspension assembly bolts onto the chassis.

This body mount point will take almost half the weight of the rover, so it definitely needs to be one of the strongest parts we print. Exactly how strong we need, though, is an unknown which meant the first draft is likely to be overbuilt out of caution. So when it came to extrusion mount, I saw the print orientation allowed the mount to completely surround the extrusion on all four sides and bolt onto three of them, and that’s what the first draft had.

This was proven to be overkill pretty much immediately with two important traits:

Making the shape completely surround the beam meant the only way to install/remove this mount is to slide the whole thing off the end of a beam. Which also means everything else bolted to that beam has to be removed beforehand. This makes it a huge hassle to experiment with different designs.

The second downside of a complete surround is lack of flexibility to adjust for the imprecise nature of 3D printed plastic. If the mount is in an open U shape, the opening can flex a little bit to help installation. When the mount is a closed O, there’s nothing to open and flex and help out. Which means if the extrusion beam slot is printed just a little small… the open end U-shape can make things work but the enclosed O-shape would get stuck

Too Much Extrusion Support

Which is exactly what happened to the test piece on the left: A scrap piece of extrusion was installed to test its fit inside the enclosed mount, and it was tight. After apply a little force in an attempt to help, the extrusion scrap is now completely stuck and will need to be cut free sometime down the line.

On the right, the second draft for suspension body mount with an open U-shaped beam channel that was successfully installed without trouble thanks to its little bit of flexibility. And while we gave up some strength by holding on to three sides (and bolting on to just two) in practice this piece seems strong enough for the task printed in PLA. In fact we might have room to slim it down a little further and reduce the number of fasteners as a future optimization.

Slimming Down Sawppy the Rover’s Printed Suspension Parts

When designing Sawppy the Rover‘s rocker-bogie suspension system, I wasn’t sure how strong the plastic interconnect parts needed to be. Once I had a rocker and a bogie connected, I could put some load on it in the real world. This physical experimentation showed the first draft was overbuilt. In the interest of reducing plastic filament usage and reducing print time, let’s slim things down a bit.

First draft interconnects held on to their aluminum extrusion beam over a distance of 50mm. This was reduced to 35mm which proved to be enough. Beyond reducing the length of extrusion bracket, the slim edition also makes the brackets thinner from 5mm to 3.5mm. Originally the 5mm thickness was intended for a 10mm M3 bolt to grab onto the extrusion tightly, but that under-estimated the thickness of our M3 nut installation tool. This oversight meant a 10mm M3 bolt hits the bottom of the rail before it can fully tighten against the bracket. By reducing to 3.5mm, we could use 8mm M3 bolts and they can tighten against the bracket without pushing against the bottom of the rail.

Shortening length from 50mm to 35mm and reducing thickness from 5mm to 3.5mm may not sound like much, but across all suspension components it cut print time and plastic usage almost by half.

The first draft rocker-bogie suspension was not thrown away, though. It was installed on the left side of the rover, and the second draft slim edition was printed mirrored so it could be installed on the rover’s right. It makes the initial chassis asymmetric and look a bit odd, but that’s fine. We can put up with a little oddness on our rover development chassis while we fine tune and polish.

The overbuilt first draft suspension on rover’s left side was eventually replaced with slim components. Here’s a picture of the left front steering joint: overbuilt first draft on the left, slimmer second draft on the right.

Slimmer Sawppy Connectors

Stress Testing Rover Wheel To Destruction

Once Sawppy the Rover‘s wheel design was verified to work for basic operations, it’s time to push it to find its limits. The wheel is designed to be strong enough to hold up rover weight yet have flexibility to absorb shock. The shock absorption spokes tried to turn 3D printed plastic’s weakness (relative to metal) into a functional advantage instead. But plastic has its limits… how much will it take?

This was not a rigorous laboratory test. There are no instruments documenting the quantity and quality of forces involved. It was a low-tech test manually handling the wheel until something breaks. Push, prod, squeeze, twist. Level of forces applied gradually increased, venturing well beyond “normal use” levels and well into “abuse”. Eventually I tried pushing the wheel from above and, using body weight, gradually increased pressure until a loud crack was heard.

What finally gave way was one of the spokes near where it joined the wheel circumference. This joint was designed to withstand compression, which it did very well. But when the wheel is compressed along one axis, it also expands along the perpendicular axis. This joint design did not fare as well in tension. The sharp corner where the spoke meets the wheel circumference focused stress, and that’s where it broke.

Sawppy Wheel Stress Test

The little wheel held up amazingly well! The kind of abuse it withstood before it finally gave way tells us there’s a significant safety margin beyond what would be considered normal rover operations. And even given this cracked spoke, the rover wouldn’t be crippled. This wheel would still be able to support some weight until we get around to changing it out for an undamaged wheel.

Another important factor in stress tolerance is the type of material. This particular wheel was printed with Monoprice PLA. In the spectrum of 3D printable plastic PLA is considered brittle and prone to cracks like this one. Eventually, though, what ended up motivating a switch to PETG is not brittleness but heat tolerance: PLA rover wheels soften and distort when it got hot.


Sawppy the Rover Emulates Wheel of Mars 2020

While searching for references on Curiosity’s rocker-bogie suspension geometry, I came across a high-resolution CAD rendering of JPL’s upcoming Mars 2020 rover. It was a useful reference for suspension geometry as it is largely identical to Curiosity’s suspension. But there’s one very interesting change: the wheel design was noticeably different for Mars 2020.

Mars2020Curiosity suffered wheel damage in its travels and it’s no surprise JPL took the lessons learned and equipped their follow-up rover with a different wheel design. Aside from lessons about reliability, there are also changes made to better match the terrain this rover expects to see in its mission area. Here on Earth our cars have different tires for different environments, so a Mars rover similarly gets wheels tailored to its mission.

Performance requirements are not nearly as stringent for an earthbound rover model, so we have the freedom to adopt either design based on preference. I decided to try printing a wheel inspired by Mars 2020 rover wheel design and see how it looks.

These wheels still have the same six spokes as Curiosity wheels, each a piece of titanium curved in a way that’s not easy to duplicate in 3D printed plastic, but we can still take inspiration. The article linked above mentioned the wheel proportions are slightly different, they didn’t provide exact numbers. So we kept the spokes and the proportions and changed the wheel grousers, which are gently curved instead of zig-zagged and there are twice as many of them. (24 vs 48.)

Sawppy wheel

Once printed, we can compare the wheels side by side. Curiosity-inspired design on the left, Mars 2020-inspired design on the right. I took it around for feedback from other members of SGVHAK and the response overwhelmingly favors the new Mars 2020 inspired design. So that’s what Sawppy and Rover will roll on!

Curiosity Style vs Mars 2020 Style

Design To Ease Reusing Bearings Pressed Into 3D-Printed Parts

(Update: I’ve found a better way to recover bearings for reuse. The post below is now obsolete, but will be kept around for laughs.)

Once general suspension geometry of Sawppy the Rover had been sketched out, it’s time to start building suspension components. The general construction technique has been documented, it just takes a lot of sweating the details to make everything work together as intended. Like any design endeavor, the first draft is never quite right and every part takes a few iterations to mature.

When a 3D printed plastic part turns out to be flawed for one reason or another, the plastic is effectively lost. Many people find this wasteful, some are working to recycle the plastic in some way, but nothing practical just yet. I’m not interested in recovering the plastic right now. The bearings I had pressed into the plastic components, however, are another matter.

Unlike the plastic, the bearings are easily reusable in follow-on design iterations of the part. Since the plastic is forfeit anyway, we can cut plastic apart to recover these bearings, but such cutting has to be done carefully to avoid damaging the bearing. It would be better if we can remove bearings in a way that’s more reliable and less likely to cause damage.

To help with this process, I’ve started incorporating access holes into suspension components that are useless to the rover itself. In fact, it might be a bit detrimental by weakening the component to some degree. The purpose of these holes is to provide physical access so there’s leverage to pry these bearings loose without cutting. Here’s one of the earliest steering knuckles (right) next to a more recent iteration (left) that provides an access hole to push bearings out for reuse.

Bearing Recovery Assist

In theory, once component design is final, these holes can be deleted so I can print a seamless and full strength part. In practice, I’m probably never going to stop tinkering with the design or, even if I do, I don’t foresee throwing away a perfectly functional part purely for the sake of printing one without the access port. I may release designs without bearing recovery port for others to print, but my own rover development chassis will always be Swiss cheese.

Copying Curiosity Rover Suspension Geometry for Sawppy the Rover

Now that we have a rover wheel that can drive and steer, it’s time to figure out how all the individual wheels relate to each other. This is the most important part of making a motorized model of Curiosity Mars rover: copying its sophisticated rocker-bogie suspension system. It is critical for appearance because a huge part of Curiosity’s unique look comes from its suspension. It is equally critical for functionality, as the suspension grants Curiosity its ability to traverse rough terrain. It wouldn’t be a model of Curiosity at all without its suspension!

On the flip side, copying Curiosity’s suspension also means taking on some of the trade-offs that made sense for Mars but not for Earth. The first example is that Curiosity’s suspension had to fold up for its journey to Mars, which our rover model would not need to do.

The second example is that the rocker-bogie suspension system is most capable climbing using the bogie, which is why JPL’s Open Source Rover (and ROV-E that proceeded it) had their bogie in the front. Curiosity has its bogie in the back. I asked why Curiosity is more capable going backwards than forwards and the answer was that Curiosity must be able to back out of whatever situation it gets into. If a little rover got stuck here on Earth, we can walk over and pick it up. If Curiosity got stuck on Mars, the nearest tow truck is many millions of miles away.

There are more sacrifices of similar nature, but since the model is intended to be mechanically faithful, we’re going to accept all these downsides of copying the design. So, onward to the internet to find references! While there are many pictures of Curiosity rover, it was unexpectedly difficult to get an isometric three-view drawing. The best I could find was in a JPL presentation MSL Rover Actuator Thermal Design (08-0699.pdf) for Spacecraft Thermal Control Workshop 2008. Page 6 of this slide deck had a good side view of Curiosity with major dimensions labeled.

This diagram became my primary reference for Sawppy the Rover. I copied it into Onshape as an image overlay and drew Sawppy’s component layout on top. This gave us a very high fidelity in the side view, unfortunately no similar top view diagrams were found so I had to guess using less precise images as reference. After some fiddling, I got a reasonable facsimile of Curiosity rover. Compare the rough sketch in Onshape with a JPL official photograph of Curiosity.



Comparison: Curiosity rover at JPL Mars Yard

Cropped Curiosity rocker bogie reference


Pros and Cons of Common Steel Shaft for Sawppy the Rover

Steer vs Drive Shaft

After the decision was made to use a common servo mounting bracket for both driving and steering Sawppy the Rover, the obvious next question is: why not use a common shaft design as well?

Consolidating to a common shaft design reduces the number of unique parts to keep track of, and has the potential to make fabrication easier. This reasoning made sense for servo brackets, who benefits from this commonality with no downsides.

Sadly, in the case of these steel shafts, there are functional downsides.

The servo side is not an issue. Since all servos use the same mounting bracket and coupler, the dimensions are obviously identical on that front.

The output side aren’t common and there are some minor reasons why. For the steering shaft, output section length matches the thickness of the steering knuckle. The driving shaft’s output section is longer, because it has to fit into the wheel hub as well as extending into the wheel itself for structural support. An experiment with a shortened shaft showed this length is an important guard against wheel torsional flex so we shouldn’t shorten it. Therefore a common shaft demands that the steering knuckle needs to be thicker where it meets the shaft. If we keep the existing mating location and extend shaft downwards, it reduces wheel clearance. If we move the mating location upwards, it increases the mechanical leverage of wheel load acting on the steering joint making its job harder. Both of these options are undesirable.

But the deal-breaker is the section in the middle – where the shaft is supported by a pair of bearings. The drive shaft has a short section in order to make room for the servo to be completely enclosed within the width of the wheel. Lengthening this section is not an option.

Neither is shortening the bearing support center section of the steering shaft. Forces coming in from wheel motion has great mechanical leverage on this joint and we want the bearings spaced apart to deal with this incoming torsional stress. There’s a chance the close spacing of the wheel shaft bearings might actually be sufficient to bear this stress. It might be worth exploring in a later version of the rover, but for the first edition we want to build it strong. Which means keeping shafts designs different with the steering shaft longer than the driving shaft.