Extruder Calibration

One of the most important aspects of printing with the Solidoodle is the rate of flow of the plastic through the extruder.  When laying out the tool paths, the slicing software will space the lines based on the width of the plastic thread.  The thread width is determined by a combination of the distance from the nozzle to the bed (layer height), the speed of travel (feed rate), and the amount of plastic coming through the nozzle (flow rate).

The closer to the bed the nozzle is, the more squished the plastic gets making a wider thread.  Faster movement means less plastic at a given point making a thinner thread, and speeding up the flow makes a wider thread.  Since layer height stays the same most of the time, feed and flow rate need to be balanced.  If you set the slicer to print slower on the perimeters, flow rate will need to decrease, and if you set fill to print faster, then flow will need to increase to keep up.

Slic3r and the later versions of Skeinforge (41+) can calculate the flow rate automatically and adjust it as needed.  They figure out how much plastic is coming out of the nozzle based on the filament diameter, nozzle size, and speed of the filament drive gear.  To print correctly, when the gcode tells the printer to draw 1mm of plastic the printer needs to actually draw 1mm of plastic.

There is a setting in firmware call Default Axis Steps per Unit.  This tells the motor how many steps to turn for every millimeter it is commanded.  In the video below I demonstrate how to determine the correct number.  Don’t upload the firmware as demonstrated in the video.   In Repetier go to Config>Firmware EEPROM Configuration and enter the new values in the fields there.  Anything you enter into EEPROM will stay, and not be overwritten if you update the firmware later.

You can also update the steps by manually entering M92 E(# of steps).  This will be overwritten when the board is restarted unless you save to EEPROM as above.  If you are using Pronterface, or the EEPROM Config window isn’t working (happens on the Mac sometimes) you can save the current values to EEPROM by entering M500.  Entering M501 will read back the values currently stored there.

As an alternative to changing the steps/mm, you can use a fudge factor in the Slic3r settings called Extrusion Multiplier.  If you have determined that your extruder pulls 25% more plastic than it is supposed to, you can set the multiplier to .75 to compensate, telling Slic3r to scale back its computations by 25%.  However that setting is really there to adjust for the differences between plastics.  If you did your calibration using ABS, you might need to adjust a little for PLA due to the difference in how far the gear teeth cut into it.  It’s best to start from a point where you know everything is calibrated correctly, then go from there.


10 thoughts on “Extruder Calibration

  1. Hi Ian, if I understand you correctly, I think your math is a little wonky. If your extruder is pulling 25% more than it should then I’d expect you’d set the multiplier to 0.8, right?

    Another simple way to come up with the multiplier is this…

    multiplier = mm_requested / mm_delivered

    So if you requested 100mm and got 125mm…

    multiplier = 100 / 125 = 0.8

    That means when slic3r wants 100mm it would only ask for 100*0.8 = 80mm. The extruder would add 25%, 80×1.25 = 100!

    • I knew that probably wasn’t quite right, but then I didn’t really want to recommend that method. I don’t know how well that adjustment scales to something like .1mm layers and the lower flows required.

  2. Hey Ian and co, love the blog so far! If/when I get my own Solidoodle I will definitely be using this as a reference.

    All of the blog posts detailing tips on how to use the Solidoodle effectively are great, but are there any plans on putting out a critical review of the device? I’ve been holding off on ordering mine until people started putting out some reliable reviews of the product but even today, well after the initial ship date, there really isn’t much word on how good a machine it is. How does it really stack up against its competitors? What are its strongest points? its weakest points? Are there any glaring flaws in the design? Do the pluses make up for the minuses? How interested should I be in purchasing one of these as a novice, intermediate, or expert 3d print user?

    The orders are being shipped out sort of slowly (no offense to them, but compared to the number of orders they’ve taken it’s going to be a while) so maybe it’s still too soon to expect that a printer be shipped out to someone who plans on doing this kind of review, but as a person who’s checking this blog almost daily it’s the next thing I want to see.

    Keep up the good work!

  3. How can I figure out which version of Skeinforge i have? I just downloaded the package from SD website version 4.3 but I don’t know which version of Skeinforge that contained. Any help?

      • The easiest way would be to install Repetier. You can access it from within Repetier, or you can make a shortcut directly to the skeinforge.py which is contained within the Repetier folder inside the Programs folder.

  4. Thanks a lot for this Ian, it helped me get much more consistent prints.

    I just wanted to mention that I was able to store the configuration in EEPROM in Repetier Host (Config->EEPROM) without recompiling the firmware. Much easier 🙂

  5. A suggestion for an even simpler way:
    1. Set a mark on the filament 200 mm from the top of the extruder
    2. Extrude 100 mm
    3. Measure how far is left to the 200 mm mark
    4. Adjust using the same math as above.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s