github prestonbrown/helixscreen v1.1.0-beta.1

latest releases: v1.1.0-rc.1, v1.1.0-beta.18, v1.1.0-beta.17...
pre-releaseone month ago

v1.1.0-beta.1

The first beta of the 1.1 line. It carries everything in 1.0.2 plus about two thousand
changes made on the trunk since 1.0 branched, and most of them land in four places.
The home screen was rebuilt on a square grid, and editing it finally works the way you
expect. Tool changers and multi-toolhead machines gained the tools they were missing:
per-tool offsets with automatic calibration, the multi-tool screens on IDEX and
dual-extruder machines, and on the Snapmaker U1, loading or unloading several heads in
one go. Add-on chamber heaters became first-class, with a diagnostics card that tells
you why a heater is not heating. And the filament screens now know where every piece
of lane information came from, so an edit you make, the printer's own record and
Spoolman's spool data stop silently overwriting one another.

Why the version has a -beta.1 on it. Beta builds carry the release they are
heading for plus a prerelease suffix, which sorts below the plain 1.1.0 that the
stable 1.1 release will use, and above every 1.0.x fix on the stable line. So a
hotfix on 1.0 never looks like an upgrade to you, and 1.1.0 arriving does. To get
this build, set the update channel in Settings to Beta.

Upgrading from 1.0?

  • Your home screen is converted, not reset. Widgets keep their relative place: one
    that filled the left third of the screen still does, and widgets that touched still
    touch. Sizes can shift slightly because the new grid divides the screen differently,
    and a widget that genuinely no longer fits is re-placed on its own. Your widgets,
    their settings and your extra pages all carry over. The conversion runs the first time
    the home screen is drawn, and what you see then is what gets saved.
  • Going back to 1.0 costs you the home layout. A 1.0 build saves home positions in
    its own grid's units, so when you return to 1.1 the home screen comes back rearranged,
    or, from some 1.0 builds, reset to its defaults. Arrange it again in edit mode.
    Everything else survives the round trip.
  • Your 1.0 settings are kept (#1305). The first start of 1.1 saves your old
    settings.json beside the new one as settings.json.pre-migration, before converting
    it. HelixScreen never reads that copy back; it is there if you want your 1.0 settings.
  • Display sleep turns the backlight off, as in 1.0.2 (#1594, #1708). 1.0.1 powered
    the panel down at sleep, which left some AD5X, U1, K1, K2 and Pi DSI panels wedged or
    cycling colours on wake. The panel is now powered down only when there is no backlight
    to turn off. The /display/panel_power_off setting in settings.json still forces it.
  • Print preparation tracking needs nothing from your config (#1234). The phase
    tracking toggle, the installer's --with-phase-tracking flag and the plugin service
    that rewrote PRINT_START are gone; see Changed below for what happens to a PRINT_START
    that was already instrumented.
  • Some installs move on disk, automatically. On the AD5M, HelixScreen's own files
    move to /data/.helixscreen so they stop showing up in the print file list. On the K2,
    the install moves off the 240MB system overlay onto the user partition.
    Both are migrated in place by the update.
  • helixscreen.env values are taken literally (#1682). The file is no longer run
    through the shell, so $VAR, ${VAR}, $(command) and backticks are not expanded.
    A line using them is skipped with a warning in the log, so write the final value
    itself. Only the settings documented for this file are accepted; anything else is
    skipped and logged. A few values are checked before they are used: the log file has
    to be a .log under /tmp, /var/log or the install folder, and HELIX_NICE has to
    be 0 to 19. An env file that the web interface can edit, like the one the Snapmaker U1
    keeps in printer_data, is honoured.
  • A custom update server moves out of settings.json (#1718). settings.json can be
    edited from the web interface, so it no longer chooses where updates are downloaded
    from. To point a printer at your own server, put r2_url or dev_url in
    /var/lib/helixscreen/update_urls.json, a file only root or HelixScreen's own user may
    own. The old keys in settings.json are ignored, and the log says where to move them.
    A custom log_path has to sit under /tmp, /var/log or HelixScreen's own folders.
  • A refused helixscreen.env says so on screen (#1712). When the file cannot be
    trusted (wrong owner, or still writable by others after the automatic repair) the
    launcher used to fall back to defaults with nothing on the display. Now a startup
    warning says what is wrong, names the one command that fixes it, and stays on screen
    until closed; lines the launcher skips (a setting this file may not change, shell
    syntax in the value, a bad quote) are listed with the key and the reason each was
    ignored.

Still being proven. Two features in this beta are hidden unless beta features are
on, because they have not yet been checked on enough real machines: the belt tension
tuner, which has never measured a real belt, and the Tool Offsets screen. Several
filament-system changes below were built from captured printer data rather than on the
hardware itself, and say so where that is the case. Reports from owners of those
machines are exactly what a beta is for.

Added

Home screen

  • One square-cell grid on every panel (#1126, #1559) - the home screen divides both
    axes by the same cell size, so a cell is square on every display and a rotated panel
    transposes its layout exactly. Widgets place and resize at half-cell steps, three times
    the resolution the old grid had. Every shipped
    layout was redrawn for the new grid, including a new ultrawide layout for 1480x320 and
    1920x440 panels, which used to draw into the left fifth of the screen.
  • Edit mode shows where a widget can land - whole-cell dots are always drawn, and the
    half-cell dots between them appear only while the selected widget can use them. A
    visible dot is a legal drop target.
  • Pages swipe in edit mode, and widgets move between them (#1638) - carry a widget
    past a page's edge, or hold it there, and the next page slides in under your finger.
    Add a page by tapping the "+ Add page" tile one swipe past your last page, in edit
    mode or not; it is there even when you have a single page. In edit mode you can also
    drag a widget past your last page: an empty page slides in, and dropping the widget
    there creates the page. At your first page's left edge nothing slides in: let go with
    most of the widget past that edge and a new page is created in front of it. At the
    8-page limit there is no "+ Add page" tile and neither edge creates a page.
  • The widget catalog opens by category, with search (#1016) - thirty-seven widgets in
    one scroll had become something you hunt through, worst on 480px panels. The catalog
    now opens on five categories, has a search box that matches names and descriptions,
    and lists widgets this printer cannot use in their own section with the reason. Widget
    names and descriptions are translated for the first time.
  • UI Scale setting, with a layout per scale (#1484) - Settings -> Display & Sound
    gains a UI Scale choice: Automatic, which shows the scale it picked, or a fixed 100 to
    200%. Each scale keeps its own home arrangement, so trying a different scale and coming
    back restores the layout you had, which 1.0 could not do. On very high-density
    displays such as phones, Automatic now scales by the screen's real pixel density
    instead of drawing everything a third of its intended size.
  • Proper sizing on 1080p and larger panels - a 1080p screen used to get the same
    widget size as a 720p one while text and icons grew 1.6x around it, so labels ran out
    of their boxes. Large panels have their own size tier now.
  • Navigation buttons read by shape, not just colour - inactive buttons use outline
    icons and the active one is larger and filled, which survives washed-out panels and
    colour-blind eyes. (thanks @just-trey)

Home screen widgets

No widget types were added or removed; most of the existing ones changed.

  • Icon tiles resize - the single-icon tiles (power, lock, shutdown, firmware restart,
    LED, network and the rest) scale with their tile instead of staying one fixed size, and
    can be resized for the first time. On most panels they take half-cell steps in width;
    on the smallest panels, and for the Power tile, they keep whole cells. A widget refuses
    a size it cannot draw, and edit mode shows that size in red.
  • The filament sensor tile is tappable - a tap opens its dialog, where Load, Unload,
    Purge, Resume and Cancel Print all work. Which sensor the tile watches is picked in
    edit mode.
  • The clog meter is a readable scale (#1017) - at one cell the gauge, its value and
    its label were crammed into a box narrower than the words. It is now a two-cell
    horizontal scale labelled at each end (TANGLE and CLOG for FlowGuard, SAFE and FAULT or
    a detection length for the others), so a reading tells you which fault it is heading
    toward. Tapping the FlowGuard tile shows the actual reading instead of only the mode.
  • The temperature and fan stacks adapt to their shape - given height, they put each
    icon above its reading; kept compact, they sit side by side.
  • The nozzle temperatures tile fits any size (#1613) - it picks its font by the
    tile's height and its labels by width, shortening labels before shrinking numbers.
  • Choose which camera a widget shows (#1487) - a camera widget's settings list
    Automatic plus every webcam the printer has, noting snapshot-only feeds and cameras
    that were ruled out. The choice is remembered by camera name, so it survives an address
    change, and falls back to Automatic if that camera goes away.
  • Scheduled pauses are marked on the progress bar (#1509) - filament changes (M600),
    PAUSE/M601 and slicer pause-at-layer stops each draw a tick where they fall in the
    print, on the home print card and the print screen. A file sliced with M73 progress
    places the ticks at the slicer's own percentages.
  • The bypass tile works - it could be added but never appeared, and it showed as
    engaged whenever the printer did not report bypass at all.
  • Firmware restart and job queue tiles no longer clip, and icons step down a size on
    large panels, where ten widget and screen-size combinations were clipping.

Tool changers and multi-toolhead printers

  • IDEX and dual-extruder printers get the multi-tool screens (#1350) - a printer is
    now recognised as multi-tool by counting its hot ends, so IDEX machines, dual
    extruders and tool changers that do not run klipper-toolchanger get the tool selector
    and filament screens instead of the single-extruder ones, and T0/T1 tool switching
    works on them. Built from test configurations; not yet verified on these machines.
  • Tool Offsets screen with automatic calibration (#1480) - per-tool X, Y and Z offsets
    in one place, and a one-tap calibration that runs your printer's own routine, follows
    it live, and saves every axis with a single restart. Where that routine calibrates
    every tool, the manual paper test is hidden. Beta-gated for now. (thanks @Monstrofil)
  • Per-tool Z offset from Print Tune - Print Tune has a Global / T0..Tn selector, so
    each tool keeps its own first-layer height, and the save button appears whenever any
    tool's offset is unsaved and writes it permanently. It used to vanish after the next
    Klipper restart.
  • Snapmaker U1: load or unload several toolheads at once - a picker lists every head
    with what it holds, pre-ticks loaded heads for an unload, and says which heads cannot
    take the operation and why. The printer's own batch command does the work, preheating
    the next head while the current one finishes, and the header names the head being
    worked on.

Filament systems

  • Your edits, the printer and Spoolman stop overwriting each other (#1649, #1653) -
    every piece of lane information now has a known source, and the more trustworthy
    source wins instead of whichever wrote last. A colour you pick for a lane beats the
    linked spool's and keeps its colour name. A spool linked from Spoolman owns its brand,
    material and name (read-only while Spoolman is unreachable), and its remaining weight
    comes from the server. Your edits on AFC, Happy Hare and ACE are marked as yours in the
    printer's shared lane record, so Mainsail or Orca refreshing it does not wipe them. A
    reading from one source that leaves a field out no longer blanks what another source
    knows. When a printer repeats an edit you made back to the screen, it is still read as
    your edit, not as the printer's own data, so clearing it brings back what the printer
    really reports (#1633). When another tool writes a lane after you did, the newer edit
    wins, whichever side made it (#1632).
  • A new spool is judged by what the hardware read (#1710) - when a spool goes into a
    slot, a different tag, or a different material or colour read off the spool, clears the
    old spool's details; a matching read keeps them. When the hardware can't tell (an
    untagged spool, or a slot the firmware only remembers), your details stay and a small
    "Same spool?" notice offers Clear. It is not shown on the lane feeding a print, or for a
    slot with nothing to clear.
  • Spool swaps are noticed, even with the screen off - each lane remembers a
    fingerprint of the spool it held, so a spool swapped while HelixScreen was not
    running clears the old spool's edits instead of painting them onto the new one.
    Works on QIDI Box, the Snapmaker U1 (by the spool's RFID tag) and Creality CFS,
    including Kalico-based CFS setups.
  • QIDI Box lanes behave like every other system (#1632) - slot presence, swap
    detection, edits that persist and repaint, and a Clear Spool that clears the Box's own
    records.
  • Humidity and drying per box - the filament environment screen follows the way
    your hardware actually encloses filament: one heated enclosure over four slots, a
    sealed box per lane, or one box per unit. Each box shows its temperature and humidity
    and names the slots it covers, and its dryer is set from the numeric keypad within
    what that box accepts. A single box opens straight to its details, a few identical
    ones get tabs, and boxes that can do different things are listed side by side. When
    the dryer can only heat some boxes at a time, the waiting ones say they are queued
    and which box is using the heater.
  • Favourite filaments (#1100) - star any row in the filament catalog. Favourites lead
    the vendor list and float to the top of their vendor's view, on every printer.
  • Load and Unload for the external spool (#1486) - the bypass spool's menu on the
    filament system screen now has its own Load and Unload, engaging bypass first when
    needed, so you no longer have to go to the Filament screen for it.
  • ACE shows where the filament actually is (#1677, #1678) - the path reads the ACE's
    hub and toolhead sensors, so a strand parked short of the hub is drawn there rather than
    back at the spool. An ACE Pro with a fifth spool on its bypass switch gets a working
    bypass control.
  • AFC buffers with a pressure sensor drive the buffer meter - an FPS_PSF buffer
    reports what Happy Hare's sync feedback reports, so the buffer meter and path tint
    work on AFC unchanged. Not yet verified on hardware.
  • AD5X tool remapping uses the IFS's own commands - the screen reads and writes the
    printer's tool map through IFS_MAP_TOOL, so a remap matches what the printer reports.
  • Spool labels lead with the spool number (#1491) - on every label layout the spool
    number is the first and largest line, and weight moves to its own line so a narrow tape
    truncates that rather than the number.

Chamber heaters

  • Add-on chamber heaters are detected and explained (#1290) - DragonBreath and Panda
    Breath heaters are found at startup, each with its own safety ceiling. On the
    temperature screen, the chamber card shows any fault with a translated reason and a
    Reset button, the element temperature, and the filter fan with its own toggle, so the
    graph keeps the rest of the screen. Like
    every heater, the chamber heater's status also shows how hard it is working as a
    percentage. A heater that has dropped off the network says Offline instead of offering
    a target it cannot reach. The Panda Breath's status format has not been verified on a
    stock unit.

Printing

  • Heater duty on every heater (#1290) - the Controls and print status screens show how
    hard each heater is working as a percentage beside its status, so a nozzle running flat
    out and falling behind looks different from one holding temperature easily.
  • Chamber temperature per material (#1263) - Material Temperatures has a chamber
    column, editable on printers with a chamber heater.
  • Pick the next file while one prints (#1395) - a Files button on the print status
    screen opens the file list mid-print. Starting a print stays blocked until the current
    one ends, and the start button says so.
  • K2 with the k2-improvements mod - its print start sequence is recognised, so the
    preparation steps are named correctly, heat soak and the chamber wait show as soaking,
    and the bed is no longer meshed twice.
  • Camera button on remote screens - running HelixScreen against a printer on another
    machine, the print screen gains a Camera button for the full-screen webcam view. It
    stays hidden on the printer's own screen.
  • Macros remember their parameters - save default values for any macro that takes
    parameters, from edit mode in the Macros panel or a home Macro Button's options. With
    Ask for parameters on, the form opens already filled in; switch it off and the macro
    runs straight away with the saved values. Defaults are kept per printer, and a
    dangerous macro still asks for confirmation.

Calibration and tuning

  • Pressure advance, measured by the printer (#1452) - on printers that can measure it
    themselves, a Pressure Adv. button on the Controls panel runs the measurement for the
    tool you pick and shows the result, flagged if it's outside the usual range. The
    Snapmaker U1 applies and keeps the value; on the FlashForge Creator 5 Pro you copy it
    into the slicer. Takes a few minutes and heats and purges. (thanks @Monstrofil)
  • Belt tension by plucking (#1303, #1231) - park the gantry, pluck each belt by hand,
    and the tuner listens on the accelerometer and reports the belt's frequency as the
    median of five good plucks, with a live waveform and spectrum. It reads the whole
    harmonic series rather than the tallest peak, which is what made the old driven sweep
    report some belts a full octave sharp. Beta-gated: this has not yet measured a real
    belt, and it stays hidden until it has (BELT_TUNER.md has the validation plan).
  • Switch a Kalico heater between PID and MPC (#1237) - the method selector on Kalico
    printers is out of beta. It migrates your config in both directions, and cancelling a
    running MPC calibration asks first, because cancelling means an emergency stop and a
    firmware restart.
  • Input shaper saves the shaper you picked - the chips under the results graph are
    now one choice per axis, and Save writes that choice to your config. Save used to
    write Klipper's own recommendation regardless of what you selected.
  • Motion settings - jog speeds and step distances are yours to set, under Settings ->
    Printing -> Motion or from the cog on the Motion screen's header. Separate XY and Z
    speed sliders, and all six step distances (the jog pad's inner and outer rings and the
    two Z buttons) take any value you type. Speeds are capped at the printer's own speed
    limit, including one the printer reports after you set them, and Reset Distances asks
    before wiping your values.
  • Z jogs stop at the axis limits - a Z jog that would run past the end of travel stops
    at the limit and warns once, instead of sending a move Klipper refuses. X and Y already
    worked this way.
  • Your baby-step size is remembered - the Z-offset step you last used is the one you
    get next time.

Printers

  • VzBot 330 and 235 (#1689), FLSUN S1 and S1 Pro, and the base Creality K2
    (#1606), each with artwork. The base K2 is now told apart from the K2 Plus and Pro, and
    its camera option no longer claims the Plus's AI model.
  • Snapmaker U1 firmware settings - the pre-print toggles (bed mesh, input shaper,
    pressure advance, timelapse) read and set the firmware's stored values instead of
    always reading off. Tangle sensitivity, end-of-print unload per toolhead, and manual
    bed levelling with a PEI plate check are all on screen.
    Loading preheats to the firmware's own temperature for that filament. Firmware faults
    appear with translated wording.
  • Snapmaker U1 with the multiACE mod (#1426) - keeps its filament screen instead of
    being mistaken for a plain ACE setup.

Small and portrait screens

  • The Motion screen gives the jog pad more room - the X, Y and Z position moves into
    the header, so on a landscape panel the jog pad takes the width the position card used,
    about a third wider at 480x320. An axis that is not homed shows its position greyed
    out. On a portrait panel the jog pad sits beside a tall Z column, with the jog modes and
    levelling buttons in one row underneath.
  • The Filament screen fits small and portrait panels - on a portrait panel it becomes
    one column, and the temperature graph shows only when there is room for it, with a graph
    button on the spool strip to open it otherwise. The Load, Unload, Purge, Extrude and
    Retract buttons are full size and stay put whether or not the cold-extrusion warning is
    showing. Cool Down keeps its place in the material grid, greyed out while nothing is
    heating. The tool picker shows the tool's number (or the name you gave it), and on the
    Snapmaker U1 it is labelled Toolhead.

Display and sound

  • Bouncing Printer screensaver (#1680) - the screensaver everyone already knows.
    Your printer drifts across a black screen and reflects off the edges, picking up a new
    tint on every wall. Land a true corner and it celebrates. The sprite is whatever
    printer this screen is attached to, auto-detected or picked by hand, so a Trident
    bounces a Trident. It costs a fraction of what Flying Toasters does; on
    AD5M-class hardware the corner celebration is a backdrop flash rather than confetti, to
    stay clear of the print loop. Select it under Settings -> Display & Sound ->
    Screensaver. (thanks @Tintef)
  • Fireworks screensaver - shells rise from behind a line of hills under a starry
    night sky, trail sparks, and burst as peonies, chrysanthemums, willows or rings, each
    spark fading from white through its shell's colour to an ember. It adjusts how many
    sparks and bursts it draws to what the board can afford. Select it under Settings -> Display & Sound
    -> Screensaver.
  • All five screensavers on every board - Flying Toasters, Starfield, 3D Pipes,
    Bouncing Printer and Fireworks now run on the AD5M and Centauri Carbon too, which had
    none, and on every other board with a 16-bit display. Each saver draws less on a
    slower board rather than stalling it, and the starfield redraws only what moved, so it
    costs a small fraction of what it did.
  • The AD5X buzzer plays chords and music - UI sounds play as chords, tracker music
    plays in four voices, and M300 beeps from your macros take the buzzer when Klipper
    holds it.
  • On-screen keyboard keys look like keys - each key has a raised edge in its own
    colour instead of a flat black shadow.
  • Hardware rotation with touch that follows (#1275) - a panel turned 180 degrees can
    rotate on the display hardware where it supports it, and touch, mouse and touch
    calibration all follow the turned picture. Quarter turns stay in software, which is
    the only way touch can follow them today.

Setup and settings

  • Find your printer by searching (#1028) - first-run printer selection replaces the
    scroll through about 105 machines with a search box, a grid of vendors and a list per
    vendor.
  • Install HelixScreen's helper macros from Settings (#1271) - a row under Advanced
    installs or updates the macro pack without running the installer. It backs up
    printer.cfg first, restarts Klipper right away when idle, offers the restart for
    after the print when one is running, and refuses to touch anything mid-print.
  • Hardware Health shows its status - the Settings row carries the live result with a
    severity-coloured icon, and critical problems get their own alert icon.

Files and USB

  • USB sticks mount on boards that do not mount them - where nothing else mounts a
    USB stick, HelixScreen mounts it read-only itself and unmounts it on shutdown. Sticks
    plugged in while the app runs appear within about a second, and short DOS-style names
    such as 3DBENC~1.GCO are recognised as G-code.

Installing and updating

  • One package for the K1 series and the AD5X - both boards run the same build, which
    is smaller than the K1C's was. It is still published under each board's name, so
    existing updaters keep finding it.
  • Smaller downloads - packages carry only the splash screens and printer images the
    panel's resolution can show (K2 assets 42MB to 9MB, Centauri Carbon to 2.8MB), and
    embedded packages drop music the machine cannot play.
  • Logs and caches survive an update - on the K1, Centauri Carbon, U1 and AD5X, a web
    update used to delete the logs you needed and throw away the thumbnail cache. Both now
    live beside the install instead of inside it.

Changed

  • Clear Spool forgets everything (#1661) - it erases everything HelixScreen and the
    printer's firmware remember about the slot, leaving only what the hardware can
    physically read. That includes the printer's own record: the whole gate map entry on
    Happy Hare, and the slot record on AFC, AD5X, QIDI Box and Kalico-based CFS. ACE, the
    Snapmaker U1 and stock CFS keep their own record, because their firmware offers no way
    to erase it or re-reads the spool's tag. Clearing a single field brings back what the
    machine reports for it. Clear Spool is refused on the lane feeding a print that is
    running, paused or preparing, and the menu says why. On Happy Hare in Spoolman pull
    mode, clears and edits are refused with Spoolman named as the reason, instead of
    appearing to work.
  • Emptying a page in edit mode removes it (#1638) - moving a page's last widget
    elsewhere, or removing it, deletes the empty page. The main page always stays, and so
    does a page holding widgets greyed out because their hardware is not detected.
  • Print preparation phases are inferred (#1234) - the screen works out the current
    phase from toolhead movement and temperatures, on any printer, without editing its
    config. A PRINT_START that already carries HELIX:PHASE markers keeps working.
    Uninstalling the plugin (Settings -> Advanced, or install.sh --uninstall) removes those
    markers from PRINT_START, backing up each file it edits as <file>.bak.<timestamp>;
    the change takes effect at the next Klipper restart. The Uninstall row now reports
    what actually happened (a clean removal, one that left a file for you to look at, or a
    failure) instead of always saying it worked.
  • Tool changers without ASSIGN_TOOL remap without beta features - the job file is
    rewritten before printing whenever remapping needs it, and the plugin's Install row is
    back in Settings -> Advanced, no longer beta-gated. A dialog at startup warns when
    Moonraker is too old for remapping, and can be dismissed per printer.
  • Loading filament does not preheat twice (#1494, #1495) - when the filament system,
    your macro or the "allow cold load" setting already handles heat, the screen no longer
    preheats first. On QIDI printers this stops a preheat that the stock macro then
    overrode.
  • Temperature keypads stop at your printer's maximum (#1615, #1619) - and say what
    the limit is when you hit it. Material temperature presets are not limited, so an ABS
    preset above a 260 degree hotend's limit saves fine and is applied at the limit.
  • K1: Creality Print keeps working (#1468, #1637) - installing HelixScreen on a K1 no
    longer stops Creality's backend services, so Creality Print can still reach the
    printer. Only the stock screen is replaced.
  • K2: spaghetti detection keeps working (#1378) - installing HelixScreen takes over the
    camera and the stock detection service, so HelixScreen now runs the K2's own AI model on
    camera snapshots during a print instead. It follows the printer's AI settings the first
    time, then Settings -> Safety & Notifications -> Spaghetti Detection and Pause on
    Detection are yours. The alert is translated and shows the detection's confidence, and
    a print that is already paused is not paused again. Uninstalling restores the stock
    service.
  • Cool Down works on the base K2 - it no longer errors on a K2 whose chamber has a
    fan but no heater. Your own customised cooldown macro is never rewritten.
  • The chamber heater owns the chamber reading (#1465) - a probe named "chamber" no
    longer hides the U1's cavity sensor. A sensor you assign by hand still wins.
  • Snapmaker U1: a print with an unset spool is stopped before it starts - a tagless
    spool with no material set is caught up front, instead of the printer heating and
    homing and then reporting a runout minutes later.
  • AD5M: no startup music - playing it ties up the AD5M's single core, and it has
    killed prints. The AD5X keeps its music.
  • Forge-X: installs stay put - HelixScreen installs outside the folder Forge-X
    cleans (either of its clean actions deleted the install), and an install that
    replaces an older one removes it, which could hold 81MB and put two screens on the
    display at boot. A Forge-X install refuses --auto-update, which would have wiped
    your preserved settings.
  • QIDI: the stock screen stays off (#1533) - it is disabled before it is stopped and
    kept off at every boot, so it no longer comes back after a restart. Installing sets
    aside only the screen software that is actually present, and restores only that.
  • Uninstalling HelixScreen also removes its Moonraker plugin, so Moonraker stops
    logging an error for it on every boot.
  • Self-built and forked builds do not send diagnostics (#1410) - debug bundles and
    crash reports upload only from official release builds by default.
    HELIX_DIAGNOSTIC_UPLOADS=1 turns them on.
  • Tools and lanes are numbered from 1 (#957) - everywhere the screen names a tool, a
    nozzle or a lane for you to read, it counts the way people do: "Tool 1" and "Nozzle 1"
    where it used to say T0, including the pre-print filament check and the tool switcher.
    G-code, macros and the console keep the T0 spelling the printer expects.
  • Portrait home ships the print status card in its Detailed style, which adds the
    Job Queue button.
  • The empty Plugins screen is gone from Settings -> System (#1235).

Fixed

Performance

  • Faster drawing on every board - the screen draws directly instead of through a
    separate render thread, which measured cheaper on every shipping board. The K1 family
    gains an image cache that cuts home screen drawing by about 14%, the home screen loads
    its printer picture at the exact size first instead of rescaling on every visit, and
    the theme skips rebuilding when nothing changed.
  • Raspberry Pi: GPU presentation where the Pi has a hardware renderer (#1580) - the
    Pi package includes a build that hands finished frames to the GPU. The launcher uses
    it only when it finds a real hardware renderer, and falls back to the standard display
    path if it is declined or crashes.
  • Tool remapping streams the file instead of holding the whole G-code file in memory.
  • Turning animations off stops all of them, including screen transitions and the
    heater icon pulse.

Crashes and stability

  • One Klipper fault, one dialog - a shutdown that names its reason no longer stacks a
    Printer Error alert under the recovery dialog. While the recovery dialog is up, a
    further fault shows as a notification and in the notification history instead of
    another dialog.
  • K1 crash while drawing (#1673) - an image could be freed while the display was
    still drawing it. Teardown now waits for drawing to finish, including behind every
    dialog.
  • Crash tapping jog controls after switching printers (#1707), and screens from the
    previous printer are freed instead of kept in memory.
  • Unplugging a touchscreen or mouse could crash the app or leave input dead.
  • A bad byte in a Wi-Fi name, printer name or file name (#1493) could stop the app or
    silently lose a whole settings save.
  • Small-memory boards (#724) - a background thread that failed to start could take
    the whole app down.
  • AD5M Pro crash loop - the watchdog could retry a crashing app forever with the
    screen dark. It now gives up and hands over to the system.
  • A whole class of crash when leaving a screen, where a screen reacted to a value that
    had already been freed, is closed off across the app.

Network

  • A printer whose address changed was retried at the old one forever - the Android
    app hanging mid-print until a restart. The printer's name is looked up again before
    every reconnect.
  • A brief disconnect no longer brings up the connection-failed dialog meant for a
    printer that was never reached.
  • An administrator's radio block is left alone (#1697) - HelixScreen stopped turning
    Wi-Fi on at boot on machines where it never set Wi-Fi up.

Don't miss a new helixscreen release

NewReleases is sending notifications on new releases.