I’m unable to get the detection of pinup working with a 3D Touch (clone) sensor. I know this is mostly caused because of a wiring issue. However, I tested the sensor with Arduino code (on an Arduino of course) and then it works as expected. There’s probably something wrong with my config but I’m unable to find it.
I went over the documentation of the clones to find out what I need in my config. I’m using an SKR 2 with the following section for the BLTouch:
[bltouch]
# Pins from the manual of BTT
sensor_pin: ^PE4 # Probe: Pull-up (^ symbol) needed in open drain mode
control_pin: PE5 # servo
One can test for these devices - move the head far from the bed, run BLTOUCH_DEBUG COMMAND=pin_down , verify the pin has moved down, run QUERY_PROBE , verify that command reports “probe: open”, run BLTOUCH_DEBUG COMMAND=pin_up , verify the pin has moved up, and run QUERY_PROBE . If the pin remains up, the device does not enter an error state, and the first query reports “probe: open” while the second query reports “probe: TRIGGERED” then it indicates that pin_up_reports_not_triggered should be set to False in the Klipper config file.
This test I’m unable to achieve the triggered status. No matter what I tried.
[bltouch]
sensor_pin = ^PC0 # Pin of the Z-Endstop // Try with and w/o ^ // Used together with respective GND
control_pin = PE5 # Should be correct if you use the servo port. Verify wiring
#probe_with_touch_mode: False #Play around. See documentation
#pin_up_reports_not_triggered: True #Play around. See documentation
#pin_up_touch_mode_reports_triggered: True #Play around. See documentation
x_offset = 25
y_offset = 12
z_offset = 0
[safe_z_home]
home_xy_position: 100,100 #Define probing location in the middle of your bed
speed: 50
z_hop: 10
z_hop_speed: 5
The servo is correct, it responds to the pin_up and pin_down as expected.
I was still unable to perform the tests like described in the documentation. Still not triggering when querying for the status.
I gave it a try in homing the z-axis while resting on the power switch and somehow this works like it should without extra options. It’s strange the tests are not working while the real time stuff works. Maybe I’m doing things wrong with my timings?
Anyway, thanks a lot for your effort. It probably worked from the beginning then… It also works with the official probe connector.
What is the exact procedure of the initial tests?
When I execute the touch_mode then I enter the query command and hit the enter key immediately after I touched the pin.
BLTOUCH_DEBUG COMMAND=pin_down BLTOUCH_DEBUG COMMAND=pin_up
these commands will only move the pin without “arming” the touch sensor, i.e. the BLTouch will not react to the touch
BLTOUCH_DEBUG COMMAND=touch_mode
will “arm” the touch sensitivity.
Use following procedure:
BLTOUCH_DEBUG COMMAND=pin_down
BLTOUCH_DEBUG COMMAND=touch_mode
QUERY_PROBE → should report “open”
Gently touch the pin’s tip → Should make the pin retract as intended.