3.1.1 - BLtouch doesn't function after cancelling a job.

  • On my Duet 2 Wifi, RRF 3.1.1, after I cancel a running print job, my bltouch no longer functions. That is, all servo control commands to the BLTouch no longer cause the pin to retract or deploy.

    After resetting the board, everything functions as normal, but another cancelled print job will cause the same behavior.

    Any help solving this appreciated!

  • Moderator

    Please post your config.g, your homing files, and your slicer start and end gcode. Also send a M122 and post the result.

    Does the Bltouch work normally otherwise? You're able to home multiple times in a row?

  • The BLTouch works as expected up until cancelling an active job. I'm able to run delta calibration, mesh bed probing, z=0 datum probing, manually send all the supported servo commands.

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu May 21 2020 21:52:23 GMT-0700 (Pacific Daylight Time)
    ; General preferences
    G90                                           ; send absolute coordinates...
    M83                                           ; ...but relative extruder moves
    M550 P"Bert"                                  ; set printer name
    M665 R270 L476 B230 H885                      ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0                                 ; put your endstop adjustments here, or let auto calibration find them
    ; Network
    M551 P"REDACTED"                                 ; set password
    M552 S1                                       ; enable network
    M586 P0 S1                                    ; enable HTTP
    M586 P1 S0                                    ; disable FTP
    M586 P2 S0                                    ; disable Telnet
    ; Drives
    M569 P0 S0                                    ; physical drive 0 goes forwards
    M569 P1 S0                                    ; physical drive 1 goes forwards
    M569 P2 S0                                    ; physical drive 2 goes forwards
    M569 P3 S0                                    ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                              ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                       ; configure microstepping with interpolation
    M92 X100.00 Y100.00 Z100.00 E2580.00          ; set steps per mm
    M566 X1200.00 Y1200.00 Z1000.00 E1200.00      ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z18000.00 E1200.00   ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 E1000.00      ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30               ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                       ; Set idle timeout
    ; Axis Limits
    M208 Z-2 S1                                    ; set minimum Z
    ; Endstops
    M574 X2 S1 P"!xstop"                           ; configure active-low endstop for high end on X via pin xstop
    M574 Y2 S1 P"!ystop"                           ; configure active-low endstop for high end on Y via pin ystop
    M574 Z2 S1 P"!zstop"                           ; configure active-low endstop for high end on Z via pin zstop
    ; Z-Probe
    M950 S0 C"exp.heater3"                        ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T12000 A10 S0.018
                                                  ; set Z probe type to bltouch and the dive height + speeds
    G31 P25 X24.54 Y-14.17 Z2.62                  ; set Z probe trigger value, offset and trigger height
    M557 R160 S30                                 ; define mesh grid
    ; Heaters
    M140 H-1                                      ; disable heated bed (overrides default heater mapping)
    M308 S0 P"e0temp" Y"thermistor" T100000 B3974 ; configure sensor 0 as thermistor on pin e0temp
    M950 H0 C"e0heat" T0                          ; create nozzle heater output on e0heat and map it to sensor 0
    M143 H0 S280                                  ; set temperature limit for heater 0 to 280C
    M307 H0 B0 S1.00                              ; disable bang-bang mode for heater  and set PWM limit
    ; Fans
    M950 F0 C"fan0" Q500                          ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1                                ; set fan 0 value. Thermostatic control is turned off
    ; LED Ring as Fan
    M950 F1 C"fan1" Q500                          ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S0 H-1                                ; set fan 1 value. Thermostatic control is turned off
    ; Tools
    M563 P0 D0 H0 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
    ; homedelta.g
    ; called to home all towers on a delta printer
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu May 21 2020 21:52:24 GMT-0700 (Pacific Daylight Time)
    G91                           ; relative positioning
    G1 H1 X1005 Y1005 Z1005 F5000 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-5 Y-5 Z-5 F1800       ; go down a few mm
    G1 H1 X10 Y10 Z10 F360        ; move all towers up once more (second pass)
    G1 Z-5 F6000                  ; move down a few mm so that the nozzle can be centred
    G90                           ; absolute positioning
    G1 X0 Y0 F6000                ; move X+Y to the centre

    start gcode

    M106 S255
    G28 ; home all axes
    M104 S183 T0 ; set extruder temp
    M109 S183 T0 ; wait for extruder temp
    G1 Z10 F4000;
    G1 X-24.54 Y14.17;
    G29 S1;

    end gcode

    M104 S0 ; turn off extruder
    M140 S0 ; turn off bed
    M84 ; disable motors

  • Moderator

    Do you have a cancel.g file in /sys?

  • Moderator

    @icecube45 said in 3.1.1 - BLtouch doesn't function after cancelling a job.:

    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T12000 A10 S0.018

    Not sure if this will help, but modify this command to be:

    M558 P9 C"^zprobe.in" H5 F120 T12000 A10 S0.018 R0.5

  • @Phaedrux said in 3.1.1 - BLtouch doesn't function after cancelling a job.:

    Not sure if this will help, but modify this command to be:
    M558 P9 C"^zprobe.in" H5 F120 T12000 A10 S0.018 R0.5

    I don't think recovery time would help, being as mesh probing/repeated probing works correctly.
    I will try it when I get some free time anyhow.

    If it helps, here are oscope traces from before and after cancelling a print, and sending the "pin down" command.
    First trace results in pin down, second does not.
    Looks like possible noise being introduced after a cancelled job? really unsure.
    I should note that I don't remember this behavior occurring before updating to RRF 3.

    Before Cancel.png
    After Cancel.png

  • Moderator

    The main thing was removing the probe mod pin and adding the pullup resistor enable, but recovery/settle time is a good idea for the bltouch anyway.

    Do you have a cancel.g in /sys?

    Are the motors being disabled or going idle?

  • @Phaedrux Oh sorry, I thought I had said. No I don't have a cancel.g

    The bltouch doesn't work with motors idle or active when in this state - I discovered this after starting a new print and having my hotend crash into my build plate.

    Will check the mod pin thing when I have a chance. Though I should note that's what the config tool spat out to me when I selected a bltouch.

  • Moderator

    Yes the config tool has the mod pin selected by default. It's on the list to change. Only analogue probes that require modulation use it.

    Can you try creating a cancel.g file? Either blank or with some sort of commands on what to do after cancelling.

    Here's mine as example

    ; 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
    M290 R0 S0 ; clear babystepping
    M204 P1000 T4000	; Set printing and travel accelerations
    M566 X900 Y900 Z30 	; Set maximum instantaneous speed changes (mm/min) (Jerk)
    G28 XY			; home XY
    M98 P"0:/sys/CurrentsNormal.g" ; return motor currents to normal
    M98 P"0:/sys/ZSpeedsNormal.g" ; return Z axis speeds to normal
    M84			; turn off steppers
    G4 S60			; wait 1 minute for nozzle to cool
    M107			; turn off the fan
    M98 P"0:/macros/Musical Tunes/TwoBits.g" ; play a tune

  • A blank cancel.g and the M558 adjustments result in no change.

  • Moderator

    What version of BLtouch is it by the way?

  • @Phaedrux A 3.1, genuine.

  • administrators

    Looks like you have a lot of stepper motor noise in your system. How have you connected the BLTouch to the Duet WiFi, in particular the two ground wires?

  • Both ground wires are connected as described by the z-probe setup guide

    But your comment on stepper noise had me thinking:
    "If it's stepper noise, why does it only occur after cancelling a print, and not when I'm swinging the effector around beforehand"

    Which led me to the root cause of my issue, my extruder stepper. Specifically (I guess), the hold current.

    I tested this with manual control. BlTouch pin down, up. Works great.

    Extrude 1mm, command BLTouch, no result.

    Issue a M18 E0, bltouch immediately follows the last command sent.

    So looks like my extruder stepper is the noisy one. This makes sense, following wire routing.

    For now I guess I'll just issue a M18 within my cancel.g.

    Unsure what would have caused this to only act up starting with RRF 3.1.1 - perhaps the configurator has a higher default extruder current than it did the last time I ran it?

Log in to reply