Quick Print Xbox One X Vertical Stand

Reorganizing my video game console area, I’ve decided to reorient my Xbox One X so it stands vertically to take up less table area. The console was designed to handle this scenario for the most part. There is even a designed hint on which side of the console to use: only one of the two sides is flat enough for standing. However, it is not quite as simple as turning the console on its side, because there is an open cooling vent grille on that side.

Side of Xbox One X showing cooling vents

In order to elevate the console so air can still flow through those holes, a stand is needed. There are official stands available… but where’s the fun in that? I could 3D print something and there are several stands already on Thingiverse. But I didn’t think that was any fun, either. I much rather design and print my own, but how will my contribution be different? I focused on simplicity and print time. My design should be faster to print than the others.

I focused on designing while keeping the print path in mind. It is one continuous curve that can be printed with only perimeters. No infill, no top layer, no bottom layer, no retractions. And no supports, either.

MatterControl slicer showing the design sliced as continuous curve.

I will need to print two of them.

Two copies of the design were printed, one for front and one for back.

The installation position doesn’t have to be exact, since the grille doesn’t seem to be covering anything in a particular pattern that would require that I keep the nearby holes clear. I think it should be OK to flow around these feet.

The two stands installed on Xbox One X, covering minimal cooling vent area.

The single loop design means the stand is not completely rigid but slightly flexible. The upside of this flexibility is that it will sit nicely on surfaces that are not perfectly flat. The downside of the flexibility is that the console may wobble a bit if bumped. Such is the tradeoff.

Xbox One X sitting on vertical stand.

Now my Xbox One X can stand vertically without completely blocking its cooling intakes. If someone wants to tinker with this design, the Onshape CAD file is a public document here. If someone wants to use the design as-is, it has been published to Thingiverse.

Another Z-Axis End Stop For Geeetech A10

Once the power situation was improved to something more acceptable, I revisited the Z-axis end stop. Because the bare wire hack attached with tape was never going to cut it long term.

The first order of business was to transfer the circuit to a small circuit board instead of just wires hanging in the air. This little board was broken off from a larger prototype board, an easy task as the board was already perforated. The inexpensive switch I used (*) had two mounting holes that conveniently lined up to holes on the perforated prototype circuit board, so I soldered two pins at those locations as primary load bearers. I pushed the switch against those two pins as I soldered the three signal pins, hopefully this means any downward force from the homing procedure would be directed into the two mounting pins and not the three electrical pins.

Geeetech A10 Z axis end stop clip old and new

Geeetech A10 Z axis end stop clip CADOnce I had a small circuit board to hold the switch wired to the appropriate JST-XH (*) 3P (3-pin or 3-position) connector, I designed and 3D printed a small bracket to hold it to the machine. I saw no signs of how the original Z-axis may have been fastened, certainly no obvious holes to reuse. So I designed a clip-on bracket. The tool-less installation is a plus, but it came with the downside that it could not grip solidly enough to reliably hold a Z-axis position.

Right now it is sitting at the bottom against a cross beam, sitting at a height that I had guessed is relatively close to the original Z-axis end stop switch position. If that is too high, I will either have to print a shorter bracket or take a knife and trim some of the bottom off of this one. If it is too low, I can add something underneath this bracket to act as a spacer or print a taller bracket.

Now that I have the three-axis motion control portion of a 3D printer up and running, what can I do with it? I have lots of ideas! The first idea to be explored will be for visual dimension measurement.


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

Replacement Power Panel for Geeetech A10

A very crude Z-axis end stop switch allowed me to verify this partial chassis of an old Geeetech A10 could still move in the X, Y, and Z axis. Once proven, I went back to refine the hacks done in the interest of expediency for those tests. First task is the power adapter, which had been a cheap barrel jack not quite the correct dimensions for reliable electrical contact with the 12V DC power adapter I’ve been using.

The 12V supply itself was a hack, as the Geeetech A10 printer is actually designed as a 24V printer but I didn’t have a 24V power brick handy. Since this printer has been deprived of its print nozzle and heated bed, the majority of power draw are absent leaving only the motors. I understand the stepper motor current chopper drivers would still keep the current within limits and give me nearly equivalent holding torque. However, halving the voltage meant it couldn’t sustain as high of a maximum speed and I saw this on the Z-axis. The X axis is super light (as there is no print head) and had no problem running quickly on 12V. The Y axis has to move the print bed carriage (minus heated print bed) and had a little more difficulty, but still plenty quick. So it was the Z-axis that ran into limitations first, as it had to push the entire carriage upwards and it would lose steps at higher speeds well before reaching firmware speed limits that are presumably achievable if given 24V.

Geeetech A10 power panel CADA reduced top speed was still good enough for me to proceed so I drew up a quick 3D printable power panel for the printer. Since the 12V DC power supply was from my disassembled Monoprice Mini printer, I decided to reuse the jack and the power switch as well. Two protrusions in the printed plastic fit into extrusion rails, though it took a few prints to dial in the best size to fit within the rails.

With this power panel I could use the 12V DC power adapter and the connection is reliable. No more power resets from jiggled power cables! It also allows me to turn the printer off and on without unplugging the power jack.

With this little power panel in place, I moved on to build a better Z-axis end stop.

Crude Z Axis End Stop For Geeetech A10

Preliminary exploration of a retired Geeetech A10 has gone well so far, enough that I felt confident discarding the control panel I did not intend to use. Before I tossed the control panel in a box, I verified each of the motors could move via jogging commands. But before I can toss more complex commands at the machine, I need a way to reset the machine to a known state. In machine tools this is called a “homing” operation, and this 3D printer do so via the G28 Auto Home command to set each axis to their end stop switches.

Problem: While the X and Y axis still had their respective end stop switches, this machine is missing the Z-axis switch and I wanted to whip up a quick hack to test the machine capabilities. If it works, I’ll revisit the problem and spend more time on a proper one. If it doesn’t work, at least I haven’t wasted a lot of time and effort.

The existing X-axis end stop was buried inside the mechanism, but the Y-axis end stop is visible. I was surprised to see a circuit board with several surface mount components on board. Unlike most of my other 3D printers, the end stop mechanism isn’t just a pair of wires hooked up to a single switch, there are actually three wires.

Geeetech A10 Y endstop

I removed the Y-axis switch to probe the circuit and search online. It appears to be close but not quite identical to the RepRap design, and had a few additions like a LED and its associated current-limiting resistor. The LED is a nice indicator of switch toggling status, but it is not strictly necessary. This end stop boiled down to a switch that directly connects the normally open leg to common, and a resistor between the normally closed leg and common.

Once understood, I grabbed a micro switch waiting in my parts bin (*) and created a free form wire soldering job for the test attached with double sided foam tape. (Picture up top.) The foam tape did not hold position well enough, so additional structure support was added in the form of blue painter’s tape.

Geeetech A10 Z endstop hack with tape

Hacks upon hacks, it’s hacks all the way down.

But it was good enough for G28 Auto Home to succeed, which opened the door for more tests to verify this 3D printer chassis could still execute motion control commands coordinated across all three dimensions. Once I was satisfied it is working well enough for further tinkering, I revisited the power hack to make it more reliable.


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

Geeetech A10 Control Panel Removed

Once I had the retired Geeetech A10 3D printer powered up, I could start poking around to see what is working and what is not. Obviously the control panel was my entry point to jog each axis. I was very happy to see the individual motors move on command, but I couldn’t command a homing cycle just yet due to the missing Z-axis switch.

However, the control panel itself was annoying to use. The screen contrast was poor, and user responsiveness is lacking. I frequently find that encoder steps were ignored, as were some of my wheel presses to select menu options. I experienced the same frustration with the Monoprice Maker Select, and I had thought those issues were specific to that printer. Now I’m starting to wonder if this is common with 3D printers running Marlin on a ATmega328 control board.

The good news is that I don’t plan to interact with the control panel for much more than this initial test. Once I established the board was functional, I no longer feared the USB port damaging my computer so I found an appropriate USB cable and plugged it in. The expected USB serial device showed up. With the popular settings 250000 8N1, I could command the printer via Marlin G-code. This is how I intend to control this machine as a three-axis motion control platform.

I didn’t intend to use the control panel anymore, and I could have just left it alone. But it also sticks out to the side of the printer and awkwardly taking up space. After a particularly painful meeting between a body part and an outer corner of the panel, I took a closer look at how it was connected to the control board. It seems to be a single ribbon cable plugged into a single connector that had two dabs of hot glue to help keep it in place.

Geeetech A10 control panel ribbon cable connector

I removed the hot glue and the cable to see if this printer would continue functioning as a USB serial peripheral, in the absence of the control panel. Good news: it does! I could move all three axis (X, Y, and Z) via G0 commands. So after removing two M5 bolts, the control panel go live in a box. Cleaning up the printer outline and hopefully reducing painful episodes in the future.

Now I need to install a replacement Z-axis homing switch in order to try homing cycle.

Power Input Replacement for Geeetech A10

I’ve received the gift of a retired Geeetech A10 3D printer. It is missing some important components for 3D printing, but its three axis motion control components are superficially intact. The machine is in unknown condition with no warranties expressed or implied. Ashley Stillson, the previous owner, don’t remember everything that was wrong with it, but she did not remember anything dangerous. (My specific question was: “Will I burn down the house if power it up?”)

Not burning down the house was a good baseline, so I’ll begin by supplying the machine with some power to see what wakes up. The first task was to replace the XT60 power connector. The XT60 isn’t a type I use and hence I had nothing to plug into it. This type is an excellent connector for high current draw applications, but since I’m not planning to run a heated print bed nor a filament nozzle heater, I can start with something less capable and more generic. So instead of buying some XT60 connectors (*), I replaced it with a jack for a barrel plug (*) that I already had on hand.

The cheap jack I have on hand is listed with outer diameter of 5.5mm and inner diameter of 2.1mm. It is very close but not exactly the correct type to connect to the 12V DC power supply from my disassembled Monoprice Mini printer, which I guess is actually the very similar and popular type 5.5mm OD / 2.5mm ID. But what I have is close enough for a little hacking to permit power to flow.

Later I learned I had made an assumption I didn’t even realize I was making at the time: I assumed the printer wanted 12V power. The Geeetech A10 is actually a 24V printer! This is irrelevant to the electronics, which will run on stepped-down voltage probably 5V. It is most important for the heater elements, which are absent anyway. In the middle are the stepper motor subsystem, where 12V is not ideal leaving them less capable than if they were fed 24V, but they should function well enough to let me evaluate the situation.

When power was supplied, a fan started spinning, a red LED illuminated, followed by the control panel coming to life. We are in business.


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

Retired Geeetech A10 3D Printer

My herd of 3D printers has gained a new member: a Geeetech A10. Or at least, most of one. It was a gift from Ashley Stillson, who retired this printer after moving on to other machines. Wear on the rollers indicated it has lived a productive life. Its age also showed from missing several of the improvements visible in the product listing for the current version. (And here it is on Amazon *)

In addition to those new features, this particular printer is missing several critical components of a 3D printer. There is no print head to deposit melted plastic filament, it has no extruder to push filament into the print head. The Bowden tube connecting those two components are missing. There is no print bed to deposit filament on to, and there is no power supply to feed all the electrical appetite.

It does, however, still have all three motorized axis X, Y, and Z, and a logic board with control panel. X and Y axis still had their end stop switches, but the Z axis switch is absent leaving only a connector for the switch.

Geeetech A10 Z endstop connector

The only remnant of the power supply system is a XT60 plug. I don’t use XT60 in my own projects and have none on hand, so I will either need to buy some (*) or swap out the connector to match a power supply I have on hand.

Geeetech A10 XT60 power connector

It would take some work to bring it back into working condition as a 3D printer, but that’s not important right now because my ideas for this chassis is not to bring it back to printing duty. I’m interested in putting its three-axis motion control capability. to other use. But first, I need to get its three axis moving, which means giving it some power.


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

And Now I’m Up To (Most Of) Five 3D Printers

When I first got started in 3D printing, I was well aware of the trend for enthusiasts in the field to quickly find themselves with an entire flock of them. I can confirm that stereotype, as now I am in the possession of (most of) five printers.

My first printer, a Monoprice Select Mini, was still functional but due to its limitations I had not used it for many months. I had been contemplating taking it apart to reuse its parts. When I talked about that idea with some local people, I found a mutually beneficial trade: in exchange for my functioning printer, I traded it for a nearly identical but non-functioning unit to take apart.

My second, a Monoprice Maker Ultimate, has experienced multiple electrical failures with an infamous relay, and I suspect those failures had secondary repercussions that triggered other failures in the system. It is currently not working and awaiting a control board upgrade.

My third printer, a Monoprice Maker Select, was very affordable but there were trade-offs made to reach that price point. I’ve since had to make several upgrades to make it moderately usable, but it was never a joyous ownership experience.

Those three printers were the topic of the tale of 3D printing adventures I told to Robotics Society of Southern California. One of my parting advise was that, once we get to the ~$700 range of the Maker Ultimate, there were many other solid options. The canonical default choice is a Prusa i3 and I came very close to buying one of my own several times.

What I ended up buying is a MatterHackers Pulse, a derivative of the Prusa i3. I bought it during 2019’s “Black Friday” sale season, when MatterHackers advertised their Pulse XE variant at a hefty discount. Full of upgrades that I would have contemplated installing anyway, it has performed very well and I can happily recommend this printer.

Why would I buy a fifth printer when I had a perfectly functioning Pulse XE? Well, I wouldn’t. I didn’t get this printer because it was better, I picked it up because it was free. I have some motion control (not 3D printing) projects on the candidate list and a retired partial Geeetech A10 printer may prove useful.

Vertical Stand for Asus Router

After almost 7 years of reliable service, my Asus RT-N66R started failing. I bout an Asus RT-AC66U B1 as replacement. The two routers look nearly identical from the outside, but the new one is actually slightly larger so it would not fit exactly in the same place. Which was fine, because I felt maybe my previous placement didn’t have enough ventilation and contributed to the old router’s demise.

For better space utilization, I wanted the router to stand vertically. But in the interest of providing more cooling, I didn’t want it to be wall-mounted against an airflow-constricting surface. Making a vertical stand became a quick-and-dirty design and 3D printing project.

As soon as it started printing I realized I overlooked an something important: the base of the stand is too thin for proper print bed adhesion. The was compounded by the fact that it sat near print bed corners, which tends to be a little cooler than the center of the bed. A few layers into the print, one corner started to lift as expected. Looking at the design, I guessed a base with a lifted edge will still be sufficient. So I decided to let the print continue rather than abort the print and waste the filament.

I was rather surprised at how far it continued to lift! I thought after a few millimeters there would have been enough plastic to hold things rigid, and that expectation was true for one corner. (Left side in the picture below.) But the other corner just kept lifting and lifting, even starting to peel the main body off the bed. I was starting to get worried the whole thing would pop off. Fortunately it finally stabilized after lifting a little over 21mm.

Router stand bed lift

This was outside my experience, as I usually abort a print before the lift got nearly that bad. But my original guess was correct: the stand worked just fine even with rear corners asymmetrically lifted from the print bed. What I have in hand is good enough for my purposes so I’ll use it as-is, but the public Onshape document is here if anyone wants to evolve this design to make it less prone to lifting.

Otvinta 3D Printed Hypocycloid Drive Model

Before I dive headfirst into designing a project around hypocycloid drives, I thought I should first try the low-effort test of printing up an existing design to see how it works. If it does, I get to see a printed hypocycloid drive in action. If it fails, I have data points on how to (and maybe not to) 3D print a hypocycloid drive.

Lucky for me, the very same site hosting a hypocycloid gear calculator also has a ready-to-print set of STL files for a 3D-printable hypocycloid speed reducer model. It looks like a nifty little hand-cranked demonstrator, so I fired up my 3D printer to print one of each STL. I noticed a lot of little artifacts on component mating surfaces. I was eager to see it in action, so I did only minimal cleanup with a blade before proceeding.

Hypocycloid demo model breakaway handle

One instance of theory not meeting reality was in the crank handle. The geometry was designed such that the outer grip could rotate around a center shaft. They are printed in a single piece but there’s a gap allowing the outer trip to break free and rotate about the center shaft. I’ve done this sort of designed breakaway before, but this one didn’t work well for me and it broke off at the wrong place, on the inner shaft instead of the outer handle. Oops.

Hypocycloid demo model big gap

Upon assembly I noticed a big gap, and some parts were falling out of place. It didn’t take long before I realized there were two components (a cam and a disk) where I needed to print a second unit, rather than printing just one as I had done.

Hypocycloid demo model broken

Once both disks were in place the overall system friction went up dramatically. Optimistically thinking they’re just small bumps that can wear down with a few cycles, I tried to power past the friction points. But instead of breaking through sticky portions, I broke the input drive shaft.

I asked to print another drive shaft on a more precise 3D printer. While it was printing, the device was taken apart to better clean up surface artifacts. Round 2 was far more successful, making a fun toy and sufficiently prove the concept for future experimentation.

Hypocycloid Drive Calculator by Otvinta

The best part of maker/hacker gatherings is the opportunity to meet and chat with people who introduce me to ideas and resources. At Sparklecon 2020 I met Allen Phuong who saw Sawppy roaming around and wanted to learn more. Sadly he had missed my Sawppy presentation because he was busy participating in the battle bot competition taking place at the same time, but I gave him an abbreviated version and we talked about many projects on our respective to-do lists, robotic and more.

Allen got me interested in hypocycloid gears again. It was something I briefly examined while looking for ways to build a gearbox to obtain low speed and high torque but without the backlash present in typical gearboxes. Right now the standard solution in robotics is the harmonic drive, which is an expensive solution that has specific requirements on the material used to build the flexible spline. 3D printer plastic does not meet all the requirements and hence 3D-printed harmonic drives always involve trade-offs that made me less interested.

Cycloidal drives do not have a flexible component with strict material behavior requirements, all parts remain rigid while in operation. For (near) zero backlash operation, however, it requires high dimensional accuracy. I dismissed it for this reason as 3D printing is not very precise. However, Allen asserted that 3D printers can reach the required levels so maybe it’s worth a second look. And even if I can’t get my 3D printer to meet my dimensional accuracy goals, I now have access to a few tools that I didn’t have before. Ranging from a laser cutter, to my project CNC mill, to a resin printer. All capable of far higher accuracy than my 3D printer.

There are a few tools available online to help generate profiles based on parameters I specify. Allen pointed me to the Hypocycloid Gear Calculator on Otvinta, which looks like a worthwhile starting point. The author of this site has decided to focus on Blender as the 3D tool, so if I want to make use of the results, I’ll have to learn how to translate it into Onshape or Fusion 360. But first, I can get a taste via a ready-made project.

Hex Wrench Holder And Wire Clip For Gantry Extrusion

The first project for designing accessories to mount on the extrusion beam, a holder for ER11 collets, turned out well enough I wanted to continue. Apply some of the lessons learned to create more nice-to-have accessories for the CNC project.

One accessory is a holder for a 5mm hex wrench. This is the size used by the fasteners bolting our gantry’s extrusion beams together. There are a set of four bolts, two on the left and two on the right, that we loosen to adjust the height of the gantry. Lowering the gantry lets the cutter cut through our work surface to cut holes for threaded inserts, raising the gantry gives us more Z travel for the work piece. Or we might deliberately trade off Z travel to use a shorter and more rigid gantry for more challenging pieces. We’re not sure what the viable combinations are, but we do know we’ll need this wrench handy for experimentation.

The other accessory is a wire management clip. Wiring is a perpetual challenge on this project, from finding appropriate component placement to isolating electrical noise. I’m sure electrical challenges will continue to vex us as we proceed. We’ll figure out the problems one by one as we go, but one thing is for sure, we’ll need a lot of ways to route wires and keep them in place, hence the clips.

Unlike the previous accessories, the wiring clip may be mounted in any orientation. To hold themselves in place, each clip will require additional holding force. To get this force, they are printed slightly more open than their installed configuration. Installation would then require compressing the ring and this tension in the plastic will provide friction against extrusion rail to hold it in place. And while I’m not entirely sure it will be necessary, I added a small flap to keep the wire from sliding out of the ring into the rail slot.

There will be more accessories along the lines of what’s been printed so far, but I’m eager to get back to the primary exploration of cutting material.

Collet Holder Clamps To Extrusion

While I was in Onshape CAD designing our goose neck work holding clamps, I also tackled a few other to-do items on the 3D-printable accessory list. The top of the list was building a way to keep extra collets accessible on the machine. Our CNC spindle came packaged with a 1/8″ ER11 collet, which we swapped out for a 1/4″ collet when we wanted a stouter cutter. We didn’t have a good place to keep the temporarily unused 1/8″ collet and, rolling around on the tabletop, we were constantly at risk of losing it.

I thought it was a good project to practice designing plastic’s flexibility to my advantage instead of constantly seeing it as a disadvantage. I’ve had several projects along these lines before, but my interest was renewed by Amy Qian’s demo board she brought to show off at Supercon.

There are two ways I wanted to apply this concept. First, I wanted a holding mechanism that can snap into an extrusion rail and stay there without use of tools or fasteners. Second, I wanted a way to hold the collet so that it is held securely by default (not fall out or be dropped easily) but can be removed easily on demand. Again without tools or fasteners.

Here is the first draft of a flexible clip for installation into extrusion beam, this design was too flexible and fell out of the extrusion rail easily. More iterations followed, hunting for the most secure hold possible while still making it possible to insert into the rail.

Extrusion slot clip

Separately, I started designing a flexible cover for the collet. The test piece for each mechanism evolved separately until I was happy with both designs, then they were integrated into a single piece incorporating both mechanisms.

Collet holder evolution

With the success of this holder, I took the lessons of a flexible extrusion beam mount and applied the concept to a few additional 3D printed accessories.

3D Printed Goose Neck Clamps For Work Holding

Once we have metal threads securely inserted into our MDF work surface, we could bolt on clamps to hold our work pieces. These clamps are 3D printed because we fully recognize our CNC beginner status and, while we’ll do our best to avoid crashing cutting bits into fixtures, it’s realistic to plan for the probability that crashes will occur despite our efforts. If we use commodity metal clamps and our carbide cutting tool makes contact it will break our tool. But if our carbide tool contacts a piece of 3D printed plastic it might survive our mistake. We have the luxury of this provision because we’re starting easy with scraps of MDF, which requires less forces to hold and to cut than cutting metal.

Clamp evolution

We started by copying standard step clamps. We weren’t sure if the steps could be accurately replicated with 3D printed plastic so it was worth a bit of experimentation to find out. They look very promising but we probably won’t use them, because the reason step clamps exist is to have a few set of them that can adjust to various sized work pieces. 3D printing gives us the flexibility to print project-specific fixtures that don’t have to compromise for flexibility. This advantage can make up a tiny bit of deficiency inherent in using plastic instead of metal. Hence the second iteration: a single piece clamp shaped like an L designed specifically for the thickness of our test piece of MDF.

Once that was printed and eyeballed on the work table, we moved on to the third iteration: a low profile goose neck clamp tailored for the height of our scrap MDF. Low profile design reduces chance of cutter collision, and it allows us to use shorter and stouter bolts to fasten them to the table. This is what we will use for our first real cutting experiments, alongside other 3D-printed accessories for our CNC project like a collet holder.

Threaded Insert Alignment Tool

We now have a small G-code program that we can call upon to cut holes for self-tapping threaded inserts. We’ll cut them as needed for work fixtures on our CNC work table. However, cutting the hole is only part of the process, we had to install the metal insert as well. In order for the resulting threaded hole to be vertical, the inserts have to be held perpendicular to the work surface as we install them. However, the coarse exterior thread makes it difficult to maintain the orientation, made more challenging by the fact the shallow hex socket allows the insert to rotate around the tip of a ball-end hex wrench making it even harder to hold vertical.

We originally had the hypothesis that, given the geometry of the wooden hole, our metal insert will self-align as we start turning it. This may be true for some types of wood but it didn’t work for our particular sheet of MDF. If the coarse outer self-tapping thread starts biting at a bad angle, the insert did not self adjust in our experience. It just jams partway down the hole ruining the MDF hole in the process.

To solve this problem, we designed a small 3D-printed plastic tool to help maintain vertical alignment for installation.

Insert alignment tool printed

The bottom part of this tool helps keep the insert vertical, and the top part keeps the hex wrench vertical. The bottom is mostly flat for the work table surface. I tried adding a small lip to help with hole alignment, but that turned out to be unnecessary. These metal insert can align itself in the XY plane well enough. And once these inserts are in place, we can bolt down our pieces of scrap MDF using custom gooseneck clamps.

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.