Welcome! Log In Create A New Profile

Advanced

filament extruding comes up short.

Posted by rich1812 
filament extruding comes up short.
January 18, 2015 08:53PM
Hi,
I am trying to recalibrate the extruder, in Macpronterface, I set it to Extrude 10mm@100mm/min then I went measure the exturded filament against the pre measured 100mm(10cm.) I marked 10cm on top of the extruder, ten extruded 10cm however the extruded filament always comes out a around 1 to 1.5 cm short. I read this guide [reprap.org] on calibration, it has some formulas, but I don't know where to put the corrected values. Should I put it in the firmware? (I use Marlin.) or put them in slic3r?

Thanks.
Re: filament extruding comes up short.
January 18, 2015 11:17PM
At least for Marlin...

Look in the Configuration.h file for a line like the following:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80.0,80.0,4000.0,128.5}

It shoud be about 2/3 of the way down the file. This is the list of values is for the various axes of the printer. 80.0 steps per mm for X, 80.0 steps per mm for Y, 4000.0 steps per mm for Z, and 128.5 steps per mm for the extruder.
Re: filament extruding comes up short.
January 20, 2015 09:49AM
Quote
SupraGuy
At least for Marlin...

Look in the Configuration.h file for a line like the following:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80.0,80.0,4000.0,128.5}

It shoud be about 2/3 of the way down the file. This is the list of values is for the various axes of the printer. 80.0 steps per mm for X, 80.0 steps per mm for Y, 4000.0 steps per mm for Z, and 128.5 steps per mm for the extruder.

I took a look at the config.h

The line you mention was #define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,4000,760*1.1}!! No wonder my print looked like lava stream!

I changed it to {78.7402,78.7402,4000.0,75.0}, now it prints so much nicer smiling smiley

Thanks for your help.
Re: filament extruding comes up short.
January 20, 2015 10:35AM
Just a question, where from comes 78.7402 ? Don't you have regular GT pulleys ? It looks like you modified these values to get a cube of desired dimensions. You should not, because these values compensate only for THAT cube, any larger or smaller part will be unlikely distorted. I dunno why that stupid adjusting process is still in use today ! Somebody please write calibration for dummies ! confused smiley
Calibrating your extruder


Collective intelligence emerges when a group of people work together effectively. Prusa i3 Folger (A lot of the parts are wrong, boring !)
Re: filament extruding comes up short.
January 20, 2015 11:01AM
Quote
Zavashier
Just a question, where from comes 78.7402 ? Don't you have regular GT pulleys ? It looks like you modified these values to get a cube of desired dimensions. You should not, because these values compensate only for THAT cube, any larger or smaller part will be unlikely distorted. I dunno why that stupid adjusting process is still in use today ! Somebody please write calibration for dummies ! confused smiley
Calibrating your extruder

LOL,
i yanked it out from the net somewhere when I was desperately try to fix the X axis shift , and it did fix the problem. I am just monkey see monkey do. smiling smileySomeday, I will sit down and do a complete math after my exams.
Re: filament extruding comes up short.
January 20, 2015 11:16AM
Ok, let's make it easy : steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)
For example : (200 steps*16 microsteps)/(GT 2mm * 20 tooth) = 80
As simple as that winking smiley You can't have good prints without a printer proper setup or you're the luckiest man on earth.

Edited 1 time(s). Last edit at 01/20/2015 11:19AM by Zavashier.


Collective intelligence emerges when a group of people work together effectively. Prusa i3 Folger (A lot of the parts are wrong, boring !)
Re: filament extruding comes up short.
January 20, 2015 11:51AM
Quote
Zavashier
Ok, let's make it easy : steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)
For example : (200 steps*16 microsteps)/(GT 2mm * 20 tooth) = 80
As simple as that winking smiley You can't have good prints without a printer proper setup or you're the luckiest man on earth.

Looks like he may have MXL belt/Pulleys which are 2.03 mm pitch 200*16/2.03*20 = 78.8177 so pretty close to what he has in his config file

Doug
Re: filament extruding comes up short.
January 20, 2015 12:03PM
Quote
Zavashier
Ok, let's make it easy : steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)
For example : (200 steps*16 microsteps)/(GT 2mm * 20 tooth) = 80
As simple as that winking smiley You can't have good prints without a printer proper setup or you're the luckiest man on earth.

That's the thing, I have not looked into these: motor_steps_per_rev, driver_microstep, belt_pitch and pulley_number_of_teeth yet.

I know the pulley_number_of_teeth is 20

in GT2 the 2 means 2mm pitch, if there is a GT4 the pitch is 4mm is that correct?

Is motor_steps_per_rev for NEMA 17 always 200 ?

How about microsteps where do you find this number?

Also before, my extruder always came out short of 1-1.5cm over a 10cm extrusion. So I pretty much trail and error found that 75.0 extrusion seem to work the closed.

Thanks.

Edited 1 time(s). Last edit at 01/20/2015 12:04PM by rich1812.
Re: filament extruding comes up short.
January 20, 2015 12:49PM
Quote
rich1812
Quote
Zavashier
Ok, let's make it easy : steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)
For example : (200 steps*16 microsteps)/(GT 2mm * 20 tooth) = 80
As simple as that winking smiley You can't have good prints without a printer proper setup or you're the luckiest man on earth.

That's the thing, I have not looked into these: motor_steps_per_rev, driver_microstep, belt_pitch and pulley_number_of_teeth yet.

I know the pulley_number_of_teeth is 20

in GT2 the 2 means 2mm pitch, if there is a GT4 the pitch is 4mm is that correct? Not to sure that is correct but the idea is correct you can look up the specs of different belts to find your pitch count 10 teeth and measure the distance between them (use either the leading ed ge or trailing but be consistent and then divide that by number of teeth (the more teeth you measure the more accurate you will be

Is motor_steps_per_rev for NEMA 17 always 200 ? No it depends on the degrees per step the common is 1.8 but there are 0.9's out there and they would be 400 steps/rev

How about microsteps where do you find this number? this is a function of the Stepper driver pololus ar upto 16 8825 can be upto 32 and some others can be upto 128

Also before, my extruder always came out short of 1-1.5cm over a 10cm extrusion. So I pretty much trail and error found that 75.0 extrusion seem to work the closed. the way to do this is to remove the hot end mark the filament going in measure 100mm and mark extrude 100 mm and measure the mark in relation to the start point and the calculate what you need to change

Thanks.

Doug
Re: filament extruding comes up short.
January 20, 2015 01:29PM
Reading up on things, and coming to the conclusion that accurate dimensions are tricky.

First of all, there's the fact that extruding melted plastic is somewhat inexact. I'm now kind of wiching that I'd gone with a 3mm filament instead of the 1.75, as tiny errors in filament diameter make larger errors. this will end up making some errors in the end result, since the slicer has to assume that the input measurements are actually what you're getting in real world, and well... It may not be. Add in tiny measurement errors in nozzle diameter, and it's not too pretty.

Next it's all well and good to use the mathematical methodology to calculate steps per unit based on the specifications of your parts, but reality isn't going to be so kind. The X and Y axis are belt-driven, which has some issues. While the number of teeth in the wheel is something that can be measured and quantified, what this means in terms of belt travel is not. Belts stretch, it happens regardless. This is why the timing belts in a car's engine has a tension adjuster, to take up the slack as the belt stretches over time. In the car's engine though, the driving wheel on the crank and the driven wheels on the cam(s) are both toothed, so they will always be driven correctly. This is not so with the printer. The printer is driven directly by the belt itself. My printer uses a 2.5mm pitch gear with 16 teeth, do a motor that has 200 steps per revolution at 16X microstepping means that I should have a value of 80 steps per mm, but this is only true if the measurements are exactly accurate. I had initially configured my steps per mm as 80,80,4000,128.5 after calibrating my extruder, but my parts always came out too small. I'm currently using values of 83.6 and 84,2, which seem to need a bit of adjustment with the filament I'm using, as a part that was supposed to come out 170mm by 20mm by 3mm came out 168.1mm by 20.3mm by 3mm. I believe that the Y axis is correct, and will try rotating the part 90 degrees on the next print so that I can check. For the X axis, I believe that this needs to be adjusted. Some inaccuracy will also happen due to slack in the belts, causing the limits to shift inwards a bit, but this does not appear to be happening to a significant degree with my printer, as I believe the belts to be appropriately tight. Oh, and of course you can't forget that there's a shrink factor once the part cools...

I'll have to look closer at the settings in slic3r so that I get what I really want.

I printed this:

Overall, it turned out well, though the extrusion for the top layer was a bit thin, making the surface a bit rougher than I'd otherwise like.
Re: filament extruding comes up short.
January 20, 2015 02:00PM
Quote
rich1812
in GT2 the 2 means 2mm pitch, if there is a GT4 the pitch is 4mm is that correct?

Is motor_steps_per_rev for NEMA 17 always 200 ?

How about microsteps where do you find this number?

Also before, my extruder always came out short of 1-1.5cm over a 10cm extrusion. So I pretty much trail and error found that 75.0 extrusion seem to work the closed.

Thanks.
GT2 belts can have 2,3 and 5mm pitch. Usualy repraps use 2mm belt&pulleys because it's the less expensive one, and it fits the needs. Measure from top, tooth to tooth, and if you get 2mm something, that's it.

Nema17 at 0.9° cost more; usualy repraps use 1.8° motors, which are pretty enough for most of the designs. If you missestimate the steps per revolution at 200 instead of 400, you part will be two times smaller. Easy to find. Anyway, plan on 200 SPR, if it was 400, you should have known.

Microsteps are defined by the jumpers you install on your RAMPS board under each of your pololus (stepsticks). For A4988 types : none = no microstepping, 1 jumper = x4, 2 jumpers = x8, 3 jumpers = x16.

First, you want to configurate your steps per millimeter properly for your X and Y axis. Z seems correct, if you use a 5mm threaded rod. Next step will be to setup your steps per millimeter for the extruder.


Collective intelligence emerges when a group of people work together effectively. Prusa i3 Folger (A lot of the parts are wrong, boring !)
Re: filament extruding comes up short.
January 21, 2015 02:00PM
Quote
Zavashier
Ok, let's make it easy : steps_per_mm = (motor_steps_per_rev * driver_microstep) / (belt_pitch * pulley_number_of_teeth)
For example : (200 steps*16 microsteps)/(GT 2mm * 20 tooth) = 80
As simple as that winking smiley You can't have good prints without a printer proper setup or you're the luckiest man on earth.

Thank you everyone for your replies.

@ Zavashier, I really like how you summarized in an easy to read manner, Now my questions are how about the Z axis here it doesn't use belt but two motors and two threaded rods. And the Extruder motor? Mine is a Folger Reprap Prusa i3, the extruder has no big gear like some I read online.It has a gear inside to pull in the filament, I suppose this type is called direct drive extruder? Is there a formula to calculate that as well, besides my non scientific trial and error "method"?

Thanks again. smiling smiley

Edited 1 time(s). Last edit at 01/21/2015 02:00PM by rich1812.
Re: filament extruding comes up short.
January 21, 2015 03:35PM
Z axis:

(Steps per rev * microstepping) / thread pitch

If you have a 5mm threaded rod, that will be a 0.8mm thread pitch. 6mm rod is 1mm thread pitch, 8mm is 1.25mm.

So, for a 5mm rod (What I have) it's (200 * 16) / 0.8 = 4000
Re: filament extruding comes up short.
January 21, 2015 04:00PM
You're welcome. I bought Folger's and did not manage to print anything properly with that extruder. I'm printing ABS only so it's high temperature and Folger's extruder is not at his best with me. Some people have acceptable print quality with Folger's, so I hope you'll manage to print properly.

For the Z axis, the formula is : steps_per_mm = (motor_steps_per_rev * driver_microstep) / thread_pitch
As far we own the same printer, the good value is 4000 = (200*16)/0.8mm

For extruders, the formula is :
direct drive (your type) : e_steps_per_mm = (motor_steps_per_rev * driver_microstep) / (hob_effective_diameter * pi)
wade (geared extruder) : e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * (big_gear_teeth / small_gear_teeth) / (hob_effective_diameter * pi)

BUT, for extruders, that's not that simple. Because the tooth of the hob comes inside the filament and that modify the hob effective diameter. So you need to calibrate manualy your extruder after a setup with the formula :
  1. Find your actual extruder step per millimeter settings, write the value
  2. Mark accurately the filament 150mm above the extruder
  3. Ask the printer to extrude 100mm of filament (repetier or so)
  4. Whait the extruder to stop
  5. Now measure the distance from the top of the extruder to the mark
  6. Calculate the real amount of filament extruded (150-the last measurement), write the result
  7. Calculate (last steps per millimeter*100)/the real amount of filament extruded
  8. You've got your new steps per millimeter value
  9. Open your configuration.h and make the correction
  10. Upload the updated firmware to your arduino
  11. Mark again at 150mm and ask again to extrude 100mm of filament
  12. Measure if the result is ok within 2%, if not calculate the new steps per millimeter
  13. When it's ok; your extruder extrude now the good length of filament
  14. The first step of extrusion calibration is done. Congratulations

It's good, but it's not done. We now need to measure accurately the filament itself. Some filaments diameter is not the same all along the filament. You need a digital caliper, and you want to make several measurements to find an average value. When it's done, set your slicer parameters with that value. Remember you want to set this up with each new spool of filament, event with the same colour from the same brand. Now our system is able to extrude 100mm of filament, and we know as precisely as possible the filament diameter. So the software side is able to deliver the right amount of plastic. Good.

BUT, we will melt the plastic, that means we will transform it. That means that the volume of cold (unextruded) plastic possibly differs with the volume of plastic out of the extruder... So we need to check this out.
  1. You need a STL file of a one wall cube, that wall of the same thickness of your nozzle diameter. For example you've got a 0.5mm nozzle, you need 0.5mm walls. Design it or get one at Thingiverse or so.
  2. Print it with slow settings, and verity all repetier (or so) settings are standard or 100%
  3. When it's done measure the thickness of the walls of your printed object, but at the top because the bottom of the part may be thicker.
  4. Calculate (your print wall thickness/nozzle diameter)*100 = your new feedrate
  5. Modify your slicer parameter with the new feed rate
  6. Print another test thin wall cube and verify the thickness of the walls
  7. If you're within 10% of the asked value, it's ok. Remember our repraps are not high precision machines.
  8. If not, Calculate again a new feed rate, BUT calculation is this time different !
  9. last feed rate * (nozzle diameter/measured wall thickness)
  10. when you get an acceptable print, your calibration is done ! Congratulations !

Now you can print benchmark parts, you're as precise as your printer can be. It's good to keep in mind the best your machine can do. You don't need anything else to be calibrated. If the accuracy does not matches your needs, you need probably to upgrade your printer's components do get better prints.

Good luck !

Edited 1 time(s). Last edit at 01/21/2015 04:10PM by Zavashier.


Collective intelligence emerges when a group of people work together effectively. Prusa i3 Folger (A lot of the parts are wrong, boring !)
Re: filament extruding comes up short.
January 22, 2015 01:32PM
Quote
Zavashier
You're welcome. I bought Folger's and did not manage to print anything properly with that extruder. I'm printing ABS only so it's high temperature and Folger's extruder is not at his best with me. Some people have acceptable print quality with Folger's, so I hope you'll manage to print properly.

For the Z axis, the formula is : steps_per_mm = (motor_steps_per_rev * driver_microstep) / thread_pitch
As far we own the same printer, the good value is 4000 = (200*16)/0.8mm

For extruders, the formula is :
direct drive (your type) : e_steps_per_mm = (motor_steps_per_rev * driver_microstep) / (hob_effective_diameter * pi)
wade (geared extruder) : e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * (big_gear_teeth / small_gear_teeth) / (hob_effective_diameter * pi)

BUT, for extruders, that's not that simple. Because the tooth of the hob comes inside the filament and that modify the hob effective diameter. So you need to calibrate manualy your extruder after a setup with the formula :
  1. Find your actual extruder step per millimeter settings, write the value
  2. Mark accurately the filament 150mm above the extruder
  3. Ask the printer to extrude 100mm of filament (repetier or so)
  4. Whait the extruder to stop
  5. Now measure the distance from the top of the extruder to the mark
  6. Calculate the real amount of filament extruded (150-the last measurement), write the result
  7. Calculate (last steps per millimeter*100)/the real amount of filament extruded
  8. You've got your new steps per millimeter value
  9. Open your configuration.h and make the correction
  10. Upload the updated firmware to your arduino
  11. Mark again at 150mm and ask again to extrude 100mm of filament
  12. Measure if the result is ok within 2%, if not calculate the new steps per millimeter
  13. When it's ok; your extruder extrude now the good length of filament
  14. The first step of extrusion calibration is done. Congratulations

It's good, but it's not done. We now need to measure accurately the filament itself. Some filaments diameter is not the same all along the filament. You need a digital caliper, and you want to make several measurements to find an average value. When it's done, set your slicer parameters with that value. Remember you want to set this up with each new spool of filament, event with the same colour from the same brand. Now our system is able to extrude 100mm of filament, and we know as precisely as possible the filament diameter. So the software side is able to deliver the right amount of plastic. Good.

BUT, we will melt the plastic, that means we will transform it. That means that the volume of cold (unextruded) plastic possibly differs with the volume of plastic out of the extruder... So we need to check this out.
  1. You need a STL file of a one wall cube, that wall of the same thickness of your nozzle diameter. For example you've got a 0.5mm nozzle, you need 0.5mm walls. Design it or get one at Thingiverse or so.
  2. Print it with slow settings, and verity all repetier (or so) settings are standard or 100%
  3. When it's done measure the thickness of the walls of your printed object, but at the top because the bottom of the part may be thicker.
  4. Calculate (your print wall thickness/nozzle diameter)*100 = your new feedrate
  5. Modify your slicer parameter with the new feed rate
  6. Print another test thin wall cube and verify the thickness of the walls
  7. If you're within 10% of the asked value, it's ok. Remember our repraps are not high precision machines.
  8. If not, Calculate again a new feed rate, BUT calculation is this time different !
  9. last feed rate * (nozzle diameter/measured wall thickness)
  10. when you get an acceptable print, your calibration is done ! Congratulations !

Now you can print benchmark parts, you're as precise as your printer can be. It's good to keep in mind the best your machine can do. You don't need anything else to be calibrated. If the accuracy does not matches your needs, you need probably to upgrade your printer's components do get better prints.

Good luck !

Thank you Zavashier, for taking the time to write in such great details, I really appreciate it. smiling smiley

The extruder part sounds really complicated and time consuming, This weekend I will grab a nice big cup of tea and sit down to do a full over-haul!! And I will buy you a beer! smileys with beer

Edited 1 time(s). Last edit at 01/22/2015 01:34PM by rich1812.
Re: filament extruding comes up short.
January 23, 2015 04:11AM
Cheers mate winking smiley Don't worry, it's a calibration you do once.


Collective intelligence emerges when a group of people work together effectively. Prusa i3 Folger (A lot of the parts are wrong, boring !)
Sorry, only registered users may post in this forum.

Click here to login