I'm running a Voron Trident with a Klicky probe. It's the original probe with just the end-stop switch and magnets, not the PCB version. The probe frequently fails to trigger on the 3.6.0 code branch. I've tested beta1 through rc2+4 and all exhibit the same behavior.
All z-probe actions seem to fail sporadically and it's very rare for G32
to complete successfully on the 3.6.0 branch, but I've not had a failure on the 3.5.4 firmware release. On a number of occasions I've hit the e-stop when the probe fails to trigger and when the board reboots M119
shows the probe in the triggered state.
The probe is connected to an 1LC tool board on CAN address 20.
1LC diagnostics following error
M122 B20
Diagnostics for board 20:
Duet TOOL1LC rev 1.1 or later firmware version 3.6.0-rc.2+4 (2025-04-17 08:43:08)
Bootloader ID: SAMC21 bootloader version 2.3 (2021-01-26b1)
All averaging filters OK
Never used RAM 7352, free system stack 108 words
Tasks: Move(3,nWait 7,0.0%,136) TMC(2,nWait 6,3.7%,52) HEAT(2,nWait 6,0.2%,116) CanAsync(5,nWait 4,0.0%,52) CanRecv(3,nWait 1,0.0%,70) CanClock(5,nWait 1,0.0%,58) ACCEL(3,nWait 6,0.0%,18) MAIN(1,running,91.3%,318) IDLE(0,ready,0.0%,26) AIN(2,delaying,4.8%,112), total 100.0%
Owned mutexes:
Last reset 00:12:44 ago, cause: software
Last software reset at 2025-04-05 22:21, reason: StackOverflow, available RAM 3916, slot 0
Software reset code 0x0100 ICSR 0x0041a00e SP 0x20007f24 Task ACCE Freestk 4413 bad marker
Stack: 200039b0 200039e4 0001c583 200032cc 200032cc 200033e8 200032c0 00000000 0001cd0b 200032cc 0001bd11 200033e8 fffffffd 7e74fff3 00000000 20007f8c 00000000 20007f8c 0001caa3 00000000 20001898 20001818 0001c1d7 20001818 20001898 00000032 454c4449
Moves scheduled 0, hiccups 0 (0.00/0.00ms), segs 0, step errors 0 (types 0x0), maxLate 0 maxPrep 0, ebfmin 0.00 max 0.00
Sync err accum 246, peak jitter -4/3, peak Rx delay 214, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 3721563626 ticks, disabled
VIN voltage: min 24.2, current 24.2, max 24.2
MCU temperature: min 32.9C, current 34.1C, max 34.1C
Driver 0: pos 0, 681.0 steps/mm, standstill, SG min 0, read errors 0, write errors 0, ifcnt 124, reads 3823, writes 0, timeouts 0, DMA errors 0, CC errors 0
Last sensors broadcast 0x00000002 found 1 45 ticks ago, 0 ordering errs, loop time 0
CAN messages queued 2905, send timeouts 0, received 1266, lost 0, ignored 0, errs 0, boc 0, free buffers 18, min 18, error reg 0
dup 0, oos 0/0/0/0, rxMotionDelay 0
Accelerometer: LIS3DH, status: 00
I2C bus errors 0, naks 0, contentions 0, other errors 0
Duet Mini 5+ diagnostics following error:
M122
Probe detach failed
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-rc.2+4 (2025-04-17 08:23:50) running on Duet 3 Mini5plus WiFi (standalone mode)
Board ID: 4BJ9Y-A296U-D65J0-40KM2-LZ03Z-ZL76T
Used output buffers: 1 of 40 (38 max)
=== RTOS ===
Static ram: 94764
Dynamic ram: 101528 of which 0 recycled
Never used RAM 44096, free system stack 134 words
Tasks: NETWORK(1,ready,16.0%,195) HEAT(3,nWait 6,0.0%,331) Move(4,nWait 6,0.0%,266) TMC(4,nWait 6,0.9%,65) CanReceiv(6,nWait 1,0.3%,768) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,346) MAIN(1,running,81.7%,661) IDLE(0,ready,0.1%,29) USBD(3,blocked,0.0%,147) AIN(4,delaying,0.8%,255), total 100.0%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 00:12:18 ago, cause: software
Last software reset at 2025-04-22 20:54, reason: User, Gcodes spinning, available RAM 45344, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
MCU temperature: min 26.2, current 27.8, max 28.5
Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/4, heap memory allocated/used/recyclable 2048/1028/980, gc cycles 0
Events: 1 queued, 1 completed
Date/time: 2025-04-22 21:06:41
Slowest loop: 69.15ms; fastest: 0.17ms
=== Storage ===
Free file entries: 20
SD card 0 detected, requested/actual speed: 25.0/24.0MBytes/sec
SD card longest read time 6.6ms, write time 8.5ms, max retries 0
=== Move ===
Segments created 45, maxWait 105158ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
Pos req/act/dcf: 46931.00/46931/0.82 -33709.00/-33709/0.83 7581.00/7581/0.00
No step interrupt scheduled
Driver 0: standstill, SG min 0, r/w errs 0/0, ifcnt 222, reads/writes 33605/6, timeouts 0, DMA errs 0, CC errs 0
Driver 1: standstill, SG min 0, r/w errs 0/0, ifcnt 222, reads/writes 33605/6, timeouts 0, DMA errs 0, CC errs 0
Driver 2: standstill, SG min 0, r/w errs 0/0, ifcnt 182, reads/writes 33603/8, timeouts 0, DMA errs 0, CC errs 0
Driver 3: standstill, SG min 0, r/w errs 0/0, ifcnt 182, reads/writes 33604/7, timeouts 0, DMA errs 0, CC errs 0
Driver 4: standstill, SG min 0, r/w errs 0/0, ifcnt 183, reads/writes 33603/8, timeouts 0, DMA errs 0, CC errs 0
Driver 5: not present
Driver 6: not present
=== DDARing 0 ===
Scheduled moves 246, completed 246, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000007, drives owned 0x00000007
Code queue is empty
=== DDARing 1 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000
Code queue is empty
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Movement locks held by HTTP, null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
SBC is idle in state(s) 0
Daemon is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
File2 is idle in state(s) 0
Queue2 is idle in state(s) 0
=== CAN ===
Messages queued 5822, received 14277, lost 0, ignored 0, errs 0, boc 0
Longest wait 6ms for reply type 6024, peak Tx sync delay 355, free buffers 26 (min 25), ts 3031/3031/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 44.60ms; fastest: 0.07ms
Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
=== WiFi ===
Interface state: active
Module is connected to access point
Failed messages: pending 0, notrdy 0, noresp 0
Firmware version 2.2.0
Module reset reason: Power up, Vcc 3.36, flash size 2097152, free heap 40332
MAC address f4:cf:a2:6f:bd:e0
IP address 10.3.1.110
Signal strength -46dBm, channel 11, mode 802.11n, reconnections 0
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0
config.g
; General preferences
echo "Start of config.g"
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Voron" ; set printer name
M669 K1 ; select CoreXY mode
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
G4 S2 ; Wait for the CAN bus to stabilize
; Drives
M569 P0 S1 D3 V1000 ; physical drive 0 goes forwards
M569 P1 S1 D3 V1000 ; physical drive 1 goes forwards
M569 P2 S0 ; physical drive 2 goes backwards
M569 P3 S0 ; physical drive 3 goes backwards
M569 P4 S0 ; physical drive 4 goes backwards
M569 P20.0 S0 ; Extruder stepper on toolboard goes backwards
M584 X0 Y1 Z2:3:4 E20.0 ; set drive mapping
M671 X-45:125:290 Y-5:315:-5 S2.5 ; leadscrews at left (connected to Z) and right
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X160.00 Y160.00 Z800.00 E681.00 ; set steps per mm 0.9deg A/B, galileo extruder
; Extruder acceleration is limited to acc = jerk / pressure_advance when PA is enabled
; Ensure jerk is high enough to reach our accel numbers, but not so high that the extruder skips steps
M566 X300 Y300 Z25 E500 P1 ; set maximum instantaneous speed changes (mm/min)
M203 X18000 Y18000 Z300 E12000 ; set maximum speeds (mm/min)
M201 X4000 Y4000 Z250 E12000 ; set accelerations (mm/s^2)
M201.1 X1000 Y1000 Z50 ; limit acceleration for special moves (probes)
M204 P4000 T4000 ; Set printing acceleration and travel accelerations
M906 X1000 Y1000 Z800 E330 I30; T120 ; set motor currents (mA) and motor idle factor in per cent
M84 S120 ; Set idle timeout
; Axis Limits
M208 X0:248 Y0:253 Z0:230
; Endstops
M574 X2 S1 P"io2.in" ; configure active-high endstop for high end
M574 Y2 S1 P"io3.in" ; configure active-high endstop for high end
M574 Z0 ; no z endstop
; Z-Probe
M558 K0 P8 C"20.io1.in" T18000 F120:90 H5:2 A5 ;S0.01 B0 R0.2 ; Define the klicky Z probe as switch type
G31 K0 P500 X0 Y25 Z7.476 ; Klicky probe Z offset
M557 X25:224 Y25:214 P5 ; define mesh grid
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed Heater" ; configure sensor 0 as thermistor on pin temp0 (heater mat)
M308 S2 P"temp1" Y"thermistor" T100000 B3950 A"Bed Plate" ; configure sensor 2 as thermistor on pin temp1 (MIC-6 plate)
M950 H0 C"out0" T2 Q60 ; create bed heater output on bedheat and map it to sensor 2 (MIC-6 plate)
M140 P0 H0 ; map heated bed to heater 0 for DWC
M143 H0 P1 T0 A2 S120 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 118°C. Use Heater monitor 1 for it
M143 H0 P2 T0 A1 S125 C0 ; Shut off (A1) bed heater (H0) if pad sensor (T0) exceeds 125°C. Use Heater monitor 2 for it
M143 H0 S110 ; Set bed heater max temperature, use implict monitor 0 which is implicitly configured for heater fault
M307 H0 B1 A250 C1800 S0.50 ; Enable bang-bang mode and set PWM limit to avoid warping
M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 A"Hotend" ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"20.out0" T1 ; create nozzle heater output 1 on temp1 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"20.out1" Q150 ; create fan 0 on pin fan0 and set its frequency
M106 P0 C"part" S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"20.out2" Q250 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1.0 H1 T45 ; set fan 1 value. Thermostatic control is turned on
M950 F2 Q55 C"out5" ; Create electronics fan 1
M106 P2 S0.60 ; Turn electronics fan 2 on
M950 F3 Q55 C"out6" ; Create electronics fan 2
M106 P3 S0.60 ; Turn electronics fan 1 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
M918 P2 E2 ; enable ST7567-based 12864 display
M950 E0 C"io3.out" T2 U1 ; create a RGB Neopixel LED strip with 3 LEDs on the Duet 3 Mini 5+ 12864_EXP1 header
M150 E0 R64 U196 B211 P96 S3 ; Set the LED colors and brightness
M592 D0 A-0.004451 B0.00191 ; non-linear extrusion
M955 P20.0 I05 ; Configure accelerometer with rotation +Z => +X and +X => -Y
M501 ; Load stored config in config-override.g
echo "Loaded config.g"
bed.g
M290 R0 S0 ; clear baby stepping
M561 ; reset all bed adjustments
;M400 ; flush move queue
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
echo "not all axes homed, homing axes first"
G28
M98 P"/macros/print_scripts/speed_probing.g"
M98 P"/macros/print_scripts/z_current_low.g"
M558 K0 H8
G90
G1 Z12
M401
G30 K0 P0 X10 Y25 Z-99999
G30 K0 P1 X240 Y25 Z-99999
G30 K0 P2 X125 Y220 Z-99999 S3
echo "Current rough pass deviation: " ^ move.calibration.initial.deviation
M558 K0 H4
G30 K0 P0 X10 Y25 Z-99999
G30 K0 P1 X240 Y25 Z-99999
G30 K0 P2 X125 Y220 Z-99999 S3
echo "Current medium pass deviation: " ^ move.calibration.initial.deviation
M558 K0 H2
while move.calibration.initial.deviation > 0.003
if iterations >= 5
echo "Error: Max attemps failed. Deviation: " ^ move.calibration.initial.deviation
break
echo "Deviation over threshold. Executing pass" , iterations+3, "deviation", move.calibration.initial.deviation
G30 K0 P0 X10 Y25 Z-99999
G30 K0 P1 X240 Y25 Z-99999
G30 K0 P2 X125 Y220 Z-99999 S3
echo "Current deviation: " ^ move.calibration.initial.deviation
continue
echo "Final deviation: " ^ move.calibration.initial.deviation
G28 Z
M98 P"/macros/print_scripts/speed_printing.g"
M98 P"/macros/print_scripts/z_current_high.g"
deployprobe.g
if sensors.probes[0].value[0] == 1000
M564 H1
G90
if move.axes[2].homed && move.axes[2].userPosition < 15
G1 Z15 F120
; Move into the dock
G1 X38 Y225 F4800
G1 Y251 F2400
; M400 S1
G4 P500
; move out from dock
G1 Y225 F2400
G1 Y200 F4800
M400 S1
if sensors.probes[0].value[0] == 1000
abort "Probe attach failed"
G1 X125 Y125
retractprobe.g
if sensors.probes[0].value[0] == 0
M564 H1
G90
; approach the dock and move in
G1 Y225 F4800
G1 X38
G1 Y252 F2400
; disengage from dock
G1 X85 F4800
M400 S1
if sensors.probes[0].value[0] == 0
abort "Probe detach failed"
G1 X125 Y125
Thanks for the help and let me know if you need any additional information or have anything you would like me to test.