-
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. It's a
drop-in, pure-Python rewrite of Creality's compiled prtouch_v2_wrapper.so, using standard Klipper
host APIs — it's config-compatible with the stock [prtouch_v2] section on purpose.
Worth knowing before you touch this: the load cell is bed-mounted, not toolhead-mounted — it sits at the bed's front-left corner, under the bed. If you're testing it, press 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 its own tests.
We deliberately didn't port everything from the original compiled wrapper — run_G28_Z/run_G29_Z/
bed_mesh_post_proc/run_re_g29s/correct_bed_mesh_data turned out to be dead code in real
production (BLTouch actually owns homing/bed-mesh), and most of the debug/diagnostic commands were
left out too — cheap to add back later, just not blocking the real feature.
This has been live-tested on real hardware: homing, mesh, heating, and extrusion all passed, a
disarm-timing fix and an XY-reference fix both got qualified live, and a Z-stepper sound issue got
resolved along the way. That qualified state is tagged in NebulaOS-firmware as
nebulaos-canonical-baseline-2026-08-14-prtouch-qualified.
If you want to sanity-check the hardware without risking a real probe move, READ_PRES is the one
command that touches zero motion — a pure sensor read, safe to run on its own.
See also: Z Compensation, NebulaOS Changes.