Calibration - vvuk/eddy-ng GitHub Wiki

Initial verification

After flashing and configuring everything, make sure that we can communicate with the sensor. Run:

PROBE_EDDY_NG_STATUS

If you see something like:

Last coil value: 3189314.38 (-infmm) raw: 0x4409e8b
  (Not calibrated) status: 0x48 UNREADCONV1 DRDY

or status: 0x0, everything is fine. If you see 0xffffffff or similar, there is a communication issue with the sensor. Look at your klippy logs for clues and check your wiring and configuration.

Automatic Calibration

The sensor must be calibrated before it can be used for homing or tapping.

  1. Start by homing XY:
G28 X Y

(make sure you have a space between X and Y)

  1. Heat your bed to 50-60C. This helps with setup finding values that will work across temperatures; in some situations, setup can find a configuration that works while cold, but not when warmed up.

  2. Move your toolhead to the center of your bed. Start the setup process with:

PROBE_EDDY_NG_SETUP
  1. Perform the manual Z setting. You don't have to be super precise with the paper test, just "good enough" is fine.

  2. Wait for SETUP to try to find working parameters.

If everything succeeds, jump down to "Post Calibration" below. Otherwise, you may need to do manual calibration. You may also need to do manual calibration if you need to choose specific drive currents if the ones chosen by setup are not appropriate.

Manual Calibration

If automatic calibration fails, or you want to calibrate with different parameters than what is automatically selected, you can do manual calibration.

Start by homing XY:

G28 X Y

(make sure you have a space between X and Y)

Move your toolhead to the center or to some convenient paper-calibration position. Start calibration with:

PROBE_EDDY_NG_CALIBRATE

Do this with the bed warm, 50-60C should be sufficient. It can also be done cold, but there are scenarios where the sensor will be unable to detect the bed at warmer temperatures and this will help sort those out before you get to a print. You don't have to be super precise with the paper test -- it doesn't have to be the perfect friction feel of the paper. Just "good enough" is fine.

The calibration process writes out /tmp/eddy-calibration.csv -- this file is useful for debugging. If you installed Plotly as recommended above, you will also have /tmp/eddy-calibration.html that you can open with a web browser for an interactive graph.

Calibration will print out some useful values:

Calibration for drive current 26: height: 0.005 to 4.995, freq spread 2.12% (max freq: 3075681.0), RMSE F->H: 0.0003, H->F: 2.98

This is a good result. On a BTT Eddy, you'll probably see height: 0.040 to 4.995 (or some other values that don't quite go down to 0.0). That's fine.

Calibration failed? Jump down to troubleshooting.

Post Calibration

If everything completes successfully, don't save yet! First, test things out:

PROBE_EDDY_NG_PROBE_STATIC      (PEPS for short)

You should see a reasonable height come back. Try homing below first before saving.

Homing

⚠️ You must have safe_z_home or a homing_override set up to move your toolhead to be over the bed before doing a Z home. The sensor needs metal underneath it, and if you try to home at 0,0 you'll have a bad time depending on the location of your sensor.*

Now, you can try homing Z.

***⚠️ Watch your printer the first time and be ready to hit the e-stop or pull the power in case something goes wrong! If homing fails, your printer will keep trying to push your toolhead through your build plate. ***:

G28 Z

If everything's good, move the toolhead down to 2mm. Run PEPS again: the probed height you get back should be close to 2.0, +/- 0.025mm or so. It should be most accurate in the 1mm-3mm range; try a few different positions. If it's not or somehow seems wildly off, try recalibrating.

If you get errors, e.g. Error during homing z: Sensor error ..., jump down to Troubleshooting.

Now, run SAVE_CONFIG.

Safety/functionality checks

You should now verify a few things:

  1. PROBE_EDDY_NG_PROBE_STATIC should give pretty accurate values when you move your toolhead to the 1-3mm range, and mostly accurate up to 5mm.

  2. PROBE_EDDY_NG_PROBE_ACCURACY should work fine, and should report back a fairly accurate probe.

  3. Make sure you have QUAD_GANTRY_LEVEL set up according to the instructions in this document to avoid potential nozzle crashes, then check that QUAD_GANTRY_LEVEL succeeds.

  4. BED_MESH_CALIBRATE METHOD=rapid_scan should succeed.