Machine is homing with a bltouch in error state
-
Trying to search for how to prevent this from happening, it's cost me 2 Revo nozzles (horribly bent) and a brand new buildtak plate and pei sheet.
So when I stop a print early and forget to move the z up after power cycling the machine, bltouch does the powerup self-test, fails, is blinking its error, but yet a home z/all command will attempt a homing anyways.
Trying to get a diagnostic command to return, but it won't return to dwc console, I think it's going to panel due even though I issued it from dwc.
How do I setup the homing to not probe z when the probe is in error state?
Appreciated
Board: Duet 2 WiFi (2WiFi) Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.4.5 (2022-11-30) Duet WiFi Server Version: 1.27
;*** Wifi Networking M552 S1 ; Enable WiFi M555 P2 ; Set output to look like Marlin M575 P1 B57600 S1 ; Comms parameters for PanelDue G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Axis and motor configuration M669 K1 ; _RRF3_ change M667 to M669 ; set CoreXY mode M584 X0 Y1 Z5:6:7 E3:4:8:9 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders M569 P0 S0 ; Drive 0 goes forwards (change to S0 to reverse it) X stepper (Rear) M569 P1 S1 ; Drive 1 goes backwards Y Stepper (Front) M569 P2 S1 ; Drive 2 goes forwards Unused M569 P3 S0 ; Drive 3 goes forwards Extruder M569 P4 S1 ; Drive 4 goes forwards Extruder (unused) M569 P5 S0 ; Drive 5 goes backwards Front Left Z M569 P6 S0 ; Drive 6 goes backwards Rear Left Z M569 P7 S0 ; Drive 7 goes backwards Right Z ;Leadscrew locations M671 X-10:-10:333 Y22.5:277.5:150 S7.5 ;Front left, Rear Left, Right S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes& extruder, with interpolation ;_RRF3_ comment out: M574 X1 Y1 Z0 S1 M574 X1 S1 P"xstop" ; _RRF3_ set X endstop to xstop port active high M574 Y1 S1 P"ystop" ; _RRF3_ set Y endstop to ystop port active high M906 X1400 Y1400 Z1000 E800 I60 ; Set motor currents (mA) M201 X3000 Y3000 Z100 E1500 ; Accelerations (mm/s^2) M203 X24000 Y24000 Z900 E3600 ; Maximum speeds (mm/min) M566 X1000 Y1000 Z100 E1500 ; Maximum jerk speeds mm/minute M208 X290 Y290 Z280 ; set axis maxima and high homing switch positions (adjust to suit your machine) M208 X0 Y0 Z-0.5 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed) M92 X200 Y200 Z1600 E837 ; steps/mm ; Thermistors ;_RRF3_ comment out: M305 P0 T100000 B3950 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction M308 S0 P"bedtemp" Y"thermistor" A"bed_heat" T100000 B3950 R4700 H0 L0 ;_RRF3_ Bed thermistor, connected to bedtemp on Duet2 ;If you have a Slice Engineering thermistor, comment out the next line ;_RRF3_ comment out: M305 P1 T100000 B4725 R4700 H0 L0 C7.06e-8 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction M308 S1 P"e0temp" Y"thermistor" A"e0_heat" T100000 B4725 R4700 C7.06e-8 H0 L0 ;_RRF3_ duet3 e3d ;If you have a Slice Engineering thermistor, uncomment the next lines. KITS DO NOT SHIP WITH A SLICE THERMISTOR - ONLY UNCOMMENT IF YOU ORDERED ONE ;M308 S1 P"e0temp" Y"thermistor" A"e0_heat" T500000 B4723 R4700 C1.196220e-7 ;_RRF3_ slice thermistor M950 H0 C"bedheat" T0 ;_RRF3_ define Bed heater is on bedheat M140 H0 ;__RRF3__ define bed heater (Required in 3.1 or later) M950 H1 C"e0heat" T1 ;_RRF3_ define Hotend heater is on e0heat M307 H0 A240.3 C608.7 D8.2 S1.00 V24.1 B0 ; Bed Heaters M307 H1 A270.7 C90.4 D6.7 B0 S1.0 ;Heater 1 model M570 S360 ; Hot end may be a little slow to heat up so allow it 180 seconds M143 S285 ; Fans M950 F0 C"fan0" ;_RRF3_ define fan0 M950 F1 C"fan1" ;_RRF3_ define fan1 M950 F2 C"fan2" ;_RRF3_ define fan2 M106 P0 H-1 ; disable thermostatic mode for fan 0 M106 P1 H-1 ; disable thermostatic mode for fan 1 M106 P2 H-1 M106 P0 S0 ; turn off fans M106 P1 S0 M106 P2 S0 ; Tool definitions M563 P0 D0 H1 ; Define tool 0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ;*** If you have a single-nozzle build, comment the next 2 lines ;M563 P1 D1 H2 ; Define tool 1 ;G10 P1 S0 R0 X0 Y17 ; Set tool 1 operating and standby temperatures ; Z probe and compensation definition ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command ; IR PRobe - uncomment the following 2 lines if you have a and IR Probe, and comment out the BLTouch section below ;RRF3 IR Probe only comment out: M558 P1 X0 Y0 Z1 ; Z probe is an IR probe and is not used for homing any axes ;M558 P1 C"^zprobe.in" H5 F120 T6000 A5 S0.02 ; _RRF3_ IR Probe connected to Z probe IN pin ;G31 X0 Y30 Z2.00 P500 ; Set the zprobe height and threshold (put your own values here) ;BLTouch - comment out the following 3 lines if using a IR Probe ;_RRF3_ comment out: M307 H3 A-1 C-1 D-1 ;_RRF3_ comment out: M558 P9 X0 Y0 Z1 H5 F50 T6000 A5 S0.02 M558 P9 C"^zprobe.in" H5 R1 F50 T6000 A5 S0.02 ; _RRF3_ BLTouch connected to Z probe IN pin M950 S0 C"duex.pwm1" ; _RRF3_ Define BLTouch Servo (S0) on duet pwm1 G31 X-4 Y42 Z2.65 P25 ; Customize your offsets appropriately - do a paper test, and put the probed value in the Z value here T0 ; select first hot end%
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sun May 07 2023 14:18:23 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-290 Y-290 F1800 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-290 ; home X axis G1 H1 Y-290 ; home Y axis G1 X5 Y5 F6000 ; go back a few mm G1 H1 X-290 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y-290 ; then move slowly to Y axis endstop G90 ; absolute positioning ; X21 Y86 F6000 ; go to first bed probe point and home Z G1 X125 Y150 F6000 G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
-
@airdamien
Before homing I do a Z move to lift the nozzle 6mm to ensure clearance.
Then in home.z and homeall.g I call this macroEDIT:
*When I wrote this macro I'm sure it tested fully.
the deployed PWM was 0.06 and retracted was 0.03
I've just found that DWC is now reporting the PWM value to three decimal places now, not two.
But... RRF seems to store it to a much higher precision, so the reported value of 0.032 is not the exact value when deployed and won't evaluate to true.
I have changed the macro to compensate.*
;check BL Touch if sensors.probes[0].value[0]=1000 ; if probe is in error state echo "Probe in error state- resetting" M280 P0 S160 ; reset BL Touch G4 S0.5 if state.gpOut[0].pwm < 0.05 echo "Probe is already deployed - retracting" M280 P0 S80 ; retract BLTouch G4 S0.5 if sensors.endstops[2].triggered echo "Probe is already triggered - resetting" M280 P0 S160 ; reset BL Touch G4 S0.5
After each homing move it's a good idea to check the success
For exampleG30 if result != 0 abort "G30 probing move failed"