Skip to content

v0.11.0 - web page, eject after the end macro

Pre-release
Pre-release

Choose a tag to compare

@ahmedbebars ahmedbebars released this 20 Oct 05:05
· 97 commits to main since this release

Upgrading: move AUTO_EJECT below your end macro. The slicer end G-code is now:

PRINT_END
AUTO_EJECT HEIGHT=[max_layer_z] HOME=1

Use your end macro's name (DEMON_END, END_PRINT, …). Details in docs/integration.md. Update from Mainsail or Fluidd (or git pull), restart Klipper, and run ~/klipper-auto-eject/install.sh --web once if you want the new web page.

Tested end to end on a Voron Trident 450 with Voron Tap and DEMON Klipper Essentials: print, end macro, eject of five parts, check with the probe, job completed.

Changed

  • AUTO_EJECT now goes after your end macro, as AUTO_EJECT HEIGHT=[max_layer_z] HOME=1.
    End macros retract the filament (G1 E-2), and once AUTO_EJECT had let the nozzle cool,
    Klipper refused that retract ("Extrude below minimum temp"): the print ended with an error and
    the job queue stopped. After the end macro, HOME=1 homes again around the parts if the motors
    were turned off. Your own PRINT_END can instead call it after its retract. See
    docs/integration.md; the DEMON _CUSTOM_PRE_END hook method is gone for the same reason.

Added

  • Probes that touch the bed with the nozzle (Voron Tap, eddy touch modes) wait for the nozzle to
    cool to nozzle_probe_max_temp (150 °C) before homing Z or checking the bed, so a nozzle the end
    macro has only just turned off does not mark the print sheet.
  • The web page's Check a file warns when a file runs AUTO_EJECT before another macro.
  • A web page for the printer's web interface, with its own entry in the Mainsail sidebar
    (install.sh --web, see docs/web-page.md). It shows the printer's state and a live map of
    the bed with the parts, the push lanes and the toolhead; ejects, dry-runs or forgets the parts
    (asking first); manages Moonraker's job queue; checks a G-code file before it is printed (labels,
    AUTO_EJECT in the end G-code, height, whether the blade can get behind every part); shows the
    blade setup and opens the setup dialogs in the page; and edits every setting. English and
    Arabic, light and dark, works on a phone, loads nothing from the internet. ?demo runs it
    against a pretend printer.
  • AUTO_EJECT_SET KEY=<setting> VALUE=<value> changes one setting, checks the value against the
    setting's type and keeps it after a restart. RESET=1 goes back to the settings file.

Fixed

  • Klipper could stop with "MCU shutdown: Timer too close" at the start of an eject when the bed
    was already cool. The 240 cooling passes, all with nothing left to do, ran back to back while
    the toolhead was still rising, and the move reached the board too late. Now no cooling pass runs
    when the bed is already cool, the passes left after cooling return at once, and every move
    finishes (M400) before the macros that take Klipper a moment to work out: the push plan, the
    check with the probe and homing Z around the parts. The tests check that none of these starts
    while a move is pending.
  • AUTO_EJECT HOME=1 could find Z past the edge of the print sheet: on a Voron 450 with the middle
    of the bed full, it probed the bare plate at the front, among its holes, and every height after
    that was 0.6 mm off. With a [bed_mesh] the spot now stays inside the mesh area (mesh_min /
    mesh_max, or mesh_radius on a round bed), where the probe is known to work.
  • auto_eject.cfg held six copies of the last lines of its defaults. Klipper ignored them (the
    values were the same), and a test now makes sure no option is given twice.

Documentation

  • A project website built from docs/ with MkDocs Material (mkdocs.yml, website/): a home
    page, search, light and dark, and the web page running as a live demo in the browser.
    .github/workflows/website.yml publishes it on GitHub Pages.
  • Rewritten for beginners. A new step-by-step guide (docs/getting-started.md) goes from checking
    the bed to printing in a row, with a check after every step. New pages: FAQ, glossary, every
    command with its options, and a documentation home (docs/README.md) grouped by what you want
    to do. The README now leads with how it works, who it is for and the eight steps.
  • The blade measurement pages described a 20 mm cube; they now describe the 3.5 mm printed
    calibration block, and the troubleshooting page lists every reason the measurement can stop.
  • Where AUTO_EJECT goes for every kind of end G-code (DEMON, Klippain, RatOS, stock Voron, plain
    commands, Cura), and when you need to tell the printer the bed is clear (FAQ).