Dual Z Towers BL Touch Configuration
-
Hello, I'm currently building a machine which has 2 independent Z towers (1 for each extruder, similar to Zidex https://www.drdflo.com/pages/Projects/Zidex.html). The 2 towers are synced during operation, but separately operated during z homing.
In homez.g, I have configured the BL touch declaration separately, and only when the BL touch is needed for homing each tower.
The movements are executed per expected, BL touch for Tower 1 and Tower 2 are declared and G30 bed probe accordingly. However, I adjust the Tower 2 Z trigger height of Bltouch, the offset is applied to the first BLtouch of Tower 1 together with Tower 2, which is unexpected.
Therefore, I'm unable to make Tower 1 nozzle and Tower 2 nozzle to lightly touch bed at z=0, when Tower 1 nozzle is perfect, Tower 2 nozzle is too far from bed, when Tower 2 nozzle is perfect, Tower 1 nozzle reaches too low into bed.
I'd like to seek any advice to see why my configurations of homez.g having separate BL touch configurations, the Z trigger height seems to apply to both cases.
I'd be grateful for any help and happy to supplement with more details. Thank you very much in advance.
; homez.g ; called to home the Z axis ; M584 Z0.2 ; Split the 2 Z towers for independent control. this will move tower 1 only T0 P0 ; Select Tool 0 without running tfree tpre tpost G1 X0 Y0 F6000 ; G1 X150 Y150 F6000 ; move T0 into center position M950 S0 C"io7.out" ; create servo pin 0 for BLTouch 0 M558 P9 C"io7.in" H10 F300 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-45 Y-75 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X30:280 Y30:280 S50 ; define mesh grid G30 ; this will home and probe the tower 1 M280 P0 S160 ; retract again if probe retract fails G29 S1 ; load height map M584 Z0.5 ; Split the 2 Z towers for independent control. this will move tower 2 only T1 P0 ; Select Tool 1 without running tfree tpre tpost G1 U150 Y150 F6000 ; move t1 into center position M950 S0 C"io4.out" ; create servo pin 0 for BLTouch 0 M558 P9 C"io4.in" H10 F300 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 U35 Y10 Z2.5 ; set Z probe trigger value, offset and trigger height M557 U50:250 Y50:250 S50 ; define mesh grid G30 ; this will home and probe the tower 2 M280 P0 S160 ; retract again if probe retract fails G29 S1 ; load height map T0 P0 ; Select Tool 0 without running tfree tpre tpost M584 Z0.2:0.5 ;DEFINE IO7 PROBE AS DEFAULT M950 S0 C"io7.out" ; create servo pin 0 for BLTouch 0 M558 P9 C"io7.in" H10 F300 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-45 Y-75 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X30:280 Y30:280 S50 ; define mesh grid
-
@demodemo not how such a situation is handled, I would leave z with 2 motors and try to create 2 additional axes with a single motor, I would do the homing of the 2 axes and then do the homin of z and see if it keeps the offset
-
@demodemo use the M558 K parameter to define the two probes individually, see https://duet3d.dozuki.com/Wiki/M558#Section_M558_in_RepRapFirmware_Num_3. Then probe with G30 K# to define which probe to use for each Z axis. Then you don’t have to keep redefining the probe.
Ian
-
@droftarts thank you for your advice.
I now understand that a K value can be inserted to M558 command to configure separate z probes.
what about M950 where the BLtouch servo pin is declared, how do I change M950 command for each servo to correspond to each k value Bltouch specifically?Thank you very much.
-
@demodemo M950 S0 for first, M950 S1 for second, where S is the servo number. Make separate deploy and retract Gcode files for each probe and servo; use deployprobe0.g and retractprobe0.g for probe 0, deployprobe1.g and retractprobe1.g for probe 1. Deploy and retract macros should reference the respective servo for each probe.
Ian