SnapScreen_0.5.0_firmware
SnapScreen 0.5.0
A stronger foundation for every screen
This release focuses on the everyday experience: opening files, switching views,
watching the camera, inspecting G-code and controlling the printer. Behind those
screens, we have reviewed and strengthened connection handling, background tasks,
memory use and the checks that protect printer operations.
The highlights: more reliable screen transitions, better-behaved camera and
preview loading, more accurate G-code interpretation, and substantial work on
the experimental CFS Nano integration.
Interface and everyday controls
- Files and Macros: fixed background-loading and dialog ownership problems
when moving between the main screen and customizable side panels. Closing an
old screen no longer invalidates the newly opened panel's data. - File thumbnails: improved loading around the visible list, retries for
individual failed thumbnails, and protection against outdated results appearing
after navigation or a selection change. - Printing: controls now recheck the current print session and connection
state. Cancel confirmation belongs to the job it was opened for, and repeated
taps are limited to prevent immediate duplicate requests. - Automatic print-screen navigation: improved session tracking, including
starting another print with the same filename. - Temperature and Tune: nozzle controls explicitly target the active
extruder. Partial temperature updates no longer replace its readings with
another heater's values. - Flow: now follows the printer's reported extrusion multiplier, including
a genuine zero value instead of incorrectly displaying 100%. - Settings: failed settings writes are reported rather than treated as
successful changes. Maintenance actions recheck printer readiness before
interrupting a connection or changing stored configuration. - Screenshots: incomplete captures are rejected instead of silently saving
an image with missing overlay content.
Camera and previews
- Switching camera sources no longer starts competing background workers.
- Entering fullscreen preserves the camera source and session while updating
the output size, with zoom handled relative to the source crop. - Camera frames and status updates are checked before publication so results
from an old source cannot overwrite the current view. - Removed an extra HD image copy, saving approximately 4 MB of working memory.
- Improved thumbnail publication and temporary-file handling. Incomplete
downloads no longer replace a previously valid preview.
G-code Viewer
- Corrected coordinate-reset handling (
G92) to avoid artificial jumps in
rendered geometry. - Improved arc interpretation, including supported circular and helical moves,
plane selection and absolute/relative arc-center modes. - Invalid or unsupported arcs are reported rather than drawn as misleading
straight extrusion paths. - Improved layer counting to avoid counting Z-hop moves or duplicate layer markers.
- Lightweight rendering samples the elements that remain visible after filtering.
- Added clipping before line rasterization to handle extreme off-screen geometry.
- Corrected progress calculations for large G-code files.
- Oversized commands and incomplete streams are rejected rather than presented
as a successfully loaded, complete model. - Introduced a shared PSRAM budget for 3D geometry, leaving room for the rest of
the interface. Reaching a model limit is explicitly reported as a partial preview.
Printer operations and calibration
- Manual movement preserves and restores G-code parsing state; manual extrusion
explicitly uses relative extrusion mode. - Homing, motor controls, offset saving and calibration check current printer
state before proceeding. - Bed Mesh calibration and live screw leveling share operation ownership,
preventing overlapping procedures within SnapScreen. - Improved cancellation and heating/soak timeouts. An unconfirmed stop remains
visibly unresolved instead of immediately allowing another calibration. - Invalid, incomplete or non-finite mesh data is rejected instead of being
displayed as a valid bed surface. - Manual filament-change confirmations are tied to their print session and
request. Normal Resume requires a fresh, affirmative sensor reading; Force
does not bypass print-session checks.
Terminal, connectivity and OTA
- Terminal SD loading and log export run in the background. Failed queue
submission keeps the user's input, and oversized commands are rejected in full. - Existing command files are preserved when empty or unreadable rather than
overwritten with defaults. - Centralized WebSocket ownership and bounded command queues reduce conflicts
between the interface and connection lifecycle. - Outdated queued commands are discarded when their connection context changes;
movement commands are not automatically replayed after reconnect. - Shared printer-state snapshots give screens a consistent view of telemetry.
- HTTP downloads now check response completeness before accepting files or metadata.
- Improved coordination between OTA and Moonraker, and restored TLS hostname
verification alongside certificate validation.
CFS Nano and NightOwl
CFS Nano remains experimental. This release strengthens its software
integration, but full physical protocol and filament-handling validation is
still pending. It is not a declaration of production-ready changer support.
- Fixed the stack-protection panic encountered when opening the CFS screen.
- Strengthened separation between CFS Nano and NightOwl, including backend
selection and Auto/Manual/Off checks. - Command results are retained independently of heartbeat updates and UI selection.
- Missing acknowledgements no longer trigger automatic repetition of filament
feed or retract commands. - Cancellation invalidates pending CFS work. If physical stopping cannot be
confirmed, the interface reports that uncertainty explicitly. - Added stricter sensor freshness checks and correlated script responses.
- Numbered change requests help reject duplicate or out-of-order markers within
a print session. - Readiness checks focus on the units actually required by the operation.
- Improved protection against conflicting file-processing/upload jobs and
incomplete local writes. - NightOwl unload failures no longer masquerade as a completed change followed
by an automatic resume.
Downloads
| Asset | Purpose |
|---|---|
firmware.bin |
Standard / normal SnapScreen hardware |
firmwarexl.bin |
SnapScreen XL hardware |
version.json |
OTA version manifest shared by both variants |
Choose the firmware for your hardware variant. OTA uses the variant selected
in the installed firmware. The manifest version for this release is 0.5.0.
Validation and testing notes
- 34 regression scripts passed.
- Standard and XL builds completed successfully.
- The earlier CFS screen-entry fix was verified on both devices without the
previously observed stack panic. The final Files/Macros side-panel changes
have regression/build coverage but still need on-device interaction testing. - Factory C6 firmware and XL panel-rotation settings remain unchanged.
- Physical CFS behavior, delayed acknowledgements, stop/runout scenarios and
hardware-specific display behavior still require testing. This release does
not claim to eliminate every possible display flash or rendering stall.
When reporting a problem, please include your hardware variant, firmware
version, steps to reproduce, and serial logs if available. For camera
or 3D-viewer issues, also include the selected source or a reproducible G-code file.