BLtouch responds to commands, does not trigger



  • I have a BLtouch v3.1 in open drain mode connected to my duet 1.02 on zprobeIN and zprobeGND. Using the config.g posted below, I can put down and pull up the probe but I cannot get the probe to show anything other than 0 all the time. What am I missing?

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 26 2020 00:58:29 GMT-0500 (Eastern Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"foamboard forge" ; set printer name

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P5 S1 ; physical drive 5 goes forwards
    M569 P6 S1 ; physical drive 6 goes forwards
    M584 X0 Y1 Z2 E5:6 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E824.00:824.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z1800.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; 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 Y300 Z350 S0 ; set axis maxima

    ; Endstops
    M574 X1 S0 P"xstop" ; configure active-low endstop for low end on X via pin xstop
    M574 Y1 S0 P"ystop" ; configure active-low endstop for low end on Y via pin ystop
    M574 Z1 S0 P"zstop" ; configure active-low endstop for low end on Z via pin zstop

    ; Z-Probe
    M950 S0 C"duex.e3heat" ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-40 Y-10 Z2.5 ; set Z probe trigger value, offset and trigger height
    M557 X15:215 Y15:195 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"e0heat" T0 ; create bed heater output on e0heat and map it to sensor 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    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
    M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin duex.e2temp
    M950 H1 C"duex.e2heat" T1 ; create nozzle heater output on duex.e2heat and map it to sensor 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"duex.fan5" Q500 ; create fan 0 on pin duex.fan5 and set its frequency
    M106 P0 C"part cooler" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off
    M950 F1 C"duex.fan4" Q500 ; create fan 1 on pin duex.fan4 and set its frequency
    M106 P1 C"hotend" S0 H1:1 T30 ; set fan 1 name and value. Thermostatic control is turned on
    M950 F2 C"duex.fan3" Q500 ; create fan 2 on pin duex.fan3 and set its frequency
    M106 P2 C"mcu" S0 H-1 ; set fan 2 name and value. Thermostatic control is turned off
    M950 F3 C"duex.fan6" Q500 ; create fan 3 on pin duex.fan6 and set its frequency
    M106 P3 C"lighting" S1 H-1 ; set fan 3 name and value. Thermostatic control is turned off

    ; Tools
    M563 P0 S"hotend" D0:1 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
    M568 P0 S1 ; enable mixing for tool 0
    M567 P0 E0.5:0.5 ; set mixing ratios for tool 0

    ; Custom settings
    M308 S2 P"duex.e3temp" Y"thermistor" A"chamber temp" T100000 B3988 C0 R2200 ; chamber temperature sensor
    M307 H0 A77.5 C296.9 D3.8 C24.1 B0 ; calibrate bed heater
    M307 H1 A348.9 C165.7 D3.7 C24.2 B0 ; calibrate hotend heater

    ; TODO
    ; When a seperate lighting control method is found, break lighting out from fan controls


  • Moderator

    @Mentaluproar

    First, are you definitely using RepRapFirmware 3? Send M115 and post response. And you have a Duex5 connected?

    Check wiring. See https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Duet_2_WiFi_Ethernet_with_Duex_2_or_Duex_5_expansion_board

    For the probe input, you only need zprobe.in, which needs to be inverted. From https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Software_setup_RepRapFirmware_Num_3

    1. The Z probe input pin will be zprobe.in on a Duet 2 ... If using zprobe.in, you need to enable the pullup resistor using the ^ character in front of the pin name.

    So config.g should look like:

    ; Z-Probe
    M950 S0 C"duex.e3heat"                         ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F120 T6000             ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-40 Y-10 Z2.5                        ; set Z probe trigger value, offset and trigger height
    

    If that doesn't help, see https://duet3d.dozuki.com/Wiki/BLTouch_Troubleshooting

    Also, are you using the probe for Z homing, or do you have an endstop? If using Z probe for homing, delete M574 Z1 S0 P"zstop" line, which defines a Z endstop. Check your homing gcode files use G30, not G1 H1 Z moves, for homing Z.

    Ian



  • This works for me on Duet3:

    M558 K0 P9 C"^io4.in" H5 A5 T6000 S0.02   ; Z probe BLtouch - Set the height of the bed when homing G28.  Combined with content of bed.g as invoked by G32, levels bed. Also used for Mesh.  
    		                            ; Hn = dive height
    			                    ;   A bigger dive height prevents a situation where the bed is out of alignment by more than the dive height
                                                ;   on any corner, which can crash the hot-end into the bed while moving the head in XY.
                                                ;   Probing speed and travel speed are similarly reduced in case the Z probe isn't connected properly (or
                                                ;   disconnects later after moving to a point) giving the user more time to stop.
                                                ; An = Number of times to probe each point. 
                                                ; Tnnn = Travel speed between probe points. 
                                                ; Snnn = Tolerance when probing multiple times. Two readings inside this window and we move on. 
    G31 K0 X0 Y0 Z0                           ; Ensure probe has no offsets 
    M950 S0 C"^io4.out"                       ; Servo Control Pin for BLtouch. 
    

    Also define 'deployprobe.g' with one line M280 P0 S10 and 'retractprobe.g' as M280 P0 S90. Be sure these are in /sys.

    As mentioned, be sure various files use G30. Here is my homez.g:

    ; Home Z Axis
    
    G90 G1 X150 Y150 F10000   ; Move to the center of the bed
    
    M558 F500                ; Set the probing speed
    G30
    M558 F50                 ; Set a slower probing speed
    G30
    


  • @droftarts
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.0 ELECTRONICS: Duet WiFi 1.02 or later + DueX2 FIRMWARE_DATE: 2020-01-03b3

    I use the endstop and the probe. I tried your changes but they don't make a difference. It doesn't care if the probe is touching or not. I'm wondering if the probe connector on the board is damaged somehow. I'll look at homing later since right now it works. Everything works except for tripping the bltouch. It's totally blind.



  • I 've done some poking around and found that I wont be able to see the pulse with a simple multimeter because its much faster than the sampling of the meter would allow it to detect, and an M119 won't show it for the same reason. The probe should also retract when triggered from what I'm seeing online. It isn't.

    I set it the servo angle 10 command and the probe popped out. When I activate it, it tries to push it out and if I push too far up, I get a warning flash. If I send that same command but follow it with a servo angle 0 command, the probe will detect being pushed in a bit but will not react to it.

    Either the duet is supposed to see this and then tell the probe to retract or the processor in the probe itself is supposed to retract when it senses the trigger point. The duet cannot tell the servo to do anything without either I telling it to do so, which works, or some other condition telling it to do so, which does not work.

    So right now I think I'm looking at a defective bltouch.

    EDIT: The wiki shows the M558 command before the M950 command. I changed my config to match this but it didnt have any effect.



  • @Mentaluproar said in BLtouch responds to commands, does not trigger:

    I 've done some poking around and found that I wont be able to see the pulse with a simple multimeter because its much faster than the sampling of the meter would allow it to detect, and an M119 won't show it for the same reason. The probe should also retract when triggered from what I'm seeing online. It isn't.

    If/when it does retract, the trigger stays. It will show up on the "Probe" in DWC, or with a meter or whatever. See below.

    I set it the servo angle 10 command and the probe popped out. When I activate it, it tries to push it out and if I push too far up, I get a warning flash.

    It should retract, and give a continuous signal.

    the processor in the probe itself is supposed to retract when it senses the trigger point.

    Correct.

    So right now I think I'm looking at a defective bltouch.

    Maybe.

    Send M280 P0 S160. This "resets" the BLtouch. Then send M280 P0 S10. Then touch it and see if it retracts and outputs a solid signal (and the body of the BLt will be solid red, not blinking).

    Be a little reluctant to sent anything but 10 (down), 90 (up) , and 160 (reset). Some other codes "reprogram" the touch for unhoopy things like 5V output, etc.



  • FOUND THE PROBLEM!

    Either my zprobe connector is shot on the duet, or it was pissed I was probing on the duet when the PWM signal was on the duex2. Moving it over to duex.gp1 fixed it. I did have to enter this manually though, as reprapconfigurator does not currently let you assign a gpio pin as zprobe in.


Log in to reply