For both X axes and the Y axis I’m using endstops, and they work fine.
The difficult part si that I was planning on using one BLtouch per toolhead to home both Z axes.
As the bed is on springs and with time it will move, the dual probe system would allow to home each Z axis on the center of the bed and be able to compensate any bed movement.
However, the probe and BLtouch features in klipper do not seem to allow for a secondary probe to be used only as an endstop (I would rely on the main BLtouch for all bed mesh operations).
I was wondering if someone knows about something similar having been done somewhere or for some hints on how to develop quickly a “secondary_probe” module.
The probe.py and bltouch.py codes seem quite extensive and poorly documented so trying to reverse engineer them feels like a daunting task I would like to avoid.
I don’t know if this will help, but as nobody else has come up with anything, it may be worth your while exploring a slightly different method:-
The basic idea is to use the same input to the mcu for both BLtouch probes with their outputs “Wired OR” connected to the input. I don’t know if this would work with BTtouch, or even if it would help on the firmware side.
I hadn’t thought about this kind of solution, it’s a clever idea! I’ll have to investigate the inner workings of the BLtouch in klipper as it would require to switch the controlled BLtouch depending on the toolhead I’m probing. Not sure of when I’ll have the time to test that, but I’ll keep this topic updated.
Nice work on your printers, the changing toolhead on the Biceps printer is amazing!
Agreed that there is only one sensor input, but by connecting two or more sensors in a wired-or configuration Klipper can see only one sensor. As long as which physical sensor is used is ring fenced then any data generated should be able to be kept seperate for each sensor.
This is working well on my Delta printer, with a similar scheme working on a two headed printer running Repetier firmware. (Next project is to Klipperise this one)
I don’t know if this will work on the O.P.'s printer as it uses two gantries and would need two bed maps to be swapped out every tool change.
The correct term for having multiple open collector/drain outputs on a single (pulled up line) is “Dotted AND”. The line is only high if all the drivers are high - therefore it’s an “AND”, not an “OR” function.
Now, I have never set up an IDEX printer (it’s on my bucket list) and the issue presented here is something I’ve wondered about as it should be reasonable to get your gantry XY axis exactly (within a few microns) parallel to the heated bed but I would imagine there will be some differences (at least on the order of 10s of microns) between the position of the nozzles on the two toolheads. Somebody here who has more experience can probably explain how this is handled in an IDEX printer.
Regardless, from what I can see, Klipper is not designed to handle multiple BL/CR Touch devices in a single printer.
I accept your rebuke about my terminology: I intended simply to say that the logic was wired and without active components, and would signal if sensor A or sensor B was triggered.
I also have to conceed that Klipper does not natively support multiple Z sensors, but that dosn’t mean it can’t be kludged to work until somebody writes code to do it.
Sorry for being pedantic about the dotted And but I’ve seen people get into trouble when they hear/see the wrong terminology and apply it according to what how it is described.