Configuring Skeinforge: The 4 (or 5) Big Settings..

Unlike the previous post which was sortofa mini Skeinforge dictionary, this one is about some parameters you’ll actually find in Skeinforge. This was written with Skeinforge 31 (“10.09.21”) in mind but anything past version 20 or so should be pretty close. Hopefully future ones will be, too.

Although there are many, many parameters in Skeinforge, I think there are 4 or 5 really important ones that make up the foundation of a profile. A good portion of the other parameters in Skeinforge are ones that reference these parameters (usually with that darn “over” word in there) so if you get any of these 4-5 big ones wrong, it will have a ripple effect. More than any other settings in Skeinforge, these are the ones I try to get right first when making up a new profile.

Layer Thickness: I always think of this as “layer height” though skeinforge never calls it that – it uses the term “layer thickness.” I’m going to stick with layer height because I think that’s a less ambiguous term (“thickness” can mean vertical or horizontal and “height” is really just vertical, so I like “height”).

A MakerBot prints an object by drawing (with plastic) one layer, moving up a little then drawing another layer. Do this enough times and put down enough layers and you’ve got yourself a real, physical object.

Layer height is simply the height of each of these layers. You don’t really get to print an object with different layer heights – you pick one value and that’s the height for every layer in the object.

In a lot of ways, layer height equals resolution. Say you tried to print something like a wine glass but could only do it with a 1-inch layer height. If you think about a wine glass sitting on a bar (or table, bedstand, whatever) and the bottom inch of it, there’s a whole lot of detail in that one inch – there’s a wide base, which tapers tapidly to the stem which goes (mostly) straight up.

If you tried to record the description of a wine glass in 1-inch resolution then play that recording back later, it’d be complete crap – you probably couldn’t even tell it was supposed to be a wine glass because there’s just not enough resolution to accurately describe the object. For something like a big, perfectly square 3-inch cube, that sort of resolution would probably be fine but it just doesn’t work for objects with lots of detail.

As the layer height decreases, the resolution increases.

Flow Rate: This is how fast the extruder motor is turning and is frequently also called PWM, Pulse Width Modulation. PWM is like turning a light switch on & off really quickly to simulate having a dimmer dial – by varying the ‘width’ of the how long it’s on, you can change how bright it appears. Flow Rate PWM is the same thing but with a motor instead of a light.

For DC-motor extruders (which includes just about everybody with a MakerBot), a value of 255 means full speed or about 2 RPM. With a 10mm gear on the end of the motor shaft, that 255 or 2RPM means a length of ~30mm of filament going into the extruder every minute.

The really, really important bit to remember about flow rate is that this value is only about how fast the extruder motor is turning and how fast a given length of plastic is going into the extruder – it’s not the same as how much plastic is coming out of the nozzle. It’s all about the length of plastic going in.

If you’re trying to get really high quality prints out of your makerbot, this is extra important because when you buy “3mm filament” you’re actually getting anything from 2.70mm filament to 3.10mm filament. If you’ve got a skeinforge profile all nicely dialed in with a 255 flow rate on your 2.70 filament then you try using it with 3.10mm filament, you’re going to be pretty disapointed. Why? Because a 2.70mm filament has a ~5.7mm² area (cross section) and a 3.1mm filament has a ~7.5mm² area; it’s +30% more plastic per length of filament and, again, the flow rate is about how fast a given length of plastic is being fed into the extruder.

All that said, it’s important to keep in mind but in reality you’re not likely to end up switching from 2.70mm filament to 3.10mm filament – I’m just using the extreme examples to make the point. If you always buy filament from the same place, they’re probably shipping stuff that’s all pretty close to the same diameter.

One aspect of flow rate being all about the amount of plastic going into the extruder is that layer height has a much smaller impact on build time than you might think. Imagine filling up two identical boxes from a tube of liquid plastic that flows at a constant rate. On one box, you move the tube around really, really quickly so it makes lots and lots of tiny layers. On the other box, you move the tube around slowly and it makes a smaller number of thicker layers. Which one fills up quicker? Trick question! They fill at the same time. This is also true when printing – the difference in build times between low and high layer heights (on the same object with the same filament and PWM, etc) is the difference in the objects non-printing times. Non-printing times are things like travel and orbit. For something easy to print like a solid cube, there’s little non-printing time so the difference in pretty small. For something complicated, it can add up. Either way, it’s the difference in non-printing times.

You can adjust the flow rate from 1 to 255 but with DC extruders (again, that’s most of us) the nature of the beast limits us in the what numbers are actually usable. On my machine, I can get down to about 180 if the machine is nicely warmed up. Anything below that and the motor just stalls and nothing comes out of the nozzle.

If you’re really going after quality or resolution, the minimum flow rate you can use on your machine will be a good value to know. You can test this out in the ReplicatorG control panel by putting values in the “Motor Speed (PWM)” box and trying to extrude. Note that this minimum-flow rate value may change a bit when you change filament stock, if the diameters are different and may also vary based on the temperature you extrude at and, believe it or not, the color of your filament – these probably won’t be huge differences but if you’re going for the best quality you can get, they’re good to be aware of.

Feed Rate: This is how fast the build platform moves, in milimeters per second. 

A good number to know for your machine is the maximum feed rate you can use without losing quality. The ‘standard’ MakerBot profiles are usually around 30mm/second or so but you can, if you want, run the machine a lot faster – I’ve printed at over 65mm/second.

Though having the build platform zip around at +60mm/s is pretty cool (and a little scary, the first couple times) to watch, it’s probably not what you want to do. For one, it doesn’t really make the print complete any faster – that’s largely about flow rate and the non-printing moves that Skeinforge does.

Another issue is that it usually degades the quality of the print. The reason for this is the way the Cupcake X and Y stages are driven. In particular, the belts that move them around will always have a little backlash (lag when they reverse direction) no matter how tight you make them and the faster you go, the more they will vibrate – both of these things get transfered to the print and degrade quality.

Here’s an example of printing at a feed rate that the machine can do but is too fast for it to do nicely. This side of the object should be all straight, except for 3 holes and a circular indentation (it’s a Brutstruder at around 60mm/s, if you’re curious) in it. Note the waves or echos around the holes and the dent. 😦

Although turning up the feed rate doesn’t really help build times, it’s something you’ll probably need to do if you start trying to increase resolution by doing stuff like turning down the layer height or using a smaller nozzle.

Keeping your belts & bolts tight and your X & Y rods oiled will help raise your maximum usable feed rate. You can also upgrade your X and Y stages to use bearings instead of bushings – not only will upgrades like that make your bot a lot quieter, they will also move more smoothly, which will help lessen the vibrations. If you’re interested in such upgrades, search through Thingiverse for “mendel inspired”.

Feed rate is what I consider to be the number one tweakable thing in a profile. That is, if you’ve got to change one of the settings listed in this blog post to make a profile come out right, this is the one to change if possible. More on that later..

Width Over Thickness, two different kinds: I don’t really care for this term, Width Over Thickness. Math scares me and it always makes me think I have to do math. I think a better term would be “Aspect Ratio”. Yes, it has the mathy word “ratio” in there but aspect ratio is a pretty common term so it’s not as bad. You can also think of these values as “width over height”, which I think would also have been a better term than “width over thickness.”

In short, these values tell Skeinforge how wide the filament being laid down is, in relation to how tall it is. If you have a layer height of 0.25mm and width over thickness values of 2.0, it’s going to generate gcode that works just right if the threads are 0.25mm tall and 0.5mm (0.25mm * 2.0) wide.

Skienforge has a number of parameters labled “width over thickness” but the two big ones are the Perimeter Width Over Thickness in Carve, how wide perimeter lines are vs layer height, and Infill Width Over Thickness in Fill, how wide infill lines are vs layer height.

In general, you should have the same value for both of these parameters. If you’re really tweaking the most out of a profile, you might want to change one just a little bit to make things come out perfectly. I think that if you have a difference more than about 0.2, something is wrong in your profile. I’m tempted to say that if the difference is more than 0.1, be suspicious.

Changing the width of threads has a big impact on two things. One is that higher numbers have more adhesion than lower numbers – they’re better at sticking to the layer below them. Picture two big circles of tape, side by side and touching. They have a puny contact area and won’t stick to each other very well. Now sorta squash them a bit so they are more oval than circular – more contact area, better stick.

The other big impact is on the feed rate. Picture the melted plastic coming out of your nozzle. If the build platform isn’t moving, you’re just going to get a big blob of plastic. If the build platform is moving really quickly, the plastic is going to stretch out and be a thin line, probably thinner than your nozzle size. If the build platform is moving slowly, you’re going to get a fat, hopefully non-blobby line.

If you raise the width/thickness values, you probably need to drop the feed rate down to make the threads come out wider. This is good news, especially if things like tiny layer heights have driven your feed rate up, but there are limits to it. If you raise width/thickness enough, you’ll have to go so slowly that the plastic will start blobbing up around the print head – beware width/thickness and layer height values that make the thread width more than the width (outside diameter) of your nozzle. That hard, brass nozzle doesn’t just spit out plastic – it also helps flatten & smooth out the tops of threads.

I had planned to yak more about the interaction of these big settings but this is getting pretty long. Reeally long. Too much coffee today or something. I’ll save that stuff for the next post..

Next in this series: Configuring Skeinforge: Moving’ on up!

This entry was posted in Makerbot, skeinforge and tagged , . Bookmark the permalink.

18 Responses to Configuring Skeinforge: The 4 (or 5) Big Settings..

  1. Pingback: Configuring Skeinforge: Some Basic Terms… | DaveDurant's Blog

  2. Pingback: Configuring Skeinforge: Basic Settings with David Durant - MakerBot Industries

  3. Pingback: A really great article on configuring skeinforge. « The Hell Ya Beller

  4. Pingback: Configuring Skeinforge: Movin’ on up! (to a recent version) | DaveDurant's Blog

  5. Pingback: Configuring Skeinforge: Configuring the latest version of Skeinforge with David Durant!!! - MakerBot Industries

  6. Pingback: Configuring Skeinforge: Index to Articles.. | DaveDurant's Blog

  7. Ong Tian Chang says:

    From Singapore here.

    Just wanted to say thanks to the effort you have put in.

    Cheers mate.

  8. Pingback: REPLIK8TR » Open Source Software

  9. Joseph Chiu says:

    Dave, have you ever sorted out how to minimize the “ringing” of the platform when taking a hard corner at higher speeds? I actually think my ringing got worse after I upgraded to ball bearings — I think the sleeve bearings had a natural “dampening” effect. One idea I’m pondering is to use some kind of a belt tension clip to act as a “shock absorber” — I’m not sure if there’s enough room to accomodate that on the ToM, though. Thanks!

    • Dave Durant says:

      Your best bet is to get firmware that supports “acceleration” – check around in the MBI google group for the “jetty” stuff. Although it will actually make existing profiles print a bit slower, it will allow you to print at faster speeds than you do today and at better quality..

      I’ve never liked the name acceleration for this stuff but it’s easier than “understands inertia and that x/y can’t go from 0 to max speed (or the other way) instantaneously.”

  10. Mark says:

    Hey Dave, Great information – this is awesome.

    I’ve been trying to get my Solidoodle 2 to run with Skeinforge / Pronterface at 200 microns and desirably 100 microns. I’ve gotten 1 print at 280 microns that was good, and one at 260 microns that would have been good, but a cavity in it was filled together where it was not with the same model on the other 2.

    I keep playing with the settings, based of the material and recommendations you have mapped out. I’ve mainly played with the Feed and Flow Rates as well as the Thickness (height) of the filament spit out.

    If I deviate any setting to much, it pretty much prints little seperated pieces as they don’t stick together or it is not pushing enough out. My stock flow rate is 2.1.. you mentioned it being 180 to 255.. I wanted to check on that. My 300 micron prints do great at 2.1. So Im confused why those numbers vs. yours are so far apart.

    Mainly, I just want a good high rez print at 200 or desirably 100 microns. Do you have any settings that you know have worked for you here? Or any specific settings you suggest I try for my purpose? Im using the stock white filament.

    Thank you so much, and thx for sharing!!!!!!!!!!!!!


    • Dave Durant says:

      This post, this whole series of posts actually, is a bit dated. They were written when I had a crappy old Makerbot with a DC extruder, not a stepper extruder. The introduction of Volumetric 5D and moving up to the 21st century (ie: non-Makerbot hardware) made big bits of it obsolete..

      If you’re using a SF version >= 40 and you have the Dimension module enabled, you should make sure that both Feed Rate and Flow Rate are set to the same value in the Speed module. Set the feed rate to whatever x/y speed you want (in mm/second) then set flow rate to the same value. Also, make sure you carefully measure your filament diameter and set that in the Dimension module.

      With all that done, SF will calculate how much filament is needed to draw each line and include that in the gcode.

      The bit that’s probably messing you up is thread width settings. Assuming you’re using the latest SF, version 50, start with the profile that’s worked best for you and calculate the thread width. In SF, multiply the setting for “Carve\Edge Width Over Height (ratio)” by the setting for “Carve\Layer Height (mm).” This value (Width Over Height x Layer Height) is your thread width.

      When you make a new profile for a different layer height, you should take that thread width value and divide by the new layer height. Enter this new value into both Carve\Edge Width Over Height (ratio) and Inset\Infill Width Over Thickness. Keep the same Speed\Feed Rate value and make sure that Speed\Flow rate is set to the same thing..

      Hope this helps!

      • Mark says:

        THANK YOU ;)> I will play with this and see what she does.

        Really appreciate the great responses. I look forward to
        mastering this machine 😉

        roCk on!

  11. Carl Cliche says:

    Hi Dave
    I’ve really appreciated these blogs on Skeinforge.

    I’ve got a question that you might be able to help with. Please reply also to

    Using S-F 35 and have a, for me, dilemma. My machine is well calibrated. However, when I try to print some items where the dimensions are important, matching parts, etc., and these are parts downloaded from Thingiverse, etc., the dimensions as is are anywhere from 10 to 90% off in the final item. I can make adjustments by adjusting percentage wise by modifying the Stepspermm. But this is not practical in the long run. Is there a way around this?

    I’m running ReplicatorG-0025 with S-F 35.

    This is true whether the parts are small or large. Yet the calibration cubes, circles, etc. measure out to withining 0.5% or less.


    • Dave Durant says:

      Heya Carl,

      Your best bet is probably to get your machine updated to firmware that supports ‘Volumetric 5D’ then switch to SF40 or later.

      With Volumetric 5D, SF will calculate how much filament each thread will need and include that in the gcode. This is a far better way to do things and should allow you to get much more consistent results.

      As to how to upgrade your machine, that totally depends on the machine and what’s loaded on it now. Google groups are usually a very good place to get this sorta info. If you’ve got a Cupcake or ToM, the “Vintage makerbot” group will have people that will know what you need to do..

  12. Pingback: Filament Buddy. The helpful filament feed rate measuring tool. - 3D Searcher

  13. Pingback: Hackaday Podcast 043: Ploopy, Castlevania Dice-Scroller, Projection Map Your Face, and Smoosh These 3D Prints - NTH Secure

Leave a Reply

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

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

Google photo

You are commenting using your Google 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