Dual Z after 1.02 to 3.4.1 Upgrade
-
Trying to comply with setup of Dual Z steppers and endstop after upgrading from 1.02 FW progressively to 3.4.1 FW on a Duet 2 Wifi. I had this working on the old FW by splitting Z into Z and U, but I see that is no longer required in the current FW. (Note X and Y axis run fine, have not tested Z yet due to the errors below)
I have Z steppers on Drives 2 (Z) and 3 (E0), and endstops zstop and e0stop.
I assume I am missing something, any help certainly appreciated!
Running M98 P"coonfig.g" results are:
M98 P"config.g"
HTTP is enabled on port 80
FTP is disabled
TELNET is disabled
Error: Pin 'zstop' is not free
Error: Invalid Z probe indexMy config.g:
; Configuration file for Duet WiFi (firmware version 1.21) UPDATED by WMM for Dual Z Motors and End Stops
; executed by the firmware on start-up
; NEW Indicated for lines edited to support dual Z=Stops
; generated by RepRapFirmware Configuration Tool v2 on Tue Dec 18 2018 16:44:11 GMT-0500 (Eastern Standard Time)
; Upgraded to FW v3.4.1 7/24/2022; General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder movesM669 K1 ; New 3 Select CoreXY mode K1
; Network
M550 P"" ; Set machine name
M551 P"" ; Set password
M552 S1 ; Enable network
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; Drives
M569 P0 S0 ; Drive 0 goes BACKWARDS Y Homes to the FRONT X Homes to the LEFT
M569 P1 S1 ; Drive 1 goes forwards Y Homes to the FRONT X Homes to the LEFT
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S1 ; Drive 3 goes forwards
M569 P4 S1 ; Drive 4 goes forwards
M584 X0 Y1 Z2:3 E4 P3 ; New V3 2 steppers for Z
M350 X16 Y16 Z16 E16 I1 ; NEW V3 Configure microstepping without interpolation Changed E to 16
M92 X80.00 Y80.00 Z400.00 E476.5 ; NEW V3 Set steps per mm With the change in microstepping above, all stepps/mm needed to be cut in half except E for some reason
M566 X100.00 Y100.00 Z12.00 E20.00 ; NEW V3 Set maximum instantaneous speed changes (mm/min) JERK NEW Added U was 900 for X/Y
M203 X3600.00 Y3600.00 Z600.00 E2400.00 ; NEW V3 Set maximum speeds (mm/min) NEW Added U Changed Max Speed for Z/U to 600 was 6000
M201 X800.00 Y800.00 Z20.00 E500.00 ; NEW V3 Set accelerations (mm/s^2) NEW Added U - changed X+Y to 1500 from 3000
M906 X1000.00 Y1000.00 Z1400.00 E800.00 I30 ; NEW V3 Set motor currents (mA) and motor idle factor in per cent NEW Added U
M84 S30 ; Set idle timeout; Axis Limits NEW Added
M208 X1 Y0 Z0 S1 ; Set axis minima NEW added U0 was all 1
M208 X400 Y370 Z380 S0 ; Set axis maxima NEW Revised max from X390 Y390; Endstops
M574 Z1 P"nil" ; In theory frees up zstop from preassigned
M574 X1 S1 P"xstop" ; New for ver 3 Note if using Stallgaurd less info is required All
M574 Y1 S1 P"ystop" ; New for ver 3
M574 Z1 S1 P"zstop+e0stop" ; New for ver 3; Z-Probe
;M558 P5 X0 Y0 Z0 H2 F60 T6000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds, edited P0 to P4 indicating switch
M558 P5 C"zstop+e0stop" H2 F60 T6000 ; New V3
G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
M557 X20:360 Y20:360 S20 ; Define mesh grid; HEATERS
; Bed
M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 R4700 ; New 3 Bed Keenovo
M950 H0 C"bedheat" T0 ; New 3
;M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
M307 H0 A90.0 C700.0 D10.0 S1.00 V0.0 B0 ; Copied from override file
M140 H0 ;
M143 H0 S120 ; Set temperature limit for heater 0 to 120C; Hotend
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 C7.060000e-8 ; New 3
M950 H1 C"e0heat" T1 ; New 3
M307 H1 A232.6 C90.5 D0.9 S0.50 V12.1 B0 ; Copied from override file
M143 H1 S300 ; Set temperature limit for heater 1 to 300C; Before Revo was 280; Fans
M950 F0 C"fan0" Q500 ; New 3
M106 P0 S0 H-1 ; Revised V3 Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off Changed from S0.3
M950 F1 C"fan1" Q500 ; New 3
M106 P1 S1 H-1 ; New 3; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C; PanelDue
M575 P1 B57600 S1 ; New V3 PanelDue specific; Automatic saving after power loss is not enabled
; Custom settings are not configured
; Miscellaneous
T0 ; Select first tool
;M501 ; Load latest PID Tune for H1 -
@wmmc01 said in Dual Z after 1.02 to 3.4.1 Upgrade:
M574 Z1 S1 P"zstop+e0stop" ; New for ver 3
; Z-Probe
;M558 P5 X0 Y0 Z0 H2 F60 T6000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds, edited P0 to P4 indicating switch
M558 P5 C"zstop+e0stop" H2 F60 T6000 ; New V3You can't connect a Z probe and an endstop switch to the same pin. Which of the following do you have:
- A single Z endstop switch
- Two Z endstop switches, one for each motor.
- No Z endstop switches, instead you use the Z probe to home Z.
-
@dc42 Hi DC42!
I have 2 end stop switches, one for each motor. What do I need to change?
Thanks! -
Do you have a Z probe in addition to the two Z endstops?
What pin is it actually using?
Error: Pin 'zstop' is not free
Error: Invalid Z probe indexThe errors are because you are trying to use the same pins for the Z endstops and for the Z probe.
M574 Z1 S1 P"zstop+e0stop" ; New for ver 3
M558 P5 C"zstop+e0stop"How do you actually have things wired?
-
@phaedrux
This is how they are actually wired: I have Z steppers on Drivers 2 (Z) and 3 (E0), and endstops: zstop and e0stop. -
So no probe at all?
If that's the case, you can remove the entire zprobe section
; Z-Probe ;M558 P5 X0 Y0 Z0 H2 F60 T6000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds, edited P0 to P4 indicating switch M558 P5 C"zstop+e0stop" H2 F60 T6000 ; New V3 G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height M557 X20:360 Y20:360 S20 ; Define mesh grid
And for the endstops you just need
; Endstops M574 X1 S1 P"xstop" ; New for ver 3 Note if using Stallgaurd less info is required All M574 Y1 S1 P"ystop" ; New for ver 3 M574 Z1 S1 P"zstop+e0stop" ; New for ver 3
Then in your homing files for Z you just home the Z axis as normal. It will move both motors until their respective endstops are triggered.
Make sure the motor on driver 2 is using the zstop endstop, and driver 3 motor is using e0stop endstop to match the order you have the drivers and endstops listed.
-
@phaedrux Simpler than I thought. And No probe.
And yes driver 2 is zstop, and driver 3 is eostop.
Thanks again!
-
Note that this assumes your endstops are at equal positions. If you need to do an offset for one or the other you'd still need to do a split axis arrangement.
-
@phaedrux Yes they are equal, and homing all axis works fine - Thanks for your help!
-
-