bltouch clone , delta printer, z-min end-stop trigger

edited May 2018 in General
Hello, I have very strange issue.
Recently bought BLTouch sensor , reconfigured repetier 1.0.2 to enable servo and all the rest. It works fine but there is a catch. I'm not sure yet the issue but wanted to ask here first. Sometimes when doing G29 or G32 and the head start to lower down for probing the point (doing bilinear 3 point), the bltouch trigger, but head continue to move down and crash on bed. This happen ONLY sometimes :)

So at first it seems somehow either signal is not detected correctly from arduino - ie HW issue with my board or the software can not catch the signal at that time.
Is it possible that arduino miss the signal ? Is it possible a software issue preventing the HIGH peak (sometimes) to be detected and z-min endstop is not trigger ?

Here are more details. 

The seller of the probe says  the hall sensor output is directly connected to the output and the normal output state when bltouch pin is down (ready for probing) is LOW. I've connected an oscilloscope to the output pin of bltouch and monitor it constantly. When I push the pin up, it retracts, and I can see on scope the HIGH peak for some 5 ms. My z-min endstop is configured as 'Switch on GND normally closed'. And z-probe is set to TRIGGER_ON_HIGH.

For this I've slowed the probing speed to 2mm/s only to be able to catch the issue on time and prevent crashing the nozzle on bed (if that happens) using hard power off.

I'm currently testing it for HW issue - connected small voltage buffer/follower using J-FET so I can be sure the signal is good enough. But please elaborate on the software part if possible to miss endstop trigger.

Please help on this. 


  • Change endstop type to electronic to disable the arduino's pull-up resistor.

  • Hello here is part of my Configuration.h related to z-probe and z-min endstop

    #define ENDSTOP_PULLUP_Z_MIN false
    #define ENDSTOP_Z_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Z true


    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 1

    Seems sane to me ? Maybe crosstalk ?

  • I've recorded a video at 60fps where is clearly visible the probe when doing G29 and a scope showing the signal. Scale is at 5ms. It does do fine a G29 once (full 3 points) then on the second G29 when probe lower for first point you can see on scope the high signal but no action from firmware also you can hear the second hit of pin on the glass as the nozzle continues to go down instead of going up and for next point.

    Correct me if I'm wrong but It seems to me somehow the z-probe signal 'high' is not detected from firmware. Is the z-probe pin state read continuously inside an interrupt routine ?

    I've also tried to plug the z-probe at x-max, y-min, x-min - with and without hw min endstop defined at all.

    Link to the video:
  • After looking around bit more I've found more information about this issue. Seems marlinfw have had this issue too when endstops are checked in polling mode. Suggested cure is to enable ENDSTOP_INTERRUPTS_FEATURE. Does repetier have such thing too ? 
  • I've switched to 1.0.1dev branch and now things are better. also followed @alexsomesan Configuration.h as listed here

Sign In or Register to comment.