Skip to content

Instantly share code, notes, and snippets.

@dev-zzo
Last active July 19, 2022 21:18
Show Gist options
  • Save dev-zzo/d6dccb2f3ddbddc1e26a16228fc6c877 to your computer and use it in GitHub Desktop.
Save dev-zzo/d6dccb2f3ddbddc1e26a16228fc6c877 to your computer and use it in GitHub Desktop.
3D printer calibrations checklist

This is a list of procedures to perform in order to calibrate a FDM/FFF 3D printer.

Heaters PID constants

Perform this calibration to ensure the control algorithms for heating elements do the right job and do not overshoot/undershoot/oscillate.

This only needs to be done once per maintenance period.

  1. Use the M303 E0 S to calibrate the hot end and save the reported values with M301 P I D.
  2. Use the M303 E-1 S to calibrate the bed and save the reported values with M304 P I D.
  3. Save everything to EEPROM with M500.

Extruder steps/mm

Perform this calibration to ensure your extruder feeds the expected amount of filament into the hot end.

This only needs to be done once per maintenance period and redone only when you replace the extruder.

  1. Liberate your extruder's output so the extruded filament is pushed outside. On Bowden extruders you just take the pipe off, on direct drive this may be more tricky.
  2. Cut the filament off the output, flush with some reference surface.
  3. Instruct your extruder to feed a set amount e.g. 100mm. E.g. G92 E0 G0 E100 F100
  4. Cut the filament off the output again in the same way as before.
  5. Measure the length of the cut piece; if calibrated correctly, this should be 100mm exactly.
  6. Otherwise, recalculate the extruder steps/mm value as: (desired extruded distance) / (actual extruded distance) * (original extruder steps/mm)
  7. Store the calibrated value via the means provided by the printer e.g. LCD console or the M92 command
  8. Repeat the calibration to verify.

Bed levelling

The exact procedure is strongly device dependent.

This may need to be repeated at least on the first power-up of the day as things might shift around with the 3D printer heating up / cooling down.

Flow rate / extrusion multiplier

Perform this calibration to ensure your printer produces the line width expected by the slicer.

This only needs to be done once per filament type / maker or when replacing the nozzle.

  1. Create a calibration model such as a small cube or cylinder; set the slicer for "vase mode" or "spiralized contour" depending on software -- the important point is the slicer generating a single-line wall out of your model, top not capped.
  2. Setup the slicer software to use your measured filament diameter and flow rate of 100%.
  3. Print the calibration model and measure the wall thickness. This will produce the printed line width; if calibrated correctly, this should coincide with the slicer setting.
  4. Otherwise, recalculate the flow rate as: (expected line width) / (actual line width) * (original flow rate)
  5. Repeat the calibration from step 2 but with the updated flow rate.

Filament's temperature

Print the temperature test tower and pick whichever looks best.

Filament's retraction settings

Print the retraction test model and pick whichever has least stringing.

Stepper Vref

Axis Motor Imax Vref max Vref safe
X 42-34 0.84A 1.16V 1.05V
Y 42-48 1.00A 1.38V 1.25V
Z 42-34 0.84A 1.16V 1.35V*
E 42-40 1.00A 1.38V 1.25V
Irms = (0.325 / (0.150+0.030)) * (1/sqrt(2)) * (Vref / 2.5) = Imax / sqrt(2)
Imax = 0.722 * Vref
Vref = Imax / 0.722 = Imax * 1.385
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment