Useful or not, from you.
Marlin [BUG] BigtreeTech SKR 1.3 3DTouch (Geeetech) not working

<!--

Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/master/.github/code_of_conduct.md

Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/.

Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to see whether the issue is already addressed.

-->

Description

I have an SKR 1.3 board and a 3DTouch (Geeetech "original") sensor. I have the same type of sensor working with Marlin on a GT2560 A+ board, although not the same piece.

What works:

  • The servo part and the 3D Touch control is working well: I can stow and unstow with M commands, pins move, it reacts to sensing (pulls the pin back). The wiring for the servo is easy: there is a servo connector on the SKR 1.3 board, I just had to make sure the pin order was correct (+5V, GND, Servo).

  • However, I have just struggled with the actual sensing. It's not getting triggered. I compiled Marlin with the PIN debug option, and there is actually one constellation which "almost" works: -- I plugged the touch sensors into Z MIN (black to GND, middle pin, white to signal pin) -- Z_MIN_ENDSTOP_INVERTING = false // as default -- ENDSTOPPULLUP_ZMIN_PROBE defined -- ENDSTOPPULLUP_ZMIN defined

I have tried inverting as true and also as false (the true is tricky because BLTOUCH define overrides it in another file, but I removed that override).

I got as far as:

  • If inverting = true, then M43 S shows:
Servo probe test
. using index:  0, deploy angle: 10, stow angle:   90
. Probe Z_MIN_PIN: 57
. Z_MIN_ENDSTOP_INVERTING: true
. Check for BLTOUCH
. Deploy & stow 4 times
WARNING: INVERTING setting probably backwards.
** Please trigger probe within 30 sec **
. Pulse width (+/- 4ms): 6
FAIL: Noise detected - please re-run test
ok

If inverting = false, then M43 S returns:

Servo probe test
. using index:  0, deploy angle: 10, stow angle:   90
. Probe Z_MIN_PIN: 57
. Z_MIN_ENDSTOP_INVERTING: false
. Check for BLTOUCH
= BLTouch Classic 1.2, 1.3, Smart 1.0, 2.0, 2.2, 3.0, 3.1 detected.
** Please trigger probe within 30 sec **
. Pulse width (+/- 4ms): 4
FAIL: Noise detected - please re-run test
ok

The interesting bit as that it is not noise what it's detecting, that's my actual touch detected. I'm starting to be out of ideas, spent hours on the net googling, got some tips, none worked.

Configuration.zip

That's a useful answer
Without any help

@john4242 any thoughts on why I would experience a successful safe homing, but a failed probing after the first touch after making the adjustments then?

Yes. Probably because you didn't set the servo timeout. That is: #define SERVO_DELAY { 750 }

If you enable the debug trace, you will see that after the first touch it tries to stow (and physically succeeds), but the firmware still thinks the "stow" failed.

To enable trace:

  • #define DEBUG_LEVELING_FEATURE
  • Issue the command: M111 S32 This will make Marlin output a lot of trace data about probing. That might help.