Skip to content

v0.17.0 - The farm runs the printers together, and DEMON's bed check in the right place

Pre-release
Pre-release

Choose a tag to compare

@ahmedbebars ahmedbebars released this 23 Oct 04:14
· 20 commits to main since this release

Upgrading: update from Mainsail or Fluidd (or git pull), then restart Klipper (FIRMWARE_RESTART, never while printing): the guard and the cooling macros changed. Moonraker restarts the klipper-auto-eject service by itself if you installed the notifications or the farm. With DEMON Klipper Essentials, run once ~/klipper-auto-eject/install.sh --demon: it moves the bed check into DEMON's _CUSTOM_PRE_START (a copy of DEMON's file is saved first) and restarts Klipper unless it prints; an AUTO_EJECT_GUARD left in the slicer then does nothing. A page left open offers Reload. Your settings are kept.

بالعربية: المزرعة صارت تدير الطابعات معًا: أمر واحد لعدة طابعات، وقائمة واحدة توزّع نسخ الملف على أول طابعة متاحة، وإعدادات جاهزة لكل نوع من الطابعات تُنسخ بضغطة، وملصق QR لكل طابعة، وبكرة كل طابعة على بطاقتها، وتقرير الإنتاج مع ملف CSV. ومع التبريد والطابعة متاحة (cool_background) يعمل ادفع الآن وأزلت القطع أثناء التبريد، ولا تكمل القائمة إلا بعد السرير فارغ، أكمل القائمة. وإصلاح مهم لمستخدمي DEMON: كان وضع AUTO_EJECT_GUARD في أول G-code البداية يجعل DEMON يوقف الطابعة إيقاف طوارئ؛ صار يعمل داخل _CUSTOM_PRE_START، ويضبطه install.sh --demon وحده. والقوائم لم تعد تقفز لأعلى، والصور تكبر تحت الفأرة.

Tested: 592 tests, and ruff and eslint in CI. The DEMON fix on a Voron Trident with DEMON 2.3.9 (install.sh --demon on the real printer, then prints with the bed check in DEMON's hook), and cooling with the printer free on the same printer at the end of a real print, with Push now and Bed is clear live on its farm card. The farm queue, settings sets and QR labels in the demo and against pretend printers; the QR codes module by module against a reference encoder for every version and level. Not yet tried on real printers: the farm queue sending copies.

Fixed

  • With DEMON Klipper Essentials, AUTO_EJECT_GUARD goes in DEMON's _CUSTOM_PRE_START hook,
    not first in the slicer's start G-code as the docs said. DEMON stops the printer (an emergency
    stop, "Machine Start Gcode is not functional") when DEMON_START has not come a few seconds into
    a print, and checking the bed for parts left from the last print takes longer. install.sh
    now sets the hook up by itself when it finds DEMON (install.sh --demon on a printer that has
    auto-eject already): AUTO_EJECT_GUARD FROM=DEMON in _CUSTOM_PRE_START, a copy of the file
    saved first. A guard left in the slicer then does nothing and says so; without the hook it stops
    such a print itself with a message that says where it belongs. The In your slicer card shows
    the command, and when the hook is set up.
  • A list keeps its place when the page is drawn again. The print queue's file list, which
    redraws the page as it loads each file's facts, jumped back to the top while being scrolled;
    every list and dialog now stays where it was.
  • The farm's list at about 1280 px wide: a printer's facts wrap instead of pushing its buttons out.

Added

  • Pictures, bigger under the mouse, anywhere in the page: a file's thumbnail, a camera, a
    drawing shows larger next to the pointer, on the backdrop its thumbnail has.
  • One command for several farm printers (farm.md):
    tick printers, a group or everything shown, then Bed is clear, Start the queue,
    Push now, Pause, Resume, Turn on, Turn off, Cancel the print or
    Emergency stop, each only to the printers it suits now; and Send a file to every free
    printer selected, printed on each if you ask.
  • One queue for the whole farm (farm.md): files
    printed so many times, each copy sent to the next free printer it may go to (bed empty, nothing
    in its own queue, the file's filament on its spool), into a farm/ folder. A printer without
    auto-eject waits for Bed is clear, and any printer after a copy that stopped. Move jobs,
    change their copies, pause the queue; it is kept across restarts.
  • The spool on each farm printer's card, from Moonraker's [spoolman]: colour, filament and
    grams left, in orange when it runs low.
  • Production at the foot of the farm: what each printer made today, in 7 or 30 days (prints,
    ended well, stopped, success, hours, filament), the whole farm, and a CSV to download.
  • Settings for a kind of printer (farm.md): one
    printer's auto-eject settings onto the printers ticked, or a set saved under a name (Voron 2.4
    350
    ) for the next printer of that kind. Each printer gets only what differs, with
    AUTO_EJECT_SET; its own notifier and what only the settings file can hold stay as they are.
  • A QR label on each printer (farm.md): its name and
    a QR code of its page, at home or through Tailscale, to print and stick on it; a phone camera
    opens the page. One printer's from ✎, or a sheet for the printers ticked. The codes are made in
    the page, offline.
  • Push now, or I took the parts off, while the bed cools (cool_background: True, off by
    default; configuration.md). The print
    ends first and the job queue waits; the bed cools in steps of a few seconds with the printer
    free in between, so Push now (AUTO_EJECT_PUSH_NOW) pushes without waiting for the bed,
    and I took the parts off (AUTO_EJECT_CLEAR) stops the eject; the queue waits for Bed is
    clear, continue the queue
    , so the next print never starts on a hand in the printer.
    Both are on the Overview and on the printer's farm card. Then the eject goes on as always and
    starts the queue again. AUTO_EJECT_GUARD holds a print started by hand meanwhile.

Changed

  • CI also lints the Python (ruff) and the web page (eslint); CONTRIBUTING.md says how to run
    them.