Advanced - vvuk/eddy-ng GitHub Wiki

Moving from other probes

There's no specific information here, unfortunately! You'll need a probe_eddy_ng section that specifies the mcu your sensor is on, and your i2c information (i2c_mcu/_bus/_address). You may also need to update frequencies and other configuration values in ldc1612_ng.py.

Understanding Drive Current

The LDC1612's (the sensor chip) "drive current" setting controls the amount of current supplied to the LDC sensor's inductor. This directly affects the sensor's oscillation amplitude and sensitivity. A higher drive current leads to stronger oscillations, and may be necessary to overcome oscillation damping caused by stronger Eddy currents when the sensor is close to the target.

The design of the sensor coil heavy influences both the drive current necessary and the sensor resolution. The BTT Eddy in particular may need lots of adjustment for a working configuration, while other probes should work fine after SETUP. The BTT Eddy is small, which is a plus, but it has a coil design that causes problems under higher temperatures or close to metal surfaces. This can be counteracted by tweaking the "drive current" applied to the coil. Automatic calibration will often find the necessary values, but if it doesn't, you can manually tweak them.

At some distances both too close and too far from the target, the LDC chip will see either too high amplitudes or too low amplitudes for detection. These will result in no sensor data being provided, and the sensor won't be usable in that range. The offset of the sensor coil from the toolhead also influences this --- ultimately it's the distance between the sensor coil and the conductor that matters, but we care about the final distance between the toolhead and the bed.

For homing, the sensor needs to provide data from ~5mm down to ~1mm of toolhead-to-bed distance. Because the Z axis isn't homed at this point, for homing to succeed, the sensor needs to move first through the detected height given by adding home_trigger_height (default 2.0) and home_trigger_safe_start_offset (default 1.0). Calibration needs to succed at 1.0mm above this range. So, with default settings, calibration must succeed in the 4mm down to 1mm range.

For tap, the sensor needs to provide data from ~3mm down to ~-0.250mm (i.e. pressing into the bed). The tap start height is configurable via tap_start_z, or via the START_Z parameter to the tap command. For example, if your sensor can only reliably provide data from 2.9mm down to -0.250mm, you can set tap_start_z to 2.9.

Sometimes, these ranges can be handled better with different drive current settings. The configuration reg_drive_current is the drive current used for homing. tap_drive_current is used for tap, and defaults to reg_drive_current if not set.

Running calibration will default to the reg_drive_current value. But if tap_drive_current is different, you need to calibrate that value as well by running PROBE_EDDY_NG_CALIBRATE DRIVE_CURRENT=[value].

Figuring out appropriate drive current settings

Always start with automatic calibration via PROBE_EDDY_NG_SETUP. You should hopefully be able to set least set up homing easily enough. Then, if you are having trouble setting up an appropriate configuration for tap, especially under print temperatures, you can use PROBE_EDDY_NG_TEST_DRIVE_CURRENT to see what the valid height range is for the sensor at that drive current setting. This command assumes that the printer is homed, and performs a check without requiring a manual paper test.

PROBE_EDDY_NG_TEST_DRIVE_CURRENT DRIVE_CURRENT=x

Where x is the drive current value you want to test. Start by looking at your homing value +1 or +2.

At the end, it will print the minimum and maximum Z value where samples were received. This may be a smaller range than Z_MAX..Z_TARGET -- with your sensor mounted at the position it's in, that's the (toolhead Z) range at which samples can be detected.

You can try with a higher drive current, for example PROBE_EDDY_NG_TEST_DRIVE_CURRENT DRIVE_CURRENT=16 if your default setting is 15. You can also try with a lower value. It's not recommended to increase the drive current by more than a few steps. (The values range from 0..31, and the actual current is given in the LDC1612 datasheet.)

If you are unable to find a good drive current for both homing and tap operations, your remaining option is to move the sensor higher or lower relative to the nozzle.

You can also experiment with moving the toolhead to a Z position where you have problems, and then using the low-level PROBE_EDDY_NG_STATUS command to look at the low-level status of the sensor. You may need to run this a few times to capture an up-to-date error. You can also change the current drive current via LDC_NG_SET_DRIVE_CURRENT CHIP=[your chip] VAL=xx.