Indipendent z axis + probe levelling
-
@fcwilt Ok i actually found in the gcode dictionary https://duet3d.dozuki.com/Wiki/M574 at the end it says:
" New parameter P gives the pin name(s) for the endstop(s) for the specified axis. If the number of pins matches the number of motors assigned to that axis, motors will be stopped individually when their endstop switches trigger.
To use two Z motors using independent homing switches, declare two Z motors in M584, then declare two pins for Z endstops in a single M574 command. Example
M584 X0 Y1 Z2:3 E4
M574 Z1 S1 P"io2.in+io3.in" ; Z axis with two motors, individual min endstops, active high
The order of endstop switch pin names in M574 must match the order of Z motor driver numbers in M584. When homing Z, RRF3 homes the motors of the axis at the same time, independently to their defined endstops. "the problem is that i connected my motors to a duex5
M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M569 P5 S0 ; duex5 motor z1 goes backwards M569 P6 S0 ; duex5 motor z2 goes backwards M569 P7 S0 ; duex5 motor z3 goes backwards M569 P8 S0 ; duex5 motor z4 goes backwards M584 X0 Y1 Z5:6:7:8 E3 ; configure drives ; Endstops M574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"!ystop+!e0stop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z M574 Z1 S1 P"!exp.e2stop" ; configure endstop for Z axis M574 Z1 S1 P"!exp.e3stop" M574 Z1 S1 P"!exp.e4stop" M574 Z1 S1 P"!exp.e5stop"
it seems to not pair them even if physical drive 5,6,7,8 are actually e2,e3,e4,e5 motors.
Endstops light on when pressed but with m119 they always remain triggered/not triggered based on how i define themthank you
Marco
-
M574 Z1 S1 P"!exp.e2stop+!exp.e3stop+!exp.e4stop+!exp.e5stop"
To my understanding it should look like this
-
i tried like that and nothing changes, i even decommented/ removed all bltouch lines just to try to use the endstops alone but it doesn't work...
This is the code now; Drives M584 X0 Y1 Z5:6:7:8 E3 ; drive mapping M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M569 P5 S0 ; duex5 motor z1 goes backwards M569 P6 S0 ; duex5 motor z2 goes backwards M569 P7 S0 ; duex5 motor z3 goes backwards M569 P8 S0 ; duex5 motor z4 goes backwards ; Endstops M574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"!ystop+!e0stop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S1 P"exp.e2stop+exp.e3stop+exp.e4stop+exp.e5stop" ; configure endstop for Z axis
-
Are the pin names you used for your M574 Z command the pins your Z endstops are connected to?
If the endstops are connected to the duex5 board I believe you need to use the duex prefix, not the exp prefix.
Have you checked the status of each Z endstop in the Object Model viewer to verify the correct states of each endstop when activated/not activated?
Frederick
-
i tried with duex. before as well, i checked on the board and the pins are correct.
I solved this problem, i had the endstop jumper set to 3.3v instead of 5v...
But i have a new one now:
logic is inverted and i can't get it the other wayM574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"!ystop+!e0stop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S1 P"duex.e2stop+duex.e3stop+duex.e4stop+duex.e5stop"
i tried both :
M574 Z1 S0 P"duex.e2stop+duex.e3stop+duex.e4stop+duex.e5stop"
M574 Z1 S1 P"!duex.e2stop+!duex.e3stop+!duex.e4stop+!duex.e5stop"The result with m119 is now no z endstop, i mean it's the exact same code used for x and y endstops and it works there...
I'm not familiar with object model viewer , how can I use it?
Thnank you for your patience -
@marcocha said in Indipendent z axis + probe levelling:
i tried both :
M574 Z1 S0 P"duex.e2stop+duex.e3stop+duex.e4stop+duex.e5stop"
M574 Z1 S1 P"!duex.e2stop+!duex.e3stop+!duex.e4stop+!duex.e5stop"S0 is not a valid value for the S parameter.
The second is correct is inversion is needed.
Frederick
-
Here is the location in the DWC where you can verify if the Object Model viewer is running and, if not, start it running.
-
ok i started it, since i don't know what exactly to look for i found the endstop section that corresponds to m119
It says triggered = true when they were not pressed so the logic is the opposite, the problem is that if i declare them with ! i get an error
Error in file macro line 49 (that one) m574 string too long -
Yes - there was a problem with lines being too long at one time but I thought it was fixed in firmware 3.3.
Could you move one or two of the endstops to the E0 and E1 inputs on the Duet board? That should solve the problem with line length.
Frederick
-
@fcwilt i can, i will move one motor to z on the duet and the relative endstop too, so it should still mantain the order. Hope in a fix soon so i can just use everything on the duet
thank you
Marco
-
Glad to hear it.
Just FYI there is no requirement that you move the stepper motor connection.
Frederick