If you have any 3D printing experience, you already know that one of the key aspects of a high-quality 3D print job is the proper thickness of the object’s walls. Increasingly, 3D printing services are adding different options for testing out this thickness before you send a job to the printer. Marlin Firmware, a “firmware for RepRap single-processor electronics, supporting RAMPS, RAMBo, Ultimaker, BQ, and several other Arduino-based 3D printers,” has recently added something called “filament thickness sensors.” Hackaday’s Gerrit Coetzee has gone ahead and done the honors of breaking down exactly what is meant by this kind of sensor, and investigating how it can be used for higher-quality 3D printed projects.
First, let’s begin with a brief explanation of how filament is made. Extruding molten plastic is pulled at a certain speed into a cooling bath, resulting in filament that is stretched by a nozzle (sized at either 2.85mm or 1.75mm). In this stretching process, the filament requires a system that constantly adjusts itself. Coetzee explains how the constant adjustment occurs in a mechanical system for an industrial 3D printer:
“This is usually done by measuring the filament with a laser after it has cooled, and then feeding this information back into the system. The better filament manufacturers have multiple lasers and very fast feedback loops. Some of the best offer +-0.04mm or less variation in thickness between any two points on the filament.”
So far we see that better quality filament arrives there due to multiple lasers and fast feedback loops at the site of its manufacturing. Filament quality is controlled through this process, as high-quality filament can guarantee “a +- 0.04 mm variation in thickness between any two points on the filament.” Lesser quality filament can have errors as large as +- 0.10 mm variation in thickness. That’s quite a difference.
“A printer is dumb. It works under the assumption that it is getting absolutely perfect filament. So when it gets 10.51% more plastic, it simply pushes it out and continues with its life. However, if the filament is off enough, this can actually show up as a visible defect on the print. Or in worse cases, cause the print to fail by over or under extrusion of plastic.”
Unless you have access to the best 3D printers and materials around, and even if you do, you have probably experienced a print failure. But did you consider that it could be due to the fact that your “dumb” 3D printer can’t determine when (supposedly uniform) filament thickness changes?
Enter filament sensoring, which is initially a process located in the software. Here it gets complicated, with talk of mathematical formulas and all, but to keep it simple consider that when a slicer compiles G-code for a 3D print, it calculates the volume of plastic required “to deposit a bead of plastic of a certain width and of a certain height per mm of movement.” The filament’s diameter determines the volume per mm of filament being pushed into the nozzle at any given time.
Are you still with me here? The logical conclusion to all of this is that “all the software has to calculate is the length of filament that needs to be extruded per mm of combined movement in the x and y so that our volumes match.” And this, here, is the goal of filament sensing. By measuring the filament’s current diameter at any given time, “it takes expected diameter and divides it by the value it just measured to get a simple percentage. It feeds that number back into our system as the extruder multiplier and slows or speeds up the stepper motor as needed. Pretty simple.”
Well, not exactly simple, but fascinating nonetheless. And it is also reassuring that more 3D printing services and individuals, including this post on Thingiverse, are tackling this filament thickness problem through sensor development.
You can go ahead and read much more about all of this here if you are a math geek or just enjoy the challenges that some of these larger 3D printing problems offer. Was this information helpful? Discuss in the Sensors for 3D Printing Filament forum over at 3DPB.com.