IDEX : Independent carriage homing

Basic Information:

Printer Model: Custom
MCU / Printerboard: BTT Octopus Max EZ
Host / SBC : Raspberry Pi
klippy.log (78.9 KB)

Describe your issue:

Currently working on a Custom IDEX with extruders on the X axis.
I’m trying to home both carriages sequentially with custom instructions between each homing. As far as I was able to go, calling G28 on the X axis always home complete axis preventing injecting instructions after between both carriages homing.

In my setup, the first carriage must move to a specific location before the second carriage homes, in order to prevent potential crashes, much like what [homing_override] allows at the axis level.

Any of you know how to achieve this?

Hello @BuzzBen and welcome to the forum!

Wait a minute: On an IDEX, the carriages are moving on the same x-axis. One carriage is homing to the left and stays there and the other homes to the right.
I’m just asking myself: Where should the first one go to prevent a crash with the second one?

You can imagine both carriages to share a single trigger located at the middle of the axis (at location X=0). Left carriage has to move to the center of the axis to trigger the sensor, then move to a negative X value before the right carriage moves to the center.

For your klippy.log tells me, you home by sensorless homing.
So, for my understanding, there should be a kind of obstacle that the printhead has to touch.

You have a keen eye! Thanks for looking into it :stuck_out_tongue:

My klippy.log shows the current state of the reference printer (with sensorless homing) used for validation and testing, since the custom printer (requiring individual carriage homing) isn’t mature enough to have generated a log file yet. As you saw, in provided config, the printer acts as a standard IDEX.

I’ve provided the logs as a courtesy (and because I should always set a baseline) but I don’t believe the original question is set-up specific beyond being IDEX.

That said, I understand “Why?” is a legitimate reply since people often ask the wrong “How-to X?”, trying to come up with a potential solution while there may be a better “intended” way of handling things.

Right now, On the reference printer, I’m only trying to, in sequence:

  1. Home [stepper_x] to the left;
  2. Move [extruder] away from the frame;
  3. Home [dual_carriage] to the right;
  4. Move [extruder1] away from the frame.

I was able to achieve:

  1. Home [stepper_x] to the left;
  2. Home [dual_carriage] to the right;
  3. Move [extruder] away from the frame;
  4. Move [extruder1] away from the frame.

Which is fine for a classic IDEX but incompatible with my custom setup.
If independent sub-axis homing isn’t possible, I’ll probably try to implement it in a new branch.