The Tale of the Free-ish 3D Printer

A friend of a friend of mine was giving away a free 3D printer. When the opportunity arose, I couldn’t turn it down.

When I first received the printer, I didn’t know anything about the Anet A8’s notorious reputation. I was just excited for a new toy and a proper name for me to Google. And Google it I did, much to my horror. Colloquially referred to as “The Fire Starter” by the internet 3D printing community on account of its propensity to fail hot along several modes (firmware, underrated connectors, highly flammable frame, etc), this thing was gonna be a mess, even if it had come to me in pristine printing condition – it hadn’t.

This is what it looked like when I brought it home.
Printer as received, on dimensional lumber frame

The printer was integrated into a 4×8’ elevated platform assembly. Dimensional lumber (mostly 2×4) was used for the construction of the static frame. The Y-axis was mounted on drawer slides, and the Z-X plane used extended rods to canvass the larger work area.

In order to extend the electronic components to match the extended mechanical workspace, the previous owner used wire nuts(!) to splice extensions on the remotely located steppers and sensors.

At least four yikes
The devil is in the details

I knew this was not going to work in its current configuration, and I could not fit the large format platform into my lab. Fortunately, the load of materials I received included almost all of the stock hardware.

I didn't get any pictures of the printe more broken down than this. sorry <_<
Broken down into subassemblies

I dismantled the printer down to the component level. I kept the lumber for use in other projects, and decided to attempt to build the printer up to stock specifications. The included SD card had the entire technical manual, which included the construction instructions and a parts list. I matched up everything I had with the list, and found that a few parts were damaged or missing. The printer is designed using COTS components on a custom acrylic frame. For the COTS components, less than $35 on that river-named site replaced everything. Since I don’t have access to a laser cutter, I 3D printed the missing/damaged frame pieces from the design files included in the manual.

After receiving the necessary replacements (and about an 8-month hiatus) I rebuilt the printer. In addition to all the hardware upgrades I applied, one of the most important upgrades I could make on this machine is to update the firmware. The stock firmware ships with thermal runaway detection disabled. Therefore, if a heating element and it’s respective sensor become mechanically decoupled, The firmware has no way of checking and may continue to apply heat indefinitely, presenting the extreme risk of fire. I used the current-to-present-me version of Marlin (2.0.5.3), which ships with this critical check enabled (which will present another issue later).

Upon attempting to zero it the first time, I found that every stepper was uniquely wired. The Y-axis was the only motor to behave the way I expected, so I broke apart the harnesses on the other motors and rewired them to match Y’s order. Once the printer started behaving the way I expected, I was ready to start trying to print – or so I thought. I wanted to start at stock, but adding a few upgrades now will make printing safer and troubleshooting easier.

The electrical system is powered by an AC wall outlet wired directly into the terminals of the power supply. This means that in order to turn the printer off, the plug must be removed from the socket, which is less than ideal. Many Anet users recommend using a fused switch for safety and ease. I picked up a switch along with a pair of MOSFETS which I will discuss below from that same conglomerate site for about $20. Turning on the machine is now a satisfying click, and the power supply is fused at 5A on input, so a short circuit or other rapid power draw should cut power. A shell which houses the plug switch and covers the terminals was available from a certain universe of thingies, meaning I didn’t have to try to draw one myself.

The Z-axis endstop was not easily adjusted, and that is something that requires frequent tuning. Additionally, the bed leveling screws were a tad annoying to adjust as well. As these are well known problems, they are well solved. All I needed was to print a few more files off the intarwebz, and these major headaches became manageable. Now I’m ready to print.

The first print attempt was poorly zeroed and didn’t stick to the bed. I aborted it before the first perimeter was swept. The second and third attempts saw the hotend lose a temperature battle against the part cooling fan and that oh, so critical firmware protection kicked in and locked out the printer about five minutes into the print. I realized that the heater block fan, which runs continuously, and the part cooling fan, which runs on a signal from the controller, were switched. The part cooling fan was running constantly and defeating the hotend. I put the fans on their proper connections, and the test print lasted well into the third layer (about ten minutes) before losing the hotend vs part cooling fan battle again. 

I had upgraded the duct for the part cooling fan, but the PID that controls the hotend doesn’t know that. I just changed the g-code to set the fan to 70% down from 100%. That seemed to do it, as the fifth attempt successfully yielded a benchy. It wasn’t perfect, as there are still some overhang heating issues, but it did pretty well. I’d give it a solid B+. Moving forward, I could stand to actually adjust the fan PID to account for the ring duct.

Adding the MOSFETs to control the heated bed and hotend is an important upgrade, but it was not required to get the machine printing. However, once it was printing, it was the next thing to add. When installed, the hotend controller acted as expected, but I was finding that the heated bed controller was not heating the bed, but the transistor itself was getting hot. The bed was struggling to rise above 40ºc, but the transistor measured above 100ºc. Thinking the MOSFET was bad, I switched MOSFET boards between the bed the hotend, but the hotend board heated normally, and the bed board heated itself instead. Something else was wrong here. After digging around, I found that I had not thoroughly inspected the stock power supply, which was set to 220V AC. The power supply had been working to this point on 120V AC, outputting 12V DC. It wasn’t until I attempted to heat the bed with the MOSFET that there was a problem. I slid the switch to 110, and all was right in the universe.

After this point I was able to use the printer to print its own upgrades such as track chains. The Y-axis chain should alleviate the strain from the movement of the bed (another potential cause of fire is from wire fatigue at the bed connector), while the X-axis chain keeps the extruder wires clear of the workpiece and the moving parts of the printer. The X-axis chain also includes the Z-endstop adjuster I had printed separately.

There are a host of other upgrades I could add, and I intend on building Firestarter its own enclosure and Octopi server as I did with Starfighter. Maybe I’ll add a fire detection/suppression robot so I can feel at ease about running it without being present. Maybe that wouldn’t be a bad idea to do with Starfighter as well. However, now that the track chains are completed, the last of the recommended safety upgrades are complete. I’m okay calling this build done for now. 

In spite of its reputation, it’s not a bad printer for the price. Even with all the upgrades, if I had purchased this printer, the pricepoint would still be considerably lower than similarly sized printers. It’s no TAZ, but I think I can use this robot for smaller prints. I just don’t plan on turning my back on it for too long.

Now let's go print something!
All Done!

Thanks for reading, and Happy Printing!