loadcell: make HX711 frame validity MCU-owned - #265
Conversation
Pin Kalico to the reliability implementation that emits explicit frame quality, resets and qualifies acquisition deterministically, rejects invalid data before filtering or tare, and fails an active probe safely. Remove the superseded host/MCU glitch-filter patch. Document the source comparison, design decisions, hot-chamber incident evidence, and required on-printer validation.
✅ Build ArtifactsBranch:
|
…g-pass tolerance Kalico paul/hx711-reliability @ c368f84e is the five-iteration stack that completed 10/10 consecutive BED_MESH_CALIBRATE BED_TEMP=60 runs on the CC1 test printer (zero hard faults in 392k frames): - timing-miss reclassification (skips instead of resets) - drift-safety band gates arming sample only - first-crossing trigger default (upstream semantics) - per-channel spike rejection (>100k single-sample glitches) - bounded bulk-overflow tolerance (<=2/session) macros.cfg: LOADCELL_Z_HOME cleaning passes get SAMPLES_TOLERANCE=0.1 — they are ooze management, not measurement, and the squish cycles mangle the edge contact; the final center probe keeps 0.05.
✅ Build ArtifactsBranch:
|
|
Test build available 🧪 The PR build artifact carries the validated HX711 stack (kalico This exact artifact went 10/10 consecutive Feedback especially welcome on:
Raw evidence and per-commit rationale: design record. |
|
going to run a few more prints, but so far, flawless. root@elegooner:/board-resource# grep glitch klippy.log.fail | wc -l |
|
Closing because OBE |
Summary
HX711.mddocumenting the protocol, comparison against the data sheet/Elegoo/upstream/Prusa implementations, design choices, preserved reverse-engineering artifacts, and on-printer validation plan. The full design record is also available as an HX711 reliability gist.Kalico dependency
This PR consumes the implementation in draft Kalico PR #5.
Why
The prior workaround retained or classified corrupted values differently on the host and MCU. This follow-up makes invalid frames explicit and prevents them from reaching tare, filters, or probing decisions.
Tested on CC1 hardware (2026-07-23)
BED_MESH_CALIBRATE BED_TEMP=60passes — 392k frames, zero hard faults, zero ADC recovery cycles.BED_MESH_CALIBRATE BED_TEMP=100passes (chamber ~60 °C) — 937k frames, zero hard faults, zero recovery cycles.Offline validation
c368f84e(see PR head).