Skip to content

Check every pickup and park with the load cell - #96

Merged
ogland merged 6 commits into
mainfrom
feat/seat-park-check
Oct 9, 2026
Merged

ogland merged 6 commits into
mainfrom
feat/seat-park-check

Conversation

@ogland

@ogland ogland commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Builds on the intent of #49 by @3DPrintDemon (catch failed docks and undocks before they crash), using only the load cell that every INDX already has. Ported from the INDX v1 development macros, without the parts that need extra firmware (the force-sensed latch lock and the runtime tare).

Pickup seat check. After every pickup the load cell reading, counted from the empty-head calibration (reference_tare_counts), must show the tool's latch preload (seat_min_force_g, 680 g).

  • Clearly empty (under seat_empty_max_g, 230 g): re-home X/Y and try once more. In sport mode the retry first switches to normal tool change speed, says so on the console and the display, and stays normal (saved, so also after a restart) until MODE_SPORT is run again. A second failure turns the heater off, records no tool, and pauses a print (the console gives the CHANGE_TOOL to run before RESUME) or stops otherwise.
  • In between (something may be half seated): no retry, the heater goes off, the tool stays recorded as on the head, and a saved seat_suspect flag makes G28 Z, CHANGE_TOOL and PARK_TOOL refuse, also after a restart, until someone has checked the head and run MANUAL_TOOL_REMOVE or MANUAL_TOOL_SEAT TOOL=<n>. A loose tool is never treated as gone, so the next move can't drive it into a dock or probe Z with it.
  • Inside G28 (the T0 fetch) a failure always stops, and clears the provisional Z home and homing_busy.

Park check. After a drop-off the reading must change by at least park_min_change_g (425 g) from the seated reading taken at the trigger line. If it doesn't, the tool may still be on the head: stop with the heater off before driving anywhere else, tool still recorded.

Settings in indx.cfg (seat_check_enabled: True turns it all off when False). Without a calibrated load cell the checks are skipped with one console line. About 0.25 s of settle per pickup and park, plus 0.3 s after a pickup. README section "Pickup and park checks".

The thresholds come from one machine, set 15 % more lenient than what it needed. Not tested on hardware: nothing on this branch has run on a printer, so this should not be merged before a test run (good path, empty dock, half seat in and out of a print, a tool held on the head during a park, a restart with the flag set).

@ogland
ogland merged commit 380e557 into main Oct 9, 2026
4 checks passed
This was referenced Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant