Think laying down molten plastic on a 3D printer is as easy as squeezing plastic filament out of a hot tube? It’s not, and anyone who had a 3D printer in 2009 would tell you as such. There were hobbed bolts that stripped the plastic into a gooey paste, extremely large x carriages that made everything wobbly, and nothing worked as well as it does today.
Technology marches on, and this year’s Midwest RepRap Festival had people showing off the latest advances in pushing plastic, and something that hasn’t seen much use yet – dissolvable filament.
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.
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.
The volume out per mm of filament in.
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.
The ideal filament the printer thinks it is seeing.
The printer is unable to compensate for the variations.
By adjusting with the extrusion multiplier the printer is able to approximate perfect filament.
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.
I have an old Prusa i2 that, like an old car, has been getting some major part replacements lately after many many hours of service. Recently both the extruder and the extruder motor died. The extruder died of brass fill filament sintering to the inside of the nozzle (always flush your extruder of exotic filaments). The motor died at the wires of constant flexing. Regardless, I replaced the motors and found myself with an issue; the new motor and hotend (junk motor from the junk bin, and an E3D v6, which is fantastic) worked way better and was pushing out too much filament.
The hotend, driver gear, extruder mechanics, back pressure, motor, and plastic type all work together to set how much plastic you can push through the nozzle at once. Even the speed at which the plastic is going through the nozzle can change how much friction that plastic experiences. Most of these effects are somewhat negligible. The printer does, however, have a sort of baseline steps per mm of plastic you can set.
The goal is to have a steps per mm that is exactly matched to how much plastic the printer pushes out. If you say 10mm, 10mm of filament should be eaten by the extruder. This setting is the “steps per mm” in the firmware configuration. This number should be close to perfect. Once it is, you can tune it by setting the “extrusion multiplier” setting in most slicers when you switch materials, or have environmental differences to compensate for.
The problem comes in measuring the filament that is extruded. Filament comes off a spool and is pulled through an imprecisely held nozzle in an imprecisely made extruder assembly. On top of all that, the filament twists and curves. This makes it difficult to hold against a ruler or caliper and get a trustworthy measurement.
I have come up with a little measuring device you can make with some brass tubing, sandpaper, a saw (or pipe cutter), a pencil torch, solder, and some calipers. To start with, find two pieces of tubing. The first’s ID must fit closely with the filament size you use. The second tube must allow the inside tubing to slide inside of it closely. A close fit is essential.
XYZ Printing has been selling 3D printers for years now with one very special feature not found in more mainstream printers. They’re using a chipped filament cartridge with a small chip inside each of their proprietary filament cartridges, meaning you can only use their filament. It’s the Gillette and ink jet model – sell the printer cheap, and make their money back on filament cartridges.
Last week at CES, XYZ Printing introduced their cheapest printer yet. It’s called the da Vinci Mini, a printer with a 15x15x15 cm build volume that costs only $269. Needless to say, a lot of these will be sold. A lot of people will also be disappointed with chipped filament cartridges in the coming months, so here’s how you defeat the latest version of chipped filament.
A little bit of research showed [WB6CQA] the latest versions of XYZ Printing’s filament uses an NFC chip. Just like the earlier EEPROM version, the latest spools of filament just store a value in memory without any encryption. [WB6CQA] pulled a board from the printer, connected it up to a logic analyzer, and checked out the data sheet for the NFC chip, giving him access to the data on the filament chip.
After running a few prints and comparing the data before and after, [WB6CQA] found a few values that changed. These values could be written back to their previous values, effectively resetting the chip in the filament and allowing third party filament to be used in this printer. It’s a kludge, but it works. More effort will be needed to remove the need to capture data with logic analyzers, but we’re well on our way to chipless filament on da Vinci printers.
Cx5 is a strange material that’s a favorite of model makers and prop replicators. It’s kind of like a wax, kind of like a clay, and a little bit like a plastic. Now it’s a 3D printer filament. It looks very interesting for sculpted and highly detailed models, something the 3D printing scene hasn’t had yet.
[Zemnmez] could find dozens of apps and webpages that would calculate resistor color codes for him automatically. What he couldn’t find is one that would do it in reverse – i.e. type in a resistor value and return the correct color code. He made this.
[aggaz] needed a way to connect multiple MIDI devices to his computer. The MIDI spec provides a neat piece of hardware for just this occasion – the MIDI thru box. The only thing you need to build a single MIDI thru box is an opto-isolator and a buffer. It’s easy enough to build, although the DIN5 jacks used for MIDI devices are pretty expensive nowadays. (FWIW- We get an invalid certificate error when loading this page but you should still be able to load it.)
AliExpress always has some interesting stuff on it, and [Ethan] found something very cool. They’re A8 CPUs found in the latest iPhone. Are they real? Who knows. I bought one, and you’re going to get pictures in another links post in a month or so.
The Game Boy Micro was released by Nintendo in 2005 and quickly became one of the coolest and most desired handheld consoles on the planet. You need only look at the eBay listings for the Micro as evidence of its desirability. [ModPurist] took an old DS Lite and converted it into a Game Boy Micro – same idea, larger package.
There are dozens of different 3D printable cases out there for the Raspberry Pi, but the BeagleBone Black, as useful as it is, doesn’t have as many options. The folks at 3D hubs thought they could solve this with a portable electronics lab for the BBB. It opens like a book, fits a half-size breadboard inside, and looks very cool.
There’s a box somewhere in your attic, basement, or garage filled with IDE cables. Wouldn’t they be useful for projects? Yep, only not all the wires work; some are grounds tied together, some are not wired straight through, and some are missing. [esot.eric] has the definitive guide for 80-wire IDE cables.
If you have a 3D printer, you’re probably familiar with PEEK. It’s the plastic used as a thermal break in non-all-metal hotends. Now it’s a filament. An extraordinarily expensive filament at €900 per kilogram. Printing temperature is 370°C, so you’ll need an all-metal hotend.
It’s the Kickstarter that just keeps going and going and going. That’s not a bad thing, though: there really isn’t much of a market for new Amiga 1200 cases. We’ve featured this project before, but the last time was unsuccessful. Now, with seven days left and just over $14k to go, it might make it this time.
The printer [Thomas] is changing out to accept 1.75mm is the Lulzbot Mini, one of the most popular printers that would ever need this modification. The only required materials is a new hot end suitable for 1.75mm filament, a 4mm drill, and a few wrenches and allen keys. It would be a smart idea to get a hot end that uses the same thermistor as the old one, but that’s not a deal-breaker as the problem can be fixed in the firmware.
Disassembly was easy enough, and after mounting the PTFE tubing, cutting the old wires, soldering in the new hot end, thermistor, and fan, [Thomas] had everything set up and ready to go.
It should be noted that changing a 3mm hot end to 1.75mm doesn’t really do anything. Just about every filament is available in both sizes, although it may not be convenient to buy 3mm filament locally. It would be a good idea to change out the hot end so can standardize your workshop or hackerspace on a single diameter of filament.