Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Z probe was not triggered during probing move - bed crash

    Scheduled Pinned Locked Moved Solved
    General Discussion
    3
    8
    629
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • pandaymundefined
      pandaym
      last edited by

      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:

      1. Home all
      2. G32 - True bed levelling
      3. Start a print
      4. Pause the print
      5. Cancel the print
      6. 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.

      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        Is the pause/cancel part required for duplication? Does the probe consistently retract and deploy otherwise?

        Can you post the contents of your pause/cancel macros as well? If they are empty or don't exist can you create them and test again?

        Z-Bot CoreXY Build | Thingiverse Profile

        pandaymundefined 1 Reply Last reply Reply Quote 0
        • pandaymundefined
          pandaym @Phaedrux
          last edited by

          @Phaedrux said in Z probe was not triggered during probing move - bed crash:

          Is the pause/cancel part required for duplication? Does the probe consistently retract and deploy otherwise?

          Unfortunately, it is not the only situation it happens. I just found out I can reproduce it every single time by doing this.

          @Phaedrux said in Z probe was not triggered during probing move - bed crash:

          Can you post the contents of your pause/cancel macros as well? If they are empty or don't exist can you create them and test again?

          pause.g:

          ; pause.g
          ; called when a print from SD card is paused
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 14:49:37 GMT+0200 (Centraleuropæisk sommertid)
          M83              ; relative extruder moves
          G1 E-2 F2500     ; retract 10mm of filament
          G91              ; relative positioning
          G1 Z5 F5000      ; lift Z by 5mm
          G90              ; absolute positioning
          G1 X20 Y20 F6000 ; go to X=20 Y=20
          

          By cancel, you mean stop.g right? I have it, but it's empty:

          ; stop.g
          ; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled)
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 14:49:37 GMT+0200 (Centraleuropæisk sommertid)
          
          JoergS5undefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
          • JoergS5undefined
            JoergS5 @pandaym
            last edited by JoergS5

            This post is deleted!
            1 Reply Last reply Reply Quote 0
            • Phaedruxundefined
              Phaedrux Moderator @pandaym
              last edited by

              @pandaym said in Z probe was not triggered during probing move - bed crash:

              By cancel, you mean stop.g right? I have it, but it's empty:

              No. those are two different files. Stop.g is called by M0 if present. This can be used in the slicer end gcode to place your after print commands.

              cancel.g may not be present and if not, there is a default behaviour, but I'm not exactly sure what that is. If you create a cancel.g file you can add commands for what you want to happen when you've canceled a print. For instance in mine a reset some values and allow things to cool in preparation for restarting a print.:

              ; cancel.g
              ;
              ; Run when the print is paused, and then canceled.
              ;
              
              G10 P0 R0 S0		; Set hotend temp to 0
              M140 S0			; Set bed temp to 0
              M106 S255 		; Fan at 100 to cool nozzle and bed
              M220 S100		; Set speed factor back to 100% in case it was changed
              M221 S100		; Set extrusion factor back to 100% in case it was changed
              M204 P1000 T4000	; Set printing and travel accelerations
              M566 X900 Y900 Z30 	; Set maximum instantaneous speed changes (mm/min) (Jerk)
              G28 XY			; home XY
              M84			; turn off steppers
              G4 S60			; wait 1 minute for nozzle to cool
              M107			; turn off the fan
              

              So for testing I was suggesting you create a cancel.g file and put some commands in it. But if you are able to reproduce the problem without doing the pause/cancel there may be no point.

              @pandaym said in Z probe was not triggered during probing move - bed crash:

              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.

              The problem with that is that the firmware may not be aware the pin hasn't deployed. As far as it's concerned, the request for pin as been made and the probing is in progress. Normally, if the pin is blocked and can't deploy the BLtouch may go into an error state. But if the BLTouch isn't getting the command to deploy the pin then there is no feedback to detect. The only way to safeguard in the event of a head crash is to lower the motor current during homing.

              It really sounds like there is an intermittent wiring problem on the servo connection.

              Can you do some tests with the BLTouch self-test command? It should place it into a deploy and retract loop for a few times. This used to be continuous until canceled which was nice to be able to test the pin for reliability, but in recent v3 of the bltouch it only does a few tests and stops. So you may need to create a macro that has many of the commands in a row, or even just many M401 and M402 commands in a row to confirm if the probe will reliably deloy time after time. Also test with the printhead in different locations incase it's a bad wire connection that gets triggered from a certain position.

              Z-Bot CoreXY Build | Thingiverse Profile

              pandaymundefined 1 Reply Last reply Reply Quote 0
              • pandaymundefined
                pandaym @Phaedrux
                last edited by

                @Phaedrux said in Z probe was not triggered during probing move - bed crash:

                Can you do some tests with the BLTouch self-test command? It should place it into a deploy and retract loop for a few times. This used to be continuous until canceled which was nice to be able to test the pin for reliability, but in recent v3 of the bltouch it only does a few tests and stops. So you may need to create a macro that has many of the commands in a row, or even just many M401 and M402 commands in a row to confirm if the probe will reliably deloy time after time. Also test with the printhead in different locations incase it's a bad wire connection that gets triggered from a certain position.

                I found out that if you run self-test, then when it stops, you can run M401, then M402, then clear alarm and it allows you to run self test again. So I made it loop and moved the head around a ton. It did not fail once.

                @Phaedrux said in Z probe was not triggered during probing move - bed crash:

                So for testing I was suggesting you create a cancel.g file and put some commands in it. But if you are able to reproduce the problem without doing the pause/cancel there may be no point.

                I have made a cancel.g based on yours:

                ; cancel.g
                ;
                ; Run when the print is paused, and then canceled.
                ;
                 
                G10 P0 R0 S0		; Set hotend temp to 0
                M140 S0				; Set bed temp to 0
                M106 S255 			; Fan at 100 to cool nozzle and bed
                M220 S100			; Set speed factor back to 100% in case it was changed
                M221 S100			; Set extrusion factor back to 100% in case it was changed
                G28 XY				; home XY
                M84					; turn off steppers
                G4 S60				; wait 1 minute for nozzle to cool
                M107				; turn off the fan
                

                Actually, since I did that, I tested 3 times with the reproducible case, and now I could not make it fail anymore. Maybe solved?

                @Phaedrux said in Z probe was not triggered during probing move - bed crash:

                The only way to safeguard in the event of a head crash is to lower the motor current during homing.

                I have added to my homeall and homez that my Z motors drop to 50% current during homing. At 40% they don't run up well at all. This is a great idea, and of course a good way to ensure that if it happens, it might only be the PEI sheet that is damaged, nothing too serious.

                1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by

                  Please keep us posted on if it continues to happen and if you remove the cancel.g file if that causes it to happen reliably again.

                  In addition to the motor current drop you can also add the BLTouch alarm release command to the start of homeall to clear any error state and retract the pin as a precaution. I think I may have mentioned that already.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  pandaymundefined 1 Reply Last reply Reply Quote 0
                  • pandaymundefined
                    pandaym @Phaedrux
                    last edited by

                    @Phaedrux said in Z probe was not triggered during probing move - bed crash:

                    Please keep us posted on if it continues to happen and if you remove the cancel.g file if that causes it to happen reliably again.

                    In addition to the motor current drop you can also add the BLTouch alarm release command to the start of homeall to clear any error state and retract the pin as a precaution. I think I may have mentioned that already.

                    Sorry, I did not press submit on the answer I had written here.

                    I disassembled the printer to redo some wiring etc. to finish it off. When I am done, I will continue testing it, and I will get back if it keeps happening. Also I will add the alarm release, just to have an extra precaution.

                    Thanks a lot for the help!

                    1 Reply Last reply Reply Quote 1
                    • First post
                      Last post
                    Unless otherwise noted, all forum content is licensed under CC-BY-SA