Filament Thickness Sensors, What Are They and What Are They Good For?

I keep up with the trends in 3D printing reasonably well. The other day my friend mentioned that filament thickness sensing had been added to the latest version of the Marlin firmware. I had no idea what it was, but it certainly sounded cool. I had to find out more.

In industrial settings, filament is made by pulling extruding molten plastic at a certain speed into a cooling bath. The nozzle for 2.85mm filament and 1.75 mm filament is actually the same size, but the filament is stretched more or less as it leaves the nozzle. By balancing these three variables the extrusion machine can produce any size filament desired. Like any mechanical system, it needs constant adjustment to maintain that balance. 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. Some of the worst have larger errors such as +-.10mm. Because the plastic is fed into the extruder at a fixed linear speed, this makes a variation in the volume of the plastic coming out of the nozzle per second. With the best we see a 4.41% variation in the volume of plastic extruded. With the worst we start to see 10.51% or more.

FIlament variation showing up as a cosmetic defect.
Filament variation showing up as a cosmetic defect.

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.

So, what does a filament thickness sensor do to correct this issue? To start to understand, we need to look at how the filament is dealt with by the software. When the slicer is compiling the G-code for a 3D print, it calculates the volume of plastic it needs in order to deposit a bead of plastic of a certain width and of a certain height per mm of movement. That was a mouthful. For example, when a printer printing 0.2mm layers moves 1mm it wants to put down a volume that’s 1.0mm long x 0.4mm wide x 0.2mm high. The filament being pushed into the nozzle has a volume per mm determined by the diameter of the filament.

(\pi (radius_{filament})^{2}*length_{filament extruded})=volume

The volume out per mm of filament in.

(layer_{height}*layer_{width}*length_{move}) = volume

The equation we are trying to balance.

Our goal is to integrate the thickness sensor into these functions to see what the thickness sensor is doing. This is a linear equation, so there’s nothing fancy here. Now, the layer height, layer width, and length of the move are determined by settings and model geometry respectively. These are fixed numbers so we don’t care about them. That leaves us the diameter of the filament and the length of filament extruded. As we mentioned before, typically the filament is assumed to be a fixed diameter. So 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.

But, we know that one of these variables is actually changing per millimeter as well. The filament diameter! So now we have a problem. If the filament diameter is changing all the time, our equation will never balance! In order to fix this we can add a multiplier to our equation. Since we have no control over the width of the filament we can’t modify that value. However, if we know the width of the filament, and we know the value its supposed to be, we can change the length of the filament extruded. This is because unlike the filament, we have control over the stepper motor that drives the extruder. This value is called the extrusion multiplier, and its determination is what the thickness sensor is all about.

So all the filament sensor does is measure the filament’s current diameter. 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.

2016-01-26_00h08_00
Shadows on the sensor from [inornate]’s variation.
There are a few thickness sensors being toyed with right now. The first, as far as I can tell; let me know if I am wrong in the comments, was by [flipper] on thingiverse. He is in his third version now. The sensor works by casting a shadow of the filament as it passes by onto an optical sensor. The firmware then counts the pixels and works backwards to get the diameter. This value is sent to the Marlin firmware on the printer which does the rest. As is usual and wonderful in the open source community, it wasn’t long before others started working on the problem too. [inoranate] improved on the idea by casting more shadows on the sensor. The technique is still brand new, but it will be interesting to see what benefits it reaps.

Now comes the next question,”Is it worth upgrading my printer with a thickness sensor?” If you typically run poor filament, or if you extrude your own, yes. The current sensors can only measure +- .02mm. So for the best filament, you won’t really see a difference, but for worse stuff, you might. The latest firmware of the Lyman filament extruder, for making your own filament, also supports these sensors, letting you feed back into your production system like the industrial machines. All in all a very interesting development in the world of 3D printers.

Learn How A Radial Engine Works or Gawk at Amazing Wood Model

[Ian Jimmerson] has constructed a detailed model of a radial engine out of wood and MDF for an undisclosed reason. Rather than just delivering the wooden engine to wherever wood engines go, [Ian] decided to take the time to film himself disassembling and reassembling his engine, explaining in detail how it works as he goes. He starts by teaching about the cylinder numbering and the different possible cylinder configurations. It only gets better after that, and it’s worth watching the full 20 minutes of video. You’ll leave with a definite understanding of how radial engines work, and maybe build something neat with the knowledge.

Our only complaint is the lack of build photos or construction techniques. It’s a real feat to build something with this many moving parts that can run off an electric drill. Was a CNC involved, or was he one of those hardcore guys who manage to get precision parts with manual methods? Part 1 and 2 after the break.

Continue reading “Learn How A Radial Engine Works or Gawk at Amazing Wood Model”

Super Detailed 3d Scans With Photogrammetry

Photogrammetry is a real word, and [shapespeare] built himself a nice setup to take high-res 3d scans using it. A good set of images for photogrammetry are: in sharp focus, well lit, precisely indexed, and have a uniform background. The background was handled by a 3d printed stand and some copier paper. To get even lighting he used four adjustable LED lamps from Ikea.

In order to precisely index the object, he built an indexing set-up with an Arduino and a stepper motor (housed in the, self proclaimed, most elegant of 3d printed enclosures). The Arduino rotates the platform a measured increment, and then using [Sebastian Setz]’s very neat IR camera control library, snaps a photo. This process repeats until multiple photos of the object have been taken.

Once the photos have been taken, they need to be run through a photogrammetry processor. [shapespeare] uses Agisoft Photoscan, but says Autodesk Memento and 123d Catch do pretty well too. After all this work it appears that [shapespeare] used his new powers to 3d print a giant decking screw. Cool.

A Vase of Ice and Fire

When we first saw [Ginko Balboa]’s vase of ice and fire, we weren’t that impressed. Until we realized that the whole vase was a glass, copper, and solder circuit with LEDs sandwiched in between. The tutorial starts with [Ginko]’s technique for etching a custom board for the base circuit. It gets interesting with the construction of the LED circuit.

First a glass bottle was scored in a pattern and shattered, leaving a jigsaw puzzle. Two differently colored LED light strips were desoldered. Then, from the bottom up, the glass was taped around with an adhesive backed copper tape, and soldered together. Every now and then an LED was soldered between the carefully separated areas of the circuit. Some LEDs were soldered in one way, and some the other. This way the vase could be rotated on its base to select a different color. Once the outside of the vase with the LED circuit inside it was finished, another cut bottle was put in the center and soldered in a final position, making the assembly waterproof.

The final product is really interesting, and we’re scratching our head to figure out if there’s anything else this technique of circuit building could be used for. Ideas?

Joysix, Six Degree of Freedom Mouse Made From Retractable Key Rings

[Nicolas Berger] submits his six degree of freedom mouse project. He hopes to do things like control a robot arm or fly an alien mothership.

We thought the construction was really neat; suspending a wooden ball in the middle of three retractable key rings. By moving the ball around you can control the motion of a cube displayed on the computer. We first thought this was done by encoders or potentiometers measuring the amount of string coming out of the key fobs. However, what’s actually happening is a little bit cleverer.

[Nicolas] has joined each string with its own 2 axis joystick from Adafruit. He had some issues with these at first because the potentiometers in the joysticks weren’t linear, but he replaced them with a different module and got the expected output. He takes the angle values from each string, and a Python program numerically translates the output from the mouse into something the computer likes. The code is available on his GitHub. A video of the completed mouse is after the break.

Continue reading “Joysix, Six Degree of Freedom Mouse Made From Retractable Key Rings”

Fully Printed CNC On an IKEA Table

It seems that many 3D printer owners just aren’t getting the same buzz they used to off their 3D printers, and are taking steps to procure heavier machines. And making them in their home laboratories with, you guessed it, their 3D printers.

Following the pattern, [Michael Reitter], designed a 3D printable CNC around a IKEA MALM table. In order to span the length of the table for his X axis, he came up with a very cool looking truss assembly. The linear rails rest on top of the truss, and a carriage with the Z axis rides on the assembly. The truss has enough space in the center of it to neatly house some of the wiring. The Y-xis mounts on the side of the table.

Overall the mechanical design looks pretty solid for what it is, with all the rails taking their moments in the right orientation. We also like the work-piece hold downs that slide along the edge of the table. It even has a vacuum attachment that comes in right at the milling bit.

We’re not certain how much plastic this build takes, but it looks to be a lot. Monetarily, it will probably weigh in at a bit more than some other options. As many in the 3D printing world are discovering, sometimes there’s no reason not to leverage more mature industrial processes for lower cost large gains in accuracy and strength. Though, it’s pretty clear that one of the design goals of this project was to see how much one can get away with just a 3D printer, and we certainly can’t deny the appealing aesthetic of this CNC.

Video of it in action after the break.

Continue reading “Fully Printed CNC On an IKEA Table”

Making Parametric Models in Fusion 360

We all know and love OpenSCAD for its sweet sweet parametrical goodness. However, it’s possible to get some of that same goodness out of Fusion 360. To do this we will be making a mathematical model of our object and then we’ll change variables to get different geometry. It’s simpler than it sounds.

Even if you don’t use Fusion 360 it’s good to have an idea of how different design tools work. This is web-based 3D Modeling software produced by Autodesk. One of the nice features is that it lets me share my models with others. I’ll do that in just a minute as I walk you through modeling a simple object. Another way to describe what we’re going to learn is: How to think when modeling in Fusion 360.

Continue reading “Making Parametric Models in Fusion 360”