-
Notifications
You must be signed in to change notification settings - Fork 0
PRTouch
The load-cell/pressure-probe touch-detection system, in klippy/extras/prtouch_*.py. A drop-in,
pure-Python rewrite of Creality's compiled prtouch_v2_wrapper.so, using standard Klipper host
APIs — config-section-compatible with the stock [prtouch_v2] printer.cfg section on purpose.
Physically bed-mounted, not toolhead-mounted — the load cell sits at the bed's front-left corner, under the bed. Testing it means pressing the bed by hand, not the nozzle.
Modules: prtouch_v2.py (orchestration), prtouch_mcu.py, prtouch_nozzle.py,
prtouch_probe.py, prtouch_calibration.py, prtouch_safety_guard.py, prtouch_units.py, each
with dedicated tests (test_prtouch_*.py).
Deliberately not ported from the original compiled wrapper: run_G28_Z/run_G29_Z/
bed_mesh_post_proc/run_re_g29s/correct_bed_mesh_data and their gcode entry points — confirmed
dead code in real production (BLTouch owns homing/bed-mesh), plus most of the debug/diagnostic
command set (cheap to add later, not blocking the real feature).
Evidence: LIVE_HARDWARE_VERIFIED. Physical qualification (2026-08-12 through 2026-08-14):
homing, mesh, heating, and extrusion all passed live; a disarm-on-step-timer-mismatch fix and an
XY-reference fix were both live-qualified; a Z-stepper sound issue was resolved. The qualified state
is tagged in NebulaOS-firmware as nebulaos-canonical-baseline-2026-08-14-prtouch-qualified.
READ_PRES is the one diagnostic command that touches zero motion (a pure MCU sensor-channel read)
and is safe to run standalone to confirm the load cell is alive before ever risking a real
motion-based touch_probe() call — it goes through the same plausibility-verdict safety guard a
real descent would.
See also: Z Compensation, NebulaOS Changes.