2021年3月28日日曜日

3D printing, self-repair, and self-replication: RepRap


 A "RepRap" 3D printer is a pretty amazing thing. Nowadays, 3D printers are widely and cheaply available, but ten years ago, this was not the case. One of the driving forces behind the advances in consumer-level 3D printing has been the RepRap project at https://reprap.org.

A RepRep machine is a rapid prototyping machine that can manufacture a significant portion of its own parts. This means that a RepRap printer can, to a large extent, repair itself, by printing new plastic parts to replace its own plastic parts, such as gears, that can wear out over time. Similarly, a RepRap 3D printer can, to a large extent, replicate itself, by printing out all of the plastic parts needed to build another copy of the printer. In contrast, modern 3D printers, in their quest for compactness and reliability, have moved away from the self-replicating aspect of the RepRap vision. Modern 3D printers use many custom-manufactured parts (such as smaller, more precise, and more reliable gears, or custom-molded metal structural parts), that cannot be printed by the 3D printer itself. The result is higher reliability, smaller size, lower cost, and improved user-friendliness.

So modern 3D printers are closer to black-box appliances that are not designed for extensive user maintenance and modification. In stark contrast, a RepRap machine at its core not only allows, but also requires extensive maintenance and modification by the user. RepRap printers are therefore less user-friendly as appliances, but they also offer endless opportunity for modification and improvement.

A RepRap 3D printer can be a very fun hobby for a DIY-minded person, so I plan to describe my adventures in 3D printing here on my blog.

Nine years ago: the Portabee 3D printer

Nine years ago, the company Romscraj released the Portabee 3D printer: https://reprap.org/forum/read.php?188,133194,133194#msg-133194 . Its key sales point was its portability: the print bed could be detached or reattached in seconds with a clever clip mechanism. In the detached state, the entire printer could fit inside of a laptop bag. And this printer was a RepRap, meaning it could reproduce all of its own plastic parts, making it easy to build another copy of the printer, or to improve the original printer design. After reading several positive reviews about the Portabee, I bought the printer.

There is a Wiki page at https://reprap.org/wiki/Portabee, where I am trying to collect all relevant information about this interesting little 3D printer.

I didn't have much time to use the Portabee after I purchased it, so it sat idle for several years. Only recently have I started to use it heavily.

Fast forward nine years: a printer in need of maintenance

One of the problems I immediately encountered with the Portabee was that the 3D-printed plastic gears on the extruder -- the geared mechanism that uses a stepper motor to push plastic filament into the hot end, where it gets melted and extruded out of a thin nozzle -- were prone to breaking. Within one month of the original purchase, the first plastic drive gear broke, and the supplier provided me with a replacement.

Now, nine years later, when I was powering up the printer again, I could see that the plastic extruder gears did not fit together perfectly, which caused undue stress on the gears. Every time I operated the printer, bits of the plastic drive gear would break off, leaving small chips of broken plastic on the print bed. I could tell that it was only a matter of time before the gears broke again.

The solution, of course, is to use the 3D printer to print replacement parts for itself. The problem was that I was still a novice to 3D printing. My first attempts to print the replacement drive gear came out horribly deformed. Below, the left gear in blue is the original broken gear from 9 years ago. The right two gears were my first attempts at printing replacements.

I quickly learned that effective use of a 3D printer requires understanding at least the fundamentals of the physical processes being used. In this case, by observing the printer in operation, I could see that when printing the small and detailed teeth of the gear, the lower layers of plastic did not have enough time to cool before the next layer of molten plastic was deposited on top of them. The result was overheating and a mess of molten plastic where the gear teeth should have been.

There are many ways to solve this problem:

  1. Use a cooling fan to blow air over the printed part and cause the molten plastic to cool more quickly. I didn't have a cooling fan, so this was not an option.

  2. Greatly reduce the print speed. In practice, this resulted in too little plastic being extruded and very fragile appearance of the gear teeth. Probably, at extremely slow printing speeds, the gears' movement is not accurate enough to ensure a constant flow of molten plastic filament.

    Imagine trying to squeeze toothpaste out of the tube at a rate of 1 cm/second. This is feasible with a good flow rate. On the other hand, if you try to greatly reduce the extrusion rate by a factor of 100, you would need to squeeze toothpaste out at a rate of 0.1 mm/second. This is extremely difficult, because even slightly inaccurate movements of your hands, or even slight deformations of the tube, will cause unwanted variations in the flow rate. I suspect a similar issue occurs at extremely slow print speeds.

  3. Print at full speed, but print multiple copies of the gear on the print bed. All copies are built up simultaneously from the lowest Z-layer to the highest Z-layer. This means that each Z-layer takes more time to print. This increased printing time allows each individual copy of the gear to cool down enough before the next layer of plastic is laid on top of it.

    The disadvantage of this approach is that, when moving the hot nozzle from one printed item to another, a so-called "retraction" is performed, which reverses the motion of the extruder gears to withdraw the plastic filament from the nozzle and prevent unwanted oozing of molten plastic.

    The use of retraction (due to the rapid reversal of motor direction) caused visibly more wear on my already-disintegrating drive gear. Furthermore, after a retraction, the next act of extruding filament may not extrude enough, which leads again to fragile-looking gear teeth with insufficient plastic material. This might be fixed by adjusting retraction parameters in software.

  4. Print the gear at full speed, but at the same time print a very tall cylindrical wall (a "skirt") around the gear, some distance away from the gear. For each layer, after the small gear teeth are printed, then during the printing of the long cylindrical wall, the small gear teeth have time to cool, before the next layer of molten plastic is printed on top of them.

    This approach used fewer retractions, resulting in less stress on the motor gears, better flow of plastic, and an overall improved and sturdy appearance of the gear teeth.

The self-repairing printer

Shortly after figuring out how to successfully print good-looking replacement gears, the drive gear again broke. So I was forced to replace the original gear with the self-printed replacement. I was hesitant and unsure if the printed replacement would really fit and would really work properly.

Fortunately, it did fit, well enough to keep the printer running. 

Here's a picture of the original extruder. The weak drive gear, printed 9 years ago by the manufacturer when I bought the printer, is the smaller 9-tooth gear attached to the motor.

Then, one day soon thereafter, the drive gear broke:


The key to a self-repairing 3D printer is to print enough replacement parts before the printer breaks. Here were the as of yet untested replacement parts that I was able to print before the breakage.

The holes in the replacement parts unfortunately were a bit too small to fit the motor shaft -- a common problem in 3D printing. This was fixed by reaming the hole with a screwdriver, as I don't have a proper reamer. After that, I was able to fit the replacement drive gear on the motor shaft.

Then, I could confirm that the replacement drive gear more-or-less meshed correctly with the larger 53-tooth driven gear.

After the gear replacement, the printer could again print. The first self-repair was successful!

Other self-repairs: broken extruder block, broken driven gear

Soon thereafter, the extruder block -- the complex-shaped part that holds the extruder motor and drives the filament forward -- also broke. The long arm that supports the motor had become warped and finally cracked. I suspect that this warping was one of the root causes of why the drive gear and driven gear did not mesh well, which caused the drive gear to weaken and break.

The design of the extruder block (see image below) uses a fairly thin and long support arm to hold the extruder motor in place. The extruder motor may become hot, as it is in constant motion during a print to feed the filament. If the heat from the motor becomes excessive, this heat may cause the plastic support arm on the extruder block to soften and warp, which in turn can cause the gear alignment to suffer, which in turn can cause inappropriate stress on the extruder gears and on the extruder block itself.

I didn't have a replacement extruder block, as I hadn't printed one yet. So, I had to repair the cracked extruder block with some super-glue. I used rubber bands to hold the part together tightly, and allowed the glued part to dry overnight. Fortunately, this worked well enough, and the next day I could then print a replacement extruder block.

The below image shows the original extruder block (left), and the new printed replacement (right).

Finally, a few days after replacing the extruder block, the large 53-tooth driven gear also broke. Fortunately, I had already predicted this scenario, and had already printed several replacements.

Here is an image of the new extruder in action: most of the original extruder parts (originally printed in blue plastic) have been replaced with new, self-printed parts (now printed in white plastic). Also, the below images shows even more replacement parts being printed, in preparation for the next time that these high-usage parts break.

Replacing the heating element

Recently, the hot end has no longer been able to reach the high temperatures (185 degrees) required for melting the plastic filament. I suspect that the heating element is no longer able to heat up properly, since it is 9 years old. 

Modern ceramic heating elements seems to be easily available in a standardized 6 mm-diameter size. However, the hole in my heater block only seems to accommodate a heating element of less than 5 mm diameter. The current heating element is a wire-wound resistor. Due to the size difference, I probably cannot use a modern 6 mm ceramic heater, and instead need to find a less than 5 mm diameter wire-wound resistor.

Replacing the hot end 

Eventually, I will need to replace the hot end completely, because it accepts 3 mm diameter plastic filament, which was a widespread standard 9 years ago. Now, most filaments are available in 1.75 mm diameter, so I will need to upgrade to a new 1.75 mm hot end when my old supply of 3 mm diameter filament runs out.

This will require reworking the mounting mechanics for the hot end, as the new hot end will be a different shape than the old hot end. Reworking the mechanics will be done, of course, by using the printer itself to print new parts in the appropriate redesigned shapes. This again underscores the self-repairing, self-modifying nature of RepRap 3D printers.

Replacing the electronics board

Recently, the printer has sometimes been acting strangely, after the electronics board was exposed to rain. Sometimes, the Y-axis motor (which slides the printed bed back and forth) only buzzes instead of properly moving the bed. I could trace this fault to an unusually low Vref voltage on the DRV8811 driver chip that drives the Y-axis stepper motor. In modern 3D printer control boards, often the driver chips are modular so they can be replaced easily by unplugging the old driver and plugging in a new driver. In my old electronics board (a so-called gen6.d board that came with the Portabee printer), the motor driver chips are soldered onto the board itself and cannot be replaced without replacing the whole board.

It turns out that the exact gen6.d board used in my Portabee printer is no longer available for purchase, at least as far as I could see. But fortunately, control boards for 3D printers are quite standardized these days and are available cheaply. The basic options are either a RAMPS 1.4 board plus a controlling Arduino board (a 2-board solution), or an all-in-one single-board solution like an MKS GEN board, which I think uses the same basic architecture, just packaged more neatly into a single board. Either solution provides connectors for controlling five stepper motors (three for each of the X, Y, and Z axes, and up to two extruder motors), limit switches for each of the axes, the hot end (including the heating element, the thermistor to detect the temperature, and a cooling fan), and a heated bed (including the heater and the thermistor). 

Carefully checking all of the connections on my Portabee has convinced me that a modern replacement board (like RAMPS 1.4 or MKS GEN) will provide all the required connectors to control all of the hardware on my Portabee printer. The only exception is that I have 2 Z-axis motors, whereas most controller boards only provide one connector for a Z-axis motor -- but two Z-axis motors can be connected either in parallel or in series to a single connector.

The below image shows the old gen6.d control board connected to all of the 3D printer hardware.

The below image shows the old gen6.d control board disconnected from all of the printer hardware.

Disconnected from the controller board, the printer somehow seems much simpler -- it's just a bunch of stepper motors, switches, heaters, and thermistors, all tied together into a simple but sturdy physical structure with 3D-printed parts and common hardware like steel rods, threaded rods, linear bearings, nuts, bolts, belts, etc.

To replace the electronics, the only thing left to do is to buy a new replacement board, and plug all the existing hardware into the new replacement board. Some caution will be required with the order of the stepper motor wires, as modern control boards seem to require the stepper wires to be connected in a different order than on my older control board. I may also need to make some of the wires slightly longer to accommodate the new connector positions on the new control board.

Conclusion

Out of necessity, I have been replacing many parts of my old 3D printer, with self-printed replacement parts. This is an educational and fun experience. Eventually, I should have enough spare parts and enough knowledge to build a complete replica of the original printer. And I expect to continue to improve the printer design by printing out modified, improved parts, to accommodate for example a new hot end.