BlTouch Delay Issue
Hey Folks
I hope this problem is not solved already, I didn't find a solution in the forum.
As the title says is the problem, that the Probe finished script is executed befor the bed is far enough!
For this reason the bltouch touches the bed again, which will cause sometimes errors.
I found a video on youtube with the similar problem.
https://www.youtube.com/watch?v=K0nOLraXF0Y
You can cleary see/hear that the bed is touched again.
Is there a possibility to set a delay or fix this problem?
Despite that, the BlTouch is working fine.
kind regards
I hope this problem is not solved already, I didn't find a solution in the forum.
As the title says is the problem, that the Probe finished script is executed befor the bed is far enough!
For this reason the bltouch touches the bed again, which will cause sometimes errors.
I found a video on youtube with the similar problem.
https://www.youtube.com/watch?v=K0nOLraXF0Y
You can cleary see/hear that the bed is touched again.
Is there a possibility to set a delay or fix this problem?
Despite that, the BlTouch is working fine.
kind regards
Comments
I have a cartesian printer but i am moving the bed in z and the head in x/y
Edit:
I thought i can attach the config.h file here
So i will ve to post ist
What I see is that bl touch indicates high with led but firmware doe snot get high signal continuing to move down until bl touch goes into error mode setting it high which firmware sees and goes up. From there on it always goes only up as it is triggered at start. But that is also strange since un runZProbe
Endstops::update();
Endstops::update(); // need to call twice for full update!
if(Endstops::zProbe()) {
Com::printErrorFLN(PSTR("z-probe triggered before starting probing."));
return ILLEGAL_Z_PROBE;
}
would just stop probing if endstop is high.
You should run this with host connected and check error messages.
You may also want to try running it after
M111 S64
which will write endstop changes to console/log. Hope it doe snot crash firmware as it can happen if too many changes happen. But if not it might show what signals the bltouch is sending at which time. But you have to watch it yourself - later we can not make sense of it without knowing what exactly happened on printer side on which message.
I tried to follow your hints but i discoverd a new problem.
After executing "M111 S64" i can't home z anymore.
I have no clue why this happens.
So i made 2 Videos for you guys, before and after executing "M111 S64"
After calling "M111 S64" BL-Touch keeps blinking and i have to reset the printer to proceed.
The console says following commands.
Your first code isn't not calling anything, but perhaps its just my fault and I inserted it wrong.
Here are the videos.
https://www.dropbox.com/sh/k36tjmq5n6o7grd/AAAU_ZtoEEU8yXIJVqPCVBAUa?dl=0
#define Z_PROBE_PULLUP 1
while z min endstop has it false so it is unclear if pullup is on or off. Both need to be identical otherwise last one setting it wins.
M111 S64 can cause a firmware crash if output takes too long which seems to happen. But it has no influence if it would work. I think it is just switching too fast so the crash happens. Output during an interrupt is not allowed for this reason.
Not sure if pullup changes anything.
I changed it, but the problem won't disapear
edit:
took my information from this site:
https://www.antclabs.com/bltouch
edit#2:
The random errors during autobedleveling where effected cause a broken cable.
But the sensor is still "pushed down" too early resulting in hitting the board
Delay is to reemploy the probe I guess. Delay or moving up a bit more is the same. Just needs enough space to reemploy so it must move up 10mm so it does not hit bed on doing so. That is what makes the BLTouch so hard - timings and positions must match to work. But if they do it is good.
but the pin is still released too fast, so i hits the bed while it's moving away
you can here this effect in the video!
i don't think this is how it should work and believe that it depends on the software.
perhaps you can integrate a timing-function in the Firmware, where i can define when the "servo" is pushed back.
that might take some time but you have do delay. Add a G4 P500 to wait a half second after issuing the command. Don't know the sensor but you might also want to add a R300 to M340 to disable servo signal after a while.
Might not be the right spot but that is called when it is finished and then positioning continues so without knowing the time I guess this is the point where you need the pause.
How can i implement two commands?
i guess it should be at:
#define Z_PROBE_FINISHED_SCRIPT "G4 P500 M340 P0 S1500"
but i don't get it, how to write two Commands in one line?
any ideas?
Then i can try on my own to find the right timing spot
#define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1500\nG4 P500"
should do.