Rinkhals 20260704_01_test
Pre-releaseWarning
Develop snapshot, not for production.
This is a test build cut from the develop branch, not a release. It contains in-progress work that has not been through the full release verification path. Install it on a printer you're comfortable recovering, not your daily driver. If you hit problems, file an issue with logs and a debug bundle, and roll back to 20260606_02 if you need a stable build.
Everything in the most recent stable release (20260606_02) is also in this build. See the 20260606_02 release notes for the stable feature set: https://github.com/rinkhals-community/Rinkhals/releases/tag/20260606_02
Highlights of this build
- Kobra S1 Max firmware 2.7.1.4 is now supported. New runtime gate, build-time gate, and K3SysUi/gkapi binary patches for the version Anycubic shipped after 2.6.9.6. Stock printer.cfg on this firmware adds a
[fan_generic exhaust_fan]section (new exhaust fan hardware) and some wipe/throw gcode motion tuning; nothing that needed special handling on our side. - Fixed: Rinkhals touch menu showed 4 blank tiles on Kobra S1 Max. The K3SysUi patch on KS1M 2.6.9.3 and 2.6.9.6 was hooking the wrong row of the Device settings menu (Export logs to U-disk instead of Service Support), so tapping the relabelled "Rinkhals" entry ran the stock Service Support page instead of launching the Rinkhals UI. Root-caused from a community report (discussion #53) by reading the menu's jump table directly rather than assuming a fixed address offset from a previous firmware. If you're on a KS1M and have seen this, this build should fix it... please confirm on your printer.
What's new on develop since 20260606_02
App Store
- New touchscreen App Store that browses and installs community apps directly from the printer, sourced from the
Rinkhals.Appscatalog. Includes model-aware SWU selection during install, atomic install behaviour, a stale-button guard for the apps list, and workflow guards in the install pipeline.
Web portal
- For now the default address for the web portal is http://:8090 THIS WILL CHANGE IN THE FUTURE
- Read-only Firmware page that shows the Anycubic stock-firmware catalogue alongside the Rinkhals patches available for each version.
- Firmware install flow plumbed end-to-end with the new Rinkhals Patches card.
- Symlink handling in the file browser is now a first-class node type instead of being treated as an opaque file.
- Terminal bottom-row clipping is fixed and the page has more bottom padding under the last row.
- CORS centralised and the wildcard origin dropped. Dev-mode default port fixed.
- Apps card now gates installs and uninstalls while a print is running.
- Dashboard visual cleanup: dropped decorative accent dots and the inline
devbadge from the navigation. - Dashboard now shows comprehensive system metrics and printer state blocks; Remote Display and Webcam mapping restored; Mainsail/Fluidd port mappings corrected.
- Web shell (terminal) now starts sessions in
/root. - Machine Settings renamed to "Manage Rinkhals" and moved to the bottom of the sidebar.
Moonraker / GoKlipper integration
- Workaround for the GoKlipper
FIRMWARE_RESTART/RESTARTdeadlock that leaves Mainsail and Fluidd disconnected until power-cycle. The gcode is now refused at the Rinkhals shim layer with an explanatory message, instead of being forwarded to gklib where it wedges. - Latent
data_store._init_sensorsTypeError fixed. GoKlipper returnsheaters.available_monitors: nulland the upstream code did.get(key, [])which doesn't substitute the default on explicit nulls. Normalised inside the existingpatch_mainsailwrap so every downstream consumer sees[]instead ofNone. - KS1M Home All wedging Mainsail/Fluidd fixed by synthesising
motion_reportfromtoolheadinstead of exposing GoKlipper's own broken implementation. mmu_ace: custom tool-to-gate mapping (ttg_map) set via the Fluidd Tool Mapping dialog no longer gets silently overwritten by the periodic ACE status poll (issue #49).- Suppressed a spurious klipper config path warning.
Firmware support
- Kobra S1 firmware 2.7.2.7 supported, with the
minimum_cruise_ratiooverride that avoids a GoKlipper NaN crash on that firmware. - Kobra S1 Max firmware 2.6.9.6 supported.
- Kobra S1 Max firmware 2.7.1.4 supported (this build).
Other fixes
K3SysUino longer spawns a duplicateudhcpcafter the DHCP app has already started.ashglob handling fixed so/rootstays read-write persistent across boots.- Legacy
printer_mutable.cfgcyclic symlinks are now guarded against. - Local LCD snake animation restored during updates.
- App status parsing in the monitor now explicitly checks for the
startedstate.
Test plan
If you install this build, please specifically exercise:
- Kobra S1 Max on 2.7.1.4: confirm Rinkhals installs and boots cleanly.
- Kobra S1 Max on 2.6.9.3 / 2.6.9.6: tap the "Rinkhals" entry in the Device settings menu and confirm it opens the real Rinkhals UI (not 4 blank tiles).
- App Store browse and install flow on your printer model.
- Web portal Firmware page — does the Anycubic catalogue render? Does the install flow surface the right SWU for your model?
- Mainsail / Fluidd: send a
RESTARTfrom the console; you should see an explanatorygcode_responseinstead of a wedged connection. mmu_ace: set a custom tool mapping in Fluidd's Tool Mapping dialog and confirm it survives a few minutes of ACE status polling instead of reverting to 1:1.
Report findings to https://github.com/rinkhals-community/Rinkhals/issues with a debug bundle.
Full Changelog: 20260606_02...20260704_01_test