Solving for skeinforge flow rate
Description
Just a simple program that I was goofing with to find the correct flow rate of a skeinforge profile given some other set of parameters. Most params have min, max and increment values. The program is simply a set of nested loops that iterate through these values - from min to max, adding the increment each time.
Since this solves for a range of flow rates, you may have problems if you give it too narrow of a range for flow rates. If you're looking for a very specific flow rate, use values like "1.9" min and "2.1" max instead of setting both to "2.0".
Mostly obvious stuff if you've messed with skeinforge before except:
- Gear diameter: this is the diameter of your filament drive gear. Preset to the default of my MK5 gear
- Gear Swell Mod: this internally modifies the gear diameter to make up for small inconsistancies in how various bits perform and are measured. Basically, this is a "plus a bit" modifier: if profiles come out blobby, tweak this up a little; if they come out too thin, tweak it down a little
- Flow Fudge Factor: I have to enter 1.0 into the flow rate to get 2.0 RPMs on the extruder.. I got tired of doing this math so I added flow fudge factor and set it to 0.5. This doesn't change the volume calculations - it just modifies the flow rate on the table. If you have a MK4/MK5 extruder with a DC motor, start this at 127.5 to get the PWM value to use
- (thread area) and (thread width) columns. Just numbers that I like to know but skeinforge doesn't care about
- (unfudged flow) column. This is the actual, calculated flow rate before the flow fudge factor gets applied
Other notes:
Good thread width values probably depend a lot on your nozzle. For my 0.35mm big head, values under ~0.20mm don't make sense and values over 0.75mm don't come out nice. For a 0.5mm MBI nozzle, values like 0.5 to 1.25 probably work well.
If you're messing with profiles a lot, thread area is a good one to keep track of. Mostly, the same feed rate/flow rate combination that works well with one thread area value will work well with any other profile that has the same thread area. (edit: see, for example, the screen shot lines for .25mm/2.8 and .35mm/1.714; both have the same feed & flow rates and the same thread areas..)
The code (included in the zip) is a bit of a mess. Work in progress. Yeah, it's C# so Windows only. Easy enough to port to some hethan language, though. (edit: also confirmed to work on Mono!)
V2: added Infill Solidity and Support Flow Rate RPM to the new profile form; assorted cleanup; column sorting on the table view
V2.1: retargeted to .NET 2.0, made infill solidity & support rpm optional (just leave them blank to not set those in the profile)
V3: slightly better calculation of thread volume; should support creating profiles that repg can add now, too
For Ultimaker machines: set "Gear diameter" to 7.85 and "Flow fudge factor" to 26.5 - that's working quite well for me.
Instructions
- Unzip exe to some directory
Uninstall:
- Nuke exe and prefs.xml
Run:
- Run exe
- Enter lots of random numbers
- Click Go button
- No results? Enter different random numbers & try again
To clone an existing skeinforge profile and add generated values:
- Click on *one* result line
- Click Profile... button
- Change "profiles dir" value to where existing profiles live
-- Skeinforge button resets profiles dir to where skeinforge puts profiles
-- ... button brings up standard windows-dir browser
- Change "clone from" value to chose profile to clone from
- Give the new profile a name
- Click Clone it button
You must be logged in to post a comment.
Hi Dave, thanks for sharing, a quick question please if you dont mind, I have a cupcake CNC printer and im struggling to produce decent prints with the profiles i put together, how easy is it to adapt this tool to my printer pls and what do I need to measure first so the tool would work? Thanks
Hi lahcene,
The thing that matters is the kind of extruder you have, not what kind of machine you have. If you've got something like a MakerGear stepper extruder on your Cupcake, you shouldn't have to do much adaptation at all - that's what I had on my cupcake when I wrote this stuff..
if you've got the sto
ck DC extruder Cupcakes came with, things can be tricky. Look through the other comments here for notes on how to get this working with a DC extruder...
Dave - Bit of a long shot here, but any recommendations on what settings to use for the Makergear stepper extruder with 1.75mm filament and the .35 nozzle? The big issue for me is the gear diameter. I know that the pitch diameter is 10mm, but it has rather deep teeth. I'm pretty sure I read somewhere that you have this gear (among others), so I thought I'd ask.
The gear I have can be seen in the 3rd picture of http://www.makergear.com/pages... . I suspect that's not the one you have, though.
I'd measure your gear as accurately as you can, run some filament through it, back it out and measure the depth of the teeth marks. Subtract that depth from the diamater and use that value as your gear diameter.
I just have to come by and say thanks again: I get such good results with the profilinator that I often generate profiles with it and use them to directly print large, complex objects with every expectation that the results will be good.
Here's how I use it:
1. Measure everything: Gear diameter, filament diameter, gear swell (via a timed extrusion, even easier with RepG 24) and "fudge flow factor" (which you measure by timing the RPM of your DC motor and dividing into 255, unless you have a stepper extruder). Currently my blue
plastic is down to 2.8mm and 0.77 "gear swell"). If you have a DC motor, take that measured RPM and put it in "flow rate max". Put something very close to that in "min" because you don't want to go much below 255 PWM.
2. Set reasonable thread height and width ranges. For a 0.5mm nozzle it's ab
out 0.3-0.4mm height and maybe 0.5-1mm width. Probably this setting should be min/max W/T because that's the true physical property: Plastic can only spread so much.
3. Choose a reasonable min/max feed rate. No need to go super slow (say below about 20) but watch the top end: I can go 50mm/s w
ithout losing steps but maybe only 35mm/s without rounding off squared corners.
4. Pick a profile. When using PWM I go for the ones closest to 255 because that's the fastest your print will go (flow rate is most of what determines print time). With a stepper you can just choose the highest flow
rate for the other settings you like (mostly traded off against feed rate).
5. Plug in layer height, w/t, feed rate and flow rate to skeinforge. When replicating w/t on "fill" I reduce the value to about 90% of the "carve" w/t to get nice closed tops.
Right now I'm printing a Prusa X-Idler. I m
easured the wall thickness of the channel that goes around the Z smooth rod as 2.5mm. In order to get a double-double wall thickness for that "tower" I chose a thread width of 2.5/4=0.625mm width (which I just put in min/max to keep the results manageable). I hit "go" and copied the fastest 0.4mm
profile into skeinforge as in step 5 above and now the idler is printing. Looks perfect so far!
whats the best way to figure out gear diameter?
mine is bigger than the MK5
Hey guys, I can't run this software on a new windows XP install. Does it require a support program?
Thanks!
Had problem when pressing GO. Always showing an error box telling that I need to fill blank space...
I found that changing all "." (dot) by "," (comma) make it working for me.
Surely related to my French-Canadian Keyboard ;-)
By chance, I only need to do that one time since every data are saved :D
is there any way to get these math calibrating solutions to work on a mac? i am still stuck in the dark ages of test cube madness
Hmm, isn't there windows emulation like Wine on MacOS? I am sure this program could easily be ported to MacOS. In fact, someone should code it as a java applet and put a version on a website some where. Of course none of this helps you currently, I guess I'll shut up now.
Thanks for this awesome program. I have gotten much better results out of my ToM by using this tool.
I do have a question.
I did this:
http://blog.makerbot.com/2010/...
Which I am sure many are familiar with. I have found my mk5 to extrude 100 mm in 3.4 seconds.
How can apply I apply this figure into your program to get an even more accurat
e profile? Every time I mess with the flow rate figure and change it to 3.2 and 3.6, and then change fudge factor to .1, no figures come out? Am I using the program wrong??
Figure the feedrate by dividing 100 by 3.4, which gives you 29.41176470588235.
You seem to have a very fast extruder. =-O
If it is a stepper extruder, set flow fudge factor to 1. Then set flow min to 0.5 and flow max to 5.0.
If it is a DC extruder (Round motor, not stepper motor), then you should start by putting 127.5 in flow fudge factor, 1.5 for flowrate min, 2.0 for flowrate max.
Then insert 29.41176470588235 i
nto feedrate min and feedrate max box. Then enter .3 for layer height min and .4 for layer height max. Finally enter .4 for thread width min and .8 for thread width max. Then click go. If your prints are blobby, turn up gear swell mod a bit. If they are thin, turn down gear swell mod a bit.
Flow Fu
dge Factor is a multiplier on flowrate. It should be set to 1.0 if you have a stepper extruder, otherwise set it to 127.5 to make a PWM value.
I went for the gusto with a 0.15 layer height despite the W/T of 8! Needless to say I didn't get that much spread. Is it even possible? With much higher temps maybe? Perhaps the thing to do is make a test gcode of a parameter set and extrude one line to verify W/T.
Also I measured my own DC motor speed: 2.1 RPM (when setting flow fudge remember to set flow rate max also to 2.1).
I measured my blue filament at 2.84mm, extruded for 1 minute and got 1260mm of 0.575mm dia thread which gives me a "gear swell" of 0.74. I assume this is due to the filament having air trapped in it (like bread).
With measured values I took one of the 0.30mm layer height results and it prints pr
etty well. The shell layers actually touch without any tweaks, which I couldn't get before I had the RPM and fudge right. I guess the moral is that all the math in the world won't help if you use the wrong inputs!
It's working fine with Mono, so it's not Windows-only ;)
Tested on Linux (Debian wheezy)
(like) (like) (like)
(love) (love) (love)
Seriously, they need to make a "Love" button... Like isn't enough...
maaaaan, this thing puts out some funky numbers...
I think I'll run some anyways and see what happens! :D
Stupid Q. Is flow rate in RPM or mm per something? Attempting to convert the number into something my extruder likes.
Yes, the numbers are indeed in RPMs.
If you've got a MBI DC extruder, you should put 127.5 in the Flow Fudge Factor field and it will give you the PWM value to use. Those extruders have a range of around 1.5-2.0 RPM or so (YMMV) and the RPMs of the motor doesn't scale linearly with PWM so as you go lower, you'll probably want to bump
up the PWM value a little. There's some variation in DC motors so if you have one of those, you may need to mess around with this a bit to get the fudge factor right for your machine.
Filament volume-in DOES equal object volume-out because plastic is not consumed or destroyed, (well maybe a minute fraction less due to some volatile components boiling off as fumes, but nothing noticeable).
Die swell makes the plastic come out fatter, but shorter, so the volume is the same once the plastic has cooled back down the the same temperature as the feedstock.
The only thing that is a bit indeterminate is the pinch wheel diameter because it depends how far the teeth sink into the plastic.
nophead, it is perfectly reasonable that volume was lost during extrusion. Plastic is a polymer and it is safe to assume that pressure and heat will break it down. Despite the volume being lost, mass does stay the same. i think you are confusing the laws of conservation of mass with volume.
I didn't think mass was being consumed! Volume is very consistantly lower, though.
The bit about gear teeth sinking into the filament is good but I don't think that's it. The MK5-style teeth are quite small and the bite marks on the filament are barely noticable.
What else could account for the loss in volume? I'd very much appreciate any pointers...
License

I'm using a TOM Mk6
OK here are my calculations so far
Given:
layer height=0.29mm
w/t 1.5
I'd like feed rate somewhere between 30-35 lets say 30 for now
I'd like flow rate
&
gt;1.4 solve for this
r gear 10.58/2=5.29mm
r filament=1.5mm
Volume of ABS emitted/minute=(layer height^2)x(w/t)xfeed ratex60=227.07mm^3/min
Volume entering extruder/min=(pi)(r of filament)^2x(2)(pi)(rgear)x(flow rate in rpm)
=234.9459328x(flow rate)?!?!?
I have flow rate setting (float) how do I calculate flow rate in rpm from that value
what other cal
culations do I need to incorporate?
(scratches head)
Er.. I haven't thought about this stuff in a while but that layer height^2 doesn't looks right.. I think "layer height * thread wdith * feed rate" equals mm^3 extruded per second where thread width is layer height * w/t (0.435 with the numbers you have).
On the other side, it should be "pi * (r
of filament^2)" for filament cross section.
Hopefully that helps!