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.

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.

039e6170-1c8b-11e3-8020-b3157840fcf6

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 with Parts

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.

First Simple PETG Print is a Success

Once the Maker Select reached “good enough” status it was back to work printing PLA parts for Sawppy in parallel with my Maker Ultimate. This allowed me to iterate through designs much more quickly and was instrumental in getting Sawppy built in time for its first public appearance at JPL’s IT Expo.

A few problems surfaced at this event, but the one that prompted a complete reprint of Sawppy was PLA deformation under Southern California summer heat. This is where the current 3D printer story line rejoins the rover construction story line. With this experience of plastic deformation, I now have motivation to try using a different material. There are a few options, and PETG presented the best tradeoff between temperature tolerance, ease of printing, and cost.

The first object to be reprinted in PETG were the steering servo couplers. This proved to be a weak point that needed to be addressed. The design was printed at 0.1mm layer height so the sideways hole for the M3 thread heat-set insert would have clear definition. (This turned out to be unnecessary – later couplers were printed at 0.3mm layer height and functioned adequately.)

I knew PETG had different requirement for printing, starting with print nozzle temperature. I started with my PLA print profile and dialed up the heat. In order to test layer bond in the print, and also to get a feel of PETG failure mode, I put the result in a vise and cranked the handle. I was happy to see PETG deformed rather than shattered as PLA would. Examination of the deformed object showed layer bonding is good. This is a good start for printing PETG.

PETG crush test

Rovers Gonna Rove at SGVLUG/SGVHAK BBQ

The annual summer BBQ for San Gabriel Valley Linux User’s Group (SGVLUG + offshoot subgroups like SGVHAK) was this past weekend, so obviously a few projects from the group made a showing too. This included our SGVHAK rover and my own follow-up Sawppy the Rover.

Sawppy joined the socializing first, hanging out next to some of the seats attracting attention from members who haven’t seen the motorized rover model before. (And some who have but just wanted another look.)

SGVLUG BBQ 1

Later in the evening, SGVHAK rover joined on the party. The rovers would occasionally run around sometimes at the same time and sometimes into each other. They sort of got into the way of people at times, getting underfoot like a big cat might. Fortunately nobody tripped and fell over a rover.

SGVLUG BBQ 2

This was Sawppy’s first public outing since conversion to PETG, a conversion motivated by earlier PLA parts that deformed under heat. This weekend turned out to be a great test since the entire region is in the middle of a record-breaking heat wave. And this time, Sawppy did not melt under the scorching sun.

Sawppy also got a few different pilots, as anyone who expressed interest was offered a chance to take the helm. Partially to share the toy, but also to get some time seeing Sawppy driven by people who don’t drive the same way I do. The intent was to probe for unknown areas of weakness – after all, this type of activity is how we exposed the weakness in SGVHAK rover’s original steering mechanism.

Fortunately no such flaws were found today. Sawppy survived the evening driving by multiple people (and running over things, and running into things) without any apparent damage. This is a very good endorsement of Sawppy’s design maturity.

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 Monoprice.com 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

Improve Motor Shafts With Larger Flatter Detents, And Apply Loctite to Set Screws

After roaming the backyard and other terrain over several days, the weakest part of Sawppy has been uncovered: the set screws holding couplers onto our steel motor shafts are losing their grip. A few of them are sliding off their designated positions, some of them are backing out.

The set screw detents on the shaft were made by passing a Dremel cutting wheel over the shaft as described earlier, and now we have first hand evidence that’s not good enough. We need to make the detents wider and flatter. Something closer to what’s described here. This isn’t a job for a Dremel cutting wheel, as a wheel has a circular cutting profile. What we need is something nice and flat and can bite into metal, like a file.

The first attempt to make bigger detents were holding the shaft by hand and running it back and forth over the file. This was not working. Finger strength isn’t good enough to hold shaft at constant angle, so instead of a flat surface we ended up with rounded surfaces.

Handheld filing no good

The second attempt brought a vise into the picture and flipped the arrangement around. Vise jaws hold the shaft, and hands hold the file. This delivered much better results.

File and vise.jpg

Here’s a set of before/after pictures. First the “before” image showing shallow and inconsistent detents cut with Dremel tool. Visible within them are circular indentations made by set screws – this particular pair of set screws had not yet started slipping and now we’re making sure they never will.

Detent - Before

And the same shaft, after using the metal file to cut flatter and deeper indents:

Detent - After

That was part 1 of the solution. Part 2 is to apply thread locking compound to our set screws. Loctite 242 was available at the local home improvement store.

Apply Loctite 242

If this isn’t good enough, we’ll upgrade to the more expensive Loctite 243 available at the local automotive parts store. According to the Loctite thread locker guide, 243 has a higher breakaway torque of 180 lb-in as compared to 110 lb-in for Loctite 242.

Before we do that, though, it’s worth running Sawppy around for a while to see what the next weakest point is. After bigger flatter detents and applying thread locker, the weakest point is probably not the set screws anymore.

Sawppy the Backyard Rover

The Google AIY Vision box installed atop the camera mast is mostly for looks and, once powered up, will run its own “Joy Detector” demo independently of the rest of the rover. Once physical mounting and electrical power for the box was done, attention returned to the webcam.

As a first step, the easiest thing to do is to attach it to the Raspberry Pi 3 sitting in the rover chassis via USB. This is never going to be the long-term solution. For remote operation, a Raspberry Pi 3 doesn’t have the grunt to do a good job at real-time video compression and streaming. For autonomous operation, a Raspberry Pi 3 doesn’t have the grunt to do a good job at image recognition and analysis. We hope the AIY Vision box can handle the latter role in the future, but that’s not where things are now. At the moment Sawppy is strictly a real-time remotely operated rover and what we want is live video.

One solution is to use a webcam that has onboard h.264 video compression hardware. Such cameras exist, but they are pricy, and getting the video stream out of the camera without its dedicated Windows software can get tricky.

The alternative is to sacrifice bandwidth efficiency to get a quick solution. It is relatively straightforward to pull individual frames out of a webcam in the form of JPEG still images, and it is computationally trivial to send them one after another in rapid succession to create a Motion-JPEG video stream.

It took less than an hour to get basic camera operation up and running on mjpg-streamer thanks to these instructions. We have a video stream that is crystal clear and we are not straining the Raspberry Pi 3 processor to do it. We are, however, putting a load on the wireless network because the 1280×720 Motion-JPEG video stream takes up about 30 megabits per second (mbps) of bandwidth. This is a tremendous bandwidth hog when considering Netflix can deliver full 1920×1080 high-definition video in less than 5 mbps.

But that’s something to be addressed later. In the meantime, it’s time for Sawppy to roam the backyard!

Backyard Explorer

Here’s the rover’s eye view:

Backyard Explorer

Sawppy the Rover’s Mast Cameras

With a crude but functional folding base for the mast installed, attention turns to the camera to be installed at the top of that mast. Mars rover Curiosity has an extensive sensor array on top of its mast, but at the moment we only have a HP HD 4310 webcam and frankly, it looks a little sad and lonely atop that camera mast. It certainly fails to present a profile reminiscent of Curiosity’s array. What to do?

Add another camera! And not just any camera, one of the most intriguing device to be widely available: the Google AIY Vision kit. I picked it up because it seems like a cool way to get started playing with Google’s neural network software development resources. It’s pretty amazing that something I can pick up at my local Target incorporates a programmable neural net processor. What an exciting time to play with technology.

But that’s still on the to-do list. Until them, this AIY Vision box is only running the default out of the box “Joy Detector” demo. It’s not clear if the capabilities of this vision processor would even overlap with anything that’ll actually be useful for an autonomous rover. In the meantime I shall express my optimism by bolting the box onto the camera mast alongside the webcam. Now the top of the mast looks better, with proportions more closely analogous to Curiosity.

Camera platform - front

Although the vision processor only has the default demo, I still thought it would be fun to have it up and running. Even if it’s not helping the rover understand its world (yet). Since the general-purpose computing portion of the kit is a commodity Raspberry Pi Zero WH device, we could build another microUSB 5V regulator module to power it.

Camera platform - rear

Now Sawppy the Rover can join the ranks of projects that incorporate an AIY Vision kit, with plans to make it do more, but just running the default “Joy Detector” demo for now. Like this cool owl perched on your shoulder and this robot dog.

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.

Braided Sleeve