@dc42 Has there been any changes to the handling of relative/absolute movement? I did an update this morning and it broke my homing routine, driving the print head further even after triggering the endstop. Spend two hours trying to find a hardware gremlin - coincidentally there was a loose screw close to my hall sensor XY endstop board, so I had to remove the sensor board and had to disconnect the wiring, so that was my first suspect. Only after realizing that the endstops worked as expected in the object model I started suspecting a firmware issue and now tried to downgrade to 3.4.4 which fixed the problems.
Voron 2.4 with Duet 3 Mini 5+ / 1LC 1.1
For reference:
homeall.g working in 3.4.4, but failing in 3.4.5 (unessential stuff commented for debugging)
;; Slightly optimized XYZ home without performing extra z hops
var x_accel = move.axes[0].acceleration
var y_accel = move.axes[1].acceleration
var z_accel = move.axes[2].acceleration
var x_speed = move.axes[0].speed
var y_speed = move.axes[1].speed
var z_speed = move.axes[2].speed
M913 X50 Y50 Z50 ; half the currents
;M201 X{var.x_accel/2} Y{var.x_accel/2} Z{var.z_accel/4} ; quarter the accelerations
;M203 X{var.x_speed/2} Y{var.x_speed/2} Z{var.z_speed/4} ; quarter the speed
; relative movement
G91
; Lift Z relative to current position if needed
;if !move.axes[2].homed
; G1 H2 Z5 F1800
;elif move.axes[2].userPosition < 10
; G1 Z5 F9000
; Coarse home X or Y
;G1 X300 Y300 F2400 H1
;G1 X300 Y300 F2400 H1
; Coarse home X
G1 X600 H1
; Coarse home Y
G1 Y600 H1
; Move away from the endstops
;G1 X-50 Y-50 F9000
; Fine home X
;G1 X600 F360 H1
; Fine home Y
;G1 Y600 F360 H1
;M201 X{var.x_accel} Y{var.x_accel} ; reset the XY accelerations
;M203 X{var.x_speed} Y{var.x_speed} ; reset the XY speed
; Absolute positioning
G90 ; absolute positioning
; Home Z with the switch at the back
;G1 X{global.z_stop_x} Y{global.z_stop_y} F99999 ; move to directly above mechanical Z-switch
;G30 K0 Z-9999 ; probe
G1 X{global.bed_center_x} Y{global.bed_center_y} F5000 ; move to center of bed
G30 K1 Z-9999 ; probe
; brush nozzle
M98 P"/macros/moveto/brush_xy.g"
G1 X{global.bed_center_x} Y{global.bed_center_y} F5000 ; move to directly above mechanical Z-switch
G30 K1 Z-9999 ; probe again
; Restore high currents, speed & accel
M913 X100 Y100 Z100
M201 X{var.x_accel} Y{var.x_accel} Z{var.z_accel}
M203 X{var.x_speed} Y{var.x_speed} Z{var.z_speed}
; Move above center of the bed
G1 X125 Y125 Z50
config.g
;; system and network --------------------------------------
M550 PMunin ; hostname
M669 K1 ; corexy mode
M552 S1 P"M"
M586 P2 S1 R23 T0 ; enable telnet
M586 P1 S1 T0 ; enable ftp
;M555 P2 ; set Marlin output mode
G21 ; millimeter units
G90 ; absolute tool coordinates
M83 ; relative extruder coordinates
; constants of the device geometry
global max_x = 250
global max_y = 256
global z_stop_x = {global.max_x-24.5}
global z_stop_y = {global.max_y-3}
global bed_center_x = {global.max_x/2}
global bed_center_y = {global.max_y/2}
global mag_probe_x = 51
global mag_probe_y = {global.max_y}
global mag_probe_z = 1.7
global QGL_probe = 3 ; 1 = inductive, 2 = magnet, 3 = tap
; speed & acceleration settings mm/min
global xy_accel = 10000;
global z_accel = 1000;
global xy_speed = 60000;
global z_speed = 6000;
;; enable paneldue
;M575 P1 B57600 S1
M569 P0 S1 ; E0 motor direction
M569 P1 S0 ;D3 V5000 ; Y motor direction
M569 P2 S1 ;D3 V5000 ; X motor direction
M569 P5 S0 ; ZFL motor direction
M569 P4 S1 ; ZBL motor direction
M569 P3 S0 ; ZBR motor direction
M569 P6 S1 ; ZFR motor direction
M584 X2 Y1 Z5:4:3:6 E121.0 ; motor drive mapping
M350 X16 Y16 Z16 E16 I1 ; set microstepping
M92 X80 Y80 Z400 E727.5 ; set microsteps per mm
;;M574 X2 Y2 Z0 S1 ; endstops
;M574 Z1 S1 P"io4.in" ; Z min active high endstop switch
M671 X-65:-65:315:315 Y-10:325:325:-10 S20 ; Z leadscrews positions
M84 S3600 ; motor idle timeout
M906 I50 ; motor idle current percentage
;E655
; Mini 12864
M918 P2 E-4 R3 C100 ; Enable FYSetc Mini 12864
M150 X2 R255 U255 B255 S3 ; FYSETC Neopixel background: set all 3 LEDs to white
;M950 P0 C"io3.out" Q500 ; generate PWM pin (red on mini12864 V1.2)
;M42 P0 S0 ; turn off
;; geometry ------------------------------------------------
M208 X0 Y0 Z-3 S1 ; S1 = set axes minima
M208 X{global.max_x} Y{global.max_y} Z235 S0 ; S0 = set axes maxima
M208 X250 Y256 Z235 S0 ; S0 = set axes maxima
M557 X20:240 Y25:235 S20 ; configure z probing grid for mesh compensation
;M98 P"/macros/zprobe/use_mfast.g"
;M98 P"/macros/zprobe/use_ifast.g"
; mechanical switch
M558 K0 P5 C"io4.in" I0 H0 R0.1 F1200 T99999 A1 B1
G31 K0 X0 Y0
; inductive probe
;M558 K1 P8 C"121.io2.in" I1 A3 H12 R0.1 F800 T99999 A1 B1
;G31 P1000 K1 X0 Y25 Z0.318
; magprobe
;M558 K2 P8 C"121.IO1.in" F150 T1000 H2
;G31 P1000 K2 X-2.5 Y38.5 Z7
; tap tap tappa di tap tap dooo
M558 K1 P8 C"^121.io0.in" I1 A3 H12 R0.1 F800 T99999 A1 B1
G31 P1000 K1 X0 Y0 Z-0.76
;; drive ---------------------------------------------------
;; Motor layout:
;; E0 E1
;; YB XA
;; Z2 Z3
;; Z0 Z1
; Magnet homing
M574 X2 S1 P"!io6.in" ; X min active low endstop switch
M574 Y2 S1 P"!io5.in" ; Y min active low endstop switch
; Sensorless Homing
;M574 X2 S3
;M574 Y2 S3
;M915 X Y R0 F0 S3
;; velocity, acceleration, and current settings are in these macros
M98 P"/macros/drive/xy_fullcurrent.g"
M98 P"/macros/drive/z_fullcurrent.g"
M98 P"/macros/drive/e_fullcurrent.g"
;; firmware retraction -------------------------------------
;; Choose one as your default:
;M98 P"/macros/retraction/quiet_nozhop.g
;M98 P"/macros/retraction/quiet_zhop.g
M98 P"/macros/retraction/pa_nozhop.g"
;M98 P"/macros/retraction/pa_zhop.g"
;; thermal -------------------------------------------------
; Sensors --------------------------------------------------
M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bedmat"; configure sensor 0 as thermistor on pin temp0
M308 S1 P"121.temp0" Y"pt1000" A"Hotend" ; configure sensor 1 as thermistor
;M308 S1 P"e0temp" Y"thermistor" T100000 B3950 A"Hotend"
M308 S2 P"121.temp1" Y"thermistor" T100000 B3950 A"Chamber" ;Chamber fan
M308 S3 Y"mcu-temp" A"Board"
;M308 S4 P"e1temp" Y"thermistor" T100000 B3950 A"Bedplate"
; Heaters --------------------------------------------------
;Bed
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 4
M950 H1 C"121.out0" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M140 H0
;PID Settings
M307 H0 A301.0 C845.3 D1.4 S1.00 V23.6 B0
M307 H1 A482.6 C291.7 D5.5 S1.00 V23.6 B0 ;V6
; Monitors & Limits
;M143 H0 P1 T0 A2 S130 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 110°C. Use Heater monitor 1 for it
;M143 H0 P2 T0 A0 S135 C0 ; Fault (A0) bed heater (H0) if pad sensor (T0) exceeds 135°C. Use Heater monitor 2 for it
M143 H0 P0 S130 ; Set bed heater max temperature to 120°C, use implict monitor 0 which is implicitly configured for heater fault
M143 H1 S400 ; set temperature limit for heater 1 to 275C
M912 P0 S-8 ;MCU tempurature sensor correction
;; fans -------------------------------------------------
;Parts
M950 F0 C"121.out2" Q500
M106 P0 S0 B0.1 L128 C"Part" ; part fan
;Hot End
M950 F1 C"121.out1" Q500
M106 P1 T60 H1 C"Hotend" ; hotend fan PWMED DOWN
;Board cooling
M950 F2 C"0.out3" Q500
M106 P2 S0.5 C"Board"; On when MCU temp (H3) reaches 45C
;H2 L180 X255 T30:50
;M106 P2 S255 C"Board"
M950 F3 C"0.out4" Q500
M106 P3 S0 C"Exhaust"
M950 F4 C"0.out5" Q500
M106 P4 T40 H0 C"Nevermore"
;M950 F5 C"0.out1" Q500
;M106 P5 S1 C"IKEAFILTER" ; Filter
;; tools ---------------------------------------------------
M563 P0 D0 H1 ; bind tool 0 to drive and heater
G10 P0 X0 Y0 Z0 ; tool offset
G10 P0 S0 R0 ; tool active and standby temp
T0 ; activate tool 0
;; Accelerometer
M955 P121.0 I05
;; Input shaper
M593 P"EI3" F41.6 S0.05
;; filament sensor ---------------------------------------
;M591 D0 P3 C3 S0 R75:125 L24.8 E3.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 85% to 115% tolerance, 3mm detection length
;M591 P5 C"e0stop" S1 ; Laser Filament Monitor
;; Buttons on the toolboard
M950 C"121.button0" J0
M950 C"121.button1" J1
M581 P0 T2
M581 P1 T3