Mark2 Calibration

From Aus3D Wiki
Revision as of 11:56, 4 December 2015 by Chris (talk | contribs) (XYZ Axis Calibration)
Jump to: navigation, search

Mark2 3D Printer


This page documents the steps that need to be taken to get your printer dialled in and calibrated for high-quality printing. It describes the most important steps, the things that you'll definitely need to do if you want to get good results - but there's a lot more info out there on the topic of calibration, and this guide can't cover it all. Check the Resources section to see other guides on the topic.

Temperature PID

The PID controller is responsible for keeping the HotEnd at the temperature you set - in order to get the optimum behaviour from your HotEnd, it's important to calibrate it.

Calibrating a PID controller can be a tricky thing to do - fortunately, Marlin has a clever built-in auto-tuner, which does the job for you. Refer to the instructions here to use it:

Z Offset

Initial Calibration

It's important to get the offset between the probe's trigger point and the printer's nozzle exactly right. The default value should get you in the right area - from there, it's a question of calibrating the printer to the exact value. Here are a few ways to do that.

Before doing the first print, it's a good idea to get the value fairly dialled in. Power up and connect to the printer - we'll need to send commands to the printer to get this done. You'll need all of the axes to be working properly and able to move.

First, let's home the printer - this moves each axis to its minimum position, and sets the offset to zero. Then we'll run the bed probing procedure.

 SEND: G28 // home each axis
 SEND: G29 // z probe

Use the control panel in the software to move the probe (in the X and Y axes only) in to the approximate middle of the bed. Once done, the z probe should be positioned in approximately the centre of the print bed, and the indicator LED on the probe should be illuminated. At this stage, there should be a small gap between the bed surface and the HotEnd nozzle.

Take a small piece of paper, and fold it over once. Folded, the two layers of paper should be approximately 0.1mm thick - which is a good thickness for the first layer of a print. Slide the folded paper underneath the nozzle - at this stage it should fit fairly easily. Assuming this is the case, and that the paper can easily slide under the nozzle, the next step is to lower the Z axis in small, countable steps - up to the point where the nozzle is touching the paper, and gripping it slightly, but where the paper should still be moveable underneath the nozzle (i.e. the paper can be slid out and back under the nozzle without trouble, but there is friction from the nozzle on the paper).

Lower the Z axis by sending the command:

 SEND: G91
 SEND: G1 Z-0.0500 F200

Check the fit of the paper - if it seems there's still a gap between the paper and the nozzle, repeat the process. You do not need to change the value of -0.0500 each time - we are moving the axis down by this amount, not to this position. Keep track of the distance you've moved the Z axis.

If the nozzle is gripping the paper too tightly, you can raise the Z axis by using the same commands with a positive number:

 SEND: G91
 SEND: G1 Z0.0500 F200

You can also use the control panel in the printer software to move the axis using the graphical interface. Just be sure to keep track of how far you've moved the axis!

Once you've got a good fit, make a note of the distance that you've moved the Z axis downwards. We need to adjust the Z offset stored in the firmware by this amount. Check the currently stored value first:

 SEND: M851 Z
 RECV: echo:Z Offset : -0.50  // example, probe triggers 0.5mm below nozzle tip

We need to subtract the amount we've moved the Z axis by from the pre-set value - so, if you found you have to lower the axis 0.10mm, the new value will be -0.6mm. Send the command to store this new value:

 SEND: M851 Z-0.6
 RECV: echo:Z Offset ok

Repeat the procedure from the first steps - homing and performing the bed probe sequence, and check if the paper is gripped correctly. If so, congratulations - the offset is set correctly and you should be ready to print. If the paper is not gripped correctly (or even gripped worse), try adjusting the value by the offset in the other direction (i.e. -0.5mm + 0.10mm)

 SEND: M851 Z-0.4
 RECV: echo:Z Offset ok

The offset in some places (LCD display in particular) is displayed without the negative sign, and this makes it easy to get thrown off.

Once you've found the correct offset, we need to tell the printer to save this offset to memory:

  SEND: M500
  RECV: echo:Settings Stored (380 bytes)  // number of bytes might vary depending on configuration

It's also a good idea to make a note of this value somewhere - if you ever update the printer's firmware, the saved value will be lost.

Further Calibration

If you find during printing that the first layer is still not the perfect height, you can adjust it between prints by continuing to vary the M851 value. Try tweaking it in smaller increments until you find the perfect value.

Steps per Unit

This section deals with calibrating the STEPS_PER_UNIT values in the firmware. The pre-customised firmware has these values set - but it's important to go through and calibrate the values to account for any differences - manufacturing tolerances, and so on - in your printer. These differences will be minimal, but can still have a big impact on print quality - so this section is pretty important.

Extruder Calibration

  • Heat up HotEnd
  • Measure and mark filament 90, 100 and 110mm from entry to extruder
  • Request 100mm extrude
  • Check actual extruded distance against marks
 new_e_steps = old_e_steps * (100 / distance_actually_moved)
  • Update printer with values by GCODE
  • Repeat process until error is acceptable
  • Update value in firmware, recompile and re-upload

XYZ Axis Calibration

This section can really only be done once you've got the printer going. The default values are close enough to get you started, so return to this section after you've completed your first print.

Once you've got the printer working, it's important to double check the accuracy in the X/Y/Z axes. An easy way to do this is to print a part with known dimensions, and to measure the actual dimensions of the object after printing - this way we can calculate the difference, and use this to re-calibrate the STEPS_PER_UNIT values. You'll need a way to accurately measure the printed part - digital callipers are recommended, otherwise a very trustworthy ruler.

The following parts are handy calibration pieces with known dimensions:

50mm Calibration Angle

110mm Calibration Angle

The 50mm calibration angle will print faster, but the larger part makes it easier to measure the error present in the print. Both parts include instructions on how to use them to calibrate your printer, but in general you want to follow these steps:

  • Print the part
  • Check a known dimension in the part model (i.e. 50mm is the outer size of the 50mm calibration angle)
  • Measure the dimension in a given axis (i.e. 50.5mm in X for the 50mm calibration angle, for example)
  • Check your current STEPS_PER_UNIT value in the firmware (80, for example).
  • Calculate the new STEPS_PER_UNIT value as follows:
 new_value = (old_value * known dimension) / measured_dimension


 new_value = (80 * 50) / 50.5
 = 4000 / 50.5
 = 79.21
  • Send the printer the new value using the M92 command:
 M92 X79.21
  • Repeat the process for both the Y and Z axes.
  • Once all the values have been updated, reprint the calibration piece and go through the process again. The printed part should now be closer to the desired dimensions of the part.
  • Repeat the process until you're satisfied.

If you've found that you needed to adjust the steps per unit on the Z axis significantly, it may be worth re-doing the probe offset calibration done previously. Otherwise, the different steps per unit will result in the offset actually travelled by the printer changing, potentially enough to cause problems during printing. If the new value is not significantly different, this should not be a problem.

40px-Ambox warning yellow.svg.png Caution:It's important to make sure that you save the calibrated values to the firmware. The values sent with M92 will only stay in effect until the printer is next restarted (when you disconnect / reconnect in the host program, or when power is lost). To save the values, edit the firmware file, and replace the values in DEFAULT_AXIS_STEPS_PER_UNIT with the values you've found. Save and upload the new firmware.

These calibration angles also make it possible to check how 'square' your printer is - whether or not the X and Y axes are perfectly perpendicular to one another. Grab a nearby protractor, and check the right-angle of the printed piece - it should be bang on 90°. The Mark2's frame reduces the likelihood of any significant alignment issues, but it's always good to double check. If the angle between the axes is not 90°, examine the printer's frame for any obvious signs of mis-alignment. Check all screws are hand-tight, as loose screws may allow excess slack into the frame.