Friday, 6 January 2012

Slic3r is Nicer - Part 1 - Settings and Extruder Calibration

I have been using Slic3r for a few months now, it's coming along well and deserves lots more coverage, so here are a few notes and a very short guide to using it and what the settings mean -  nothing difficult as it's already very easy to use and understand.


In this Part 1 we will look at getting Slic3r running, calibrate the extruder and take a look at the Print settings.
Part 2 will setup the printer, filament and print speeds along with doing some printing.
Part 3 will experiment with low layer heights, hollow printing and any other features or limitations discovered.


As of typing (6th Jan 2012) - Slic3r is at Version 0.5.7


Please try it out, it's coming along very nicely and join in with the Slic3r RepRap Forum


Slic3r Website
Slic3r on Github


Download the package extract the zipped files and just run slic3r.exe directly from the directory, you don't need to setup anything unless you want to re-build it then you need the source from Github and citrus perl or Strawberry Perl.

Alessandro is developing Slic3r very quickly so this guild may be a little out of date, but hopefully may still help you get started if you are new to 3D printing, it's certainly the easiest route for an easy tool-chain to great looking prints.


Step 1 - (do not ignore this bit) Extruder Calibration - 
And as with every other 3D tool-path generator you need to have a calibrated extruder first before you can get awesome looking prints. it's really easy to do and will save you so much messing about when you attempt to compensate for poor calibration.

So as a refresher you need to set the correct steps per mm of used filament in the firmware, you can work this out by just extruding some plastic, I recommend using Printrun (Pronterface) Get it here

To do this you will need to edit, re-compile and upload firmware to your electronics, I'm going to assume you already know how to do that using the Arduino software. - (If not let me know).

So in most firmwares like Sprinter or Marlin you will find lines in the Configuration.h file that look like this -
//// Calibration variables

// X, Y, Z, E steps per unit - Metric Prusa Mendel with Wade extruder:
float axis_steps_per_unit[] = {80, 80, 3200/1.25,700};

The number at the end (700) is the number of motor steps needed to extrude 1mm of the input feedstock plastic.
Your number could already be different and may be half of this if you are using 8x microstepping (GEN6) instead of x16 (RAMPS usually uses x16).

Every hobbed bolt and filament drive / extruder gear setup is slightly different, so it's a very good idea to calibrate.

Now we need to check if this number is correct for your filament drive and the plastic you are using, you can use Pronterface  to extrude an exact amount of filament and we are going to measure the distance to check if it's correct or not -
First check that your filament drive (Hobbed bolt) is clean and free from any plastic or debris.
Feed the filament in and make sure your hot-end is at temperature.

Make sure your Extruder gears are really meshing well and there is no wobble, move your motor so you have no extra play.

Set your spring compression, this does make a difference as the hobbed bolt teeth dig into the filament - 
For 3mm PLA I have the springs quite tight with only a small amount of compression remaining. 
For 3mm ABS I slacken them off just a little more.
For 1.75mm filament, I find you need less compression.

Then stick some tape or make a mark on your plastic filament about 50mm up from the extruder, somewhere you can measure as accurately as possible (try to use a digital gauge if possible)
Either measure this or set your digital gauge to zero measured out to this point.
Tape makes it easy to align the edge to the digital gauge.

Now you can extrude 30mm of plastic. You need to make sure you don't do this too fast as you do not want your motor to skip steps or the filament drive getting jammed.
So either slow down the speed to about 50mm/min and enter 30mm and hit Extrude or I tend to extrude 5mm at a time with a little pause in-between until 30mm has been extruded.

Now check how far the filament marker has moved with your digital gauge - 
it should have moved around 30mm if your firmware is close to the correct number.
If it's exactly 30mm, then you already have a perfectly calibrated extruder :)
If  not then this is how to set the new number in firmware-
Our firmware in this test was set to 700 steps per mm and we extruded 30mm of plastic.

700 x 30 = 21000 (E motor steps for 30mm)

 For example if you actually measured 32.6mm then  21000/32.6 = 644 (so you need to put 644 into your firmware replacing the 700 we had before, re-compile and download and you can re-check again and your filament should now move exactly 30mm as you have just calibrated it.

If you measured 27.2mm then 21000/27.2 = 772 (put 772 into your firmware)

I recommend that you do this calibration for both PLA and ABS (the hobbed bolt teeth can sink deeper into ABS filament, so you will usually have a different Estep value for ABS) and if you have 3mm and 1.75mm extruders then check them also.
You can always add all your calibration readings into the firmware and comment them out so it's easy to change if you change plastic type or extruder.

Now you have a perfectly calibrated extruder, you are well on the way to perfect printing -

Understanding Slic3r Print Settings- 



The first screen you see is the Print settings, for completeness I'll comment on each section, but it's mostly self explanatory.


Transform -  You don't need to change anything here, unless you want to scale the part of make multiple copies of the same object at a time. - this does the same as the Skieinforge Multiply command.


Accuracy - Layer height is very important and needs to be compatible with the Nozzle hole size. For a standard 0.5mm nozzle I always use 0.3mm layer height, you should avoid going any bigger than 0.4mm and as low as you dare, but much below 0.1mm you will struggle to see the benefit.
Leave first layer height and fill N layers set to 1.
It's a very good idea to select layer heights that divide into even numbers of steps of your Z height, having a miss-match of steps as the object builds is going to cause problems - Just to explain this - a 200 step motor using 16x micro-stepping gives you 3200 steps, an M8 threaded rod is 1.25mm per complete revolution so 3200/1.25 = 2560
So 1mm of height (Z) movement takes 2560 motor steps, a layer height of 0.3mm takes 768 motor steps.
If you set a layer height of 0.32, that needs 819.2 steps - not an even number of motor steps, so not ideal.


Skirt - This allows you to draw an outline around the perimeter of your printed object, this is a good idea as it  starts the flow of plastic in the nozzle and helps prime before the print, it will always do this first, so you can also check if your bed height is set correctly and stop the print if it looks like it's not sticking well.
6mm is fine and if you like you can build the skirt outline up more than 1 layer, this is the first thing it will do before the next layer of the object, people normally just do one skirt layer.
Note the skirt and first layer are squashed down onto the bed (Glass in this picture)

Print Settings - Perimeter of 3 means it will draw 3 solid outlines around the edge of the object if it can, for thin elements it may only be able to draw 1 or 2. Sometimes you are better off having less outlines (Shells) and having more directional infill. But 3 Shells is a good starting point for general purpose building of parts.
Solid layers, is the number of fully filled layers built on top of each other on a flat surface, the base, tops of objects. 3 is a good number, you should never need to go much higher than 6.
Fill density, is the amount of infill to be used when filling the internal space in your object. the 0.4 shown means 40% infill. 25% is a normal and good figure to use when printing things like parts for a Prusa Printer, when printing art or organic objects you can use lower infill, hollow being 0% and you can get away with just 5% - to 10% for many objects . For some things like the Extruder or motor mounts you may want to use a higher fill (35% - 50%). it's very rare to need to go much higher and often slightly reducing layer height can make parts much stronger than just increasing fill levels.


Fill level examples - 


Fill angle - 45 Degrees will start to draw the infill at a 45 degree angle between Y and X axis.

Fill pattern and Solid fill pattern - This is the style of infill used, normally Rectilinear is used, but here are some examples of what the others look like - they are all 37mm high and 25% infill, 3 outlines.




Gary has a good thread going on here discussing alternative fill ideas, and check his Blog post about fill ideas

Retraction -  This section relates to your Extruder - Length is the amount of feedstock that is reversed by the extruder after completing a set of moves, just before it needs to re-position to another place for a subsequent set of moves. (extruder toggle) You will need to experiment with this number depending on what extruder hot-end and gearing setup you have. - Normally you need some level of reversal so a minimum would be around 0.5mm and a maximum needed for 3mm filament is usually 1.8mm. 1mm is a very good starting point.
For example a Mendel-Parts 3mm V5 hot-end oozes a lot and so needs 1.8mm of retraction, where as a 3mm J-Head nozzle only needs 0.9mm retraction.

If you have a Bowden extruder or are using 1.7mm filament you may need more reversal, but don't go too high - I needed 3mm reversal for a Bowden using a mendel-parts 1.75mm V5 hot-end, but with an Adrian style mini-extruder hot-end on a 1.75mm Bowden setup I only needed 1.5mm

Lift will give you the option to raise the extruder before it moves to a new point of extrusion,  EDIT - don't use this on machines with a slow Z axis (like Mendel, Prusa, Huxley) As Nophead mentions in the comments you can use lift on Machines with slow Z axis as you only need to lift a fraction (1 layer height).
Some machines like the TOM and the BFB 3000 have fast lead-screw drive Z axis and can lift nozzle away from the print before doing a fast move to new extrusion point. - EDIT So if you are building fragile tall parts that may be detached from the bed, then maybe try out the Lift setting - Otherwise usually leave this at 0.

Speed is how fast your extruder pulls back (toggles) the filament, you want this as fast as possible, but there is a limit of how fast most firmwares can do this and also how quickly the stepper can drive the filament back.
In Skeinforge and using Sprinter firmware I always used 16mm/s but after switching over to Marlin Firmware and using Slic3r then 30mm/s is possible and makes a very positive impact on quality and print speed and also (usually) allows a smaller reversal length.

Extra length on restart allows you to specify the feeding of more plastic before a new set of extrusion moves, I can't understand why you would ever need to do this as this effectively adds more plastic that's not needed and has no where to go apart from blobbing all over your nice print. If you ever feel the need to use this setting, something else is wrong with your printer set-up and/or calibration - Always leave at 0
Minimum travel after retraction Simply tells the extruder not to reverse (toggle) if the start of the next set of extruder moves are closer than this distance, otherwise you may end up with constant tiny extruder toggles if you were doing a highly complicated small print. 2mm is a good figure.

That's enough for now, In Part 2 we will look at the other sections of Slic3r - Printer and Filament setup, check the Start/End Gcode and then do some printing!

Thanks for reading, please leave comments and any feedback or any opinions about using Slic3r?

Rich.