Monoprice Maker Ultimate (Wanhao Duplicator 6) Dead Again But This Time It Was Not The Relay

My Monoprice Maker Ultimate (branded variant of Wanhao Duplicator 6) is dead again. This has happened before, but this time is different. Previously, the main 24V relay would die of overwork, and when that happens all stepper motor and cooling fan activity stopped while the display UI thinks it’s business as usual. This time around, the fans turn on but the display was dark.

Since the primary user interface was dark, the first order of business was to see if it’s just a dead display or if the problem went deeper. As a data point I tried an alternate control scheme: I put OctoPrint on my laptop and attempted to communicate with the printer via USB serial. This was only intermittently successful, and even when communication was established, it would quickly disconnect. So it’s not just the display that was dead, but the printer isn’t entirely dead, either.

Suspecting a bad power supply, all voltage output lines were measured and power levels would dip occasionally. Eventually we figured out something was causing the main system board to reset on a regular basis, and upon every reset, there would be a brief spike in power draw.

Diagnostics moved on to unplugging components one at a time from the control board to see which component is overloading the system. The printer powered on and stayed on once I unplugged the wires for the front control panel and display.

Maker Ultimate front panel disconnected

Removing the display and control panel, we took a closer look at the circuit board and found our culprit: component U3 has suffered some calamity that caused the chip inside to burn a hole in its casing.

Maker Ultimate fried U3

Judging by surrounding traces, U3 had some sort of power management role. It has either failed short, or it has failed open causing some other component to trigger a system reset.

With the display and user control panel disconnected, I could control the printer via USB using OctoPrint. However, this did not eliminate the random system resets, it just made it much less frequent. Apparently there was more damage elsewhere on the system. Unless the source could be found and repaired, it will be time for an upgrade of this printer’s main control board.

Repurposing Broken 3D Printer X-Axis To Use As Z-Axis

It feels like a lot longer than three years ago, but that’s when I started my adventures in 3D printing with the Monoprice Select Mini 3D Printer. It was limited in print volume and print quality, but it served as a good introduction to 3D printing so I felt I understood the field enough to invest in larger and more capable printers.

My Mini was retired from active duty and sat in a box until I loaned it out to Emily for the exact same purpose of giving her an introduction to 3D printing. And just as I did, the introduction led her to purchase a larger printer and my mini went back into its box.

Now it has been pulled out of the box for a third tour of duty elsewhere. This time, I am trading it away. It is destined for local technology outreach events, and in exchange for my working but limited printer I’m receiving a non-working Monoprice Mini to tear apart. Here is my printer performing a test print to verify it still works, the final print it will perform in my possession.

MP Mini X axis

Before I agreed to this trade, I was ready to tear it apart for the sake of extracting its X-axis. That black horizontal arm is a small self-contained linear actuation unit: it has a standard stepper motor, guide rods with linear bearings, and a belt-controlled carriage. Plus a micro switch for axis homing, all inside an integrated stamped sheet metal unit.

I wanted to use this X-axis assembly as the Z-axis for our Grbl CNC project. And the timing of this trade is fortuitous, because now I’m not destroying a perfectly working printer. It is not going to be rigid enough to handle a CNC cutting tool, merely an incremental upgrade over the servo-controlled Z-axis. This allows us to take our first step towards a stepper-controlled Z-axis for our machine.

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.

A Shelf For CNC Console Computer

The first thing I wanted to address after a wobbly (but successful!) first run was placement of the control console computer. I didn’t have a good place to set the tiny laptop down. The machine may not look like it would take up the entire table, but once machine’s range of motion is accounted for, there’s not a whole lot of space left. During the test run, the laptop was literally on the ground next to the table. It would be useful to have a dedicated computer shelf.

The shelf was designed in two parts. The right side could be bolted to the end of an extrusion beam, but the left side didn’t have that luxury. I thought I would design it to clip on to the extrusion beam, but the first draft hooks were far too aggressive. I had to trim them back with a saw before I could fit the piece around the beam.

HAKCNC computer shelf overly agressive claws

Both hooks installed and ready to host the computer. The right hand hook was printed with the final filament from one spool and start of another spool of PLA. Even though I ordered from the same vendor (Monoprice) they have apparently changed vendors or specification and the new spool filament is visibly different.

HAKCNC computer shelf in place

At first glance this design may appear to be heavily cantilevered, with most of the weight on the front of the hook placing great stress on the mounting points. This is only true when the laptop lid is closed. When the lid is open, where this shelf mounts on the beams is actually very close to the center of gravity of the laptop.

It still needs to be able to accept some weight, though, since there’ll be physical forces as I type on the keyboard and use the trackpad. But PLA is plenty strong for this application, with very little flex even when I rest my wrists on the computer.

This shelf is probably not permanent, but it is nice to have a convenient shelf to hold the laptop while I figure out how to work the rest of this machine.

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.

Baby Fix-It Robot Stand for Amazon Echo Dot (3rd Generation)

I loved the 1987 film * batteries not included. Upon the 30th anniversary of its opening, I posted to Facebook introducing the film to friends who might not have heard of it. A friend who shared my love for the film commented that the little smart home speakers look just like the baby robots in the film. Thus was planted the seed of an idea.

This past weekend there was a sale on Amazon Echo Dot (*). It brought the price tag down to $22, well into my impulse buy territory, and I decided to turn that idea into reality almost two years after the original conversation.

The project goal was to create a 3D-printed stand holding the speaker along with a pair of googly eyes. The shape will not copy any of the three baby robots, but must be immediately recognizable as a design inspired by them. I also decided to keep it simple, resist temptation of scope creep. This robot will not be motorized. It will not articulate. I wanted it to be printable on any printer without supports, so I will break up the design into a few pieces that should be easily assembled. I’m not going to put any surface details (greeble) on the robot, instead opting for simple cartoony lines.

These decisions to keep things simple made it possible to hammer out the CAD design in a single evening. The basic pieces are simple geometry on Onshape. Generous use of chamfer and fillet gave it the illusion of a more organic shape, especially in the body and around the eyes. I started printing with a small test piece to verify I measured dimensions for the speaker correctly. The first leg did not snap into place correctly and neither did the first pair of arms so they had to be revised. This is actually an unusually low number of iterations required relative to most of my 3D printed projects.

Baby Fixit Base Echo parts

My friend Sophi Ancel who made the original comment loved the result enough to ask for a variant designed for Google Home Mini speakers that she actually owns. Giving this little Amazon Echo robot a sibling seems like a worthwhile follow-up project. For now, I’ve created project pages on both and Thingiverse.

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

3D Printed End Pieces Complete LED Helix Chassis

My LED helix core has been tested and working, but it needs additional pieces top and bottom for a fully self-contained package. I expect that eventually I’ll pack the interior of my cylinder with batteries, but for now it just needs to hold the USB power bank I’ve been using.

LED helix USB power bank base

The footprint for that power bank defined the center of my bottom piece, surrounded by four mounting screws to fasten this end piece to my just-completed core. A slot was cut in the side for me to tuck in the bottom end of the LED strip. Since this project is still developing, I expect to need to reach inside to fix things from time to time, so I cut a bunch of big holes to allow access, ventilation, and it’ll also print faster than a solid bottom plate.

LED helix top with handle and Pixelblaze mount

My cylinder’s top piece is designed to meet slightly different objectives. It shares the four mounting points, the outer diameter, and a slot for me to tuck in the top end of my LED strip. There were a few extra holes cut in the top, in case I needed an anchor point for zip-ties to hold down wires. I also added two segments curving towards the center to function as rudimentary handles for transporting this assembly. The final feature are two horizontal holes which will house M2.5 standoffs to mechanically mount the Pixelblaze board.

Pixelblaze V3 and M2.5 standoffs

Unfortunately there was a miscalculation and the top piece ran out of filament during printing, ending up shorter than I had planned for it to be. Rather than throw away the failed print, I decided it was close enough for use. I just had to drill my two holes for Pixelblaze mounting standoffs a little higher than planned, and now a few components poked above the enclosure by a few millimeters, but it’s good enough for completing the mechanical portion to support Pixelblaze experimentation.

Next step: configure Pixel Mapper to correspond to this LED helix geometry.

LED Helix Core Assembly

It was a deliberate design choice to build the top and bottom pieces of my LED helix separately, because I wanted to be able to iterate through different end piece designs. The core cylinder hosting most of my LED strip should stay fairly consistent and keeping the same core also meant I wouldn’t have to peel and weaken the adhesive backing for the strip. That said, we need to get this central core set up and running, dangling ends and all, before proceeding further.

LED strip helix soldered joints

Unwinding the LED strip from its spool onto this cylinder, I found one annoyance: this is not actually a single continuous 5 meter strip, but rather 10 segments, 0.5 meters each, soldered together. The solder joints look pretty good and I have no doubts about their functionality, but this seemed to affect LED spacing. The lengths varied just a tiny bit from segment to segment, enough to make it difficult to keep LEDs precisely aligned vertically.

LED strip helix 5V disconnect

Once held on to the cylinder with its adhesive backing, I cut the power supply line halfway through the strip by desoldering one of the 5V joints. (Leaving data, ground, and clock connected.) In the near future I will be powering this project with a USB power bank that has two USB output ports, one rated for 1A and other for 2A. Half of the LED strip will run from the 1A port, and the 2A port will run the remaining half plus the Pixelblaze controller.

Each end of the LED strip was then plugged into my USB power bank, dangling awkwardly, so I could verify all the LEDs appear to be illuminated and operating from a Pixelblaze test pattern.

Next task: design and print top and bottom end pieces. A bottom end piece to manage the dangling wires and hold that USB power bank inside the cylinder, and a top piece to mount the Pixelblaze.

3D Printed Cylinder For LED Helix

Translating the calculated dimensions for my LED helix into Onshape CAD was a relatively straightforward affair. This 5 meter long LED strip comes with an adhesive backing, so a thin-walled cylinder should be sufficient to wrap the strip around outside of cylinder. This cylinder will have a shallow helical channel as a guide to keep the LED strip on track.

That’s all fairly simple, but the top and bottom ends of this cylinder were question marks. I wasn’t sure how I wanted to handle the two ends of my LED strip, since wire routing would depend on the rest of the project. A large hollow cylinder is generic but the ends are task specific. I didn’t want to lock into any particular arrangement just yet.

Another concern is that an >18cm cylinder would be pushing the vertical limits of my 3D printer. Mechanically it should be fine, but it’s getting into the range where some wires would rub against structural members and filament would have to take sharp bends to enter the print head.

To address both of those concerns, I limited the central cylinder to 16cm in height. This would be sufficient to support all but the topmost and bottom most windings in my helix.  This cylinder will have mounting brackets at either end, allowing top and bottom parts of the strip to be handled by separate bolt-on end pieces. They should be much simpler (and faster to print) allowing me to swap them around testing ideas while reusing the center section.

Since this would be a very large print, I first printed a partial barrel in PLA to ensure the diameter and pitch looks correct with the LED strip actually winding around the plastic. PLA is probably not the best idea for this project, though, as bright LEDs can get rather warm and PLA softens under heat. My actual main helical barrel will be printed in PETG.

It was a long print (approximately 26 hours) and a long time to wait to see if it looks any good with my LED strip wound around it. (Spoiler: it looks great.)

LED Helix Parameters: Diameter and Pitch

A helix has been chosen as the geometry of my Pixelblaze LED project due to its straightforward simplicity: it turns a single line (the LED strip) into a three-dimensional cylindrical space. No cutting or soldering of LED strip pieces required.

The next step in the design process is to decide exactly what shape this helix will be. A helix has two parameters: the diameter of the cylinder it circles around, and the pitch or distance between each loop in the helix. I wanted my LEDs to be evenly distributed on my cylinder, so there were two options to build this grid: Make LEDs align vertically as they wind around the cylinder, or turn that grid 45 degrees for an alternating-winds alignment. The each have merits, I decided on vertical alignment. If I play with displaying marquee text on this cylinder, I thought it will give us crisper edges to individual letters. Horizontal alignment won’t be as crisp, due to helical shape, but we’ll see what happens when we get there. (In contrast: 45 degree alignment would be better at masking the overall helical shape, at sacrifice of inability to make a clean edge horizontally or vertically. That might be preferable in certain future projects.)

Vertical grid alignment for LED helix

With that decision made, we could calculate helical diameter and pitch based around space between each LED on my strip. 60 LEDs per meter is 1/60 = 0.0167 meter or 1.67 cm between each pair of LEDs on this strip. Maintaining an even grid means 1.67cm will also be the pitch of my helix. The desire to align LEDs vertically mean the cylinder circumference must be a multiple of 1.67cm.

LED cylinder parameters in Excel spreadsheet

I want to use the entirety of my 5 meter LED strip. So a smaller circumference would result in a longer cylinder, and a larger circumference a squat cylinder. I decided to find the size where the cylinder length is closest to its diameter, making it a cylinder that would fit well within a cube. A little math in Excel determined the closest match is to use 31 LEDs around the circumference, which results in a diameter of 16.4cm and length of 16.1cm. But for the sake of dealing with nice even numbers, I chose the adjacent solution of 30 LEDs around the circumference. resulting in the following:

  • 5 meter LED strip @ 60 LEDs per meter = 1.67 cm pitch both horizontally and vertically.
  • 30 LEDs around circumference = 15.9 cm diameter
  • 10 helical revolutions = 16.7 cm length

Next step: turn these calculations into 3D printable geometry.

My Monoprice 3D Printers at February 2019 RSSC Meeting

When I presented the story of my Sawppy rover project last month at the January 2019 meet of Robotics Society of Southern California (RSSC) I made an offhand comment about my 3D printers. Later on, in a discussion on potential speakers, there were people who wanted to know more about 3D printers and I offered to summarize my 3D printer experience in a follow-on talk. Originally scheduled for March, I asked to be rescheduled when I realized the March RSSC meet would take place at the same time as Southern California Linux Expo (SCaLE).

My talk (presentation slide deck) starts with a disclaimer that my experience and knowledge was limited. I started by explaining why I chose Monoprice printers backed by a short history lesson on Monoprice because that sets the proper expectations. Then I ran through my three Monoprice printers: the Select Mini, the Maker Select V2, and the Maker Ultimate. Each of these printers had their strengths and weaknesses.

Monoprice Select Mini

  • Simple low-cost printer that still covers all the basic concepts of FDM printers.
  • Closest we have to a “Fisher Price My First 3D Printer”
  • Recommended for beginners to find out if they’ll like 3D printing.

Monoprice Maker Select

  • Classic Prusa i3 design.
  • Easiest to take apart for modifications and/or repairs.
  • Recommended for people who like to tinker with their equipment.

Monoprice Maker Ultimate

  • Design “inspired by” Ultimaker.
  • Highest precision and most reliable operation.
  • Recommended for people who just want their equipment to work.
  • But price level approaches that of many other good printers, like a genuine Prusa i3.

I brought my printers to the meet so interested people can look them over up close. I did not perform any print demos, because I’ve almost certainly knocked the beds out of level during transit. Plus, I forgot my spools of filament at home. But these are robotics people, they can gain a lot just by looking over the mechanical bits.

Give The People What They Want: Wire Straightener Now On Thingiverse

My wire straightener project was focused on simplicity and reliability. There are no mechanical adjustments for different gauge wires or to correct for a 3D printer’s dimensional accuracy (or lack thereof.) Every adjustment had to be made in CAD by changing the relevant dimensions and printing a test unit. This requires more work up front, but once all the dimensions are dialed in, the single piece tool will never fall apart and will never need readjustment.

spool holder with two stage straightener 1600x1200

It also means the raw STL files generated by Onshape for my printer would probably not work properly for anyone else. For starters, it was tailored for my specific spool of 18 gauge copper wire. According to Google, 18 gauge translates to a diameter of 1.02mm. My calipers say my spool is 1.00 +/- 0.01 mm, slightly smaller than specified. It is then processed into G-Code by Simplify3D, my printing slicer. And finally that G-Code is translated into plastic by my printer, with all its individual quirks.

So while I was happy to share my Onshape CAD file, I resisted sharing the STL because it almost certainly would not work correctly and I don’t want people to have a bad experience with my design. But people ask for it anyway, over and over.

I have since changed my mind on the topic of posting the STL. I will post the STL, but never by itself. I will also post information describing why the STL is probably not going to work, link to Onshape CAD, and what people need to do to make their own. I foresee the following possibilities:

  1. People who don’t read the instructions will print the file as-is:
    • If it works for them – great!
    • If it doesn’t:
      • Abandon with “This design is stupid and it sucks.” – Well, let’s face it, I was not going to reach this audience anyway.
      • Maybe I should go back and read the instructions.”
  2. People who read the instructions:
    • Successfully fine-tune parameters to successfully make their own straightener – great!
    • Tried to follow directions, but encountered problems and need help – I’m happy to help.

Unless I’ve failed to consider something horrible, these possibilities have more upsides than downsides, so let’s try it. I’m going to share the STL files on the project page, and I’ve created a Thingiverse page for it as well.

(Cross-posted to

Onshape is Free For Makers, But They’re Less Eager To Say So Now

onshape_logo_mediumWhen I first discovered Onshape over two years ago, it was a novelty to see a capable CAD system run completely within my web browser. The technologies that made Onshape possible were still evolving at the time: on the client-side, web browsers had immature WebGL implementation that sometimes didn’t work, or worked unacceptably slowly. And on the server side, Onshape is an active participant in evolving AWS to work for them.

Now WebGL is a mature part of every popular web browser, including those at the heart of inexpensive Chromebooks. I’m old enough that the phrase “CAD Workstation” conjured up computer systems that cost as much as a car. With Onshape, a Chromebook can be a CAD workstation! Not a great one to be sure, but more than enough for curious learners to get started. (This page has more details on Onshape performance.)

This is why, when I started Sawppy the Rover, I switched from Fusion 360 to Onshape. Because I wanted Sawppy to be accessible to everyone, not just those who have a computer capable of Fusion 360. And I have continued to do so, not realizing another aspect of Onshape evolution had occurred.

This came up on my radar because of my super simple wire straightener project. I’ve shared simple tools before, but this one caught more attention than most thanks to a referral from Twitter (and another). I was surprised to see feedback in the theme of “I don’t have an Onshape account” and was surprised people felt it was a barrier.

When I first started using Onshape, their sign-on screen would direct people to a page where people could sign up for an account. On this screen, a free plan for makers and hobbyists was prominently displayed.

That has been removed, hence the confusion.

The free plan still exists, but it’s no longer on their “CAD Pricing” table and not mentioned in their “How to Compare Onshape Plans” guide. From the FAQ I inferred that it’s not even possible to sign up for a free plan directly, one would have to start a trial for the Professional plan, decline to pay, and be downgraded to the free plan. (I can’t test this hypothesis myself since I already have an established account on the free plan.)

I personally find this disappointing, but I’m not surprised. Onshape is a business and businesses have to be profitable or they’ll disappear. I’m a little afraid this might mean they’re working to phase out the free plan, but even in that case I hope they offer a subscription tier that’s priced reasonably for hobbyists on tight budgets.

Copper Wire Spool Holder With Straightener

Now that I’m warmed up to make circuit sculptures, it’s time for more practice. And for that practice, I’ll need wire and lots of it. Most of the projects I’ve seen are built from straight rods of brass that I could procure from the local hobby shop. However, I personally prefer the color of copper (though it will suffer from oxidation) and I can get copper wire fairly inexpensively in a large spool. But of course, that wire would need straightening.

Thus the next project: A holder for a spool of wire that includes a straightener. For reference on straightener, I looked at CNC wire bending machines of both the DIY variety and an industrial offering, both of which featured similar wire straightening mechanisms. Then I tried to replicate my own using my stock of cheap 608 bearings and metal 8mm shafts left from my Sawppy rover project.

Version 1 was a very simple base that laid out the five shafts in the arrangement I wanted. I neglected to consider wire behavior so they ended up getting caught under the bearing.

Wire straightener 1

Version 2 addressed that issue by raising its working surface so wire would not get under bearings. However, a 3D printer has problem holding precise tolerances and so shaft holes had to be drilled out before the shafts would fit. This changed position enough that final bearing spacing didn’t work well.

Wire straightener 2

Version 3 attempted to eliminate variability of shaft position by eliminating the shafts entirely – have bearings sit on 3D-printed posts. Unfortunately position errors were even worse!

Wire straightener 3

After stopping and thinking about the problem, I thought perhaps I’m over-complicating the device. As an introduction, I’m only dealing with 18 AWG wire. This is fairly easy to bend so perhaps I don’t even need bearings – simple shapes might be enough. Hence version 4 replicated the round (but not rolling) surfaces in a wave.

Wire straightener 4

Version 5 tried to improve by having a second stage with different spacing. This is an improvement. A mild one, but an improvement nonetheless.

Wire straightener 5

Version 6 integrated version 5 into a spool holder.

Wire straightener 6

Since I’m not using bearings, friction is quite high. It would not be acceptable if I were trying to build a CNC wire bending machine (a potential future project) but for manual use it’ll do for now. Using a pair of pliers, I can grab and pull on the end to give me wire straight enough for the next few projects.

Onshape CAD file is publicly available here. Adjust dimensions to fit your 3D printer’s characteristics, then export to STL for printing.

UPDATE: Onshape has a free subscription tier for makers, even though it isn’t as prominently advertised as it used to be.

(This page has also been posted to

Onshape In-Context Modeling For Phoebe’s Second Chassis

Digitally laying out major components of a project in 3D space is something I’ve done for many projects, from my FreeNAS Box, to Luggable PC, to Sawppy the Rover. Doing it again for to figure out a more compact layout for Phoebe’s second chassis wasn’t a big deal in itself. However, this time the exercise will have a much more direct impact, thanks to a relatively new feature in Onshape.

For my past exercises, once I had decided upon a layout I would take measurements of relative position and dimensions of spaces between them. I would then copy those numbers to new drawings and build parts from those drawings. This workflow is functional but feels silly. The layout information is in the computer, why can’t I use them back in the drawings for components?

I’m not sure what the answer is, but whatever they may be, they are no longer relevant: modern CAD software now offer the ability to take assemblies of parts and use information from the assembly in drawings. They go by various names. SolidWorks documentation refers to this as top-down design. Onshape calls their version in-context modeling. Whatever the name, it’s a system that allowed me to reverse my design process. In the first chassis, I built a simple plate and bolt parts on it as I went. Now with the help of in-context modeling, I’ve arranged all the components in a game of 3D puzzle before creating a chassis to deliver that arrangement.

Using in-context modeling, I don’t have to copy & paste dimensions and risk introducing errors in the process. I also have the option to move parts around my layout and have all design dimensions update automatically. That last part doesn’t work quite as well as advertised, though I’m not sure what’s fundamental problem and what are just minor bugs they’ll fix later. But it works well enough today for me to believe in-context modeling will have a role in all my future projects.

In Context Editing 2

(Cross-posted to

Phoebe’s Component Layout Is A 3D Jigsaw Puzzle

Phoebe’s first chassis was just a rough draft to get first hand exposure trying to get all the parts my TurtleBot variant needed to talk and work with each other. What that exposure taught me is I need to improve packaging space efficiency and create a much more compact robot. Only then could I satisfy the competing requirements of increasing ground clearance and lowering LIDAR sensor height.

To work on this puzzle in three dimensions, I started by holding parts up against each other. But I quickly ran out of hands to track all their related positions so I moved on to do it digitally. First I created 3D representations of the major parts. They didn’t have to be very detailed, just enough for me to block out the space they’ll need. Then they were all imported into a single Onshape assembly so I could explore how to fit them together.

In Context Editing

I turned the caster forward, as if the robot was travelling backwards, because that position represents the maximum amount of space it needs. My battery is the heaviest single component, so for best balance it needs to be mounted somewhere between the drive wheels and the caster. Relative to the first draft chassis, the battery was rotated to allow more ground clearance, but that also pushed the caster a little further back than before.

In the first chassis, electronic components like the Roboclaw motor controller and Raspberry Pi 3 were sandwiched above the motors and below the LIDAR. They’ve been moved to the front in order to lower LIDAR height. The lowest point of the LIDAR module – its spinning motor – was dropped in between wheel drive motors. This required turning the LIDAR 180 degrees – what used to be “front” is now “back” – but we should be able to describe that frame of reference by updating its corresponding ROS component transform.

(Cross-posted to

Simple Base for Neato Vacuum LIDAR

Since it was bought off eBay, there was an obvious question mark associated with the laser scanner salvaged from a Neato robot vacuum. But, following instructions on ROS Wiki for a Neato XV-11 scanner, results of preliminary tests look very promising. Before proceeding to further tests, though, I need to do something about how awkward the whole thing is.

The most obvious problem are the two dangling wires – one to supply motor power and one to power and communicate with the laser assembly. I’ve done the usual diligence to reduce risk of electrical shorts, but leaving these wires waving in the open will inevitably catch on something and break wires. The less obvious problem is the fact this assembly does not have a flat bottom, the rotation motor juts out beyond the remainder of the assembly preventing the assembly from sitting nicely on a flat surface.

So before proceeding further, a simple base is designed and 3D-printed, using the same four mounting holes on the laser platform designed to bolt it into its robot vacuum chassis. The first draft is nothing fancy – a caliper was used to measure relative distance between holes. Each mounting hole will match up to a post, whose height is dictated by thickness of rotation motor. A 5mm tall base connects all four posts. This simple file is a public document on Onshape if anyone else needs it.

Each dangling wire has an associated circuit board – the motor power wire has a voltage regulator module, and the laser wire has a 3.3V capable USB to serial bridge (*). Keeping this first draft simple, circuit boards were just held on by double-sided tape. And it’s a good thing there wasn’t much expectation for the rough draft as even the 3D printer had a few extrusion problems during the print. But it’s OK to be rough for now. Once we verify the laser scanner actually works for robot project purposes, we’ll put time into a nicer mount.

Simple Neato LDS base
Bottom view of everything installed on simple 3D printed base.

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

Charred Liner Needs To Be Replaced in Monoprice Maker Ultimate (Wanhao Duplicator i6)

I’ve had my Monoprice Maker Ultimate for about a year and a half now. It has been the workhorse behind many, many projects in that time. Including some fairly major projects Luggable PC (both Mark I and Mark II) and Sawppy the Rover. The major projects usually demanded around-the-clock printing for weeks on end, and the only real problem it has given me was the 24V relay that died. Twice.

Towards the end of getting Sawppy to version 1.0, I had been printing in PETG on my Maker Select, leaving the Maker Ultimate mostly unused in the home stretch. After I reached a pausing point for Sawppy, I came back to the Ultimate for a few quick prints because it was still loaded with inexpensive PLA…. and the print failed halfway from insufficient extrusion.

I had thought it was a clogged nozzle which wouldn’t be a big deal, but after clearing the nozzle with the 0.4mm drill bit and running the cleaning filament, the problem persisted. Fortunately, I recognize the symptoms from a hard-learned lesson on the Maker Select – the PTFE liner tube is damaged and needed to be replaced.

This particular liner tube wasn’t abused with high temperature like it was on a Maker Select trying to print PETG fast. But internet consensus seems to be that the liner tube is accepted as a wear-and-tear item that eventually requires replacement even under ideal usage. So – probably not indicative of anything wrong here, it’s just time.

Removing the jammed nozzle the printer immediately unveiled a charred tube.

Liner Charred

It took some heat and persuasion to remove the old tube, which stretched in the process of removal. We can see there was quite a bit of cruft welding the tube to the nozzle.

Liner Removed

Interestingly, there are two distinct and separate areas of browning. The print tip was expected. The middle charred section would be right around the length of the heating block and makes sense as one of the hottest sections this tube had to endure. It’s a bit of a surprise that we still have a little white section between them, though.

Anyway, it’s clear this tube has put in a long and productive career guiding filament into the nozzle, but it’s time for a replacement which brought the printer back up and running.

Titan Aero Upgrade for Monoprice Maker Select (Wanhao Duplicator i3)

In order to improve PETG printing performance, my open-box Monoprice Maker Select is receiving a hardware upgrade. The print head assembly (filament extruder and hot end) is being replaced with an E3D Titan Aero, a combination all-metal hot end and geared extruder.

For this first pass, the goal is to be as simple and nondestructive as practical so I could revert if things don’t work out. If this works, I can make things nicer later. Obviously, the first step is to remove my existing print head, leaving just the metal X-axis carriage assembly. Since I’m trying to be nondestructive, the goal is to fit into this space in the U-shaped metal and bolt onto existing holes.

Stock extruder hot end removed

To test for fit, I laid out parts for assembly. Some people are squeamish about using the print surface as a work surface, preferring to leave it as pristine as possible. I have no such qualms.

Titan Aero parts laid out

A few quick tests confirmed there is indeed space within the U-shaped metal to accommodate a Titan Aero. The hole for the actual nozzle doesn’t line up, though, which means the Titan Aero nozzle will have to dangle off to the side of the metal bracket. This wish for non-destructiveness will extract a price in the form of a small reduction in print volume. I decided the tradeoff is worthwhile for now. I designed & printed a simple adapter to mount the whole works on the existing metal bracket. The Titan Aero kit does not include a stepper motor, so I reused the existing extruder motor.

When I was just eyeballing the parts, I thought I could use the existing heater cartridge and thermister. The advantage of this approach is reduced wiring work and we wouldn’t have to change print controller configuration. Sadly, the heater cartridge is a tiny fraction of a millimeter too large to fit and thermister is an entirely different shape. So some wiring tasks and controller configuration changes had to be made. Since the long-term plan is to build a better chassis using these parts, I kept most of the wires for the heater and thermister with the hope the wires will be better routed in that future dream chassis. In the short-term, the wires are just coiled on top of the print assembly.

The final modification was to the cooling fan — when it was powered up for the first time, I heard how loud it was and said “Oh hell no.” I replaced it with a 40mm Noctua fan (*) which doesn’t move as much air but is far quieter. If the reduced air volume causes heat creep issues I’ll revisit this fan replacement, but for now I’m grateful for the silence.

Once the upgrade was hacked together, the printer can now easily extrudes PETG at decent print speed with 0.3mm layer height. I was initially worried about the adapter bracket holding up under the heat (it was printed in PLA) but the Noctua cooling fan seemed to be doing its job and things never get hot enough for the bracket to be a problem so I’m happy to leave well enough alone. I’ve got a rover to reprint in PETG.

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