Limitations: A Calibration Special!

Experimental Systems
5 min readApr 14, 2021

--

Usually, my posts here summarize the week’s events in my 3D design work. Today, however, something so strange happened that I have to dedicate a post just to describe what the hell happened.

This is a long and very technical post, so TL;DR: I had some holes in my prints and it turned out my printer wasn’t tuned for higher resolution prints. Issue is hopefully fixed now :).

I’m doing a batch of prints for a customer which requires a 0.2mm nozzle. To understand this, it’s important to mention that an FDM 3D printer pushes molten plastic through a nozzle to lay down lines of plastic that eventually form a part, and typically my printer uses a 0.4mm wide nozzle. However, for really small and/or detailed parts I have recently started using a 0.2mm nozzle, which doubles the ‘resolution’ I can print at.

Illustration of FDM printing by Manufactur3D
Illustration of FDM printing (credits Manufactur3D)

However, in the first batch of prints, I noticed small holes appearing in the parts, especially at the very finest detail. The hole patterns were consistent with under-extrusion, or in simpler terms, the printer wasn’t pushing as much plastic as it thought it was pushing.

A macro lens shot of one of the prints which shows the holes
That looks more like it’s crochet than printed!

This happens because the printer’s extrusion rate varies with several variables, and is impossible to actually determine without some expensive equipment. So to be able to determine the flow rate, there’s a parameter in the printer firmware called e-steps, which is how many steps the extruder stepper motor must take to extrude 1mm of filament. This value needs to be calibrated when major changes are made to the filament extrusion mechanism (which includes nozzle changes, but I avoid it if the print quality is unaffected as I’m a bit lazy).

So the obvious thing to check for me was that e-steps value. It’s set to 141 for my 0.4mm setup, and to check if it was still valid I extruded 100mm of filament (which is marked from the extruder entrance) and then measured how much is actually extruded by measuring the length of filament from the marker to the extruder entrance. In this case the length of filament left was 18mm, so 82mm was extruded (or the extruder was only pushing 82% of the plastic it thought it was).

The fix should be pretty straightforward, multiply the current e-steps (141) by 100 and divide by 82 to get the new e-steps value, which was 171.9. I plugged in this value to the printer and ran another 100mm extrusion test, which usually results in the marker getting closer to the extruder entrance than the previous measurement. And the marker got farther away. Visibly farther.

I didn’t measure it (and forgot to take a photo) because this completely stumped me. ‘It’s not supposed to increase, what the actual f**k?’ is basically what went through my head for a couple minutes.

Now, at that scale, fluids behave in weird ways, which I had a vague idea of. The nozzle is so small that there’s a hard limit on how much plastic you can push out of it, which is determined by a number of factors. This limit is difficult to determine without experimentation, and being ‘Experimental Systems’ and all, it’s what I wound up doing.

A table I quickly drew up for e-steps calibration
*flashbacks to lab observation books*

I changed the e-steps values to 156.5 (the median value of 141 and 171.9) and measured the excess this time. It came out to 22mm. Keep in mind my measurement method is a bit crude, and an error of +-2mm is unavoidable. But this was definitely below what I saw at 171.9, so I knew I was on the right track.

Next, to check that 141 wasn’t too high already, I tested an e-steps value of 130, and sure enough, the excess came out to 31mm. So I had a range to test within, and after drawing up a crude graph of e-steps vs excess (visible on the right of that notepad scribble) I figured that the excess was following a parabolic pattern, with a minimum around 150. So I set it to 150 and…

I got an excess of 28mm (way higher than the expected under 10mm) and now I got confused. It was a bit early to say that there were more factors at play, but I know my printer well, and immediately my attention turned to the extrusion temperature.

Oh yeah, another thing to mention is that the hot end (or the part that melts the plastic) on my printer doesn’t maintain a stable temperature. It oscillates about +-5 degrees Celsius, which is due to a bad temperature PID controller (which I’ve tried to fix, but it’s been challenging so I have it on hold). You’d think that at printing temperatures of 200 plus Celsius, an oscillation of 5 degrees wouldn’t have such a big effect, and with the 0.4mm nozzle that was the case.

With the 0.2mm nozzle, however, I suspected that the 10 degree swing was causing some major issues. This is exaggerated by the fact that I set the temperature near the low end of my filament’s printing temperature window to improve print cooling (which is important for aesthetics). So it’s possible the nozzle was too cold for the flow rates I need.

With this idea, I bumped up the temperature from 215C to 220C, and kept the e-steps constant at 150 steps/mm. The resulting excess was 26mm, which while slightly lower is within the error bounds of my measurement. On a hunch, I raised the temperature to 225C and repeated the test.

18mm excess. This was promising, but I didn’t want to raise it any further as the maximum temperature for this filament is 230C and with the oscillations, this was approaching that limit. So I bumped up the e-steps to 160 steps/mm and repeated the test.

3mm excess. Bingo! I finally had the result I wanted. It’s not zero, but enough for me! Any lower is difficult to measure and just wastes time. So now I’ve saved these settings to the firmware and the next batch is currently printing. As a precaution I’ve slowed the print speeds as well. I’ll put an update on my Twitter (and on this article) when the print completes.

Until then, goodbye!

--

--