github rinkhals-community/Rinkhals 20260704_01_test
Rinkhals 20260704_01_test

pre-release5 hours ago

Warning

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.Apps catalog. 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 dev badge 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 / RESTART deadlock 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_sensors TypeError fixed. GoKlipper returns heaters.available_monitors: null and the upstream code did .get(key, []) which doesn't substitute the default on explicit nulls. Normalised inside the existing patch_mainsail wrap so every downstream consumer sees [] instead of None.
  • KS1M Home All wedging Mainsail/Fluidd fixed by synthesising motion_report from toolhead instead 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_ratio override 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

  • K3SysUi no longer spawns a duplicate udhcpc after the DHCP app has already started.
  • ash glob handling fixed so /root stays read-write persistent across boots.
  • Legacy printer_mutable.cfg cyclic symlinks are now guarded against.
  • Local LCD snake animation restored during updates.
  • App status parsing in the monitor now explicitly checks for the started state.

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 RESTART from the console; you should see an explanatory gcode_response instead 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

Don't miss a new Rinkhals release

NewReleases is sending notifications on new releases.