On my Duet 3, I am experiencing problems with the BLTouch probe not deploying, and the nozzle therefore crashing the bed. I have not found determined exactly what causes it, but I can reproduce it by doing the following:
- Home all
- G32 - True bed levelling
- Start a print
- Pause the print
- Cancel the print
- Home all again - Here the probe won't deploy, it will throw an error, but the bed will continue to move up until it crashes the nozzle
Here is a video showing off the above sequence: https://www.youtube.com/watch?v=X0Y9zfQB8J0
The error in my console is:
Error: Z probe was not triggered during probing move
Error: Homing failed
The probe is a genuine BLTouch 3.1 connected to IO_7, and I can confirm it is wired correctly. I have also checked the crimps, and tested for continuity, I cannot find any issues with the wiring. I have also checked the pin itself which looks fine, and it is completely clean (it's brand new too). Also went through all of this, and altered my configs based on it: https://duet3d.dozuki.com/Wiki/BLTouch_Troubleshooting?fbclid=IwAR0hujQNUo7lwXghMRnpp-jbP4PYaaVPBfTyRK0iT_9Y5nwZFxxtn6oxJ7c
I am hoping there is a way to make sure the Duet at least stops the bed from continuing to move up when the probe does not deploy to avoid crashes. But also obviously want to make sure the probe always deploys when it has to.
My configurations
config.g:
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 14:49:36 GMT+0200 (Centraleuropæisk sommertid)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"CoreXY" ; set printer name
M669 K1 ; select CoreXY mode
; Network
M540 PBE:62:38:32:53:34 ; set custom MAC address
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 S0 ; X motor - physical drive 0.0 goes forwards
M569 P0.5 S0 ; Y motor - physical drive 0.5 goes forwards
M569 P0.1 S1 ; Z motor 1 - physical drive 0.1 goes forwards
M569 P0.3 S1 ; Z motor 2 - physical drive 0.2 goes forwards
M569 P0.4 S1 ; Z motor 3 - physical drive 0.2 goes forwards
M569 P0.2 S1 ; Hemera motor - physical drive 0.2 goes forwards
M584 X0.0 Y0.5 Z0.4:0.1:0.3 E0.2 ; set drive mapping - X Y frontLeftZ FrontRightZ RearZ E
M671 X-35:335:150 Y173:173:335 S15 ; Bed rotational center - front left, front right and rear center
M350 X16 Y16 Z16 E16 I1 ; Microstepping with interpolation
M92 X160.00 Y160.00 Z800.00 E381.81 ; Steps/mm
M566 X600 Y600 Z200 E3600 ; Maximum jerk speeds (mm/min)
M203 X24000 Y24000 Z900 E3600.00 ; Maximum speeds (mm/min)
;M203 X24000 Y24000 Z200 E3600.00 ; Maximum speeds (mm/min) LOW Z SPEED FOR TESTING
M201 X1750 Y1750 Z250 E1500 ; Accelerations (mm/s^2)
M906 X1260 Y1260 Z1260 E1000 I30 ; Motor currents (mA) - E3D HT Motor rated at 1680 => 75% = 1260 mA | Hemera rated at 1330 => 75% = 1000 | 30% idle factor
M84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X250 Y250 Z250 S0 ; set axis maxima
; Endstops
M574 X1 S3 ; configure sensorless endstop for low end on X
M574 Y1 S3 ; configure sensorless endstop for low end on Y
M574 Z0 ; configure BLTouch as Z endstop
; Z-Probe
M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
M558 P9 C"^io7.in" F100 H5 R0.2 T6000 A3 B1 ; set Z probe type to bltouch and the dive height + speeds
G31 P25 X1 Y24 Z0.80 ; set Z probe trigger value, offset and trigger height
M557 X15:250 Y15:250 S40 ; define mesh grid
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S200 ; set temperature limit for heater 0 to 200C
M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S300 ; set temperature limit for heater 1 to 300C
; Fans
M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
; Tools
M563 P0 S"Hemera" 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
; Miscellaneous
T0 ; select first tool
M501 ; load saved data from non volatile memory
homeall.g:
; homeall.g
; called to home all axes
;Prepare for homing
M400 ; Finishes all current moves and and thus clears the buffer
G91 ; Set to Relative Positioning
G1 Z5 F1200 H2 ; Move the bed down slightly
;Prepare for sensorless homing
M913 X30 Y30 ; Set motor currents to 50%
M201 X500 Y500 ; Set acceleration on X/Y to 500 to improve reliability of stall detection
M915 X Y S1 R0 F0 H400 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 1, don’t take action, don’t filter, 400steps/sec
;Sensorless homing X
G1 H1 X-300 F4000 ; Move 300 mm left, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy
G1 X30 F2000 ; Move 30 mm out from Xmin
;Sensorless homing Y
G1 H1 Y-300 F4000 ; Move 300 mm back, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy
G1 Y30 F2000 ; Move 30 mm out from Xmin
;End of sensorless homing
M913 X100 Y100 ; Set motor currents back to 100%
M201 X2000 Y2000 ; Set acceleration back to 2000
G90 ; Set to Absolute Positioning
;BLTouch home Z
G1 X150 Y117 F12000 ; Move probe to middle of bed
M558 F500 ; Set the first probing speed
G30 ; First Z probe
M558 F50 ; Set a slower probing speed
G30 ; Second Z probe
;End of homing
G90 ; Ensure we are in Absolute Positioning
bed.g:
; bed.g
; called to perform automatic bed compensation via G32
;
M561 ; Clear any bed transform
G30 P0 X35 Y173 Z-99999 ; Probe near front-left leadscrew
G30 P1 X265 Y173 Z-99999 ; Probe near front-right leadscrew
G30 P2 X150 Y290 Z-99999 S3 ; Probe near rear-center leadscrew and adjust bed parallel to corexy kinematics
G1 X15 Y15 F12000 ; Move close to home
G29 S1 ; Load heightmap.csv
homex.g:
; homex.g
; called to home the X axis
;
;Prepare for homing
M400 ; Finishes all current moves and and thus clears the buffer
G91 ; Set to Relative Positioning
G1 Z5 F1200 H2 ; Move the bed down slightly
;Prepare for sensorless homing
M913 X30 Y30 ; Set motor currents to 50%
M201 X500 Y500 ; Set acceleration on X/Y to 500 to improve reliability of stall detection
M915 X Y S1 R0 F0 H400 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 1, don’t take action, don’t filter, 400steps/sec
;Sensorless homing X
G1 H1 X-300 F4000 ; Move 300 mm left, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy
G1 X30 F2000 ; Move 30 mm out from Xmin
;End of sensorless homing
M913 X100 Y100 ; Set motor currents back to 100%
M201 X2000 Y2000 ; Set acceleration back to 2000
;End of homing
G90 ; Set to Absolute Positioning
homey.g:
; homey.g
; called to home the Y axis
;
;Prepare for homing
M400 ; Finishes all current moves and and thus clears the buffer
G91 ; Set to Relative Positioning
G1 Z5 F1200 H2 ; Move the bed down slightly
;Prepare for sensorless homing
M913 X30 Y30 ; Set motor currents to 50%
M201 X500 Y500 ; Set acceleration on X/Y to 500 to improve reliability of stall detection
M915 X Y S1 R0 F0 H400 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 1, don’t take action, don’t filter, 400steps/sec
;Sensorless homing Y
G1 H1 Y-300 F4000 ; Move 300 mm back, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy
G1 Y30 F2000 ; Move 30 mm out from Xmin
;End of sensorless homing
M913 X100 Y100 ; Set motor currents back to 100%
M201 X2000 Y2000 ; Set acceleration back to 2000
;End of homing
G90 ; Ensure we are in Absolute Positioning
homez.g:
; homez.g
; called to home the Z axis
;
;Prepare for homing
G91 ; Set to Relative Positioning
G1 Z5 F6000 H2 ; Move the bed down slightly
G90 ; Set to Absolute Positioning
;Probe Z
G1 X150 Y150 F4000 ; Move probe to middle of bed
G30 ; First Z probe
G1 H2 Z5 F400 ; Lift Z relative to current position
deployprobe.g:
; deployprobe.g
; called to deploy a physical Z probe
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 14:49:36 GMT+0200 (Centraleuropæisk sommertid)
M280 P0 S10 ; deploy BLTouch
retractprobe.g:
; retractprobe.g
; called to retract a physical Z probe
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 14:49:36 GMT+0200 (Centraleuropæisk sommertid)
M280 P0 S90 ; retract BLTouch
*** Note: I have another thread based on this issue, but I decided to make this new post to make it more specific to the issue. The other one included alot about my sensorless homing for X and Y, which works perfectly now.