BL Touch not stopping when triggered

  • I can command the BLT to do up, down, self test and reset. It will go up when touched, however it will not stop when triggered. The directions I have are as follows;

    BL-Touch to Duet WiFi/Ethernet Controller Pinout:
    Brown (GND) - Expansion Pin 2
    Red (+5V) - Expansion Pin 1
    Orange (control signal) - Expansion Pin 8 should this be PIN21 per the BLTouch working thread?
    Black (GND) - NOT USED
    White (Z min) - E0 STOP
    NOTE: You MUST break the trace on the BL-Touch's main board that's labelled "LOGIC" to enable 3.3v logic which is required for the Duet WiFi/Ethernet. You can do this by using a sharp X-acto blade. You can reverse this down the road by creating a solder bridge between the two solder pads that connected the trace. (make it work for 3.3v on new model)

    This is what is configured;
    ; BL-Touch
    M307 H3 A-1 C-1 D-1 ; reserve pin 21 for M42 or servo use
    M558 P4 X0 Y0 Z1 H20 F200 T5000
    G31 P25 X0 Y0 Z1.3 ; Set Z probe trigger value, offset and trigger height

    Is the F the frequency, and may need set lower to allow the board to read it? What other reasons would allow it to not stop?

  • I just finished setting up a BLTouch yesterday, on a Duet Ethernet, and it works fine for me.

    I can confirm that the correct PWM pin for the Duet Wifi or Duet Ethernet is pin 8. You can see it on the Duet Wifi wiring diagram, pin 8 is Heater 3. Since you can control the BLTouch pin via Gcode, we know that part of your setup is correct.

    I used probe type 5, not 4, so I had to connect it to the ZProbe input instead of E0 STOP.

    M307 H3 A-1 C-1 D-1                             ; reserve heater 3 (pin 8) for BLTouch PWM
    M558 P5 X0 Y0 Z1 H5 F100 T2000                  ; use Zprobe input pin for  
    G31 X-9 Y-50 Z1.20 P25                          ; Set the probe XY offset, Z height and signal threshold

    You can check if the trigger signal reaches the Duet by extending the pin via M280 P3 S10 I1 (or even M401), then putting the BLTouch in test mode with M280 P3 S60 I1. The Machine Status panel of DWC should show a Z-Probe value of 0 when the pin is extended. Lightly touch the pin on the BLTouch to retract it, DWC should turn red and show a Z-Probe value of 1000. This test state is reset the next time you send a BLTouch command.

    Without changing your config and your wiring, I guess you could check the status of E0 in the Machine Properties tab of the Settings, and do the same test with M401 + M280 P3 S60 I1 to see the BLTouch signal in the endstop column.


  • okay it a just touch it, it will go up and come right back down. if I touch it and make it stay up I get the red 1000, but it goes into alarm mode and needs reset. Otherwise I don't get it. I wonder if the adjustment screw on top needs adjusted since its now on 3.3v vs the 5v it had before. Also I find it odd that the ground isn't hooked up for the wire going to the E0.

  • OK on a lark I ran a G32 with my hand on the power switch and it seems to be working. the deviation is a little high i think @ 0.236, but its a start.

  • Ground is ground, it doesn't matter where you get it in this case. There are two Ground wires coming out of the BLTouch, you can use either one, they are the same thing, this is just for convenience.

    You didn't say if you had an older or a newer BLTouch. Mine is an old one (requires the 240 ohm resistor in parallel with GND on the endstop signal wire as seen here). There is nothing else to adjust with regards to 5V or 3.3V, at least on the old ones.

    If you can control the BLTouch pin up/down, and see the red 1000 when the pin is up (with M402 and M280 P3 S60 I1, don't force it up), then you can be sure your wiring is OK and the problem is elsewhere. What I put above was all I needed to get the BLTouch to work for me.

    It is strange that your BLTouch pin is coming back down, this does not happen for me from the Gcode console. If I do M401 the pin goes down, and if I touch the pin it retracts and stays up until I send more Gcode that changes the pin state (homing, printing, explicit M401 or M280…).


  • are you trying to home the printer with the Z probe?

    in your homeall.g and homez.g files what is the command you use when telling the printer to dive for the Z height?

    you should probably look at

    If you are jsut testing the probe, the standard motion of the probe is to trigger and drop back down, so that it is ready to probe the next point. At the end of any probe using script you must use the Gcode to store the probe or use a macro like retractprobe.g that has the store gcode in it to retract the probe back up to get it out of the way.

  • @Sniffle:

    If you are jsut testing the probe, the standard motion of the probe is to trigger and drop back down

    Right, but it is generally unwise to test a Z probe by issuing a G29 or G32 and hoping for the best 😉

    If I find some time I will update the wiki because the secret to debugging the BLTouch is to use its test mode, this is not mentioned in the BLTouch setup thread. When probing the trigger signal is too short to be visible from DWC so you don't know if you got it right or not.


  • administrators

    Hi Fulg you mention updating the Wiki, I am happy to do this but without a BLtouch I am not exactly sure what needs to change. Do you mind letting me know (in this thread is fine) and I will make the updates, otherwise you can update the wiki directly if you like.



  • Hey Tony. For one there is no mention of the proper commands to send (inverting the signal polarity is mandatory, i.e. M280 P3 S10 I1). It is also not mentioned that you should set up deployprobe.g and retractprobe.cfg to M280 P3 S10 I1 and M280 P3 S90 I1 respectively. I also wanted to add that you can test the BLTouch before probing by issuing M280 P3 S60 I1, which makes it maintain the signal forever instead of the normal 5ms pulse during homing/probing, so you can see the output in DWC.

    Most of the troubles I had setting up my BLTouch is that the only documentation is the Wiki and that 8-page thread, which does not give the complete answer to all setup questions until about page three. 🙂

    I think some of the confusion also comes from the fact that the initial set up was done on an older Duet; as you can see in the very first post of this thread people are still unsure which pin should be used for the servo PWM.

    I can let you make the edits if you prefer, I guess you are worried about my low comment count, I can understand that…

    EDIT: fixed the deployprobe.g and retractprobe.g sequences, that's what I get for repeating them from memory.

  • Just as an added data point, I have a BLTouch working in my printer, using Mode 5, and the probe input connector.

    I used the connections as shown in the chart in the wiki, but did have to install the resistor across the probe pins, and had the pins reversed on the probe connector the first time I tried it.
    Once I got that straightened out, it has worked, other than my slow approach to wrapping my head around the probing g-code commands.

    I did notice that the normal operation of my probe is that when it touches the surface and triggers, it will click up to the retracted position with the light lit, and then extends again automatically.
    The only time it stays retracted is when I send the probe retract command, or it goes into error when it can't fully extend again after being triggered.

  • If you extend the BLTouch pin with M280 P3 S10 I1 (or M401 if you set up your deployprobe.g correctly), then touch the pin to make it retract, it will not come back down. This is different than when doing probing, in which case the firmware itself is redeploying the pin to be ready for the next probe point.

    The BLTouch itself does not know you are probing, it is just a sensor. As far as it knows it was asked to redeploy after a trigger and the pin was blocked from doing so, either due to not enough clearance to fully extend or some other obstruction, therefore it switches to its error mode.


  • I do have it working now, I adjust the screw a 1/4 turn and it is behaving normally.

    Sniffle, I have a Delta, it does a home all to max only.

    T3P3Tony, I have 2 codes you can add to the file, I tested them, and set them up as Macros.
    Alarm Release: M280 P3 S160 I1
    BLT Self Test: M280 P3 S120 I1
    note the pin inversion

  • Ive had my bltouch setup for so long now I have to refer back to the large post i made on the original BLTouch forum post, as well. Mine is still setup on P4 as well… I just havent seen the need to change it. If i remeber correctly I made that post as a type of overall information gather for the wiki page. I'm sure some of it needs to be updated to be correct, which I think is the parts already on the wiki.

  • Grr This is back again, it seems to work when I manually trigger it with my finger, but as soon as I try to probe the bed it won't trigger. I checked my wires and they are all where they should be, and I haven't touched the bed probe, or any of my marcos.

  • When I run M114 with the pin up or down the result is the same. "X: 0.000 Y: 0.000 Z: 0.000 E0: 0.0 E1: 0.0 " one of the E should change. I lowered my trigger in G31 to 20, no effect, and tried to change the type from P4 to P5. the sensor was constantly triggered and never off.

  • administrators

    Whether you need type P4 or P5 in your M558 command depends on whether you have connected the probe output to the E0 endstop input or the Z probe input.

  • @dc42:

    Whether you need type P4 or P5 in your M558 command depends on whether you have connected the probe output to the E0 endstop input or the Z probe input.

    I get that but I haven't been able to get it to work with either set of setting so far.

  • I'm having the same issue

  • administrators



    Whether you need type P4 or P5 in your M558 command depends on whether you have connected the probe output to the E0 endstop input or the Z probe input.

    I get that but I haven't been able to get it to work with either set of setting so far.

    How have you connected it to the Duet? See and

  • Found out my issue was because I had the probe wires backwards in the Z probe header. Reversed them and it works like a charm. Doing my first calibration print now.

  • Hi Everyone,

    First of all thanks to everyone that posts here. I finally got me wiring correct and learnt about the S60 test mode. Unfortunately, what to do when S60 does not produce a 0 value is not covered anywhere, that I have found.

    Getting my BLTouch to register that the probe has been triggered on my Duet 0.8.5 board is where I am currently at and looking for advice.

    Connected the servo leads to pins 1, 2 and 21.
    Probe leads, White - Zin/ AD12 and Black - GND.

    Config.g is setup as:
    M307 H3 A-1 C-1 D-1 ; reserve heater 3 (pin 😎 for BLTouch PWM
    M558 P5 X0 Y0 Z0 H5 F100 T2000 ; Z0 for delta
    G31 X0 Y0 Z0.3 P25 ; Set the probe XY offset, Z height and signal threshold

    BLTouch retracts and deploys twice on power cycle and Red LED stays lit.

    When deployed:
    M280 P3 S10 I1; Red LED is unlit, Probe extended and Prove voltage in 0 v
    M119 ;Endstops - X: not stopped, Y: not stopped, Z: not stopped, Z probe: at min stop
    DWC - Z Probe Red 1000 value

    When in test mode and probe triggered:
    M280 P3 S60 I1; Red LED is lit, probe stays up, Probe voltage is 2.9 v
    M119 ;Endstops - X: not stopped, Y: not stopped, Z: not stopped, Z probe: at min stop
    DWC - Z Probe Red 1000 value

    Expected behaviour:
    M119 - should show Z probe triggered
    DWC Z Probe value should be 0


    Is the Z Probe voltage of 2.9 v too low for the Duet electronics to register that the Z Probe has been triggered? If, so, then what trigger voltage is required for the Z Probe?

    Additionally, is there a "pull-up" resistor that needs to be set on the Z-Probe in config.g that I am not setting that is causing this behaviour?

    Firmware Version: 1.19beta10+2 (2017-07-20)
    Web Interface Version: 1.17+1

    Thanks, Andrew

  • administrators

    I think 2.9V should be plenty. You do not need to configure a pullup resistor.

    If you are getting 0V out of it when it is not triggered and 2.9V when triggered, and you have connected that output pin to the IN pin of the Z probe connector on the Duet 085, then it should indicate "Z probe: not triggered" when it is not triggered and "at min stop" when it is triggered. Check that the output wire it making contact with the Z probe connector IN pin.

    You could also try Z probe type P1 in the M558 command and look at the Z probe reading in DWC. It should be close to 0 when not triggered, and about (2.9/3.3)*1024 = 900 when triggered.

    HTH David

  • David,

    Is Zin - AD12 on the wiring diagram? From here,

    P1 it is, as simple as that! I get 920 when triggered and 0 when not.

    The probe is probing away - the end of the probe is a little high - nozzle is hitting the bed at some points, but I am super excited to see the probe in action!! It has been a few months of trying things, mistakenly putting the servo signal in pin 19, didn't help either.

    Regards, Andrew

  • administrators

    Yes, Z Probe In is AD12, at one end of the Z probe connector.

    I still don't understand why P5 didn't work for you, unless you are using a very old version of RepRapFirmware (1.18.2 is latest stable, and 1.19RC4 is latest edge).

Log in to reply