At the risk of stating the obvious, when changing from one filament to another with a mixing hot end, it is necessary to purge out the old filament before using the new one. This post is about the latest tool that I have added to my collection of methods to deal with this purging.
Actually, it’s not strictly true that purging is necessary. A better description would be to say that it is necessary to purge out the old filament if it will be visible. That is because, depending on the object being printed, it may be possible to purge the filament by simply printing infill or some other part of the object that cannot be seen. This the method that I used to produce this vase as a demonstration object for the TCT show.
Essentially, the vase has 3 perimeters but no other infill. The colour change happens at layer change and the inner perimeter is printed before the outer ones. So the purge of the old filament is hidden between the inner and outer perimeters which are the correct colour.
Another technique is to move the tool (colour) change point forward in the code file. I covered this in an earlier post ( Multi colour printing without using wipe or prime towers )so won’t go into it again here. This can work reasonably well depending on a couple of things. For PETG, it works quite well but not so well for PLA. The issue here is that PLA will hydrolyse. That is to say, it will become less and less viscous (more and more runny) over time. The technique was quite successful if the filament was not held at print temperature for too long as I was able to demonstrate when I printed this Printing a union flag without purging.
The trouble with the 5 colour Diamond is that by it’s very nature every filament stays at print temperature for longer than the 3 colour version (roughly 5/3 times longer), so there is more time PLA to hydrolyse. So when I printed this for the TCT show ……
…..I used a mechanism whereby at every colour change, the print head moved to the rear of the bed and essentially “drew a line” of filament.
That works well but there is just one small problem which is that it relies on there being colour changes on every layer. So for example if the first few layers had no colour changes, then the bed would be some distance below the nozzle when it came time to draw the first line.
Which brings me to the latest addition to me armoury. This is essentially a variation of the above technique but instead of drawing a line of filament, it simply extrudes into a “bucket”.
The first thing I had to do was to move the bed forward so that there was a point where the nozzle has free space beneath it. This did mean losing a bit of travel in “Y” but I had recently gained some extra travel by re-designing the idler mounts, so it was no great loss and I still have around 355 mm of useable print length in Y.
Then I designed and printed the MK1 bucket which is shown below.
The white strip is silicone rubber, 10mm x 3mm. It sits in a groove in the printed bucket which is 3.1mm wide by 7mm deep so 3mm of the silicone rubber strip sits above the bucket. The assembly is fixed to the frame on two slotted brackets which allow it to be moved up and down so that it can be positioned such that the nozzle is just below the top of the silicone strip and will therefore get wiped as it passes over it.
For movement and filament extrusion I could have used the tool change macros to achieve what I wanted to do. The trouble with that is, because this is just one technique which would only be used on certain objects, I would have to alter or some how disable the tool change macros for other objects. So I decided to embed the necessary commands directly into the gcode file. To semi automate this, I wrote a little Python script which essentially searches for a “Tn” command, then inserts the necessary gcode commands immediately after. I’m still experimenting but here is what it currently looks like for Tool 0 which should be self explanatory. It should be noted that I use firmware retraction so if other readers want to try this, they may need to replace the G10 and G11 commands with whatever “E” moves they normally use to retract filament.
G1 X50 Y364 F21000; move quickly to rear of bed and X=50
G1 E20 F300; extrude 20mm of filament at 5mm/sec
G1 X70 Y352 F1000 ; move slowly forward past the rubber strip and 20mm to the right
G1 X90 Y364 F1000; move slowly backwards and right another 20mm
G1 R2 X0 Y0 Z0 F21000; move quickly to whence the print head was at the T0 command.
I use Slic3R which always inserts a G10 retract before doing a tool change so the first G10 above isn’t necessary. However, I’ve put it in because I may at some time in the future, use some other slicer which might behave differently. Duet firmware won’t act on a second retract command without an intermediate un-retract command so it does no harm. There is also an un-retract command (G11) before extruding filament which may seem unnecessary but I want to retract after extruding to prevent the filament from oozing, so there has to be a preceding un-retract for that to happen.
The other tool purges are similar but I change the “E” amount for each filament so for tool 4 which usually has White filament I use 40mm instead of 20mm that I use for Black filament. I’m still experimenting with values to find the minimum that works best. Also, each tool moves to a different position in X to spread the purged filament across the bucket. Tool 1 goes to X=100, tool 2 to X=150, etc.
The first initial tests were promising but mistake number one was that extruded filament did like to stick to the bucket – it being made of the same material. This was easily fixed by coating the surfaces of the bucket with silicone grease. Being careful not to get silicone grease on the rubber of course. (I suspect that wiping a nozzle with grease which would then get transferred to the filament wouldn’t be the best thing to do).
The next thing that happened was that previously extruded filament was getting picked up out of the bucket and dumped on the part being printed, basically because the bucket was too shallow. So I came with “bucket MK2” which is shown below.
As you can see, it isn’t a bucket at all as it has no bottom. This allows the filament to fall right through so that it can’t get picked up by the next pass of the nozzle. However, I didn’t want the filament simply dropping to the base of the printer where it could potentially get tangled up in the Z belt, so I recycled the original bucket which now resides on a couple of brackets attached to the bed frame.
I don’t have a picture of that but I guess now would be good time to point readers to the YouTube video that I’ve made which shows it all in action. I used the same “Flags” file that I printed before but this technique is really for objects that may not have any colour changes for several layers. It isn’t the best quality print because this one really benefits from having pressure advance and I had forgotten to enable it, but as a demonstration of using using a purge bucket, it serves it’s purpose.