Skeinforge 41 Quick Start Guide

The purpose of this guide is to get you printing with a decent a profile in Skeinforge 41.

Before we can even get started with Skeinforge, we need to make sure your machine is properly configured. You will need to be able to edit your firmware settings. You are going to need some measurement tools, preferably some digital calipers. If you don't have digital calipers, I strongly recommend you get some, they are invaluable in the 3d printing world. Also, I find a digital micrometer to be helpful too, for measuring filament diameter. You can use the calipers for measuring filament but I prefer the micrometer, it just seems more accurate.

Skeinforge 41's dimension plugin works under the assumption that your machine will pull exactly the amount of filament you tell it to pull. So, when you tell it to feed 100mm of filament through the extruder, it expects 100mm to go through the extruder. This is configured by your E_steps_per_unit setting in your firmware. If you are using Sprinter firmware, you can find this setting in the configuration.h file.

I can't STRESS enough how crucial it is to get this right!

This is the best way I know to make sure your extruder is configured with the proper amount of Steps Per Unit:

1. Find out your current E_Steps_Per_unit value by looking at your configuration.h file. I believe mine was defaulted at 1382 or so.

2. Heat up your bot's hot end up to extrusion temperature, move the nozzle (Z axis) 30 or so MM above the build surface.

3. Change Extrusion Length to 100mm.

4. Measure a straw or tube out to 100mm. Some people like to do 110mm, that way if the extruder pulls too much, they can measure how much extra it pulls (because the mark will still be visible).

Straw Trick Step 1

5. Place the tube on top of the extruder filament drive with the filament stringed through it.

Straw Trick Step 2

6. Mark the Filament at the top of the straw.

Straw Trick Step 3

7. Make sure your extruder speed is set low (try 150 mm/min). The last thing you want to do is go too fast for your extruder, because it will skip steps, and you steps per unit measurement is going to be off, so make sure you set that speed low, in pronterface, the speed setting is located right next to the reverse button. Extrude!

8. The mark on the filament should now be pretty close to going into the extruder. Measure how high the black dot is. Now from that you should be able to determine how much filament your extruder actually pulled in. Mine was 88mm. Don't forget to account for the extra 10mm if you marked at 110mm instead of 100mm.

Straw Trick Step 4

9. Now, take your current E_Steps_per_unit setting (1382 was mine), Divide by how much you actually pulled (88 was what the extruder pulled for me), multiply by 100. The figure that results is your new E_Steps_per_unit number. I got 1570.

10. Now change your E_Steps_per_unit setting in firmware to the new number we just got. Save and Upload the firmware.

11. Now, test out if the new setting pulls 100mm. Chances are it will be much closer to 100mm now, but not perfect. Keep repeating steps 1 through 11 until you get as close to 100mm as you can get.

OK! Now your bot should be pulling the correct amount of filament. If you wish to be extra thorough about this... you can take off your hot-end and see how much your extruder pulls with the hot-end off.... it should be exactly the same amount! If it is not, then a few things could be wrong, your mm/min is set too high (if it is set at 150 like I recommended, this is not too high, something else is wrong), you stepper driver pot for the extruder is set too low (or in extreme cases too high, but this would cause many other issues that you would probably notice), or your stepper extruder is under-powered.

Next you need to measure your filament. You can use your calipers or a micrometer. Some people like to be exact with their filament measurement, others not so much. What I find is, no matter how well you measure it, you are going to be off a little, and odds are you going to have to tweak the filament diameter a little bit anyway. So what I do now is just measure in a few spots with a micrometer or caliper and see what I get.

But, if you want to be exacting, I used to use this method:

(skip the following paragraph if you don't want be so exact)

The best way I have found to get a decent accurate filament diameter is to take 1 meter of your filament. Measure in 10 different spots twice and average the results. When I say measure in a spot twice, I mean measure the width of the filament one way, turn the caliper 90 degrees and measure the other way, you will probably find that the numbers are slightly different, this is because the filament is not perfectly round. So, you measure in each spot twice and average all the numbers.


Now that you have your filament diameter, open up skeinforge. Time for the nitty gritty. First click on profiles. What I like to do here is create a new profile, using a description of what the profile is and possibly a date in the profile. After you add your profile. Go back to the craft screen and make sure the new profile is selected under profile.

Now, we are going to go through the settings in order of the important settings first! If you don't want to read the description of what all this stuff does, you can scroll to the bottom of each section and see what settings are reccommended.


Click the dimension tab. This is the plugin that is the engine of Skeinforge 41. The idea is simple, by knowing your filament diameter and having your extruder set to pull exactly the amount of filament you tell it to pull, skeinforge calculates exactly how much plastic to extrude for you based on the settings you decide to use. In older versions, every time you made a change to one of the settings, you would have to adjust a bunch of other settings to get the new setting you wanted to work right. For example, if you wanted to change your layer height, you would have needed to change your flowrate and width over thickness settings to get the layer height you wanted to work. And if you got one of these settings wrong (which is very easy to do, even if you know Skeinforge well), your print would look terrible! Now, with the dimension plugin, if you change a setting such as layer height (which is a large factor in the resolution of your print), since it knows your filament diameter and exactly how much filament will be going into the machine, it can calculate all the settings for you. So, Dimension is a great thing, it means less work for you!

Now, at the top of each plugin page, there is usually a check box to enable each plugin. We want Dimensions enabled, so make sure there is a check next to "Activate Dimension".

Absolute Extrusion Distance vs. Relative Extrusion Distance

You want to select Absolute Extrusion Distance. I am pretty certain the only time you would want to use Relative Extrusion Distance, is if your bot was set to use Relative Move Mode (Gcode: G91). The difference between relative move mode (Gcode: G91) and absolute move mode (Gcode: G90) is the way it tells your bot the coordinates to move to. In relative mode, a move Gcode (for example: G1 X10) will your bot 10mm positive on the X axis. In absolute mode, G1 X10, will move your bot to the coordinate X10.

UPDATE: I am told by Tonokip (a firmware author) that the reason the absolute and relative options are there, is, at the time of implementation, they were weighing the advantages and disadvantages of each mode. So both are options are there, however, pretty much everyone uses Absolute mode now.

Extruder Retraction Speed (mm/s):

This setting controls how fast your extruder retracts (pulls back) filament during a travel. The reason for the retraction, is to prevent oozing when the nozzle is only traveling from location to locatin (and not extruding). I have a Makergear hot end with a 30:1 gear ratio. I use a setting of 15 mm/s. I have heard people have settings here as high as 60 mm/s and it has alot to do with the type of stepper motor you use. My retraction fails at any setting higher than 18 mm/s.

Filament diameter:

This should be the value of how thick your filament is, you can use the method listed earlier to get this value. This is one of the key values that lets skeinforge decide how much plastic to extrude (flowrate).

Packing Density

This is probably one of the most mis-understood skeinforge 41 settings. It is really simple when it comes down to it though. It is basically an inverse slider for controlling E steps per unit. At 1.0, it is going to extrude 1mm for 1mm. At 0.85 it is going to extrude 1.15mm for 1mm of filament. At 1.15 it is going to extrude .85 mm for 1mm of filament.

The reason people get confused about this is because all the guides say to set .85 for ABS and 1.0 for PLA. This only holds true if you calibrated your E-steps for PLA. If you calibrated your E steps with ABS, you would want to set it 1 while using ABS filament.

The reason that you need to this setting at all... is because if you configure your bot to pull 100mm for 100mm with PLA, it is not going to pull the same amount when you put ABS filament in, using the same E-steps. So rather than making you change your firmware and re-flash, they just put in this packing density variable. All it does is scale flowrate up and down. The reason PLA produces more filament than ABS under the same e-steps value is because it doesn't sink into the extruder drives teeth as much. So, the PLA rides higher on the radius of the extruder drive gear, causing it to move a greater distance.

UPDATE: I actually use this as my main setting to tweak when I want to adjust my flowrate. Skeinforge attempts to get the settings right and the theory behind it is sound, but when it just comes down to it, sometimes you need to tweak the numbers a little to get a nice profile going. Using perfectly measured filament diameter and a 1.0 packing density SHOULD work, but I have never been able to get it to extrude the correct amount of plastic when using these settings, I personally think skeinforge 41 has some bugs in its flowrate calculation. In a perfect world, exactly measured filament and 1.0 packing density SHOULD be all you need. Unfortunately, this world is far from perfect.

Retraction Distance:

This setting controls how far your extruder retracts filament during a retraction procedure. I use a setting of 3.2 mm.

Restart Extra Distance:

This setting adds extra distance to the push back part of a retraction procedure. You can use a negative or positive value. Say your bot pushes back not enough filament during a pushback and you end up with gaps in your print. In this scenario, you would want to add a little to the restart extra distance to cover the gap. Or, if it is pushing back too much filament and making little blobs of plastic all over the place, you need to use a negative value. I think this feature is currently bugged. I have not done many tests to confirm my suspicions, but it seems like this setting causes issues with small infill areas. I think perhaps in a future version of skeinforge, a minimum retraction distance should be used, so if a retraction is smaller than a certain number you set, it won't do one. All retraction does is prevent ooze, and in small extrusions, the extruder really doesn't get a chance to ooze.

Ok, that is it for Dimension. My recommended settings are:

Activate: Yes
Absolute Retraction Distance
Retraction Speed: 15 mm/s
Filament Diameter: Insert your filament diameter here!
Packing Density: 1
Retraction Distance: 1.0mm (subject to change, still working on my settings)
Extra Restart Distance: 0.00 (If you are getting blobs, you can use a negative restart distance (usually very small, like 10% of your retraction distance), if you are getting gaps you can use a positive. I think there may be a bug with negative pushback that causes small infill areas to fail!)


I shut this plugin off completely by removing the check mark at the top. I find it just causes too many issues with getting the nozzle close enough to the build platform. All it does is raise your nozzle up by the set amount extra above the build platform before starting a build. I don't see the need for using this, as it just complicates matters.


Click the Carve tab. Carve is another key plugin for skeinforge. It is here where you control your layer height, which is the main factor in print resolution. You will also control your Perimeter Width Over Thickness Ratio from here, which defines the shape of your extrusion. There are also a few settings in here that you probably will never touch in your Skeinforge career. I am only going to go over the important ones.

Infill in Direction of Bridge:

What this option does is, when a bridge (a portion of a layer that spans open air) is going to be started on a layer, it is going to arrange the infill so that it spans the bridge instead of doing its normal infill direction (which may be counterproductive towards bridge making). You almost always want this feature on.

Layer Thickness

This is the MOST important setting in the carve plugin. This setting has control over how fine of a resolution your print has. It defines the thickness of each layer. The lower the number, the more detailed your print will be, because there will be more layers. You may think great, lets use the smallest number possible, but there is always a downside. The more layers you print, the longer the print takes to complete. You usually want your layer height to jive with your nozzle size. For example, with a .35 nozzle, it wouldn't make much sense to use a .6 layer height. I find, that the best layer height to use is a number that is 80% to 90% of your nozzle size. I use a .35 mm nozzle and I have my layer height set to .28 mm. Of course, you can get smaller nozzles than 35, but these nozzles are often harder to print width. And Again, the smaller the layer height, the longer the print is going to take. When printing objects that don't need to have very fine detail, I will use a larger layer height so the print completes faster. The nice thing about skeinforge 41, is, you can now change your layerheight without having to modify all your settings (such as flowrate), as SF 41's dimension plugin handles all of that for you.

Layers, Layers From and Layers To

I have never actually used this feature. But I know it will come in handy one day. You can actually specify how many layers you want sliced, and it seems like you can even select to start slicing from a certain height. I will have to do more research on this. You can use a negative number in the Layers to, to specify how many layers from the top to stop.

Perimeter Width over Thickness

Another Important Setting. This setting will control the shape of the filament that is laid down. It is the ratio between your layer height and and how wide your extrusion is. If you set perimeter width over thickness to 1.5, your filament is going to be 1.5 times as thick as it is tall. For example, say you have a layer height of .30mm and you have a Perimeter Width over Thickness setting of 1.5, you filament is going to extrude .30mm tall and .45mm wide. I prefer the perimeter width over thickness setting to be 1.5. Some prefer a slightly different setting. If you set it to low, your filament isn't going to stick well to the layers below and above it, because it will be too round. This will make for a very weak object.

There is an excellent article written by Nophead on his blog called hydroraptor: Spot on flow rate

Chamber, Clip and Comb

I shut these three plugins off. Chamber is used for if you have a heated build chamber. More than likely, you don't have one. Clip is a plugin that stops extrusions early in order to prevent loop plastic build up at the end of a loop. Comb used to be very useful when the DC motor extruder was common, which would ooze during travel (points where the nozzle is moving without extruding plastic). What Comb does is avoid open spaces during travel to hide the ooze within the object. Since with a stepper extruder, we don't have that ooze problem, it makes no sense to use the comb plugin.


I am a big fan of this plugin. Other people hate it... it depends on who you ask. I activate it and turn minimum layer time down to 15 seconds. All this plugin does is slow down the layers printing if it takes less time than the allotted minimum layer time (i.e. 15 seconds). This plugin was implemented for a simple reason, if a layer prints really fast, it doesn't have enough time to cool before the next layer gets put on top of it. If the printer is trying to put a new layer of plastic on top of a layer that is still very soft and melty, you are just going to end up with a mushy ugly print. With PLA, you can usually solve this problem with a fan, however, with ABS fans can lead to other problems such as layer splitting and warping.

Unfortunately, this is all I have written of the guide so far! Don't, not even for a second, think that you are done with configuring your profile if you have reached this! There is still so much more to cover. I will update as time permits!