Exploration of print speeds with a Diamond hot end

Disclaimer

Note that in the following blog I make comments about the Diamond hot end, E3D’s Titan extruders, and Duet electronics and maybe some other organisations. I wish to make it clear that I have no affiliation with any of these companies. All the items mentioned were bought by me as a paying customer and any comments I make are my own personal observations. None of what follows should be construed as any sort of recommendation or otherwise.

Introduction

For a while now, I’ve been wondering what the maximum print speed of a Diamond hot end might be. My rationale has been that effectively it has three melt zones (one for each filament) which in theory, if all three were used at the same time, should result in a higher filament melt rate and thus higher possible print speeds.

Also, looking at a drawing of the hot end, shows that many of the internal dimensions are very similar to E3D’s Volcano nozzle. Here is a drawing of the Volcano, reproduced here with kind permission from E3D.

Volcano-Nozzle

Here is a picture of the Diamond hot end, reproduced here with kind permission of RepRap.me.

diamond_nozzle_d

As you can see, the internal dimensions for the filament path are very similar, so possibly the melt rate might be similar too – and of course, there are three of them in a Diamond hot end.

Test Methodology

I guess one way to test the melt rate might be simply to heat the nozzle and extrude filament into air at higher and higher speeds and measure the actual amount of extruded filament each time. However, I wanted to know how that translates to actual attainable print speeds, so I decided to adopt a different strategy and actually print something.

My first consideration was that I needed to know that whatever speed I chose to print at would actually be attained and not limited by acceleration. Also, I wanted to have long continuous moves so that the extrusion wasn’t too affected by stopping and starting. Finally, I wanted to be sure that the first few layers were laid down nicely so that the quality of subsequent layers wasn’t affected by the quality of the underlying layers (this didn’t quite work as planned but more on this later).  So this meant that I would have to start slow and gradually increase the speed. With that in mind, I didn’t want something that was big in both X and Y directions as the first few layers would take a long time to lay down.

As readers of this blog will know, my gantry assemblies are heavy. In the X direction it’s about 1,670gms and in Y  about 3,048gms. So my accelerations are correspondingly low but X is higher than Y (obviously). (The acceleration figures were derived from calculations of the masses involved and the stepper motor characteristics and verified by testing to ensure that they are attainable without any missed steps).

So, I elected to have an object that was  long in X but narrow in Y which would be fairly quick to print the first few layers. I created a simple cuboid 300mm in X, 30mm in Y and 30mm in Z which I sliced using 100% infill at 90 degrees (i.e,. the infill is parallel to the sides).  I would simply ignore the short Y moves and concentrate my findings on the longer and faster X moves.

The theoretical speeds are as follows.

X length is 300mm. Acceleration is set to 1200 mm/sec^2. With the initial velocity being zero the formula for maximum speed is sqrt(2*acceleration*length/2) = 600mm/sec (should be adequate)

Y length is 30mm. Acceleration is set to 660 mm/sec^2. Using the same formula, the maximum attainable in speed in Y is 140.7 mm/sec. So regardless of what speed is demanded, that’s as fast as moves in Y will go, and they will ramp up to that speed, then ramp down to zero.

The object was initially sliced at 100mm/sec. I used my “normal” PLA settings which are 195 deg C hot end, 50deg C bed, and with an extrusion multiplier of 95%. I bought three identical reels of PLA from the same vendor and loaded one into each of the extruders. The object was then printed, starting at 50% speed (so 50mm/sec), for the fist few layers. Then the speeds was increased on layer change and the surface finish visually checked for obvious under extrusion or other signs of distress.

A total of four test were carried out.  The first was with a (more or less) standard 0.5mm nozzle and single filament input, at 0.3mm layer height. Note that the standard Diamond nozzle is 0.4mm but I always drill mine out to 0.5mm for reasons that I won’t go into here. Note also that I always use the hot end as a mixing hot end. That is to say that I always keep the filament moving in the “unused” inputs. So when printing with a single filament, I load some into the other two inputs and use a mixing ratio of 0.98:0.1:0.1. This means that the “single input” tests were actually using 98% of one input and 1% of each of the other two.

Test number 2 was with the same 0.5mm nozzle and 0.3mm layer height but using all three inputs in more or less equal proportions (actually 34%, 33% and 33%).

Test number 3 was with a 0.9mm nozzle (RepRap.Me will supply one if you ask them), 0.6mm layer height and single input.

Test number 4 was with the 0.9mm nozzle, 0.6mm layer height and all three inputs.

Note that the model was re-sliced at slower speeds for tests 3 and 4.

I recorded a video clip of each step and put it all together, with comments. Note that even though I shortened the video by cutting out many of the intermediate steps, it’s still around 27 minutes in length. Watch it if you can – you’ll be surprised by some of what you see.

 

Notes and conclusions. 

Firstly, it soon became obvious that at higher speeds there was an issue at the end of each move. This was much more obvious on the short 30mm “Y” moves but also noticeable at the end of the longer “X” moves. My theory (which will do until I can think of a better one) is that (at high speeds) pressure builds up between the extruder and the nozzle tip. Then as the carriage approaches the end of it’s travel, it starts to slow down but because of the pressure that has built up, and although the extruder starts to slow down, the filament is still being forced out at the same speed, resulting in over extrusion of filament relative to axis movement. This leads to the raised ridges which are visible in the video at the ends of each move. Duet firmware does have a pressure advance setting but I’ve never experimented with it all that much – perhaps it’s time that I did – watch this space……………..

Secondly, in a similar vein, as the speed was increased, blobs started to appear on the print. Despite my setting seams to “nearest”, Slic3r decided to move the print head diagonally from one corner to the other on layer changes at the end of the “Y” direction infill. This was a long non-print move and the blobs got bigger as the print speed was increased. Again, my theory that it was due to pressure build up would explain it. So, again using pressure advance in the firmware might help.

Thirdly, I had expected to reach a point where the demanded extrusion speed exceeded the melt rate for the filament and that it would be obvious when that speed had been reached. I reality, it wasn’t as clear cut. In general terms the extruded filament just got “thinner” for want of a better word and was less able to cover defects from the previous layer. It seems that the Titan extruders do too good a job of pushing the filament through. No clicking (apart from the last test), no skipped steps, no grinding of filament – nothing! In some of the tests, there is clear evidence that the maximum speed at which filament can be laid down has been exceeded but it is fair to say that some under extrusion probably started at some speed before this.

Fourthly, my somewhat arbitrary observations of maximum melt rates are as follows:-

With a 0.5mm nozzle and 0.3mm layer height, the maximum print speed before severe signs of under extrusion occurred was 160mm/sec. To calculate the maximum melt rate I used nozzle area (0.0558125mm^2) x the layer height (0.3mm) x the speed (160mm/sec) x the extrusion multiplier (0.95) giving me 8.955 mm^3/sec.

With a 0.5mm nozzle, 0.3mm layer height and using all three filament inputs, the maximum print speed before severe under extrusion was observed was 260mm/sec (honestly! ……. watch the video if you don’t believe me) giving a calculated melt rate of 14.551 mm^3/sec.

With a 0.9mm nozzle, 0.6mm layer height and single filament feed, the maximum print speed was 62 mm/sec. Using the same formula for melt rate calculation, nozzle area is 0.381753 mm^2 x layer height (0.6mm) x speed (62) = 22.485 mm^3/sec.

The final test using a 0.9mm nozzle, 0.6mm layer height and all three inputs was much harder to estimate the point where severe under extrusion occurred. In the end I decided on 90mm/sec (180% of 50mm/sec) based solely on the fact that at higher speeds, “clicking” from the extruders was clearly audible. This gives a calculate melt rate of 32.640 mm^3/sec.

Whether my somewhat arbitrary choice of maximum speeds or whether some lower speed would be more realistic, I leave up to each reader to come to their own conclusions. Personally, I think that the Diamond hot end is capable of some fairly substantial melt rates, possibly comparable to an E3D Volcano (at least when being fed by three extruders), but as I’ve never used a Volcano, I cannot say for sure.

What is fairly convincing is that using all three inputs results in higher melt rates and thus higher speeds. Also, a 0.9 mm diameter Diamond hot end can maintain a larger volume flow rate than a 0.5mm nozzle, even when the smaller nozzle is being fed with all three inputs.

I hope readers will have found something of interest in the above. (Does anyone have a use for several 300mm x 30mm x various thickness plastic sticks?)

Ian

PS. The featured image is a still from the video. Did it really reach 300mm/sec? Time to reach 300mm/sec at 1200 mm/sec^2 (Vf-Vi/a) = 300/1200 = 0.25 secs. Distance to get up to 300mm/sec (s=1/2at^2) = 37.5mm. So yes, it was accelerating for 37.5mm, and decelerating at the end for 37.5mm so for the 225mm in the middle it really was doing 300mm/sec.

PPS – Some more calculations (as of 23rd June).

Looking again at the drawing of the Diamond, we see that there is a tube about 21mm long and 2mm diameter. Given that the filament is 1.75mm diameter it’s difficult to estimate the filament to metal contact area, so difficult to estimate what contribution this section will make to the overall melt rate. However, taking the shorter 0.4mm “tubes” there is a 3mm long part and then another 2mm long part giving a total area of about 6.3mm^2 for a single filament – using three inputs we have 3 x 3mm plus 2mm giving a total area of 13.8 mm^2. If we open those holes up to 0.9 mm, the area for a single filament becomes 14.1 mm^2 and for all three, 31.1mm^2.

 

 

Dual function LED ornament stands

As a change from printing lots of test pieces with no practical value, I thought it was about time I made something useful. I’ve given step by step instructions and a list of materials in case anyone else want to make any of these.

My wife has a growing collection of miniature glass and plastic Christmas trees (one or two of which I have made using Taulman T glass) which come out every year. They look more effective when lit from below so we have one or two of those led stands that one can buy. The trouble is, some of these ornaments are plain glass and look best with coloured light while others are already coloured so look best with white light. The other issue with some of the stands one can buy is that they take those really small button cells which make them expensive to run compared to using say, rechargeable AA or AAA batteries. So I decided to make some that would take rechargeable batteries and that could be switched between colour changing or white.

Initially, I had planned to use rechargeable PP3 9V batteries. These would have been easier to fit inside the base and would have meant that I could run 2 or 3 LEDs in series with a single current limiting resistor. However, when I looked into the capacity of these batteries, the amp hour rating is very low which would have meant that they would only have lasted about 8 to 10 hrs between charges. So, I decided to use AA size cells instead, which have a much higher capacity. The voltage drop across the super bright white LEDs is 3 volts and for the colour changing it was 2.4 volts (variable depending on which colour is being produced) so I needed at least 3 batteries to give me 4.5 volts and the LEDS would have to wired in series, each with it’s own current limiting resistor.

The colour changing LEDs are not as bright as the white LEDs so I decided to use 4 colour changing ones and 2 white ones.

In addition to the LEDS, I also needed a switch. I had hoped to use a miniature ON-OFF-ON slide switch but was unable to find one. The best I could find was On-On which would switch between colour changing and white but had no centre “OFF” position so I ended up using two switches. One for ON-OFF and the other for Colour – White. If you can find an ON-OFF-ON version, it would simplify the wiring quite a bit.

Then I needed clips to hold the batteries and provide electrical contact, some wire and some strip board.

The complete list of materials for one of theses stands is as follows.

2 off super bright white 5mm LEDS (one could also use 3mm)

4 off slow colour changing 5mm LEDs (or 3mm)

1 off piece of strip board 25mm x 25mm

3 off Keystone AA (-ve) contact part No 209. These are the dimensions

209

3 off Keystone AA (+ve) contact part number 228 as below

228

2 off switches PIC part number SS-22f25-G dimension as below

pic-ss-22f25-g

Printed parts – Base, Top and Insert. These can be found on Thingiverse here Printed parts files

The first thing was to make up the strip board LED modules. Each LED has it’s own current limiting resistor, the value of which will depend on the specification of the LEDs. In my case I used 220 Ohm and 180 Ohm. The +ve input to all 4 of the colour changing resistors are connected together as are the 2 +ve inputs for the white resistors. The -ve side of all the LEDS are connected together.  Here is a picture of one of the made up boards.

strpboardmodule

The 4 colour changing LEDS are on the outside and the 2 white ones are on the inside. The red wire is the +ve for the white LEDs and the Orange is the +ve for the colour changing LEDS. The black wire is the common -ve.

A quick note about using these slow colour changing LEDS. When they are first turned on, they are all the same colour and start to slowly fade to the next colour. However, they don’t all change at the same rate. So after a period if time they get “out of sync”. This results in many more combinations of colour which are more subtle than just RGB and in my opinion, give some quite pleasing effects.

The next thing was to design and print the base which holds everything together. Here is one of those bases.

unwiredbase

And here is one with everything wired up.

wiredbase

The pictures should be self explanatory. The base is designed to take the switches which are a snug fit but slide in from the top. The clips for the batteries are a press fit from the top. NOTE, solder the wires to the clips before fitting the clips otherwise the heat will melt the plastic. The lower right hand battery clip is the +ve terminal which goes to the centre terminal of the ON-OFF switch which is at the top. One side of this switch goes to the centre terminal of the changeover switch which is on the right. The red wire from the LEDs goes to one side of the changeover switch and the orange wire goes to the other side of the switch. The black -ve LED wire goes to the -ve battery clip which is the top right one. The batteries are then connected in series -ve to +ve as shown by the blue wires. As I mentioned before, life would have been a lot easier if I could have found a miniature ON-OFF-ON switch rather than having to use two ON-ON switches.

Here is a finished base with batteries installed. For testing, these are just ordinary A batteries, not rechargeable. The LED board sits in a recess but I used a couple of spots of silicone sealant to hold the LED board in place (but any glue will do).

withbattswhite

I forgot to take a picture of the top but here is an image from OpenScad

ledstandtop

It is designed to just clip on and has 2 “prongs” which locate it and also hold the switches in place. The rectangular cut out takes a clear insert which I printed separately.

ledstandinsert

I printed the inserts using Taulman T glass clear. They simply press in and I used some clear silicone sealant to hold them in place. Here is a picture of three of them.

tops

I actually made 10 of these. One was a working prototype so “er in doors” has 9 useful ones.

nineoff

Here is a picture of one of them in white. The featured image at the top shows it in colour mode. Sorry about the reflections of my window blind which show on the top but you’ll get the idea.

finishedwhite

I put all the files including the OpenScad file on Thingiverse so you can play around with the design as you see fit – maybe you’ll be able to find an On-Off-On switch to simplify things. Here is that link again Printer parts files

 

 

 

 

 

 

The “stripey toothpaste” effect of the Diamond hot end.

As readers of my bog will know, I have been using a Diamond hot end for quite some time. One of the issues with this hot end is that it doesn’t actually mix colours all that well. What happens is that the filament exits the nozzle somewhat like stripey toothpaste. The featured image above shows how this manifests itself. This was a simple hollow cylindrical container that I created by using a custom script to alter the mixing ratios in 1% increments at every layer change. So, the colours “fade” from 100% Red and 0% Blue to 0%Red and 100% Blue then from 100%Blue and 0% Yellow to 100% Yellow and 0%Blue and finally from 100%Yellow and 0%Red back to 100% Red and 0% Yellow.

The three pictures above are the same object viewed from different angles. The one on the left is roughly at the angle where the Blue filament enters the hot end, the one in the middle is roughly where the Yellow enters and the one on the right is roughly where the Red enters. You can see that the colour is biased towards the inlet position in the hot end for that particular filament.

The effect can be largely negated by using translucent filaments.

Or, it can be exploited. To explore this a bit further, I created a simple pyramid and orientated it on the build plate such that each face was in line with each of the filament inlet positions. I defined a single tool with mixing ratio of equal proportions for each of the 3 filaments. In this case, the filaments that happened to be loaded at the time were Red, Black and Gold. So the tool was using roughly 1/3rd of each colour. Then I printed the object just as one would using a “normal” hot end and took three pictures, each at 120 degrees around the object. Here they are:

blackredsmall

redgoldsmall

goldblacksmall

As you can see, each face is a different colour although they were all printed at the same time, using the same tool with no fancy tool changes or post processing. The top picture shows mostly Black on the left and mostly Red on the right. The next picture down with the object turned 120 degrees shows mostly Red now on the left and mostly Gold on the right. The last picture is with object turned another 120 degrees so the mostly Gold is now on the left and mostly Black is on the right. I say “mostly” because there is some mixing of the colours on each face but they are strongly biased towards the position where each filament enters the hot end.

I just wanted to show this as an illustration that sometimes what may be seen as defective or unwanted behaviour, can be exploited to ones advantage. (That is of course if one has a need for a 3 sided object with each face being a different colour).

Now on to the next picture and one that had me baffled for some time.

colourshiftsmall

I was printing something else when I came across this issue (always an issue – never a problem). So I made a simple rectangle with two holes in it, so that I could evaluate what was happening. As you can see, there is a distinct colour shift. Some sections are darker than others (or lighter depending on your point of view). It was printed mixing two filaments, Blue and White in equal proportions. It is consistent and reproducible. It will happen with any combination of extruders. i.e. extruders 0 and 1, extruders 1 and 2 or extrudes 0 and 2. There is no change in layer height or any sign of over or under extrusion. The extruder gears all appear to rotate at the same speed.

After a lot of head scratching and a lot of testing, I finally realised what was causing it. When it is printing, the infill is at 45 degrees and the head starts just below the left hand hole and moves diagonally in the direction of top left to bottom right whiles traversing toward the right hand side. This is the dark section. So it goes all around the bottom of the hole, then it reaches the right hand side of the hole after which it goes all the way to the top of the print. Then it reaches the right hand side of the right hand hole, and goes around it.

So for all of these moves, each new line of filament (apart from the first line) is supported by or squashed up against, the previous line on the left but has free space on the right.

Once the print head reaches the top right corner of the print, it then moves to the nearest unprinted section which is the top of the right hand hole, nearest to the right hand corner. To continue the print, the head still moves in the same direction diagonally but this time it is traversing from right to left instead of from left to right.

So now, for all these moves each new line of filament is supported by or squashed up against, the previous line on the right but has free space on the left.

Going back to what we now know about the filament coming out as stripey toothpaste, it is reasonable to deduce that the colour of the “mixed” filament changes depending on whether the filament is supported and/or squashed on the left with free space on the right compared to being supported on the right with free space on the left. To put it another way, it seems that the newly extruded filament rolls or twists either towards or away from the previous line of filament thus giving a predominance of one colour over another depending on the direction that the head is traversing.

At least that is my theory. It explains what I have observed happening but like a lot of theories that come up in the world of 3D printing, it isn’t actually proven. The only way to do that would be to put the prints under a microscope.

Looks like that might have to be something to add to my tool box…….watch this space……..

Ian

 

 

Latest update to blog 6th Jan – multi colour printing without wipe and prime towers.

Before I launch into this, it occurs to me that people not familiar with mixing hot ends might be confused when I talk about tool changes. I explain how to define tools in another post, so I won’t go into it again here. Just be aware that a tool change and a colour change are one and the same thing, so I apologise if might use the terms interchangeably.  Also of course, “colour” and “color” are the same thing but I’m English so to me it’s “colour”.

As I reported earlier, I found an issue with the original script when tool (colour) changes were close together. Having looked again at my feeble attempt to write code, I did find the problem – in fact I found a few.

The main issue was that the script would not move a tool change to a position earlier than the previous tool change. On the face of it, that seems logical. However, the script didn’t “remember” that the previous tool change itself had been moved to an earlier position in the file. One way to think about it is a stream of commands with tool changes at various points and we need to move all these tool changes forward in the file by an amount equivalent to, (for the sake of argument) 2.5mm of extruded filament. It shouldn’t matter if there is only 1.0mm of filament between some of these tool changes as they will all be shifted by the same amount.

That was the main thing I needed to fix but while I was looking at the code, I found a couple of other problems. The first was that the way I segmented the moves was incorrect. That is to say that the new tool position is almost invariably somewhere in an existing “XYE” move so that move has to be split, the tool change inserted and then the rest of the move completed. So one line is replaced by two lines with a tool chnage command inserted between them. The amount of filament extruded (the “E” number) was correctly apportioned to each line but the corresponding X and Y amounts were not correctly apportioned.

The other thing I found was that the new lines could be inserted in the wrong place in certain circumstances. As an example, my machine is set to do very fast “non-print” moves so it might have a line something like “G1 X170.329 Y165.990 F21000.000” (a feed rate of 21,000 mm/min or 350mm/sec) followed by “G1 F4800” which sets the speed back down, in this case to 4,800 mm/min or 80mm/sec for normal printing. I discovered that in some instances, the script would put the new segmented moves and tool  change command after the fast non-print move but before the speed change back to normal command. This would have resulted in those two print moves being executed at 350mm/sec which would have been interesting to watch!

So I have deleted the link in the original post to the Python script and here is my latest feeble attempt. It does actually get the job done but I know any professional code writer will probably burst into tears if they see it.

To save a lot of copying, pasting and formatting of text, I’ve take a number of screen “snips” of the code. The comments should make it clear as to what I’m trying to do.

capture1

capture2

capture3

capture4

capture5

capture6

capture7

capture8

I haven’t included a link to the script this time but I’ll make it available if anyone is interested. Just leave a comment if you want me to do this.

Ian

 

Printer beds – construction, flatness, levelling and compensation (is it needed?)

I just wanted to jot down some thoughts I have about printer beds. You can see some pictures of my one here My CoreXY Printer build.

It’s fairly obviously to me that the surface on which we wish to print something has to be flat and level. Assuming we start with a typical layer height of around 0.3mm, then that means the surface needs to be flat and level to a tolerance of around 0.1mm. That is to say that the distance from the tip of the printer nozzle to the build surface needs to be the same within 0.1mm or better, wherever the nozzle is in the X or Y direction. The first layer of a print is absolutely critical. If the nozzle is too close to the bed, then the filament will be squashed and ooze out sideways. In extreme circumstances, the print surface may completely block the nozzle. Conversely, if the nozzle is too far from the bed, then the filament simply won’t stick.

The other thing that we may wish to do is heat the bed. If we were only going to print with PLA, this is not strictly necessary as it is possible to print PLA on an unheated bed and use something like blue painters’ tape. The trouble with that is that the object will often stick to the tape better than the tape sticks to the bed, and it can easily get torn so it has be constantly re-applied. So heating the bed means that we don’t have to use blue tape and we can also print with a variety of different plastics.

So what can we use that is flat, level and can be heated? The most common materials are aluminium and glass. Glass on it’s own is maybe not such a good idea as it is easily broken and it isn’t the best thermal conductor. One common arrangement is to use glass with a thin aluminium plate underneath which acts as a heat spreader to the heating element that is attached underneath. Sometimes a wooden (mdf or ply) carrier is used which forms a sandwich with the aluminium heat spreader with the heating element as the filling, and provides some rigidity to the entire assembly. Providing the glass is fairly thick and “unbendable” over the size of the bed, this arrangement could take care of the flatness issue, which just leaves the issue of levelling to be addressed.

On the subject of glass, a word or two of warning. Various 3D printing forums are littered with comments saying that you must use Borosilicate glass because “normal” glass won’t withstand the high temperatures. In my opinion, this is just not true. The important thing is thermal shock. That is to say that if you suddenly heat the glass up (almost impossible to do on a 3D printer) or suddenly cool it by say taking it off the printer and putting in straight in the freezer, then it might well crack. Under normal circumstances, where the glass is allowed to cool naturally at ambient temperatures then there really shouldn’t be a problem. I have certainly never had a problem with any of my 400mm x 400mm x 6mm thick pieces of “normal” float glass, even when heated to around 90 deg C.

Still on the subject of glass, not all glass is flat especially that used for horticultural purposes (greenhouses and the like) and which is probably made from rolled glass. The glass we need is float glass. This glass can additionally be toughened which makes is much more difficult to break. However, I know from hard earned experience that the toughening process will deform the glass such that it is no longer flat. So toughened glass may be safer, but it isn’t flat.

Another common myth that is often propagated on various forums is that glass is an insulator. As someone once pointed out, if that were so we wouldn’t need double glazing. Most of the people who propagate such myths haven’t actually done any testing and they are just repeating what they have read elsewhere. I have done some tests and can say that with the bed heated to 60 deg C  and at an ambient temperature of 21 deg C, the top surface of my 6mm thick glass was measured at 58 deg C. A drop of only 2 deg C.

Now of course, we don’t have to use glass at all. We could simply use thicker aluminium that is guaranteed flat and print directly on to it, and many people do. The aluminium to ask for is “tooling plate” which is guaranteed to be flat. One disadvantage of this is that aluminium is a fairly soft metal and therefore susceptible to damage from knocks and scrapes. So, in my opinion, protecting the surface in some way is a good idea as aluminium tooling plate is expensive to replace.

My personal preference is a combination of thick aluminium tooling plate with a removable glass print surface. Although I could print directly on to the aluminium, the reasons for using glass are that I can quickly swap one piece for another, which enables to start printing another object while the first one is cooling down. Another reason is that I can apply different surfaces to each piece of glass and swap between them. For example, I can have blue tape on one, another could be plain glass with 3dLac applied, a third could have some other “exotic” material attached.

So, now we have a bed that is flat all that remains is to ensure that it is level. Or to put it more correctly in engineering terms “tram” which is derived from the term “trammelling” That is to say that in the X direction, the bed must be parallel with the print head X axis and that in the Y direction, the bed must be parallel with the print head Y axis. Strictly speaking, the entire printer might not be level with respect to the floor on which it stands so the bed might not be level but neither would the axes and they would be “out” by the same amount so it isn’t critical.

I’m not going to go into details of how this should be accomplished. Suffice to say that 3 points define a plane (providing they are not on the same line) and 4 points define a hyperplane if not coplanar (on the same plane).  So 4 (or more) points might define a shape that isn’t a flat plane. i.e. 4 point levelling could impart an undesirable twist to the bed. So ideally, we need to support the bed at 3 points and there should be some adjustment for at least two of these points so that they can be adjusted with respect to the fixed point. This is what is commonly referred to as 3 point levelling. For the best accuracy, these 3 points should be as far away from each other as possible. On my printer, I support the bed using 3 screws, one close to each corner at the front, and one close to the centre at the back. These screws provide lift as well as levelling but I’m not going to go into the mechanics of Z axis movement in this post.

Finally, many people will say that most of the above is irrelevant because many modern printers or printer controllers use firmware to compensate for bed inaccuracies. The latest Duet electronics (of which I am a big fan by the way), even has grid based bed compensation that will compensate not only for the fact that the bed might not be level, but also for the fact that it might not be flat. It will probe the bed over a number of points that the user defines and generate a height map which gets applied to the nozzle height during a print. My concern with this approach is that it encourages people and manufacturers to get sloppy with their design and build quality. It really doesn’t cost much more to “do it right”. In my opinion, any cost saving from a sloppy design of print bed that isn’t inherently level and flat will be outweighed by increases in time spent running the compensation software. People will do doubt argue that running the software need only be done once, as the height map can be saved and re-used. My response is that if a printer bed is inherently non planer or not level, then those errors are unlikely to be constant so it will be necessary to re-run the compensation software periodically. Also, when using something like an Infra Red probe, the probe itself might be affected by dust or debris on the print surface that affects the reflectivity at different points on the surface which would generate an inaccurate height map and make compensation worse than if none were applied.

So although I am a big fan of Duet electronics and firmware, I personally do not use any form of bed compensation. I have built a printer that has a bed that is flat and level and stays that way. My first printer had a flimsy bed that needed constant attention. Every time I used it, I had to home the z axis, then run bed compensation. Now, all I have to do is turn the printer on, select the file to print and walk away. Having tried both approaches, I know which I prefer. Here is a little video that shows how it works in practice. Printing without bed compensation

Further update to blog 6th Jan – Printing without wipe and prime towers

Further to my original post, I have found some inconsistency in results. I had written earlier that my thoughts were that the required purge amount was somehow related to print speed. My suspicion was that there is more molten filament in the melt chamber and above, (before the heat break) when printing at low speed compared to higher speeds. I also said that I needed to do more testing to confirm this.

I have now done that testing and can now confirm that this is not the case and the cause is something else – more later.

Firstly, I should explain my test methodology. I have designed a test piece which is a cube, 60mm x 60mm x 3mm thick. This cube has two rectangular cut-outs, 15mm wide x 40mm long spaced 10mm from each edge and with 10mm between them. This part forms one stl file and is all one colour. Then there are two rectangular shapes which fit into these cut-outs, each one being a separate stl file which is assigned a different colour.

This combined object was sliced in Slic3r. The post-processing script was then run on the gcode file with purge amounts from 2.0 to 4.0 in 0.5 mm steps giving me 5 new files, each with different tool change positions. Each one was then printed with all other print settings the same.

Here is a picture which shows them all.

all6

From left to right, they are with 2.0mm purge, 2.5, 3.0,3.5 and 4.0. Ignore the two upper prints for now. If you look very closely, 2.5mm is the optimum. At 3.0 mm you can just see some bleeding creeping in to the upper right corner of the white rectangle. This is where it changed to black filament just a fraction too early. The same is noticeable on the lower left corner of the black rectangle but this has some red creeping in and does not show very well in the photograph.

Here is a close up picture of what 4mm purge looks like.

4mm

Please ignore the overall print quality. These we all printed at 90mm/sec and I did not pay any particular attention to the first layer height. From this picture, it is very clear when the purge amount is too much. You can see some black in the top right corner of the white rectangle and maybe a slight smudging in the bottom right hand corner of the red rectangle. Depending on how good your screen is, you might also be able to see the red smudge on the lower left corner of the black rectangle.

This next picture is a close up of what I deem to be the optimum.

2-5closeup

This is with 2.5mm of purge which is the maximum that doesn’t lead to smudging due to the tool change being premature. If you look very closely you’ll see why this isn’t a perfect technique. The left hand edge of the outline of the black square is grey, rather than black and the bottom edge and part of the right hand edge of the white rectangle is dark grey rather than white. This is the transition period from one colour to another and short of using a some sort of a wipe or prime tower, this is a good as it gets.

Once I had established the optimum purge amount, I then printed the same file at lower speeds to investigate the issue that I had observed and laid theses prints out in the same column. So going back to the first picture, the print immediately above the horizontal row was printed at 50% speed (about 45mm/sec) and the one above that was printed extremely slowly at 20% speed (about 18mm/sec).

Here is a close up of 2.5mm purge but at 20% speed. 2-5at20percentspeed

As you can see, in terms of the purge amount, it is unaffected by print speed. Looking closely, you can still see the light grey on the top and left hand edge of the black rectangle, and the dark grey on the bottom and right hand edge of the white rectangle. As I mentioned above, this is the transition period from one colour to another and short of using a some sort of a wipe or prime tower, this is a good as it gets. Personally, I don’t think it’s bad. Whether it is good enough depends on people’s expectations and the criteria that the final, printed object has to meet.

So, what was my cause for concern? It was printing an object that consisted of a lot of small parts. The nature of the object was that it had to be printed much slower than I normally print and so, when I observed that something wasn’t right with the colour changes, I assumed it was to do with the lower speed. I have now proven that this is not the case. Further analysis of the post processed gcode file for that object shows that there is an error (at least one) in my python script. Basically, it won’t move a tool change further back than the original position of the tool change that came before it. So, if the amount of filament to be extruded between tool changes is less than the amount needed to purge the hot end, it won’t work. I need to address this or (more likely) take a different approach and re-write the script.

So for now, the script works where there is a reasonable amount of filament extruded between tool changes but cannot cope with tool changes that are too close together.

 

 

Using the Diamond Hotend with DuetWifi

Julia vase #11 Heatwave by Virtox
http://www.thingiverse.com/thing:126567
Printed Ian Pegg

This is a copy of a post I did as guest on Think3dPrint3d ‘s blog back in December 2016. Now that I have my own blog up and running, I thought I’d post it here as well, just to keep all my posts together in one place.

I have been using a Diamond hotend (3 inputs and one output) on my custom built CoreXY printer, controlled by the DuetWifi for some time now. This blog post is documentation on how to setup the DuetWifi with a Diamond hotend however it can be generalized to other multiple input – single output hotends. They might use different configurations but the principles will be the same. I have taken the definition of a mixing hot end as one which has multiple filament inputs and a single output (nozzle), although see the “issues with mixing” section at the end.

Hardware requirements.

Assuming you have the necessary number of extruders for your particular hot end, you will need to be able to drive them all. The new Duet WiFi and the older Duet v0.8.5 both have support for 2 extruders. If you have 3 or more extruders, then you will need to procure an expansion board or use another method to connect additional stepper drivers to the Duet expansion connector.
Important note. A mixing hot end must have filament loaded into all inputs at all times. Failure to do this will mean that extruded filament will find it’s way up into any unused inputs where it will cool and solidify causing a blockage which will be very difficult to clear.

Software and Firmware requirements.

 
You should have a slicer that is capable of supporting multi part objects. Although some things can be done by post processing the gcode file, objects which share the same Z position, would be very difficult to deal with using this method. Also, the slicer and the printer firmware should ideally be capable of supporting firmware retraction (G10) – more on this later. At the time of writing, Slic3r (version 1.2.9) is known to support these features. David’s (DC42) branch of RepRapFirmware supports firmware retraction as of version 1.10.

Some slicers support multiple extruders but not necessarily multicoloured objects (although there may be workarounds). It is often possible to use different extruders (tools) for perimeters or infill or support materials.

Connections.

 
Refer to the Duet wiring diagrams and connect the first extruder motor to E0, the second to E1 and any others to the relevant connectors on the expansion board. I highly recommend that you put a label on each extruder at this time to act as a reminder of which is which when you come to load filament. Remember that by default, the first extruder drive is referred to extruder 0(zero) not 1. This may initially confuse you when you start using slic3r which refers to the first extruder as “1” not rather than “0”. I believe that the latest version of Duet firmware does allow you to “remap” extruders (tools) so that the numbering system start with 1. (See reference to M563 S1 later in this post). New users might want to adopt that approach but i have become accustomed to using the 2 different numbering systems so personally, I’ll stick with it.
wiring-1
Extruders 1 and 2 connected to the main Duet WiFi board
wiring-2
Extruder 2 connected to the Duex5 expansion board
A mixing hot end will only have one heater so connect this to the first heater (marked E0). Similarly, connect the thermistor to the first thermistor connector (also E0). It’s not strictly necessary to use these exact connections but if you decide to use some other terminals on the Duet board, make a note of what you have connected to where. Finally connect the hot end cooling fan to wherever you prefer. The most common configuration is to connect the fan to one of the “always on” terminals but my fan is very high air flow and so quite noisy. Therefore I prefer to have it connected to one of the PWM fan terminals and run it in thermostatic mode so that it only comes on when the hot end is above 45deg C.

Configuration settings – tool definitions.

 
The first thing to do is define the tools. To do this, it is necessary to edit the confg.g file. The way I prefer to this is to keep a copy of all the sd card files on my PC where I can maintain back up copies. So I would edit the config.g file on my PC then upload it to the Duet through the web interface. One could also physically remove the sd  card, pop it into a card reader and copy the file across. Another way to do it is to edit the file directly, either through having the card in a card reader or via the system editor in the web interface. This is the quickest way to do it but of course this means that you have no backup copy.

There are a few different ways that you can define the tools. You will probably need a tool for each of the “solid” colours. That is to say, tools which will only use 100% of one filament. Then you will need a tool or tools that combine different filaments in various proportions.

So to define a tool which uses only one colour, it is only necessary to set which extruder and which heater it will use. The gcode to define a tool is M563. So for the first 3 tools you could use something like this;
M563 P0 D0 H1
M563 P1 D1 H1
M563 P2 D2 H1
This would define the first 3 tools (P0 to P2) to each use one of the extruders (D0 to D2) but the same heater (H1).
IMPORTANT. Be aware that Slic3r and perhaps other slicers, may use a different numbering system and the first tool is defined as 1 not 0. This can be easily rectified by either defining tools starting with tool 1 and up, or by using the M563 S1 command in config.g to tell the firmware to add a 1 to every tools number
If we want to mix filaments, we’d need create more tools and turn on mixing. So, we might have another tool defined like so;
M563 P3 D0:1:2 H1 ; Define tool 3 (P3) to use all three extruders (D0:1:2) and heater 1
M568 P3 S1 ; Enable mixing for tool 3
M567 P3 E0.34:0.33:0.33 ; Set mixing ratio for tool 3.
What this does is to define the tool T3 to use all 3 extruders (D0:1:2) then it uses M568 to enable mixing for that tool. Finally, it sets the mixing ratio using M567. In this case roughly the same quantity of each of the 3 filaments. However, this mixing ratio should always add up to 1. So, I’ve used 0.34 of extruder 0, and 0.33 of extruders 1 and 2 (0.34+0.33+0.33 = 1.00).
We could also have other tools. Say for example we had Red filament in extruder 0 and Yellow in extruder 1, we could define another tool which would blend equal amounts of the tool to create Orange. It would look like this:
M563 P4 D0:1:2 H1 ; Define tool 4 (P4) to use all three extruders (D0:1:2) and heater 1
M568 P4 S1 ; Enable mixing for tool 4

M567 P4 E0.5:0.50:0.00 ; Set mixing ratio for tool 4.

Of course, we can define as many tools as we like. The upper limit of tool numbers is constrained only by the Duet’s free memory so over 400 tools are possible on the DuetWifi.

Managing a large number of tools would become cumbersome though and there is another way. Once a tool has been defined to use all the extruders and mixing has been enabled, we can simply change the mixing ratio before or during the print. It can be done before the print commences by putting the mixing ratio into the start gcode file. It can also be done during a print by entering the required M567 command in the web interface or by post processing the gcode file that the slicer generates. In theory the tool mix ratio can be set differently for each gcode move.

So we can simply have one tool which is defined as a mixing tool. In practice, this won’t work with slicers which expect different tools for different (coloured) parts of an object. So, I have found the best compromise is to just define 4 tools (or one more than the number of extruders), one for each of the primary filaments and one which is a combination of all three. Coincidentally, in slic3r, if you set your printer to have 3 extruders, it will give you 4 tools to choose from for any object.
Taking this a step further, it is still useful to be able to use any combination of filaments for any tool. For example I could have red green and blue filaments loaded but want to print with Cyan, Magenta and Yellow. So all of my tools are defined as mixing tools but the first three use 100% of only one filament (actually this is not strictly true but we need to consider retraction before I elaborate more). Then if I subsequently want to change a tool to use a different filament or combination of filaments, I can do so but simply changing the mixing ratio at the start of the gcode file, without having to bother with all the other configuration settings. It can also be done “on the fly” from the web interface. This can also be used if one wanted to print a number of copies of the same object but in different colours. Simply slice the object once, then edit the start of the gcode file to change the mixing ratio and/or tool number.
Here is what the tool configuration part of a config.G file might look like.
; Tools
M563 P0 D0:1:2 H1 ; Define tool 0
G10 P0 X0 Y0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M568 P0 S1 ; Enable mixing for tool 0
M567 P0 E1:0:0 ; Set mixing ratios for tool 0
M563 P1 D0:1:2 H1 ; Define tool 1
G10 P1 X0 Y0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M568 P1 S1 ; Enable mixing for tool 1
M567 P1 E0:1:0 ; Set mixing ratios for tool 1
M563 P2 D0:1:2 H1 ; Define tool 2
G10 P2 X0 Y0 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M568 P2 S1 ; Enable mixing for tool 2
M567 P2 E0:0:1 ; Set mixing ratios for tool 2
M563 P3 D0:1:2 H1 ; Define tool 3
G10 P3 X0 Y0 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3

M567 P3 E0.34:0.33:0.33 ; Set mixing ratios for tool 3

This is not quite how I have my tools defined but to understand the reason for that, we need to look at extruder retraction which is discussed later in this document.
extruders.JPG
The 3 E3D Titan extruders suspended centrally above the bed in a sort of counter balance “flying” arrangement

Tool offsets

 
You will notice that in the above tool definitions, there is no X or Y offset, or more precisely the X and Y offsets are set to zero (G10 Pn X0 Y0). That is because there is only one nozzle. X and Y offsets are only necessary where there are more than one nozzle and where they are physically offset from each other. Theoretically these offsets should default to zero but I always like to set them to zero, just in case something should get changed in firmware which might affect the default settings. 

Heating and standby temperatures.

You will also notice that in the tool definitions above, the initial active and standby temperatures are set to zero (G10 Pn R0 S0). That is because I don’t want the hot end to start heating whenever a tool is selected. Instead, I have the heating and standby temperatures set in my start gcode where I can also put the specific temperature as needed for a specific filament.
With a mixing hot end, we only have one heater and one nozzle so if we are using the same type of filament in all 3 inputs, we can instantly switch between tools without having for the next one to warm up, or the previous one to cool down. Therefore, we can (should) set the tool active and standby temperatures to the same values.
This is what I have in my start gcode for PLA in all 3 inputs.
G10 P0 S195 R195     ; Set tool 0 operating and standby temperatures
G10 P1 S195 R195     ; Set tool 1 operating and standby temperatures
G10 P2 S195 R195     ; Set tool 2 operating and standby temperatures
G10 P3 S195 R195     ; Set tool 3 operating and standby temperatures

Then when the print runs and a tool change is needed it can be instantly switched with no warm up or cool down delay.
Obviously, if we had different types of filament in one or more of the extruders, we would need to change these values for those extruders (tools).

Extruder retraction.

 
With “normal” retraction, only the “active” extruder will retract. That is to say that if we are only pushing one filament into a mixing nozzle, normal retraction will only pull that single filament back. In effect, all that happens is that filament is drawn from the unused inputs rather than from the nozzle tip. In practice, this is just like having no retraction at all.
What is needed is for all filaments to be retracted, regardless of whether they are actively in use or not. Fortunately Duet hardware and firmware give us the ability to accomplish this. It is done by using firmware retraction using the codes G10 (retract) and G11 (unretract). This might be slightly confusing because G10 is also used for tool offsets but without a tool number, it is used for firmware retraction.
G10 is used in conjunction with M207 to define the retraction amount and speed.
Here is what I have in my config.g file.
M207 S1.5 F3000       ;set firmware retraction

S is the amount in mm. F is the Feed rate mm/min (divide by /60 to get mm/sec).
Optionally one could also have R (additional length on unretract) and Z (additional Z lift in mm)
It is vitally important to use this firmware retraction with a mixing hot end so, the slicer software must also be configured to use this. In Slic3r this is simply a matter of ticking a check box which is in the Printer Settings tab under “General”. Whenever retraction is needed, Slic3r will insert a G10 command (and a G11 command to unretract). For other slicers, there is sometimes a facility to post process the gcode output and one could use this to replace whatever retraction codes was output with G10. Another option would be to use some sort of text editor to do a “search and replace”.

Tool Definitions revisited. 

 
Now that we have set our firmware retraction to retract all 3 filaments simultaneously there is another little issue that will become apparent but can be avoided. With a mixing hot end we must have all the inputs loaded with filament at all times otherwise extruded filament will simply find it’s way up into unused inputs where it will cool and solidify. We must also retract all filaments simultaneously for reasons discussed above. Therefore, when we print using just a single filament and extruder for a prolonged period of time, what happens is that on the unused inputs, the same piece of filament is constantly being retracted and unretracted. Eventually it will just get worn away and will cease to move and retraction stops working and our prints get stringy.
There is also another possibly even more important issue, which is that most filaments will degrade if reheated and cooled a number of times which is what will happen if we primarily use just a single filament for an extended period of time. I’ve seen with PLA that if it is left in the mixing chamber too long without being extruded, it gets completely cooked and when it comes time to extrude the first few millimetres come out as a mixture of liquid and vapour.
There are a couple of things which can help. The first one is, before starting a print heat the nozzle and extrude some filament from each of the extruders. This will ensure that there is a fresh piece of filament in each of the extruders which may well last for enough retract and unretract cycles without getting so worn that it fails to move.
The way that I prefer to do it is to define the tools so that every tool always uses the main filament plus a small proportion of all of the other filaments. In theory, one might think that this would result in muddy and muddled colours. In practice, it is hardly noticeable and it uses the main filament but just enough of the other inputs to keep them moving so that retraction isn’t always moving the same piece of filament back and forth and the same piece of filament isn’t being constantly reheated and cooled.

Here is what my final tool definition section looks like.

; Tools
M563 P0 D0:1:2 H1 ; Define tool 0
G10 P0 X0 Y0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M568 P0 S1 ; Enable mixing for tool 0
M567 P0 E0.90:0.05:0.05 ; Set mixing ratios for tool 0 (90%,5%,5%)
M563 P1 D0:1:2 H1 ; Define tool 1
G10 P1 X0 Y0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M568 P1 S1 ; Enable mixing for tool 1
M567 P1 E0.05:0.90:0.05 ; Set mixing ratios for tool 1 (5%,90%,5%)
M563 P2 D0:1:2 H1 ; Define tool 2
G10 P2 X0 Y0 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M568 P2 S1 ; Enable mixing for tool 2
M567 P2 E0.05:0.05:0.90 ; Set mixing ratios for tool 2 (5%,5%,90%)
M563 P3 D0:1:2 H1 ; Define tool 3
G10 P3 X0 Y0 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3

M567 P3 E0.34:0.33:0.33 ; Set mixing ratios for tool 3 (34%,33%,33%)

If it is critical that the finished print has to be a single colour and cannot be mixed with any other colours, and it is going to be a longish print time, I cut a couple of lengths of filament off of the main roll (say about 1 metre). Then I load the main roll into the first extruder and each of the 1 metre lengths into the other two extruders. So, the machine will use 90% of the filament from the main roll and 5% from each of the offcuts, which means that all the filaments in all the inputs will be kept moving enough to prevent any of the problems mentioned above.
These are what my mixing ratios will always default to. If I want to print a 2 or 3 coloured object using “solid” colours with no mixing for each part, then what I tend to do is simply add M567 commands to the start gcode which will override the default values that I set in my config.g file.
i.e. M567 P0 E1.00:0.00:0.00, M567 P1 E0.00:1.00:0.00, M567 P2 E0.00:0.00:1.00.
For example the snowflakes were printed with White on Gold. In this case, I had two tools. Tool 1 was 100% Gold, Tool 2″ was 100% White. The base and the flake are separate stls. I added the base (gold part) to Slic3R platter, then in settings set it to use Tool 1. Then I used “Add part” to add the flake and set it to use Tool 2. So, when it printed, the first part of the flake started out Gold until the White filament purged through but that was only about an eighth of the first layer and there are 3 layers of white. Of course, this was all before I had developed the technique for moving tool changes forward in the file detailed here. Multi colour printing without using wipe or prime towers
snowfalke2
Two colour print using the Diamond hot end

Tuning and tweaking

 
With the exception of getting the mixing ratios right for whatever printed outcome is desired, there is very little tuning and tweaking necessary for a mixing hot end compared to a non-mixing hot end. The only thing that springs to mind is that, because we retract all filaments together, the retraction distance can be less.
On my particular machine, with Bowden tubes around 250mm long for PLA at 195 deg C and print speed of around 60mm/sec, retraction of 1.5 mm at 3000mm/min works well.
Of course, using firmware retraction makes setting it up a breeze. Simply print two small cubes spaced about 50 mm or more apart then during the print use Duet Web Control to change the retraction on the fly and observe the difference. Use M207 Sn.n Fnnn where S is the amount in mm and F is the speed (feed rate) in mm/min. Start with a small number and increase it slightly until signs of stringing disappear. Repeat for other materials, print speeds and temperature if necessary but you’ll likely find one value that works well for most situations.

Scripting mixing ratios

Another way to use a mixing hot end is to post process the gcode file to enter mixing commands at various places. I have a little python script which an M567 command after “n” layer changes. Tony from Think3dPrint3d kindly put it on github for me. It runs through loops, each one progressively decreasing the mixing ratio for one filament and increasing another. So the colour changes throughout the height of the printed object from colour A to colour B, then colour B to colour C. This can be extended to go from C back to A and then the entire sequence repeated. This is how I produced the following objects:

iansvase
One of my own designs
big-julie-vase
Big Julia vase design by Virtox on Thingiverse

 

The big Julia vase is printed with Red, Yellow and Clear translucent filaments. Starting at 100% red, reducing the Red by 1% and increased the yellow until 100% Yellow, then repeat going from Yellow to Clear. The mixing is changed at every 5th layer to get one complete iteration over the height of the object. The smaller rainbow Julia vase shown at the beginning of this post used Red, Blue and Yellow and changed the mixing at every layer change so ended up with Red,Purple (Red and Blue), Blue, Green(Blue and Yellow),Yellow, Orange (Yellow and Red) then back to Red and repeat the sequence.

Thoughts and ideas.

 
Most people think of multi coloured objects but even if your slicer doesn’t support multi part objects it may well support multiple extruders. This means that one could choose to use one extruder for the infill but a different extruder for the perimeters. One could then use an exotic or expensive material on the outside but cheaper “everyday” filament for the inside. Or possibly use a clear filament for the perimeters to give the object a clear coating.
Printing support material using a different extruder is another possibility that springs to mind.
Then there are other exotic materials such as electrically conductive filament. It could be possible to print an electrical circuit within an object.

Issues with mixing.

There is a fundamental restriction with the Diamond hot end. This is that there is no mixing chamber as such. The disadvantage is that when filaments are “mixed” they come out of the nozzle like stripy toothpaste. So the colour is biased towards each input. This effect can be partly negated by using translucent filament. Or it can be exploited for decorative purposes. I have printed a 3 sided pyramid with each face a different colour by using a single tool with a mixing ration of 0.34:0.33:0.33 and orientating the pyramid on the build plate such that each face is directly opposite a filament input.
300angle1-tile
The same pot viewed from3 different angles showing the effect of incomplete mixing

Video

Finally, this is a video of my custom CoreXY printing the large Julia Vase by virtox shown in the picture above: