Duet 3 Mini 5+ Dual Z homing not working
-
I am changing one of my printers from a DuetWifi (yes, an original) to a Duet 3 Mini 5+. I have dual Z motors with each having its own end stop. Before, I had to assign a U axis to get the motors to home. The RRF3 doesn't like that. I read the article on Dual Z Leveling so I set up the 2 Z axis on 2 and 3 and the end stops for them on io_3 and io_4. Both on the "out" pin and GND pin. I had them on the "in" pin first but that made the machine think they were homed before trying. When I tell Z to home, they both lift up 5mm like they are supposed to but only the left motor goes down to try to find its endstop. The right one think it is already homed. I have tested both switches and they are working properly, reading normally closed. I have tried assigning the right one to io_2 as well with the same results. I can set a Z position manually with G92 and move the bed up and down so the motors are both working correctly. What am I overlooking?
Oh,, and I'm also getting "Error: bad drive number" noted in console. Related?
Here is my config.g file. Ignore all the commented out stuff. I do that as I connect more things. I test them as I connect them.
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Thu Jul 13 2023 11:14:15 GMT-0700 (Mountain Standard Time); General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"DarthVader" ; set printer name; Wait a moment for the CAN expansion boards to start
G4 S2; Network
M552 S1 ; enable network
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 Y
M569 P0.2 S0 ; physical drive 0.2 goes forwards Left Z
M569 P0.3 S0 ; physical drive 0.3 goes forwards Right Z
;M569 P121.0 S1 ; physical drive 121.0 goes forwards Extruder; Dual Z Homing/Levelling
M584 X0.0 Y0.1 Z0.2:0.3 ;E121.0 ; set drive mapping - Dual Z Homing
M671 X-60:460 Y200:200 S10 ; leadscrews offset for leveling;M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X80.23 Y80 Z398.6975 ;U398.6975 ; set axis steps/mm
M566 X900.00 Y900.00 Z60.00 ;E120.00 ; set maximum instantaneous speed changes (mm/min)
;M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M203 X18000 Y18000 Z2400 ;E3600 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 ;E250.00 ; set accelerations (mm/s^2)
M906 X1600 Y1600 Z1275 I30 ; set motor currents (mA) and motor idle factor in per cent
;M906 X1600 Y1600 Z1275 U1275 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z-0.5 S1 ; set axis minima
M208 X390 Y390 Z412.7 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 io0.in
;M574 Y2 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io2.in
M574 Z2 S1 P"io3.out+io2.out" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin io3.in; Z-Probe
;M950 S0 C"121.io0.out" ; create servo pin 0 for BLTouch
;M558 P9 C"121.io0.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
;G31 P500 X-15 Y-30 Z0.6 ; set Z probe trigger value, offset and trigger height
;M557 X20:340 Y40:350 S60 ; define mesh grid; Heaters
;M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M308 S0 P"temp0" Y"thermistor" M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 ; 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"121.temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin 121.temp0
;M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.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; Fans
;M950 F0 C"121.out1" Q500 ; create fan 0 on pin 121.out1 and set its frequency
;M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
;M950 F1 C"121.out2" Q500 ; create fan 1 on pin 121.out2 and set its frequency
;M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 D0 H1 F0 ; 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; Custom settings are not defined
-
@SpeedyDad UPDATE: I mucked around in my homez.g file and changed it a bit. I now have it trying to home both Z motors. They go "down" and the left motor stops when the left endstop is triggered but the right motor keeps going until it reaches its target location. The right endstop appears to be doing nothing.
Another data point. If I do a M119 with just the left or right endstop triggered, it says "not stopped". If I run M119 with both triggered, it says at max stop as it should.
Here is my homez.g file
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool on Thu Apr 13 2017 15:10:04 GMT-0700 (MST)
; Lift Z relatively to current position
G91
G1 Z5 F6000 H2; Dual Z Homing
M584 Z0.2:0.3
G1 H1 Z450; Back to absolute positioning
G90; Tell the firmware where we are
G92 Z409.45G0 Z395
-
@SpeedyDad Success!!! The key to getting the second endstop working was that pin io4.out does not work for an endstop. There is an * that says *o4.out shared with pson. I guess that disables it? Anyways, I put my Y endstop on 4 and my 2nd Z endstop on 2. Works fine now.
-
Both on the "out" pin and GND pin. I had them on the "in" pin first but that made the machine think they were homed before trying.
You can use the ‘out’ pin as an input, but be aware that they are only 3.3V tolerant, ie if you short the endstop to higher voltage (entirely possible), you’ll destroy the main processor on the board! Better to use the ‘in’ pins, which are 30V tolerant. If they were marked as already homed, add a '
!
to the pin name to invert the logic. Though this means your endstops are NO, not NC.Oh,, and I'm also getting "Error: bad drive number" noted in console. Related?
Probably because you have commented out the extruder drive in M584, but it still has a drive in the tool definition, M563.
Ian
-
@droftarts said in Duet 3 Mini 5+ Dual Z homing not working:
Both on the "out" pin and GND pin. I had them on the "in" pin first but that made the machine think they were homed before trying.
You can use the ‘out’ pin as an input, but be aware that they are only 3.3V tolerant, ie if you short the endstop to higher voltage (entirely possible), you’ll destroy the main processor on the board! Better to use the ‘in’ pins, which are 30V tolerant. If they were marked as already homed, add a '
!
to the pin name to invert the logic. Though this means your endstops are NO, not NC.Oh,, and I'm also getting "Error: bad drive number" noted in console. Related?
Probably because you have commented out the extruder drive in M584, but it still has a drive in the tool definition, M563.
Ian
Ah. Thanks for all that. I'll switch the pins and comment out the extruder.