BLTouch Trigger not working



  • Hi guys,
    I modified my HEVO to install a BLTouch sensor instead of Inductive sensor on my Duet Wifi.

    Unfortunately I've some problem with the trigger of the sensor, I followed these steps:

    • Black and White wires connected to Z Probe port with a 220 Ohm resistor.
    • Other three wires connected to GND, 5V, Heater 3 pin on expansion header

    I already checked the voltage of black and white wires and, with the resistor of 220 Ohm, is about 2.85V.

    Now, the problem is the following.

    When I power on the printer the probe led is off and If I manually move the probe pin up and down the led go on and off correctly. In DWC I see a 0 in Z Probe trigger.

    If I try to homing all the axis (or Z alone), the probe pin goes down and the BLTouch start to blinking and the homing of Z fails because DWC say that Z Probe is already triggered (I see 1000 in DWC) but the bed has not moved of anything and nothing is touching the probe.

    My configuration is:

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    M561                ; clear any bed transform
    G28                 ; home all axes
    M98 Pdeployprobe.g  ; deploy mechanical Z probe
    ; Probe the bed at 5 points
    G30 P0 X15 Y15 H0 Z-99999
    G30 P1 X15 Y281 H0 Z-99999
    G30 P2 X285 Y281 H0 Z-99999
    G30 P3 X285 Y15 H0 Z-99999
    G30 P4 X150 Y148 H0 Z-99999 S
    M98 Pretractprobe.g ; retract mechanical Z probe
    
    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    
    ; General preferences
    G90                                ; Send absolute coordinates...
    M83                                ; ...but relative extruder moves
    M555 P1                            ; Set firmware compatibility to look like RepRapFirmare
    
    M667 S1                            ; Select CoreXY mode
    
    ; Network
    M550 PDuetWifi                     ; Set machine name
    M552 S1                            ; Enable network
    M587 S"Brisma-WiFi" P"Brisma-WiFi" ; Configure access point. You can delete this line once connected
    M586 P0 S1                         ; Enable HTTP
    M586 P1 S0                         ; Disable FTP
    M586 P2 S0                         ; Disable Telnet
    
    ; Drives
    M569 P0 S1                         ; Drive 0 goes forwards
    M569 P1 S1                         ; Drive 1 goes forwards
    M569 P2 S1                         ; Drive 2 goes forwards
    M569 P3 S1                         ; Drive 3 goes forwards
    M569 P4 S1                         ; Drive 4 goes forwards
    M350 X256 Y256 I0                  ; Configure microstepping without interpolation
    M350 Z16 E16:16 I1                 ; Configure microstepping with interpolation
    M92 X1280 Y1280 Z400 E420:420      ; Set steps per mm
    M566 X900 Y900 Z12 E120:120        ; Set maximum instantaneous speed changes (mm/min)
    M203 X12000 Y12000 Z240 E1200:1200 ; Set maximum speeds (mm/min)
    M201 X1500 Y1500 Z250 E250:250     ; Set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800:800 I30   ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                            ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                   ; Set axis minima
    M208 X300 Y296 Z350 S0             ; Set axis maxima
    
    ; Endstops
    M574 X2 Y2 S1                      ; Set active high endstops
    
    ; Z-Probe
    M574 Z1 S2                         ; Set endstops controlled by probe
    M307 H3 A-1 C-1 D-1                ; Disable heater on PWM channel for BLTouch
    M558 P9 H5 F240 T6000              ; Set Z probe type to bltouch and the dive height + speeds
    G31 P25 X20 Y-1 Z0                 ; Set Z probe trigger value, offset and trigger height
    M557 X15:285 Y15:285 S20           ; Define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                   ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 C0 R4700     ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                       ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 R4700     ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                       ; Set temperature limit for heater 1 to 280C
    
    ; Fans
    M106 P0 S0 I0 F500 H-1             ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H-1             ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F500 H-1             ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 D0 H1                      ; 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
    M563 P1 D1 H1                      ; Define tool 1
    G10 P1 X0 Y0 Z0                    ; Set tool 1 axis offsets
    G10 P1 R0 S0                       ; Set initial tool 1 active and standby temperatures to 0C
    
    ; Automatic saving after power loss is not enabled
    
    ; Custom settings are not configured
    
    ; deployprobe.g
    ; called to deploy a physical Z probe
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    M280 P3 S10 I1
    
    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    G91                   ; relative positioning
    G1 Z5 F6000 S2        ; lift Z relative to current position
    M98 Pdeployprobe.g    ; deploy mechanical Z probe
    G1 S1 X305 Y301 F4200 ; move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X305            ; home X axis
    G1 S1 Y301            ; home Y axis
    G1 X-5 Y-5 F6000      ; go back a few mm
    G1 S1 X305 F360       ; move slowly to X axis endstop once more (second pass)
    G1 S1 Y301            ; then move slowly to Y axis endstop
    G90                   ; absolute positioning
    G1 X-5 Y16 F6000      ; go to first bed probe point and home Z
    G30                   ; home Z by probing the bed
    ;G1 Z5 F100 S2        ; uncomment this line to lift the nozzle after homing
    
    M98 Pretractprobe.g   ; retract mechanical Z probe
    
    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    G91              ; relative positioning
    G1 Z5 F6000 S2   ; lift Z relative to current position
    G90              ; absolute positioning
    G1 X-5 Y16 F6000 ; go to first probe point
    G30              ; home Z by probing the bed
    
    ; Uncomment the following lines to lift Z after probing
    ;G91             ; relative positioning
    ;G1 Z5 F100 S2   ; lift Z relative to current position
    ;G90             ; absolute positioning
    
    ; pause.g
    ; called when a print from SD card is paused
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    M83            ; relative extruder moves
    G1 E-10 F3600  ; retract 10mm of filament
    G91            ; relative positioning
    G1 Z5 F360     ; lift Z by 5mm
    G90            ; absolute positioning
    G1 X0 Y0 F6000 ; go to X=0 Y=0
    
    ; resume.g
    ; called before a print from SD card is resumed
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
    G1 R1 X0 Y0          ; go back to the last print move
    M83                  ; relative extruder moves
    G1 E10 F3600         ; extrude 10mm of filament
    
    ; retractprobe.g
    ; called to retract a physical Z probe
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jun 18 2018 22:22:04 GMT+0200 (CEST)
    M280 P3 S90 I1
    

    What can I do?



  • If can be useful the result of M122 is the following:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 2.0(RTOS) running on Duet WiFi 1.02 or later
    Board ID: 08D4M-999N9-JD3S8-6J1FG-3S86R-13Q9N
    Used output buffers: 3 of 20 (9 max)
    === RTOS ===
    Static ram: 28380
    Dynamic ram: 96108 of which 16 recycled
    Exception stack ram used: 508
    Never used ram: 6060
    Task NETWORK ready, free stack 396
    Task HEAT blocked, free stack 1256
    Task MAIN running, free stack 3560
    === Platform ===
    Last reset 00:08:18 ago, cause: software
    Last software reset at 2018-06-18 23:13, reason: User, spinning module GCodes, available RAM 6316 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0041f000, BFAR 0xe000ed38, SP 0xffffffff
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms
    MCU temperature: min 38.9, current 40.4, max 40.8
    Supply voltage: min 23.9, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0
    Driver 0: standstill, SG min/max 0/215
    Driver 1: standstill, SG min/max 0/116
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2018-06-18 23:21:33
    Slowest loop: 48.64ms; fastest: 0.07ms
    === Move ===
    Hiccups: 55318, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm 237, MaxWait: 2982539784ms, Underruns: 0, 0
    Scheduled moves: 9, completed moves: 9
    Bed compensation in use: none
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 62.03ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    - WiFi -
    Network state is running
    WiFi module is connected to access point 
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.21
    WiFi MAC address 60:01:94:7e:eb:98
    WiFi Vcc 3.42, reset reason Turned on by main processor
    WiFi flash size 4194304, free heap 15800
    WiFi IP address 192.168.0.35
    WiFi signal strength -50dBm, reconnections 0, sleep mode modem
    Failed to request ESP stats
    Socket states: 0 0 0 0 0 0 0 0
    === Expansion ===
    


  • Hi,

    When you power on your duet, is the BL-Touch doing a self test? Deploy/Retract several times.

    If you have a newer BL-Touch you won't need the 220Ohm resistor any more.

    You also don't have to call deployprobe.g and retractprobe.g manually, G30 will do this for you.



  • @mloidl said in BLTouch Trigger not working:

    Hi,

    When you power on your duet, is the BL-Touch doing a self test? Deploy/Retract several times.

    If you have a newer BL-Touch you won't need the 220Ohm resistor any more.

    You also don't have to call deployprobe.g and retractprobe.g manually, G30 will do this for you.

    No, at power on the BLTouch seems "normal", no self test and no led powered. Only if I move the probe up and down manually the led blink.

    I'm not using an original new BLTouch, but a 3DTouch (that was working correctly on the old i3).



  • Since you're not using an original BL-Touch i'm not sure if the start-up behavior is correct or not.
    But what i've read is that the controlling the 3DTouch should be the same as for the BL-Touch.

    Can you deploy/retract the probe when sending M280 P3 S10 I1 / M280 P3 S90 I1, directly?

    Maybe you can try to not invert the Servo-Signal. Remove 'I1' from M280.



  • @mloidl said in BLTouch Trigger not working:

    Since you're not using an original BL-Touch i'm not sure if the start-up behavior is correct or not.
    But what i've read is that the controlling the 3DTouch should be the same as for the BL-Touch.

    Can you deploy/retract the probe when sending M280 P3 S10 I1 / M280 P3 S90 I1, directly?

    Maybe you can try to not invert the Servo-Signal. Remove 'I1' from M280.

    I tried sending the gcode manually, but immediately the led of the sensor started to blinking on and off without moving the probe and in DWC there was a constant 1000 as value of the trigger. It continued to blinking (and the trigger value remained 1000) until I restarted the printer power on/off.

    After the restart the led was off with the probe down, on if the probe was up with a trigger value of 0 in DWC... until I resend the gcode 🙂



  • A blink LED normally indicates an error.

    Have you tried removing the I1 from the M280 command.
    On my BL-Touch i had to add I1 because it was blinking without it. Maybe that's different for the 3DTouch.



  • @mloidl said in BLTouch Trigger not working:

    A blink LED normally indicates an error.

    Have you tried removing the I1 from the M280 command.
    On my BL-Touch i had to add I1 because it was blinking without it. Maybe that's different for the 3DTouch.

    Yes, I tried all these combinations:

    • M280 P3 S10 I1
    • M280 P3 S10
    • M280 P3 S90 I1
    • M280 P3 S90
    • M280 P3 S160 I1
    • M280 P3 S160

    The result is always the same: blinking led.



  • Currently i'm out of ideas.

    Maybe it's an wiring issue or 3DTouch does not behave like BL-Touch.



  • Try adding I1 to your m558 command for the 3d touch. It may behave differently than the BLTouch.

    How is it wired?

    Is the pin clean and straight? Does it move freely by hand?



  • After many tries I found something of interesting 🙂

    When I power on the printer, I have to move the pin probe up (if it's down) and send a M280 P3 S160 I1 to "unlock" the sensor. After this, I can send all the commands to move the probe pin or to self-test (with the I1).

    But if I power on the printer and the probe pin is down the command with S160 will not work and the sensor will start to blinking in error.

    So, the simplest solution is to move the pin up before send any command, followed by the "unlock" command (M280 P3 S160 I1).

    I modified all my homing config adding the unlock command before any commands, just to be sure that it's not locked in error before the homing.

    Now, the question is: the command M280 P3 S160 I1 should not move the pin up automatically? Because it's not always working 😞



  • Sounds like your pin probe needs adjusting, on the bltouch this is done via the small grub screw on the top to set the correct pin height.



  • @boldnuts said in BLTouch Trigger not working:

    Sounds like your pin probe needs adjusting, on the bltouch this is done via the small grub screw on the top to set the correct pin height.

    But now is working correctly the trigger, are you sure I need to adjust the probe calibration?



  • Does it do the correct up/down bit on power up self test, if so the pin should stay in the up position after this, mine does and I don't need to move it up or down via any commands for it to work.



  • I had a similar issue at first. The pin ended up being a little dirty and would stick a bit causing it to go into error immediately at startup because it couldn't drop consistently. I ended up taking the pin out and cleaning it with a bit of alcohol and some high grit sandpaper. It moved smoothly after that.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.