Hacker News new | past | comments | ask | show | jobs | submit login
Programmable Filament Gives Even Simple 3D Printers Multi-Material Capabilities (ieee.org)
118 points by headalgorithm on Oct 31, 2020 | hide | past | favorite | 42 comments



There is a commercial solution that fuses multiple materials on the fly as it feeds into the the printer: https://www.mosaicmfg.com/

From what I've heard, there is a lot of filament waste still. But the results looks decent.


Tried a Palette 2s for a few weeks before returning it - even wrote my own Duet 3 plugin for the feedback loop. Tried it with several different printers including a custom built one, and tried it using a variety of extruders and hotheads. Not worth the time or money.

Their support is completely unhelpful (I ended up reverse engineering the octoprint python plugin) and while its pretty piece of hardware, it is largely a very expensive paper weight as another commenter mentioned. Several design flaws make it very frustrating to find the right settings for material combinations since it clogs all the time, forget doing true multimaterial (not just multicolor) printing unless you make a binding layer (TPU) or chose compatible plastics since most stick together worse than PET, and the closed loop feedback mechanism is far from good enough to have even 50% success rate. I managed to get a few decent prints from the contraption but it required babying the 3d printer even more than before. If you have wild humidity or temperature swings (such as when doing a long 10-20 hour print), you can forget about any sort of reliability. Oh and it is slow - best I've gotten on the 2S is 40mm/s (one of the printers I tried it on maxes out at 200-300 mm/s, though few materials can support that speed).

That said, without that closed loop feedback, the method described in the paper simply will not work on nontrivial prints. If I'm understanding it correctly, it's just doing the same thing as the Palette except not in real time.


This is the one from Prusa https://shop.prusa3d.com/en/upgrades/183-original-prusa-i3-m...

I know three people who own this, two think it works fine and one thinks it is junk. I have been tempted but haven't wanted to burn up $300 on the off chance it does what I would want.

My original Makerbot Creator 2x has two extruders so you can do two materials, but print failures where one of the filaments stripped were more common than print successes. It was why I didn't bother looking for a dual extruder when I replaced it and ended up with the Prusa MK3S (which basically had everything on it that I would have put into a printer I built myself).


In my experience its absolute junk. There is too much friction throughout the entire systems. So it often slips the filament when extruding or retracting. Leading to clogged nozzles, holes in the filament and other nasty business that take a lot of time to fix. I've rebuild the one I have tree times now but it keeps misbehaving. I can't rely on even 10 tool changes working out. And a big multi-material print often takes hundreds of them.

Its in stark contrast with the Prusa printer itself which I find to be of extremely high quality an easy to use :).

I also have two friends who have the MMU. For one them it always worked perfectly. For the other friend the first one didn't work at all, but once Prusa replaced it with an orange one (they were very explicit about that) it did work a lot better.


Am I the only one thinking about cascading the output of 4 of those machines into the input of another? You could achieve 8, 16, 32 color prints!



Next step: pneumatic fast-change arm!

https://youtu.be/G9ZdMgCMsV4?t=23

...with gigantic magazines!

https://youtu.be/oTz2P5RaoDk?t=427


The approach in the article is novel, but multi-filament splicer/feeders like the one you linked seem much more convenient.


If they'd work decently - ask people who have them, i "know" at least two on a 3d printing discord and what they have is basically a pretty expensive paperweight...

I once saw some video about the buffer and the way it is flawed - also don't expect any print speed if you're using it :S


This is a really cool result. Basically you know how much filament you're going to feed into a print, so you can back compute what part of the filament would be in what part of the print, and then construct a filament with the right materials in the right places. That it works as well as it does is pretty neat.

I expect it also makes for some interesting print failures when you're print/filament registration is messed up. :-).

If this becomes a 'thing' then you could design a filament making machine that would make a custom spool of filament. Even if you had a printer with a 'belt' for the bed, then you could make as much filament as you wanted.


There's a device called Palette, I think, that can do this on the fly. You hook it up between your filament(s) and your printer, and send it your print as well. It basically looks at your print and determines how much filament is needed for each segment, and then splices together a few different inputs into one continuous thread. I don't know how well it works or how difficult it is to get setup, but the concept does exist.


> If this becomes a 'thing' then you could design a filament making machine that would make a custom spool of filament.

This is exactly what they are doing: see the video in the article.


They print the filament, agreed, but because they are using a machine with a print bed they are limited in how much they can print. Imagine you had what was essentially a 1 axis 3D printer. That printer had what would look kind of like a tank tread with a bunch of very small (~10mm^2) steel plates that were hinged like a tank tread, and formed a loop along the printers single axis. Say there was roughly 40 cm or tread that would be level. The printer, then prints a few cm or filament along the plate and the set of plates move underneath the print head. As they get far enough away, the plates drop down along the idler wheel and the printed filament attached to that plate is popped off and hanging in air because it is still attached to the rest of the filament that has been printed.

If, of the end of that tread/surface you had a take up spool you could just print until you filled up the spool if you wanted too.


I believe a 1 axis printer is usually called an extruder.


A 3d printer filament printer, you might say.


Exactly. And using existing 3D printing technology out there I'm guessing one could arrange the parts of a 3D printer into something that just printed filament.


My biggest issue with this is that your produced filament will have garbage tolerances, probably some air pockets, and have a high likelihood of jamming your hotend at some point.

A better solution would be a machine that snips different color filaments right off the spools at the right lengths and welds them together. That all said, this is a cool project from a "what's possible" perspective.


Neat idea. Still needs a purge block of course, but I wonder if it could be altered to extrude it into another "purge filament" which could be used again as scratch filament.

I guess there might be a limit on the number of times material can be extruded from a hot end before it starts to degrade?


This is a really cool idea. I think the limitations are that you can only make filament rolls that are small enough to fit on your bed, and the precision with which the colours match the intended part depends on how much oozes out when you're priming the nozzle.

I noticed that some of the parts shown in the video appear to have a wipe tower next to them. Presumably this is because the G-code was generated with Cura or similar, but given that the filament is one continuous piece with colour changes in exactly the right places, it seems like you could skip the wipe tower? Or maybe it's better to keep the wipe tower because it reduces the precision required in priming the nozzle?


> can only make filament rolls that are small enough to fit on your bed

I suppose you could print filament of arbitrary length by doing batches that get pieced together.

Here's my best idea so far how to do it:

(1) Instead of a spiral, print in a double spiral. Meaning a spiral that starts on the outside, goes to the middle, makes a u-turn, and then goes out to the edge again. (For the u-turn, I assume filament has some minimum turn radius and as long as you stay above that, it's workable to straighten it out.)

(2) Pause printing, put a clamp over one end of the printed filament, yank the rest off the bed and wind it on a reel.

(3) Resume printing, and repeat as many times as necessary.


I think the tower is still needed because when the filament changes you will have a blend, as old melted filament inside the head will combine with the new filament, it takes a bit of time/material to clear.


Various people including me have proposed mixing filaments by printing the filament. However, there are some good ideas here that had not occurred to me. I suspect forms of this have been invented multiple times. I know of two: My design was deliberately gradient in nature: https://www.thingiverse.com/thing:3609741 and was inspired by someone else's design for an even mix of two materials: https://www.thingiverse.com/thing:3565827


I may be completely off, of course, but it seems to me the "little bit of extra work" is more like a "large waste of time with uncertain results".

I cannot but imagine that besides the time needed to 3D pre-print the custom filament, the number of failed prints due to errors in the calculation, or the feeder slipping, or the extruder clogging must be relevant.

Never used one, but there are 2-in-1 and 3-in-1 cheap printers that surely are more practical.


Nice, this would be precise if start mark could be verified, so to prevent any shift error between transitions.


Yeah, the paper mentions that the only way the authors were able to get reasonably accurate alignment was by manually adjusting the offset during the printing process.

On my printer, the extruder uses a toothed gear that grips the filament by biting into it. The exact length of filament that gets displaced for a given amount of gear rotation depends on how deeply the teeth penetrate, which in turn depends on how tightly the gear and filament are pressed together, the filament's stiffness, ambient temperature, and probably all kinds of other factors.

It seems to me that you could solve this problem in principle by printing a toothed pattern into the filament itself, so that the gear teeth automatically align it to the correct position, instead of deforming it.


You should write to them. That’s actually a great idea.


Sound like an interesting idea, but probably quite limited in practice. They write that you can produce 20m segments of filament on a 30x30cm bed. That is already a somewhat large printbed, and 20m is not that much filament. So it seems like the use case would be small objects only.

3D printers can be very finicky, and I'd worry that the filament diameter and properties would be variable enough to cause issues here.

My impression is that multi-color printing is far more limited by the amount of effort one is willing to spend on tuning everything until it works than just money.


The was a Indigogo project that did not take off, where they demonstrated making filament from pellets using an extruder. Had this been extended with multiple color feeded to the extruder at the right time, it would make this technique a lot more practical.

Maybe also more high precision because you can have the extruder closer to the printer, to match filament type with what is printed at any given time.

I proposed the this technique about 5-6 years ago here on HN. Nice to now se it in real life.


The problem is that an extruder that makes filament is something that can easily take up a room. It requires vats of water, wheels multiple measurement sensors, tensioner, spoolers, etc. And it still is unlikely to produce consistent filament compared to a commercial operation. I love the idea but I feel like you might be better off injecting viscous dyes into the hotend instead.


Hobbyist extruders are fairly available already [1] and easily fit on a small table. You only need a giant one if you're manufacturing filament professionally and plan to produce hundreds of kilos a day.

[1] https://www.filastruder.com/products/filastruder-kit?variant...


Room size? Several examples that is home made and about the size of a hand (this from 2014): https://richrap.blogspot.com/2014/12/no-more-filament-quest-...


This appears to be the Instructables post that the authors briefly mention as "inspiration": https://www.instructables.com/DIY-Rainbow-3D-Printing-Filame...


This is neat but I don’t understand how it saves time/effort compared to simply pausing the print at the right times and changing the filament then?

The article addresses this but I don’t understand their explanation.


If you have multiple colors per layer, you have to switch filaments at each layer. A typical 3D print has hundreds of layers. Manually switching is only an alternative if you print a continuous part in one color, and then switch to another continuous part in a uniform different color.

In this method you have to only switch to each color once (if the filament length you can print is enough for your object).


Hmm. I’m not getting the switch each color once part. Why is that?


Printing the filament like in the linked article is essentially in 2D (not really, but for this point it's close enough). So if you have 2 colors, you can first print all color 1 segments, and then manually switch and print all color 2 segments.

In a real object your print is 3D and consists of layers that are ~ 0.1-0.2mm high. In a typical multicolor print each layer has several colors, and you have to finish a layer before printing the next one. So you have to switch between all colors that are present in each layer.


To create the 'programmable filament,' you only switch over to each color once as they generate the toolpath in such a way that the nozzle doesn't interfere with previously printed filament (and the printer resets the z-axis back to 'layer 0' each time it switches colors).

For making relatively small, multi-material / multi-color prints, this really is a pretty clever system that looks reasonably practical on a wide variety of existing low-end 3D printers. With good software support, I could imagine being able to make things with interesting physical properties by making hybrid rigid / flexible materials (integrated hinges or other deformable parts, for instance).


I finally get it! That’s really cool.

This is what I wasn’t getting:

> resets the z-axis back to 'layer 0' each time it switches colors


I never thought of printing filament, this would be a perfect replacement for a prime tower so it's not all wasted.


This is a good example of bad system design. It claims simplicity and elegance but will have a serious cost in robustness. Simple is only simple if it increases the robustness of the system.


That's cool and all, but wildly impractical. Just thinking about swapping the filament dozens if not hundreds of times to print the intermediary filament that's capable of making each layer of the final product is making me tired.


I believe you only need to swap the filament once for each different filament material that will be used. That's the whole point of the article.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: