Sunday 22 April 2012

Ooze free unattended start

Normally plastic oozes from the nozzle during warm up due to thermal expansion and gravity. It is then necessary to prime the extruder by running it for a few seconds to fill up the now empty barrel. Any oozed or extruded plastic then needs to be removed, typically with tweezers, before the build can start.

This procedure is inconvenient because it means you have to stay with the machine during the warm up sequence rather than simply starting a build and letting it get on with it. I discovered a simple solution which I now use on my Mendel and Mendel90.

I remove any filament hanging from the nozzle while it is cold and then start the machine and leave it. My software moves the nozzle to the front edge of the bed and parks it 0.05mm above the surface. It then warms up the extruder and the bed. As soon as the plastic starts to ooze from the nozzle it meets the relatively cold bed and sets. That seals the nozzle and prevents and more ooze. I leave the small gap to ensure the bed does not take heat away from the nozzle.

When the bed and extruder reach their operating temperatures the software waits for two minutes to allow the nozzle to expand to its full length, otherwise I find the first layer height is inconsistent. The extruder is then run for a couple of seconds to prime it before doing a rapid move 50mm along the edge of the bed to wipe it. It then lifts to 1mm and moves to the start of the build. I always start that with a blob and an outline.

Here is a video of the sequence on my Mendel90:

So now I can start my machines and leave them to do their own thing. I use Python scripts but it should be easy to do the same thing in G code. The technique works with PLA as well as ABS shown above.

Thursday 19 April 2012

ABS Fudge

Many months ago I put some HIPS, ABS and PLA in a jar of limonene. The HIPS dissolved completely fairly quickly and the ABS and PLA were seeming unaffected. I then forgot about it until yesterday.

The PLA is still completely unaffected but the ABS has become soft like fudge.

I assume that given long enough the limonene removes the styrene content from the ABS.

It looks like it is feasible to use HIPS as a support material for PLA and then remove it with limonene. Limonene isn't cheap though and it remains to be seen how much HIPS it can dissolve before it becomes too dilute.

More trifurcated PLA

I repeated the PLA in acetone experiment with red PLA and pure acetone. Same result, trifurcation after a few minutes:

Here is what happens to an object:

These were identical PLA clothes-pegs, one was dipped in acetone for a few minutes.  It fell apart when I tried to pick it out with tongs.

A bit of Googling reveals acetone causes PLA (which is normally amorphous) to become crystalline. That explains why it loses its transparency I think. It also becomes rubbery and crumbly.

Not a very useful result, but it does show that acetone would not be any good for cleaning out a hot end filled with PLA. Also I think people have suggested you could use ABS as support for PLA and dissolve it out with acetone but that plainly will not work either. The opposite works, dissolving the PLA with an alkali.

Sunday 15 April 2012

Peeled PLA

I have read conflicting forum posts as to whether acetone dissolves PLA or not, so I dropped a piece into a jar of acetone for an hour or so. The effect was truly bizarre:

It split into three strands a bit like peeling a banana. It was clear PLA but the acetone was polluted with ABS, which is why it turned white I think. Whereas it is normally transparent and brittle, it has become translucent soft and flexible. When I opened the jar it was under pressure so I think it evolved some gas.

So acetone doesn't dissolve PLA, but it appears to trifurcate it!

Not a very scientific experiment as I should have done it with pure acetone, but interesting never the less.

Friday 6 April 2012


When I built my Mendel I used A3977 stepper drivers. Before that I did some maths to show that the component values need to be carefully selected to match the motor in order to achieve 8× microstepping. Makerbot produced a board with four potentiometers and I published settings for motors popular at the time.

Since then Pololu stepper drivers have become popular (and the StepStick clone), but they only have one thing that you can adjust: the current. They also have 16× microstepping, which makes the range of component values that work even smaller. I was always pretty sure the off-time would be wrong for the motors we use and while commissioning my second Mendel90 I could hear that it was wrong, so I decided to look into it.

When stepping one motor at a constant speed you should hear a single pitch at the step rate. If the off-time is too short then the lowest current microsteps cannot be achieved, the motor pauses twice every 16 microsteps so you hear a lower pitch sound as well.

If you step the motor very slowly (G1X10F1) you can hear a sequence of steps with a pause.

The reason for this is that the lowest current step when ×16 microstepping is 9.8%. If the current is set to 1A then that is only 98mA. The minimum on-time for the chip is fixed at 1μs and my formula predicts the off-time needs to be at least 54μs with 1.65Ω motors. That would require a 47k resistor but the value fitted is only 10K. That gives an off time of 12μs which isn't even long enough for 8× microstepping. The situation is even worse on the Z axis with two motors in parallel.

The problem with increasing the resistor to 47k is that the switching frequency drops to 14kHz, which is audible. So my conclusion is that the A4983 is not really suitable for driving such low resistance motors. The A3977 allows you to control the minimum on-time so you can avoid the switching frequency becoming too low.

Later Pololus and some StepSticks use the A4988 chip. That has an interesting section in the datasheet: -
Low Current Microstepping. Intended for applications where the minimum on-time prevents the output current from regulating to the programmed current level at low current steps. To prevent this, the device can be set to operate in Mixed decay mode on both rising and falling portions of the current waveform. This feature is implemented by shorting the ROSC pin to ground. In this state, the off-time is internally set to 30 μs. 
Conceptually an easy mod to do, simply short out R4, but due to the size and location of the resistor and the age of my eyes it was not at all easy. I applied the mod to a StepStick and it worked, the steps are now regular, no missing beats. Running is a bit quieter but I think the motors are more noisy when stationary. More investigation is needed.

What to do with my A4983 Pololus? Well if I increase the current to 1.3A and change the resistor to 36K then the minimum frequency is 17kHz, which is ultrasonic to me nowadays due to the age of my ears. Alternatively switching to 8× microstepping and using a 22K resistor keeps it above 30kHz and the current can be 1A.

I don't think constant off-time choppers are the best idea. The current range is too limited and the switching frequency varies wildly. As the two halves of the chip run at different frequencies they can generate beat frequencies in the audio band.

The other thing I don't like is that they regulate the peak current so there is an offset of half the ripple current which can make the first step inaccurate.