Safety¶
klipper-auto-eject moves the printer on its own, without anyone watching, and can start the next print. Read this page before relying on it.
Built-in protections¶
| Risk | What the macros do |
|---|---|
| Homing with parts on the bed (wrong Z, then the blade hits the bed) | AUTO_EJECT refuses to run unhomed. AUTO_EJECT HOME=1 homes X/Y normally and measures Z with the probe on the spot furthest from every stored part |
| Parts taller than the gap under the gantry: the beam the toolhead runs on, or the toolhead, hits them while the blade pushes or while the probe finds the bed | Prints taller than max_part_height are left on the bed with nothing moving, not even homing; the queue waits and the next print does not start until they are taken off (tall parts) |
| Printing on top of parts left by an interrupted print | Part outlines are saved while printing. AUTO_EJECT_GUARD in the start G-code stops the print, or ejects first |
| A part that will not move | Motor current on the push steppers drops to push_current, so the motor skips instead of breaking the blade, the part or the belt |
| Fast, violent moves | Pushing runs at push_speed and push_accel. The previous acceleration and currents are restored afterwards |
| The blade landing on a part | Each push starts rear_clearance behind the parts. Starts that cannot get behind a part (too close to the far edge) are refused. objects checks the landing zone before anything moves |
| A part left on the bed, then printed over | The probe checks the old positions. Anything found raises an error, so the job queue does not continue |
| Pushing hot, soft parts | Heaters off, part fan on, wait for cool_temp |
| A misconfigured setting | Unknown strategy or direction names stop with an error before any movement |
What you still need to do¶
- Watch it. Do several
DRY=1runs and several real ejects while standing next to the printer before leaving it unattended. - Thermal runaway protection must be active (
verify_heateris on by default in Klipper). Do not run unattended print farms without it, or without a smoke detector near the printers. - Keep the drop zone clear, and make sure the box cannot overflow back onto the bed.
- Check the blade after crashes. A bent blade changes its height and offset.
- Re-measure after toolhead changes: a new nozzle, hotend or probe changes the geometry.
- Set
max_part_heightfor your printer (AUTO_EJECT_SETUPasks for it), and keepHEIGHT=[max_layer_z]in the end G-code: without the print height, a tall print is pushed. - Eddy-current probes cannot see plastic. Without a contact/touch command in
verify_probe_gcode, the bed is not verified (probes.md). - Verification has limits. Three outline points can miss a part that was pushed partly off
and rotated, and
centermode cannot see hollow parts. Thin, flat leftovers (underverify_threshold) are not detected. - Purge lines and skirts are too thin to be swept and will build up. Use
EJECT_PURGE.
Emergency stop¶
M112 (or the emergency stop button in Mainsail/Fluidd) stops everything immediately. After
an emergency stop, clear the bed by hand before homing.