Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] Support for IDM Scanner #136

Open
Travis90x opened this issue Feb 25, 2024 · 7 comments
Open

[FR] Support for IDM Scanner #136

Travis90x opened this issue Feb 25, 2024 · 7 comments

Comments

@Travis90x
Copy link

Travis90x commented Feb 25, 2024

After Homing and Z_Tilt, I do CALIBRATE_Z and got
No trigger on probe after full movement when the
The toolhead stops at Z=0.5

I use 2 endstop Z (optical) for 2 independent Z axis
and I would use IDM Scanner to autocalibrate Z_Offset.
It is like Beacon sensor, so I no need to Lift head.

Maybe IDM scanner has not value as Probe Triggered or Open,
but it works if used as an endstop Z (with probe:z_virtual_endstop)
IDM want no [probe] section declared.

[z_calibration]
nozzle_xy_position: 155, 155
switch_xy_offsets: 0, 25
bed_xy_position: 130,130
switch_offset: 2
lift_speed: 5
samples: 3
samples_tolerance: 0.1
samples_tolerance_retries: 3
samples_result: average
safe_z_height: 10
position_min: 0.5
speed: 100
probing_speed: 20
probing_second_speed: 5
probing_retract_dist: 1
probing_first_fast: false

[idm]
serial: /dev/serial/by-id/usb-IDM_614e_2C0013001743565537353020-if00
speed: 5
lift_speed: 5
backlash_comp: 0.5
x_offset: 0
y_offset: 25
trigger_distance: 2
trigger_dive_threshold: 1.5
trigger_hysteresis: 0.006
cal_nozzle_z: 0.1
cal_floor: 0.1
cal_ceil: 5
cal_speed: 1
default_model_name: default
mesh_main_direction: x
mesh_cluster_size: 3
mesh_runs: 2

@TitusLabs
Copy link
Member

The auto calibration would not work with the z-endstop at the axis - or how do you use the endstops? And when you use a Beacon like sensor, why do you want to use it at all?

@Travis90x
Copy link
Author

The auto calibration would not work with the z-endstop at the axis - or how do you use the endstops? And when you use a Beacon like sensor, why do you want to use it at all?

Autocalibration Z is used with non-precise Endstop Z (like Vivedino Troodon that use a microswitch outside the bed, where the nozzle taps),
then you use the Probe (inductive, bltouch, or what you prefer) to fine calibrate the z_offset using autocalibration_Z.

In my case, using 2Z optical endstop, I do a precise Homing Z and Z_tilt, but if I change the bed plate in PEI, can't do an automatic z_offset with my probe only because it is a IDM Scanner or BTT Eddy (with BL Touch it works).

So for now, if I want a correct z_offset, I must use IDM as virtual Z endstop too and perform a slow and risky ztilt due the tilted bed (unless use a high horizontal_move value)

@TitusLabs
Copy link
Member

Hmm, I don't see what I could do about it. None of this has anything to do with my auto z calibration 🤔

@Travis90x
Copy link
Author

Screenshot_20240617_215305_ReVanced Extended

https://youtu.be/oQYHFecsTto
See the video of the wiki, autocalibration_z perform the homing Z with the nozzle on a fixed switch outside the bed.

Then perform 2 measurements with the "probe" (in that case it use euclid probe, a simple omron microswitch, like the klicky).

I can't do these 2 measurements with IDM scanner because it is not defined as a Probe for klipper (it uses 3rd part idm.py)

With those measurements we can autocalibrate the z_offset (the real/new distance of the nozzle from the bed).

(In my case I need only the measurements of the z_endstop and the IDM, so calculate the differece and set it as z_offset.
Otherwise I have to find a way to perform G28 Z with the endstop PIN, and then a G28 Z with the virtual:endstop )

https://gitee.com/NBTP/IDM/tree/master

@TitusLabs
Copy link
Member

Hm, ok. That would be enough in theory. However, I come from the Voron world with a closed chamber with temperatures of 60 degrees and more (probes are even hotter). There is no probe that can cope with this with sufficient tolerance - you can only achieve this with a simple switch. Electrical properties change too much. Beacon can't do that either. Even worse, you can't even measure the PEI surface with Beacon. This is not automatic calibration to my understanding.

@Travis90x
Copy link
Author

Sure, my case is very particular. Probably, to give you an example closer to your case, what I need would be similar to someone who has a Voron and uses the new BTT Eddy in the "Coil version" (which cannot be used as a "virtual:endstop Z", instead of USB version).
Therefore, I imagine that the user who wants to automatically calibrate the z_offset must perform a Z homing with a switch (not precise) and then find a way to do a probe on the bed with the Eddy (which is very similar to the beacon/IDM) to calibrato the z offset.

Let's leave aside the fact that sensors like the beacon/IDM are not precise with the PEI coating. I know how you feel about this and you are not wrong.

However, just to clarify, I have tried the IDM and the Beacon by doing a mesh with the bed at 120°C in a closed chamber preheated for 1 hour and I didn't have any problems (I have the VzPrinthead in aluminum and only few parts in Pa12-CF printed in SLS).
The only advice the IDM manufacturer gives is to turn off the AC bed if >500w (due to AC interference) during the mesh (few seconds).

@TitusLabs
Copy link
Member

I do believe you that the sample is certainly very accurate when it comes to the relation of many measuring points taken in a short period of time. The problem is that it will not be good at giving a repeatable accurate absolute value. So, measure a distance in the cold state and then in the hot state. You'll see a not insignificant deviation. That's why it's ok if it can't be used as an end stop.

It may be possible, but you need to change a lot and I don't think you'll get what you're hoping for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants