Jump to content
Ultimaker Community of 3D Printing Experts
slyowl

Many filaments, one nozzle: The Demultiplexer

Recommended Posts

At Open Bionics, we've been experimenting with automatically changing the filament in the hotend. The goal was a solution which could accept as many different filaments as we could control off the board, with only one hotend. In theory it wouldn't require complicated parts, and could be highly expandable.

The idea was to withdraw the current filament from the hotend, and push another one in, extrude that, and repeat.

IMG_7015.thumb.JPG.a0ecf54afbca6a30629688d9393d3dff.JPG

We used a "tight" demultiplexing part, where the filaments were fully enclosed by bowden tube for as much time as possible. This part screwed onto the top of the U2 head. The filaments slided through easily, although some chamfering with a knife was needed on the inside of the receiving bowden tube to enable a smooth transition.

IMG_7017.thumb.JPG.d5b5f04324e0b31728dc968357881d8b.JPG

Withdrawing the filaments (we are experimenting with PLA and ninjaflex) caused significant stringing on the withdraw - which blocked the bowdens. We experimented with different withdrawal rates, and temperatures. We found some success with double and triple "dipping" techniques - where instead of pulling the filament straight out, it was dipped back into the hot end, and then withdrawn again, to detach the string. A similar technique is used in industrial cake decorating robots! We managed to develop dipping techniques for both plastics which avoided any stringing, and produced the most consistent head. However, even our best attempt was temperamental - one day it would work, the next not... The dipping process was implemented by altering the Tool Change Command in Cura.

We gave up feeding flexible filament through a bowden, and switched to the Flex3drive (a direct drive). This posed a problem with our technique: the flex3 could only withdraw filament as far as just above its gripper wheel, meaning we could extrude extremely well, but couldn't change filament. We developed the idea of using bowden extruders simply to change the filament, with the flex3drive providing the actual extrusion force. We had some success with pushing through the bowden, and then switching to the flex3 and getting it to grab the filament and push it through - but again, it was temperamental. Ideally both steppers would be pushing at the same time to get a good grab, but the firmware mods were taking too long... Worth noting that the you need to disable the bowden stepper whilst the flex3 is extruding (this is a firmware bodge) - it is strong enough to pull through the disabled stepper (but not enabled!). Even when this is done, the filament tends to build up tension and then ping through, leading to an inconsistent extrude volume. Further difficulty is added by the e_steps being different between the drives, so no easy electronics fix there.

The upside to using the flex3 is that the filament path behind the flex3 doesn't have to be fully enclosed. We used an "open" demultiplexer part, where the deformed filament heads are stored when unused. This avoids the heads getting stuck in tight bowden tube (the bowden down to the flex3 was drilled out to 3.5mm). This part was very easy to make - and works well. It also eliminates compression in the filament between the drivers because of the open section.

IMG_7019.thumb.JPG.3aa7f63aa78150bc8479fbca1f9a4668.JPG

IMG_7020.thumb.JPG.03dca1f4288f0478381bd059ad7a17d8.JPG

IMG_7022.thumb.JPG.468252543e8387611c0c8bff22fdf5ee.JPG

So... we made some progress with this technique. However, there were too many points of uncertainty introduced: the strings, the flex3 grabbing the filament, the tension between extruders, clogging in the demultiplexers. We concluded that it's a road fraught with difficulty! On paper it works, but printers will be printers.

Would be very interested to hear if you've managed to get this to work!

TLDR:

- Retracting filaments from hotend causes strings - difficult to get rid of

- Need to use flex3 to consistently extrude flexible filament

- Difficult firmware mods to get flex3 to grab filament from bowden tube

- Filament changes are very slow

- Poor synchronisation between extruders leads to inconsistent extrude volume

- Don't try this at home!

IMG_7015.thumb.JPG.a0ecf54afbca6a30629688d9393d3dff.JPG

IMG_7017.thumb.JPG.d5b5f04324e0b31728dc968357881d8b.JPG

IMG_7019.thumb.JPG.3aa7f63aa78150bc8479fbca1f9a4668.JPG

IMG_7020.thumb.JPG.03dca1f4288f0478381bd059ad7a17d8.JPG

IMG_7022.thumb.JPG.468252543e8387611c0c8bff22fdf5ee.JPG

  • Like 3

Share this post


Link to post
Share on other sites

Thanks for the write up!

So.. what plans lie ahead of you?

Are you going to continue with the flex3drive, or look for a totally different approach?

What if you could reduce the hot zone above the heater blocks, would that reduce stringing?

@Foehnsturm, since you are the OP on the multihead thread this may be interesting to you as well :)@UltiArjan, @macua85 and @neotko too!

There are multiple roads to rome eh? :)

Share this post


Link to post
Share on other sites

Interesting write up, I feel printing 2 materials with really different printing specs in the same hot end is not the way to go. Controlling the right temperature, avoiding blockages and prevent pollution of one material into the other will be very hard if not impossible.

Getting specifics hotends for specific materials will probably be much easier to control. I do think the flex-drive is very interesting for ninjaflex (did you share the design of the Ultimaker2 conversion to flexdrive already somewhere? if not can you please do so?)

A dual settup like the magnetic heads is working ok, but it needs to become more stable, (my setup still needs frequent monitoring) which is much easier to do when you design a printer specifically for this goal.

It's not as lightweight as an ultimaker, but a "ready out of the box" example is the BCN3d sigma.

http://www.bcn3dtechnologies.com/en/catalog/bcn3d-sigma

A setup like this, with 2 heads mounted on a rail is easy to convert by changing 1 head into a flexdrive.

Share this post


Link to post
Share on other sites

So.. what plans lie ahead of you?

Are you going to continue with the flex3drive, or look for a totally different approach?

What if you could reduce the hot zone above the heater blocks, would that reduce stringing?

We've got ninjaflex and PLA printing well out of 2 nozzles, as per my post in the Flex3 thread, linked below. This is usable, though not totally reliable (though often bizarre non-recurring errors, such as z-shifts mid way through a 20 hour print...). We've also got a  Diamond Nozzle (discussed below). For now, the yield rates are unsatisfactory, so multi material is going on the back-burner. We'll look into The Palette, or a 3mm Diamond Nozzle, when released. Interchangeable heads plus diamond nozzle would be fantastic (6 filaments!) - but we need to get the individual components working well enough first. This demultiplexing idea is also on hold, until we muster up the courage to try it again!

I don't see the Flex3drive as mutually exclusive to any solution. I've designed parts to allow it to be mounted on each of the diamond nozzle heatsinks - and it could work on interchangeable heads too. Simply, where there is flexible filament, we're going to need a flex3.

Reducing the hot zone could work.

Interesting write up, I feel printing 2 materials with really different printing specs in the same hot end is not the way to go. Controlling the right temperature, avoiding blockages and prevent pollution of one material into the other will be very hard if not impossible.

We've also been experimenting with the Diamond Nozzle (on a Lulzbot), which has produced decent results printing with PLA and ninjaflex. The temperature difference doesn't seem to be too much of a problem. The main issues have been with the nozzle oozing during the print (both materials), and filament jamming in the bowdens (we're using 3mm filament in a partially drilled out 1.75mm diamond - so not ideal!).

Getting specifics hotends for specific materials will probably be much easier to control. I do think the flex-drive is very interesting for ninjaflex (did you share the design of the Ultimaker2 conversion to flexdrive already somewhere? if not can you please do so?)

See here. Will hopefully get the U2 flex3 STLs up soon.

  • Like 1

Share this post


Link to post
Share on other sites

Have you considered adding any other hardware to the mix? a trimming mechanism that would cut the previous filament at the point where the filament exits the squid thingy or even as far as the ceramic piece. Then throw out a retract command and then when the filament clears the little blue squid looking thingy you could push the new filament through, It wouldn't be very accurate (as far as when the material should change in relation to how far you have printed unless you set up a prime pillar to get rid of that extra stuff) because of the old filament left in the nozzle. and if you were switching from a high temp material to a low temp material it would possibly have an issue extruding the left over high temp material.

Share this post


Link to post
Share on other sites

Have you considered adding any other hardware to the mix? a trimming mechanism that would cut the previous filament at the point where the filament exits the squid thingy or even as far as the ceramic piece.

 

That would be the ideal solution. It could either trim off the tails, or cut through the filament itself (there tends to be a deformed section about 12mm long, which has been melted and solidified before the tail, which is normally slightly wider than the filament). You'd probably be best off having a blade which cuts the tail as soon as it exits the hotend, to avoid having tail remnants in the bowdens. That way you don't need to find a way of removing the cut off tails, as there shouldn't be any. Perhaps a disk which can spin, with a hole drilled in it. The filament normally passes through the hole, but to cut the tail, the disk is spun one revolution. It wouldn't necessarily have to be sharp - the hot tail should be cutable by shearing it.

We thought having a cutting blade was a bit too much mechanical complexity - as well as taking up an extra motor slot.

Share this post


Link to post
Share on other sites

We thought having a cutting blade was a bit too much mechanical complexity - as well as taking up an extra motor slot.

 

hmm...you could add some sort of blade near the wipe area ( a serated strait blade) running the length of the front of the printer and make an extra action at the point of tool change to "wipe" back and forth essentially sawing through it. Also If you aren't using the other heater, you could use that connection for a heat based cutting method.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!