Sunday, January 14, 2018

Building or Upgrading for Reliable ABS Printing

ABS is considered an "engineering material" because it's cheap, strong, tough, and holds up to moderately high temperatures.  Unlike PLA, it won't soften in a hot car, or near a light bulb or other source of heat, and it doesn't get brittle when exposed to humid air.  But ABS has acquired a reputation of being difficult to print.

Most of us have learned to take on-line product reviews with a grain of salt.  Can the reviewed product really be as good or bad as the reviewer says?  Were they really equipped to understand/test it adequately?  ABS 3D printer filament is one of those things that gets a lot of bad press from well-intentioned hobbyists who are not equipped to render a useful critique, except under the limited circumstances (usually an open-frame printer) under which they have tested it.

Some have said that ABS is no longer relevant with materials like polycarbonate and
PETG becoming more readily available.  PETG does not hold up at high temperatures as well as ABS and right now, PC costs about 2X the price of ABS, so until the price of PC comes down, ABS still has its place in 3D printing.

Building or Upgrading a Printer for ABS

It isn't really difficult to print ABS if your printer is designed and built for it - most are not.  A printer that is designed to print ABS has an evenly and adequately heated bed, an extruder that can operate in a warm environment, a hot-end made to withstand the relatively high melt temperature of ABS, a mechanism that won't self destruct or have other problems when it gets warm, and has a warm enclosure (45-50°C).  Even if your printer isn't made for printing ABS, it isn't too hard to upgrade and modify it to do so.

My first printer, MegaMax, was modified to print ABS and my last two printer designs, Son of MegaMax (SoM) and Ultra MegaMax Dominator (UMMD) were intended to print ABS from the start.  This post will use those printers to illustrate the sorts of things you have to do to ensure reliable ABS printing.

The Bed

Many printers have awful bed designs, including under-powered heaters, thin, flexible "heat spreaders", and glass plates to try to fix the problems caused by "leveling screws" located in all four corners of the bed.  The result is uneven heating, unstable leveling and zeroing, and poor print adhesion unless you apply slop like hairspray, glue, sugar water, salt water, ABS juice, or any of the other silly things people try to make ABS stick.  I've already beaten this topic to death, here.

UMMD has a 750W line powered heater that evenly heats the flat, 8mm thick cast aluminum bed to the 100°C first layer temperature in about 4.5 minutes with PID temperature regulation.  It's on a kinematic mount so the bed remains stable when heated.  Molten ABS loves to stick to its PEI print surface without any special elixirs.

Even heating of UMMD's bed at ABS print temperature- just a few degrees of drop off near the edges.
If you're looking to upgrade your printer for ABS, the bed is a good place to start.  You'll find a well built bed will make all your printing, not just ABS, more reliable.  You might find some of the ideas I used in UMMDs bed to be useful.

The Extruder

I prefer geared extruders.  My experience has shown that the extra push they have available due to torque multiplication by the gears helps keep the filament flowing even when things get a bit sticky inside the hot-end.  Motor temperature becomes a concern in a warm enclosure.   Geared extruders let you operate the motor with lower current, and so lower self-heating, than ungeared extruders.

MegaMax used a ungeared direct extruder and I had a lot of the same problems with jamming that others report in the internet forums.  When I rebuilt it as SoM, I replaced the extruder with a BullDog XL that had 5:1 gearing.  That extruder was extremely reliable and almost never had a jam, though I don't recommend it if you ever plan to print flexible filaments.

UMMD has an E3D Titan extruder.  The Titan has 3:1 gearing that multiplies the motor torque, so it  can be operated at relatively low current and still produce adequate torque to push the filament without jamming.  Low current means the motor doesn't run hot, which means it can operate in a warm printer enclosure without danger of overheating.

More on extruders (and hot-ends) here.

The Hot-End

Some of the hot-ends you find on hobby printers have Teflon liners that extend right to the nozzle in the heater block.  Teflon starts to soften and decompose at ABS print temperatures, so such hot-end designs are completely unsuitable for printing ABS.  Usually, the only way to know if you have one of those hot-ends is to take it apart and look.

SoM and UMMD have a E3D v6 hot-ends and UMMD uses a Volcano heater block.  The V6 hot-end has a Teflon insert that stops at the stainless steel heat-break, so unlike some poorly designed hot-ends, the Teflon is never exposed to the high temperature of the heater block.  I've been printing ABS using E3D v6 hot-ends for at least two years and never had to replace a Teflon tube.  The v6 uses a 30W heater cartridge that has no trouble getting up to the required print temperature of the ABS.

There are a lot of all-metal hot-ends available that are well suited to printing ABS (and every other kind of filament).  Look for one that has a fan or water-cooled heat sink.

While we're on the subject, E3D makes great hot-ends, but the fans they provide are just about awful.  I've had two of them fail, possibly due to the heat in the enclosed printer, or maybe because they're just cheesy.  I replaced them with some ball bearing, 30x30x15mm server fans (Elina Fan HDF3020L-12MB, available via ebay for about $7).  They are a little louder and heavier than the E3D parts, but they are far more reliable.

Some people like to use water cooling for the hot-end in a warm, enclosed printer.  It certainly works, and even becomes essential if you want to print at very high enclosure temperatures, but isn't really necessary in a 45-50°C printer enclosure.  The Titan extruder has a lot of plastic parts and is probably not well suited for use inside an enclosure operating at temperatures above 70-80°C, either.

The Printer Mechanism

Most hobby printers have a lot of printed plastic parts in them.  Some are even made of PLA.  I have seen multiple posts on Reddit by people whose PLA part-loaded 3D printers self-destructed when they made the mistake of leaving their machines in hot cars.  Even if you discount the possibility of a hot-car disaster, when printed plastic parts are subjected to torque or tension inside a warm printer, the plastic parts can distort, even if they are ABS.

I have always tried to minimize printed part content in my printers simply because metals behave more predictably and can be cut and finished accurately.  SoM had 3D printed, ABS X axis motor and idler pulley mounts.  They were eventually replaced by metal parts because the motor mount distorted with heat and belt tension, and the pulley mount distorted due to the belt tension.  If your printer has plastic parts, replacing them with metal goes a long way toward improving reliability, especially if you're going to be operating the machine inside a warm enclosure.

UMMD's mechanism was designed using a minimum of printed parts, and those that are there are ABS, and will be replaced with metal or PC as soon as I can get to it.  Most of the printed parts are used in compression, which is the safest way to use plastic parts in a printer.  The stand-out exception is the extruder carriage belt clamps which will be updated to a metal design soon- watch for a blog post here...

Another thing I've read about on a few occasions is high precision, all-metal coreXY mechanisms similar to UMMD's, that work fine when they are set up in the summer, and then bind when the work shop temperature drops a few degrees in cold weather, or the opposite.  The problem is that as the aluminum frame expands/contracts with temperature, the Y axis guide rails move apart/closer together.  Meanwhile, the steel X axis guide rail doesn't expand/contract as much and that puts lateral force on the Y axis bearing blocks, causing the motion to get sticky or bind.

UMMDs mechanism uses linear guides bolted to aluminum plates which are in turn bolted to an aluminum frame.  When heated, aluminum expands about 4x more than steel.  As the frame expands, the Y axis guide rails move apart.  If the steel X axis guide rail were bolted to the two Y axis bearing blocks, the frame expansion would create very large side-loads on the Y axis bearing blocks, maybe enough to stop the motion.  In UMMD only one end of the the X axis linear guide is attached at one of the Y axis bearing blocks.  The other Y axis block has a second X axis bearing block that allows the X axis guide rail to move with the thermal expansion of the frame.  That eliminates any possibility of the mechanism binding due to temperature changes.

This potential mechanism binding problem primarily affects CoreXY designs using linear guides for the Y axis.  Even if your printer wasn't specifically designed to allow thermal expansion, its construction may have enough "give" to let the mechanism keep moving through temperature changes.  The only way to know is to test it...

Warm Enclosure

Most printers come without enclosures, presumably because of a patent held by one of the big, industrial 3D printer makers.  You can print a lot of the more common materials without an enclosure though some protection from drafts, such as side panels, can be helpful.  Printers with adequate bed heaters can print single-walled ABS vases (see the video, below) right up the maximum envelope of the printer, even without an enclosure, and they can sometimes get away with printing small ABS parts (this is what the marketing BS means when they say a printer is "ABS compatible").  But if you want to print bulky ABS parts with infill, straight side walls, etc., reliably, you need a warm, 45-50°C enclosure.  Without it, bulky ABS prints warp and split/delaminate.

Time lapse of MegaMax printing a Koch Snowflake vase from Mark Rehorst on Vimeo.

My first printer, MegaMax, was built with an open frame because I didn't know anything about 3D printing and didn't know I'd need a warm enclosure to print ABS.  I eventually built an enclosure for it using PIR foam panels and was able to print ABS reliably.  If you aren't too picky about the way it looks, a similar enclosure can be assembled in minutes with a straight edge, a razor knife, duct tape, and some foam insulation board.

Two ABS prints.  The one one the left was printed on SoM (45°C enclosure) and the one on the right was printed on MegaMax (open frame).  

An enclosure can take many forms,- a couple plastic trash bags placed over the printer, cardboard boxes, modified Ikea tables, etc., depending on how much effort/expense you are willing to go to and what sort of appearance you or your significant other can tolerate.  One thing to consider is that heat and electronics are a bad mix.  If you're going to use any sort of enclosure on your printer, it is best to move the electronics out of the warm chamber to maximize operating life.

Thermal insulation is a good idea for the enclosure, because if you minimize heat lost through the walls of the printer, you need less heat to get the enclosure up to print temperature.  You may even find that the bed heater alone provides sufficient heat.  The home improvement stores are full of foam insulation panels, but most are polystyrene (pink, blue, and yellow) which may pose a fume hazard in the event of a fire.  I used polyisocyanurate (PIR) foam in MegaMax and SoM's enclosures.  For all practical purposes, the stuff is fireproof.  PIR foam is available in 4'x8'x1" sheets at stores like Home Depot for about $15 per sheet.

My second printer, Son of MegaMax (SoM), was a redesign of MegaMax using some of the same parts, this time with the enclosure planned from the start.  I even put the electronics in a drawer at the bottom of the printer to keep them away from the heat, yet easily accessible.  SoM has a 450W bed heater which is just adequate to get the enclosure temperature up to 45°C when the ambient temperature is about 20°C or so.  SoM reused some of the PIR foam panels that were used to make MegaMax's enclosure.  The bottom and rear panels are simply cut for a very tight fit in the frame- nothing else was used to hold them in place.

ABS print on SoM with enclosure temperature of 45C.  No splitting along the edges or anywhere else.  Print is on clean Kapton tape, which has since been replaced by PEI.

UMMD's frame was designed to allow easy attachment of top, bottom, and side panels, roof mounted electronics (working on my knees hurts), and A and B motors located outside the enclosure (which it turns out, wasn't really necessary).  All but the front side panels provide thermal insulation.  Most of the panels are 8mm thick dual layer (or twinwall) polycarbonate that provides light transmission and thermal insulation and fits neatly into the 8mm slots in the printer's frame.

I wrote a blog post on UMMD's frame and enclosure here.

The enclosed volume of UMMD is about 420 liters, and based on my experience with SoM, I was pretty sure that heat from the bed alone would not be enough to raise the enclosure to ABS print temperature.  Initial tests of the enclosure temperature confirmed my suspicion.

Adding an Enclosure Heater

It's winter in Wisconsin and that naturally leads to dreams of heat and warmth.  What better time than now to add an enclosure heater to UMMD for reliable ABS printing?

I wish I could say that everything was calculated or simulated and I knew exactly how much heat was needed and that guided my heater selection, but that isn't what happened.

A few months ago I put a 100W incandescent light bulb (I still have one or two of those!) inside the printer enclosure and watched the temperature over time.  After about an hour, the temperature inside the enclosure got to be about 8C above ambient, so I knew I needed more power.

Since the bed heater uses 750W, that would limit the maximum additional power I could use to about 750W and still plug into a standard power outlet without blowing any circuit breakers. Someone at the makerspace offered me a 500W heater from a scrapped Stratasys printer, so I decided to give it a try.

I mounted it in UMMD with a 24VDC fan (FCI DA-119B-W24 with ball bearings) to blow air over it.  The fan/heater/SSR reside in the bottom of the printer, mounted on a piece of - wait for it- aluminum tubing!  A generic 100k thermistor is mounted at about the middle of the printer and connected to one of the SmoothieBoard's four thermistor inputs.  Line power to the heater is switched by an SSR (Crouzet 84137180  125A at 660VAC- gross overkill for this application, but it was free) driven by the SmoothieBoard controller.  The fan is powered by the same signal that drives the SSR, so when the heat is on, the fan is on, and when it isn't, it isn't.  The target temperature is set manually using the rotary encoder on the LCD panel, or by selecting an ABS preheat option I added to the custom menu.   The firmware is configured to use PID to regulate the enclosure temperature and even though the enclosure is very slow to respond to input from the controller, it holds the temperature reported on the LCD panel steady.

Rear view of the heater assembly.  24VDC fan, 500W heater bar, SSR, and connectors.  The base is a 1" square aluminum tube I had left over from an early design of SoM's X axis.  The heater bar is mounted using two steel angle brackets.  The fan and SSR are screwed directly to the aluminum tube.  The lips on the ends of the tube are used to mount it on the printer's frame.

Front view of the enclosure heater assembly showing connectors, SSR, 500W heater bar, 24V fan, and my familiar, Ms. Kitty.

Anderson Power Pole connectors used for both AC line and 24V SSR drive/fan power.  These things are great- they are both male and female, handle lots of current, and you can stack them in any configuration needed, though they can be hard to separate if you try to use more than 4-6 of them for a single connector assembly.

Enclosure heater installed in the bottom of the printer.  I may have to add a heat shield for the Z axis motor, and I still need to cover the electrical connections on the heater bar.  I'll also be adding a TCO when I figure out a good way to do it.

The 100K thermistor is mounted at about the middle of the printer's Z axis and plugged into one of the SmoothieBoard's unused thermistor inputs.

The original wiring.  Don't do it like this- it has been updated- see update at the end of this post.

Configuring the firmware for the heater was easy:

# Enclosure Heater Configuration

temperature_control.enclosure.enable               true           # Whether to activate this module at all. (UMMD)
temperature_control.enclosure.sensor               thermistor
temperature_control.enclosure.thermistor_pin       0.26           # Pin for the thermistor to read (UMMD)
temperature_control.enclosure.heater_pin          2.7            # Pin that controls the heater (UMMD)
temperature_control.enclosure.beta            3950      #(UMMD)
temperature_control.enclosure.set_m_code          141            # M-code to set the temperature for this module (UMMD)
temperature_control.enclosure.set_and_wait_m_code 191            # M-code to set-and-wait for this module  (UMMD)
temperature_control.enclosure.designator           A              # Designator letter for this module (UMMD)

temperature_control.enclosure.p_factor            304.4          # for (UMMD)
temperature_control.enclosure.i_factor            6.656         # for (UMMD)
temperature_control.enclosure.d_factor            3479            # for (UMMD)
temperature_control.enclosure.pwm_frequency       17         # to drive SSR (UMMD)
temperature_control.enclosure.max_pwm             255         #(UMMD)
temperature_control.enclosure.max_temp             55             #  limits enclosure to a safe temperature (UMMD)
temperature_control.enclosure.runaway_range        20  # Max setting is 63°C  (UMMD)
temperature_control.enclosure.runaway_heating_timeout   900 # 0 disables (UMMD)


There are two main safety considerations with something like this: electric shock and fire.

Electric shock is protected against by using insulated wire and covering the electrical connections to prevent accidental contact with high voltage.  I'll be covering the electrical connections to the heater bar with high temperature silicone.  The connections at the SSR are covered by the SSR's integral plastic cover, and the covers on power pole connectors.

Fire safety is a whole different problem.  There are five components to consider.  The wiring, the SSR, the fan, the thermistor, and the controller board.

Wiring failure is protected against by using an electrical fuse that will kill power if there is an electrical short.

If the SSR fails off, it isn't a problem, but if it fails "on", and that's how they fail, it's a big problem.  There won't be anything to stop the heater bar from getting dangerously hot.  The only protection for that is a TCO wired in series with the heater that will interrupt power to it (like the one used on the bed heater).

Fan failure, just like the SSR failure, will allow the heater will get extremely hot.  It isn't likely that the thermistor will notice before the heater has done a lot of damage, so the heater bar TCO will have to protect against fan failure, too.

The firmware configuration settings above limit the maximum enclosure temperature to 55°C, and will shut down the machine if the set temperature exceeds that or remains 20°C away from the set temperature for more than 15 minutes (heating the enclosure is a slow process).  Those settings essentially detect thermistor failure, and only help if the controller board is working properly.

Finally, if the controller board loses its mind, there's nothing to tell the heater to turn off, and the heater bar TCO isn't going to work because the fan is blowing air over the heater.  What is needed here is a passive, one-shot TCO that will kill power to the printer if the enclosure temperature gets too high.  Expect another blog post on that once I figure out what to use.  Until then, operating the printer is a gamble...

Update:  After thinking about it for a while, I changed the fan used for the chamber heater.  In the original design I used a 24VDC fan connected across the input of the SSR that switches power to the heater.  The problem with that scheme is that if the SSR fails "on" (that's how they fail), the heater will turn on even if the fan isn't on.  That could lead to a fire because the heater gets extremely hot without the fan blowing on it.  I have replaced the 24VDC fan with a 208VAC fan wired directly across the heater.  The fan turns silently at 117VAC in, but moves enough air to keep the heater at a safe temperature.  If the SSR fails, both the fan and heater will run, which is much safer than running the heater without the fan.

It's better to wire it this way.  Connect the ground lead of the power input to the frame of the printer.

I still need to add a cover and TCO.

Here's the new arrangement:

The 24VDC fan was replaced by a 208VAC fan wired directly across the heater.  At 117VAC it blows enough air to keep the heater at a safe temperature, and runs very quietly. 


  1. Mark, I initially visited your blog as a result of the Hackaday post about using the CPAP air supply. Subsequently I was attracted by your continuing UMMD experience. Wow, what a mother-load of detailed, coherent, practical knowledge for the 3D printer builder and user. Thank you for taking the time to document your experiences in such a well organized way. I'm sure that I will be visiting your blog regularly. Kindest regards, Murray

  2. Thank you! I'll keep posting as I work on new things.


Leave comments or a questions here and I'll try to post a response as soon as I can.