07. G33 Auto Calibration - FLSun3dp/FLSun-Kossel-Mini GitHub Wiki

Delta specific

G33 - Delta auto calibration

Currently up to date with Marlin-AC-1.1.6e-AC

Performs a 1-4-7 point calibration of delta height (P1), end-stops, delta radius (P2) and tower angle corrections (P>=3) by a least squares iteration process based on the displacement method.

Usage: G33 A Cx.xx E Fn Pn T Vn

Parameters (Upper-case = Letter, n = number, x = number)
A : Auto tune calibration parameters. This probes 7 points and calculates the displacements when end-stops, delta radius and tower angle corrections are changed. The resulting scale factors can be used in Configuration.h to finetune G33 to the printer used. (Marlin 2.0.x upwards).
Cx.xx : Force the iterations to stop when a standard deviation from the zero plane less then x.xx mm is achieved; when C is omitted the iterations go on until the best possible standard deviation is reached.
E : Engage the probe for each point.
Fn : Force to run at least n iterations (n=1-30) and take the best result.
Pn : Number of probe points: n*n (n=0-10), when P is omitted the default set in Configuration.h is used.
T : Do not calibrate tower angle corrections (if used with P>=3); do not use the probe points near the towers, instead use the probe points opposite to the towers (if used with P=2).
Vn : Verbose level (n = 0-2): 0 = dry run without calibration; 1 = settings; 2 = settings and probe results.

Examples
G33 : calibrates with the default settings.
G33 P6 V0 : probes 36 points in dry run mode.
G33 P4 T : probes 16 points and calibrates delta height, end stops and delta radius, leaves out the tower angle corrections unaltered.
G33 P2 : probes center and tower positions and calibrates delta height, end stops and delta radius.
G33 P1 : probes the center and sets the delta height only.

For more examples refer this link. It's the documentation page kept up to date by Luc Van Daele himself.

G33 and Z-offset

Author: Maxim Riabichev

Because of the nature of the probing which auto calibration relies on, you will have to use a Z-offset of some 0.xx mm. The auto calibration routine will effectively make your Z-height slightly larger than it really is, and this is what you compensate for with the Z-offset.

How to find the proper Z-offset for your printer?

  1. Run G33 with or without a Z-offset. Try to get as low standard deviation as possible.
  2. Note the Z-height value (some value around 300 mm).
  3. Send the command M851 Z0.0 (sets Z-offset to 0.0).
  4. Home your printer (G28) if this hasn't been done already. Otherwise the next commands won't work.
  5. Send the command G90 (absolute positioning), followed by G1 Z1 (move effector to 1 mm above bed).
  6. Do the paper test: Bring down the nozzle to a paper width distance from your bed, slowly and carefully (via Repetier for example).
  7. On the LCD display find the current position (the Z-value) of your effector. This is your Z-offset.
  8. Send M851 Z0.xx to set your Z-offset.
  9. M500 to save.
  10. Voluntary: Enter the Z-offset value into firmware. Find #define Z_PROBE_OFFSET_FROM_EXTRUDER and replace the value with yours.

How do I set the Z-offset?

There are multiple ways of doing this.

  1. In Marlin configuration.h there is this line: #define Z_PROBE_OFFSET_FROM_EXTRUDER X.X
  2. Via command M851 ZX.X, followed by G33 P0. For example: M851 Z0.73 & G33 P0
  3. Via the LCD menu. Control -> Motion -> Z-offset. Followed by G33 P0.
  4. Via your slicer. For example in Simplify3D, find G-code section, find Global G-code Offsets and modify the Z-axis offset.

A couple of remarks

  1. It is absolutely fine to run G33 with any Z-offset. The calibration does not take the Z-offset into account.
  2. Don't forget the M502 & M500 commands if you re-flash the firmware, or your Z-offset won't change.
  3. If you adjust the Z-offset via the slicer, your firmware can't have a z-offset configured as well (obvious reasons).

G33 and how to interpret the numbers?

Author: Maxim Riabichev

Example printout:

Iteration : 01 std dev:0.020
.Height:307.90 Ex:+0.00 Ey:-0.01 Ez:-0.02 Radius:99.31
.Tower angle : YZ:+1.04 ZX:-0.62 [XY:-0.42]

std dev:0.020 = A measure of the calibration of your printer.

Aim for values of at least 0.05 and below. The lower, the better.
A comment by the creator of G33, Luc Van Daele:

On my printer I sometimes go down to 0.03 and sometimes it got stuck on 0.05, seems to depend on the weather, if it's a full moon or not and the alignment of the planets...
Going down to 0.02-0.03 sometimes but not all the time with 7 point calibration or more indicates a solid enough hardware build and probe it can be calibrated with precision. But a StdDev of <0.05 seems to be good enough to print a first layer of 0.25-0.35 correctly.

Height: 307.90 = Max Z-height after calibration.

When std dev is at 0.05 or below, put this value into Marlin configuration.h file.

Ex:+0.00 Ey:-0.01 Ez:-0.02 = End-stop relationship after calibration.

Personally, I have removed the screws from my end-stops.
When your std dev is <0.06, you can enter the end-stop values into your firmware like so:
#define DELTA_ENDSTOP_ADJ { -0.00, -0.01, -0.02 } (Values here based on values from the example print out above.)

Radius: 99.31 = Delta Radius after calibration.

When std dev is at 0.05 or below, put this value into Marlin configuration.h file.

Tower angle : YZ:+1.04 ZX:-0.62 [XY:-0.42] = The angle between respective tower over or under 120 degrees.

When std dev is at 0.05 or below, put these values into Marlin configuration.h file.

Is something not working?

Check the Troubleshooting section of this wiki.