Thursday, May 26, 2011

More Advanced 3D Print Succeeded (And Steps Per Unit)

I corrected a few parameters in the MakerGear's Arduino firmware so X and Y would match what was designed. Even the extruder configuration was updated. This information is something I wished existed, but as I couldn't find any, I asked around and collected this to let it make sense for me and other people. This is how it was calculated:

float x_steps_per_unit = 160; // (360 / 0.9) * 16 * (5 * 8)

Values explained:
  • 360 - This is how many degrees there is in a circle to make a loop (full rotation).
  • 0.9 - This is the motor's Step Angle.
  • 16 - Microsteps (1/16).
  • 5 - Length/Pitch between cogs (mm).
  • 8 - Amount of cogs in the pulley.

float y_steps_per_unit = 160; // Same as x.

float z_steps_per_unit = 2560; // ((360 / 1.8) * 16 ) / 1.25

Values explained:
  • 360 - This is how many degrees there is in a circle to make a loop (full rotation).
  • 1.8 - This is the motor's Step Angle.
  • 16 - Microsteps (1/16).
  • 1.25 - The thread pitch of the z-threaded rod.

For e, the extruder, I had 1479.31034482758620689655, which was basically calculated like this:
  • Mark up 100mm on the filament from the extruder.
  • Set a suitable speed in repsnapper, so the filament doesn't slip.
  • Set 100mm in length to extrude.
  • Press "Extrude" and let it do it's work.
  • Calculate new value by using the value set and divide with, as exact as possible, how much filament actually was pulled in and multiply that with 100.
This should give you a value closer to the truth. I did this a few times, and ended up with that value, 1479.31...

However, after a recent chat in the support channel this is what I use instead:

(360 / 1.8) * 16 * (13.6 / 31) = 1403.9
float e_steps_per_unit = 1403.9;

Values explained:
  • 360 - This is how many degrees there is in a circle to make a loop (full rotation).
  • 1.8 - This is the motor's Step Angle.
  • 13.6 - Gear Ratio (13.6:1)
  • 31 - Circumference in mm.

This value is probably pretty much spot on. The following is printed using these values:

And ended up like this:

It's not totally perfect, as you can find a few filament loops here and there. They are there mostly because it can't print in the air... Still, this can probably be tweaked some more... but, not bad. Not bad at all.

There have been issues with the filament not sticking and clogging up to the nozzle, ruin the print when the nozzle came back for round two - the next Z layer. I tried to heat the bed higher than 100C, but it doesn't seem to go much higher than that. Or, it will take crazy longer time. Either way, I used Acetone on the board and I believe this actually is the main reason the filament stuck straight away for this print. Well, basically there are 3 parameters that needs to be great.

  • Height from the nozzle to the heatbed.
    This is around 2mm...
  • Temperature of the filament. I used 220C this time. Didn't seem to "drop" out as much when the extruder was idling.
  • Heatbed hot enough (May not be needed for PLA plastic). I had close to 100C. 95C+. Seems hot enough. At least for this ABS print. It didn't want to stick before even if the heatbed was around this temperature, but I'm guessing this is because of all the in-purities from fingers and such.

Again, I'm guessing the Acetone helped a lot by cleaning away all finger fat on the bed, and this time around I also heated the bed way before the extruder. The bed takes longer to reach the higher temperatures anyway, but it's probably a good idea to heat that up well enough before starting the extruder.

I will probably do a post later on with files and parameters collected, for newcomers to start easier. I wanted this information about the "steps per unit" out already though as it's quite impossible to find using your favorite search engine...

No comments:

Post a Comment