Dual Z not homing on Duet3
-
Hi guys,
I feel like I've run into a brick wall. I have a dual Z setup (each running on an independent driver).
When I home the Z axis only one of the Zs moves. this is preventing me from assembling the rest of my machine. Any ideas on what's going on? My gCode is below:; Configuration file for Duet 3 MB 6HC (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Fri Jun 09 2023 13:48:15 GMT-0400 (Eastern Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"prototype1" ; set printer name ; Wait a moment for the CAN expansion boards to start G4 S2 ; Network M551 P"prototype" ; set password M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards (X) M569 P0.1 S1 ; physical drive 0.1 goes forwards (Y1) M569 P0.2 S1 ; physical drive 0.2 goes forwards (Z1) M569 P0.3 S1 ; physical drive 0.3 goes forwards (E0 - Drip) M569 P0.4 S0 ; physical drive 0.4 goes backward (Y2) M569 P0.5 S0 ; physical drive 0.5 goes backward (Z2) M569 P1.0 S1 ; physical drive 1.0 goes forwards (E1) M569 P1.1 S1 ; physical drive 1.1 goes forwards (E2) M569 P1.2 S1 ; physical drive 1.2 goes forwards (E3) M584 X0.0 Y0.1:0.4 Z0.2:0.5 E0.3:1.0:1.1:1.2 ; set drive mapping M350 X16 Y16 Z16 E16:16:16:16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z80.00 E420.00:420.00:420.00:420.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00:120.00:120.00:120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00:1200.00:1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00:250.00:250.00:250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800:800:800:800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-67 Y0 Z-12 S1 ; set axis minima M208 X325 Y322 Z357 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io1.in M574 Y1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io2.in M574 Z1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io3.in ; Z-Probe M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 X-52:215 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"1.temp0" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 1 as thermistor on pin 1.temp0 M950 H1 C"1.out0" T1 ; create nozzle heater output on 1.out0 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C M308 S2 P"1.temp1" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin 1.temp1 M950 H2 C"1.out1" T2 ; create nozzle heater output on 1.out1 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S280 ; set temperature limit for heater 2 to 280C M308 S3 P"1.temp2" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 3 as thermistor on pin 1.temp2 M950 H3 C"1.out2" T3 ; create nozzle heater output on 1.out2 and map it to sensor 3 M307 H3 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H3 S280 ; set temperature limit for heater 3 to 280C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 S1 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out7" Q500 ; create fan 1 on pin out7 and set its frequency M106 P1 S.93 H-1 ; set fan 1 value. Thermostatic control is turned off M950 F2 C"out8" Q500 ; create fan 2 on pin out8 and set its frequency M106 P2 S.93 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"out9" Q500 ; create fan 3 on pin out9 and set its frequency M106 P3 S.93 H-1 ; set fan 3 value. Thermostatic control is turned off M950 F4 C"1.out6" Q500 ; create fan 4 on pin 1.out6 and set its frequency M106 P4 S1 H-1 ; set fan 4 value. Thermostatic control is turned off M950 F5 C"1.out3" Q500 ; create fan 5 on pin 1.out3 and set its frequency M106 P5 S.93 H-1 ; set fan 5 value. Thermostatic control is turned off M950 F6 C"1.out4" Q500 ; create fan 6 on pin 1.out4 and set its frequency M106 P6 S.93 H-1 ; set fan 6 value. Thermostatic control is turned off M950 F7 C"1.out5" Q500 ; create fan 7 on pin 1.out5 and set its frequency M106 P7 S.93 H-1 ; set fan 7 value. Thermostatic control is turned off ; Tools M563 P1 S"Extruder 1" D1 H1 F5 ; define tool 1 G10 P1 X-62.5 Y313 Z345 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P2 S"Extruder 2" D2 H2 F6 ; define tool 2 G10 P2 X27.5 Y313 Z345 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C M563 P3 S"Extruder 3" D3 H3 F8:7 ; define tool 3 G10 P3 X117.5 Y313 Z345 ; set tool 3 axis offsets G10 P3 R0 S0 ; set initial tool 3 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
-
My Z is belt driven.
Also here is my homeZ code; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Fri Jun 09 2023 13:48:15 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 Z-374 F1800 ; move Z down until the endstop is triggered G92 Z-12 ; set Z position to axis minimum (you may want to adjust this) ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
-
I have also confirmed that there is no issue with wiring, the motors, or with the board itself. (I swapped the motors around to different drivers)
-
@MaqAttaq I can't see anything wrong with your config. Can you post an output of
M98 P"config.g"
-
Have you tested the drivers individually with known good motors?
-
@Phaedrux Thanks for the reply. These are all E3D motors
-
M98 P"config.g" HTTP is enabled on port 80 FTP is disabled TELNET is disabled Error: Board 1 received unknown msg type 6053 Error: Board 1 received unknown msg type 6053 Error: Board 1 received unknown msg type 6053 Warning: Macro file config-override.g not found
-
@MaqAttaq said in Dual Z not homing on Duet3:
@Phaedrux Thanks for the reply. These are all E3D motors
Yes but have you changed the mappings and tested the driver with a known working motor?
For instance, for the driver that isn't moving on Z, remap it to X, then try to move it.
Do you get any errors in the gcode console when trying to move it?
Do you see any damage on the board near that driver?
-
@Phaedrux Oh. Yes Tried that. If I move the Z2 motor to any other position the motor moves.
If I remap the config file to change the Z2 to driver to X, the motor moves
-
Solved:
I figured out what it was and it was very simple:
Basically, I didn't realize that for dual Y you can declare one end stop but for Z you have to declare both end stopsHere's what I had:
M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io2.in
Here's what I should have had:
; Endstops M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z1 S1 P"io2.in+io5.in" ; Z axis with two motors, individual min endstops for low end, active high via pins io2.in and io5.in
Here's what I ended up with:
; Endstops M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in M574 Y1 S1 P"io1.in+io4.in" ; Y axis with two motors, individual min endstops for low end, active high via pins io1.in and io4.in M574 Z1 S1 P"io2.in+io5.in" ; Z axis with two motors, individual min endstops for low end, active high via pins io2.in and io5.in
All three setups are valid for X and Y. Only the last two are valid for X, Y, and Z
-
-
-
@MaqAttaq said in Dual Z not homing on Duet3:
Solved:
I figured out what it was and it was very simple:
Basically, I didn't realize that for dual Y you can declare one end stop but for Z you have to declare both end stopsHere's what I had:
M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io2.in
Here's what I should have had:
; Endstops M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z1 S1 P"io2.in+io5.in" ; Z axis with two motors, individual min endstops for low end, active high via pins io2.in and io5.in
Here's what I ended up with:
; Endstops M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in M574 Y1 S1 P"io1.in+io4.in" ; Y axis with two motors, individual min endstops for low end, active high via pins io1.in and io4.in M574 Z1 S1 P"io2.in+io5.in" ; Z axis with two motors, individual min endstops for low end, active high via pins io2.in and io5.in
All three setups are valid for X and Y. Only the last two are valid for X, Y, and Z
All three setups are valid for X, Y and Z too; but the endstop switches that were not mentioned in M574 will not be monitored.