I’ve just fixed some key settings in Slic3r. Retraction Speed is now 7mm per second (down from 100!), and the Retraction Distance is 1mm. There is still slight room for improvement, but this is the best I’ve had it running for, well, ever. No stringing. Very little blobbing.
[Update: 2012/01/06 - I've now cautiously increased the retraction speed to 20mm/sec. It seems to be working, but I'm not fully convinced I'm not missing a few steps now and then during retraction.]
It turns out that one of my many theories was right as to the cause of my overextrusion. Thanks to a comment from Triffid Hunter with the phrase “as fast as you dare”, I thought of a way to test my MakerGear Mendel Prusa’s maximum safe retraction speed.
Extrude and Reverse buttons
Pronterface has a pair of buttons down in the bottom left corner of the control window labelled ‘Extrude’ and ‘Reverse’. I’ve used ‘Extrude’ a lot to test that I’ve got the right temperature setting for my PLA, and to ‘fill up’ the nozzle if it has been oozing plastic while waiting for me to start printing.
It occurred to me that ‘Reverse’ was just another name for Retract.
Triffid Hunter had suggested a retraction speed of 1000 or “as much as you dare”. Pronterface’s extrude button defaults to 300mm/minute. I nearly just entered 1000 into the mm/min field and pressed extrude. Then I remembered satellites crashing into Mars from unit conversion mistakes, and decided to think a bit.
Calculating how much to extrude and retract
My PLA has a diameter of 1.75mm. Such a filament has a cross-section of pi * (1.75/2)^2 = 2.4 square mm. And my much smaller 0.35mm diameter nozzle has a cross-section of pi * (0.35/2)^2 = 0.1 square mm. So for every 1mm of 1.75mm filament going into the hot-end, 24mm of much thinner filament comes out the bottom.
Pronterface’s default extrusion length of 5mm should spit out 120mm of extruded plastic. Much more than I needed for testing my retraction. If I set the Extrude distance to 1mm, which is what many people suggest for an initial retraction length, I should get 24mm of extruded plastic. That seemed like plenty to be able to see if things were working.
So I set my “mm” field (next to the ‘Extrude’ button) to 1.0
Testing how fast I can extrude and retract
I know that 300mm/min works for extrusion on my machine, because that is Pronterface’s default, and I’ve used it a lot. So I started with that.
I use an indicated 175 degrees as my temperature for the clear PLA I’m using. It will flow OK at 160, so either it is very soft, or my thermistor is reading low. It doesn’t matter which is true, so long as I extrude at a temperature that my own experimentation shows works.
With the hot end fully warmed up to 175 degrees, length at 1.0mm and speed at 300mm/min, here was my procedure:-
- Press the ‘Extrude’ button repeatedly until filament extrudes cleanly.
- Remove extruded filament quickly with metal tweezers.
- Press the ‘Reverse’ button.
- Press ‘Extrude’ to undo the effect of the ‘Reverse’.
- Press ‘Extrude’ again to prove that extrusion is ready to go.
- Repeat until convinced of success or failure.
By watching the gear wheel through the hole in the end of the extruder I could tell that it was moving the same amount in both directions. And I could tell by the amount of filament extruded in step 5 that starting to print again after a retraction at this speed would probably work fine.
Next I increased the speed to 1000 mm/min, as suggested by Triffid Hunter, and ran the test again. How about that! The motor failed to move in reverse. So 1000 mm/min is too fast for my geared extruder. Triffid has a different type of extruder head on his machine, so his numbers will be different.
After more testing, I settled on 400mm/min. I can probably retract faster than that, but I wanted to be certain that I wasn’t skipping any steps at all.
Now to enter these figures into Slic3r’s Retraction settings area.
Length is easy : 1.0mm
Speed is in mm/sec, rather than the mm/min that Pronterface uses.
400mm/min is 6.6mm/sec. So I entered 7.0 in the Speed field.
Extra length on restart I left as zero.
I’ve had my first two successful prints in a week. No stringing, and the blobbing has almost completely gone. Each new line segment starts just the width and location I would expect it to. A huge improvement on my recent results. Looking good.
Why did this blobbing suddenly start happening?
Looking back at all my previous prints, right from print #1, I can see signs that retraction has not been working for me ever. I was just lucky that I didn’t try to print things with lots of small parts close together. And I was massively under-extruding for quite a while because I had accidentally set 3mm instead of 1.75mm as my filament diameter at a crucial point deep inside Skeinforge.
It wasn’t until I tried to print over 40 small closely-spaced parts in a single build plate (brave or foolish?), slicing with Slic3r and with a version of Marlin optimised for a much faster printer than mine that I noticed the problem. Then it took a lot of watching before I was able to work out what was wrong.
The default retraction speed of Slic3r is some 16 times faster than the figure I’ve settled on as safe for my printer. Maybe I could retract at 800mm/min if I was willing to risk the odd skipped step, but that is still 8 times slower than Slic3r’s default.
So every time Marlin tried to retract the filament at the speed Slic3r’s gcode told it to use, the motor just stalled and didn’t retract at all. Then when the retraction compensation happened, a big blob of plastic spurted out.
It is such a relief to see my printer happily printing recognisable objects again! Many thanks to Triffid Hunter for the comment that sparked enlightenment for me.