Thursday 4 October 2007

Sticking point

Over the last few days I have been working on getting my machine to lay down straight lines of HDPE filament. It was a lot harder than I imagined. Initially I could not get it to stick to anything. I knew Forrest, who has been pioneering the use of HDPE with Tommelise, had successfully used foam board as a base to extrude onto, and the RepRap design uses a sheet of MDF for CAPA. I didn't have any foam board to hand so I tried MDF and several other things with no success at all. In desperation I then tried slowing down the extrusion to 0.75mm per second and that did the trick. I found I could then extrude onto lots of things so I tried as many as I could think of to see the pros and cons. Today I got my hands on a piece of 5mm foam board as well.

This was 3mm thick cardboard, it didn't stick very well at the ends.

Blotting paper sticks better but the heat makes it wrinkle and it leaves residue when peeled.

Funky foam, my wife's contribution, sticks too well, it gets welded in and can't be separated cleanly.

A thin sheet of HDPE cut from a milk bottle. As expected it welds and cannot be separated. It could be a useful technique though, you would have to cut round the extruded object but it would be left with a strong smooth base.

Felt adheres very well and can be peeled off again but you would end up with a slightly hairy object!

MDF adheres well and peels easily but it does leave some residue fibres on the filament.

Anti-static foam from semiconductor packaging. This insulated the filament so well that it stayed molten too long causing the ends to stretch away. It sticks well but leaves a residue and a rough surface.

Foam board works very well despite having a glossy finish. That allows the filament to be peeled off cleanly and gives it a nice smooth surface. With this quick test there was no sign of damage to the board either but Forrest has reported the foam inside can melt.

This seemed to work so well I tried upping the speed to 4mm / second and that worked fine as well.

So I should have taken Forrest's word for it and saved myself some time, but it got me thinking why does it work so well? For the filament to stick, it must remain molten long enough to bind with the surface. That means something with low specific heat capacity and low thermal conductivity should work better. Paper has a specific heat capacity that is about the same as HDPE but that is only 0.2mm thick and then you have foam which is a good insulator. I had been trying things with some surface texture for the HDPE to bind to so I was surprised when something glossy worked. I don't know what makes the foam board surface glossy, maybe it is a thin layer of of plastic that binds with the HDPE by melting itself. Or maybe there is some molecular bonding going on, out of my depth here!

The next thing to do is to tidy up the line endings by adding a delay at the start and reduce the dwell at the end. Then I should be able to draw accurate outlines and fill them in.

I have started to think ahead to the next layer and what the requirements are to make it stick to the layer below. My mental model, which may be wrong, of how the heat flow works is to translate temperature into voltage, heat flow into current, specific heat capacity as distributed capacitance and thermal conduction as electrical conductivity. The extruded filament is then an infinite number of small capacitors, charged to 200V, linked by resistors. That will meet a bigger infinity of capacitors linked by resistors charged to 20V (room temperature). When the filament meets the already extruded layer the two surfaces behave like two capacitors charged to different voltages being connected in parallel. What happens in electronics is that the total charge is preserved so V(C1+C2) = C1V1 + C2V2, i.e. V = (C1V1 + C2V2) / (C1+C2) . If the capacitors are equal then V = (V1 + V2) / 2.

That means, if my analogy holds, that when two surfaces meet the temperature at the infinitely thin junction instantaneously becomes the average temperature, weighted by their specific heat capacities. In our case these are equal because it is HDPE at 200°C meeting HDPE at 20°C. It is my belief the junction will be at 110°C to start with. Heat will flow to it from the neighboring material on the hot side and away from it on the cold side. Since its temperature is half way between the two then these flows will be equal. The junction will stay at 110°C and this band of 110°C will start to spread to the neighboring material on each side. However, to form a weld the junction must reach the melting point of HDPE which is 135°C. The only way for this to happen is for the nozzle to stay around long enough to continue to supply heat. That puts a limit on how fast filament can be laid down and still bond.

To be free of this limitation the average of the temperature of the filament and the temperature of the workpiece must be higher than the melting point. If that is the case then it will weld instantly and there is no limit on extrusion speed. For HDPE and room temperature that would mean extruding at 250°C. Anything below that requires additional heat to flow from the nozzle to form the weld and hence sets a limit on how fast it can move away.

Tuesday 2 October 2007

Die swell revisited

My machine is back up and running again after replacing the thermistor and MSP430 micro. I added some high temperature insulation to keep the thermistor wires away from the heater wires in future! I salvaged it from the 10A shunt of an old multimeter that I scrapped.

I should really recalibrate the temperature measurement but after finding temperature is not too critical I can't be bothered at the moment. I might wait until I after I have blown it up again!

In my previous article Equations of Extrusion I put forward a theory for the significance of the Y axis crossing point on this graph, i.e. the minimum filament diameter at zero flow rate, was that it was the size of the hole in the nozzle.

My explanation was that perhaps I had inadvertently opened out the hole in the extruder nozzle by drilling too far from the back. While my extruder was off the machine for its new thermistor I had the opportunity to inspect the end of the nozzle.

As you can see the hole is still the correct size, 0.5mm, so my theory was wrong. My revised explanation for the minimum filament size is that HDPE is so viscous that there is a minimum pressure to make it flow through a small hole, below which it does not flow at all. The minimum diameter is then the hole size plus the die swell at that minimum pressure.

I used a fine stiff wire as a probe to try to get an idea of the depth of the hole. I think it is no more than 1mm, so I am at a loss to explain why I get variable die swell and other people do not. Perhaps my HDPE is different, I know mine is translucent whereas Forrest Higgs' is opaque white.

Sunday 30 September 2007

Dribble and smoke

Not a very good day today. I started by trying to lay down a 50mm straight line of HDPE. I completely failed and ended up smoking my machine!

The first problem I decided to tackle was extruding just the right amount of filament. This should be easy because I can instruct my extruder controller to turn the pump an exact amount. Using the equations I described last time, I know what feed rate is required to give a particular diameter filament and what its exit speed will be. The problem is that when the extruder stops, the filament continues to extrude slowly for a while afterwards. This is because the molten plastic, being non Newtonian, is compressible.

To start with I was getting about 12mm of overrun. I have noticed that the flexible drive made from steel wire gets wound up and stores some energy. With no power applied to the motor it actually unwinds a bit driving the motor backwards. By default my software was preventing that because it monitors the shaft position and applies increasing power as the shaft moves backwards until equilibrium is reached.

The host can instruct the controller to turn off the motor completely and let the wire unwind. That reduces the overrun to about 4mm. The shaft encoder sees the motor go backwards so, when it's told to move again, it regains all the backlash as fast as it can before settling down to the desired speed. Therefore, there is no loss cumulative loss of accuracy in letting the wire unwind and wind up again.

I expect the amount of filament overrun could be reduced further, or even eliminated completely by running the pump backwards a bit at the end. Unfortunately I can't do that because this is what happens to the steel wire when it is turned the wrong way:-

Because of this I designed my electronics to only be able to go forwards. Apparently this effect is not observed on the RepRap at Bath university. They are using 3mm wire, whereas mine is only 2.5mm, so that might account for it. I may see if I can get better wire that won't unwind. If so I will have to upgrade my drive to an H-bridge to allow the motor to be reversed. There isn't any spare room on my Vero board so I will either have to make a new one or make some sort of 3D creation.

In the meantime I decided to bodge round the problem. As well as the 4mm overrun when the motor stops, it also extrudes about 15mm when the heater is allowed to cool down and is then warmed up again. This is usually accompanied by a sharp cracking sound which sounds like trapped air bursting through the HDPE. I am not sure of the exact mechanism, but air must get in when the plastic is cold and contracted and then get trapped while it is heating up again, forcing some molten plastic out. Perhaps I have discovered a new type of pump with no moving parts!

So, before I can start extruding I need to remove the excess filament hanging from the nozzle. I did this by attaching a scalpel blade to one corner of my XY-table and having the machine visit it to wipe its nose just before starting to extrude. It is just a lash up at the moment, it would be better if it was 20mm above the table and a razor blade might be better, but it seems to work OK.

Of course, once the overrun has occurred and been removed, there is a net deficit of material which manifests itself as a delay before extrusion starts when the motor is switched on again. That has to be made up by starting the extruder in advance of moving the table for the first line segment.

So the next step was to lay down the filament on the table in a straight line. The first problem was that I discovered a bug in my software that meant the table only moved at half the specified rate. So any previous references to milling feed rates in this blog need to be halved!

The bug was easily fixed of course but I could not get the filament to stick to my table. When it hits the table it curls upwards into a loop and sticks to the side of the hot nozzle. The table surface I used for milling is made of upside down laminate flooring. It is covered with a textured layer of what I assume is probably some sort of vinyl. No great surprise it didn't stick, the next thing I tried was paper, a post-it note to be precise. That did not work either so the next thing to try was MDF. I taped an 18mm block to the the table for a quick test and raised the z position by 18mm, but I forgot to program it to raise up to clear it after visiting the knife. The result was the nozzle collided with the block and that pushed the thermistor wires so they touched the heater wires.

The result was quite spectacular, the thermistor wires, being quite thin, lit up like a light bulb before burning out. The thermistor is toast and so is the micro. Three volt micros don't like 12V up 'em!

I should have insulated the wires but I didn't have any insulation handy that would stand the temperature. Also three 3A diodes in series across the thermistor would have saved the day but it's a bit late now.

Fortunately I have a couple more micros and a spare thermistor but the machine will be out of action for 24 hours while the JB-Weld cures.

It is very easy to get a tool crash with a 3D machine and it usually causes a lot of damage. When I was using it as a milling machine I got into the habit of getting it to mime what it was going to do by running the program with a Z offset higher than the workpiece. I should have done the same thing this time.