Probing Z changes X-Values

Basic Information:

Printer Model: fully customized IDEX Printer
MCU / Printerboard: BTT Octopus, EBB36
klippy (13).log (6.6 MB)

Describe your issue:

I am experiencing an issue with my printer’s homing process. While homing X and Y, everything works as expected. However, when homing Z and the probe triggers, the Z axis is correctly adjusted but the X value changes by 300 millimeters (2X for the 2 times probing). This leads to a crash when moving X. I am unsure of the root cause of this problem.
The probe I am using is a Klicky Probe, but I have deactivated all Klippy macros and attached it manually as a normal probe. Despite this, I am still experiencing the same problem.

Therefore, I believe the issue lies within my configuration. I hope someone can help me identify my mistake.

Could you please post a fresh klippy.log after the error occurred? Your current klippy.log is so big :wink:

Oh sorry shure here:
klippy (14).log (61.5 KB)

Since I removed klicky, it no longer crashes (because there’s no follow-up movement), but I’m still at X=750 (X should be 150).

1 Like

To me it looks like your printer somehow adds up the 150 mm from the safe_z_home though Y is not affected.
However I think your macros are wrong and not enough.
For example if using if-else-statements you have to indent the surrounded code to make it work.

I miss the changing extruder macros for T0 and T1 where you switch between the extruders.
And maybe what comes into play here as well the ACTIVATE_COPY_MODE macro misses the G90.

Maybe you can go from safe_z_home to homing_override like this:

[homing_override]
axes: xyz
gcode:
  {% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}

  {% if home_all or 'X' in params %}
    M117 Homing X...
    G28 X
    M117
  {% endif %}
  
  {% if home_all or 'Y' in params %}
    M117 Homing Y...
    G28 Y
    M117
  {% endif %}
  
  {% if home_all or 'Z' in params %}
    M117 Homing Z...
    G90
    G0 X150 Y150 F3000 #move print head to safe position in the center of the bed
    G28 Z
    G0 Z10 F600
    M117
  {% endif %}

Thanks for the quick feedback :slight_smile:

  1. I used your macro, still the same behaviour. Still adding 300 to X by triggering the probe.

  2. All current macros with “if-else” are from mainsail.cfg (read only), I didn’t touch them. But in the browser they all have indentations.

  3. I plan to test all macros and develop them further (just getting started), but without being able to home that’s not my highest priority right now…

I have tried a few things but cannot get any further:

  1. completely reinstall on a new sd card
  2. connecting the limit switch directly to the octopus board, not the can board

Still the same problem…

If anyone has any ideas about what I could try, I would really appreciate it :slight_smile:

You could try a simple config without any macro and maybe with no second extruder defined.
Just to track it down to the very basic stuff.

Connecting the probe directly to the octopus works fine. I have connected the probe to various pins on the EBB36 CAN board. Some pins do not detect anything and some change state every second or so. Then I tried using the x limit switch pin. Triggers, but adds 300mm again.

Solution for now: Connect the probe directly to the mainboard.

Need to lock into the EBB36 to find the root of the problem, but at least I have a working solution for now.

Edit: For the homing and the first point for the z-tilt everything works. When touching the second point it has the same problem again. I’m so confused as to how this is even possible…
Edit 2: Heres a new log with just the homing and the Z-Tilt till emergency stop:
klippy (18).log (200.3 KB) - Line 1830 “probe at 450.000,150.000” should be 150

Through testing, I discovered that the X position of the probe point is multiplied by 3.
X150 → X450
X140 → X420
I’m currently looking through the underlying Python skripts, but I can’t find anything useful.
Is there a way to get more information than through the standard klippy.log?
image

klippy (2).log (743.8 KB)

Edit:
This is only for Z_Tilt. “PROBE_ACCURACY” adds 300 despite being at X=90.

Well, this error is strange indeed.
The only reason I can think of, is that something went wrong during your modifications:

Git version: 'v0.12.0-65-g96ab9069-dirty'
Untracked files: klippy/extras/z_calibration.py
Modified files: klippy/kinematics/hybrid_corexy.py
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper
CPU: 4 core ?

Finaly found the Problem. Was related with my fix for the wrong hyrbid-corexy kinematic. I will update the solution so nobody will have the same Problem. The kinematic also had an update during this period.

https://klipper.discourse.group/t/problem-hybrid-corexy-kinematic/13184

The Problem was that the X-Position in the kinematics wasen’t calculated correctly. Therfore it changed the value when it reloaded the value. For some reason it does this on the can board for the first try and for the mainboard on the second.
The Command to identify this problem is “GET_POSITION”.

Thanks everybody who helped me on this journey :slight_smile:

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.