Docked and standalone. A module now detects at power-on whether it is docked in the multi-enclosure backplane.
Standalone works as before: touchscreen, RJ45 Ethernet and USB-C networking.
Docked, the module's only link is the dock's Ethernet. The display stays off, and the dock link uses DHCP, falling back to 192.168.0.95/16 after 30 seconds.
The web interface gains Dock Ethernet settings; REST reports the docked state and dock network settings, and SCPI adds :SYSTem:DOCKed? and :SYSTem:NETwork:DOCK:*.
This update also rewrites the bootloader, which is what detects the dock.
Install
Update from the web interface
Open the device's IP address in a browser and select the Firmware Update tab. It shows the
running firmware Version, the Active Slot the device booted from (A or B), and the
Inactive Slot, the other one. The device uses an A/B slot scheme: firmware is always installed to
the inactive slot, so the running firmware is never modified while it is in use.
The Firmware Update tab. Update both slots is checked by default.
Choose the update mode. Update both slots (auto-reboot between slots) is checked each time the
page loads: the device installs the firmware to the inactive slot, reboots into it, then installs it to the
second slot. That replaces the previous firmware in both slots, so no copy of it remains to fall back to. To
keep one, uncheck the box: only the inactive slot is updated and the previous firmware stays in the other.
Supply the bundle in one of two ways:
File upload: drag and drop the downloaded .raucb file onto the upload area, or
click Choose File.
URL install: paste the install URL (Copy install URL on the Releases tab)
and click Install from URL. The device downloads and installs the firmware itself. The URL
must be HTTPS, from a server with a valid TLS certificate.
Confirm the prompt the browser shows before the install starts.
The checkbox, upload area and URL field are replaced by a progress bar and status message. The page checks the
status every 2 seconds and keeps checking through the automatic reboot of a both-slots update.
A both-slots update installing the second slot.
When the update finishes:
Both slots: the page shows Both firmware slots updated successfully. No reboot is
needed.
Single slot: click Reboot to Activate New Firmware and confirm. The device
reboots into the new firmware and the page reloads 30 seconds later.
After a single-slot update.
If a both-slots update is interrupted
The bundle is too large to stage on the device's storage, so it is supplied again for the second slot after the
mid-update reboot:
File upload: keep the browser tab open. The page holds the bundle in memory and re-uploads it
automatically once the device is back up.
URL install: the device downloads the bundle again on its own, so the tab can be closed.
If a file-upload update is interrupted, for example by closing or reloading the tab before the second slot
finishes, the device runs the new firmware from the first slot and keeps the previous firmware on the second.
Both remain bootable. The next time you open the Firmware Update tab, a Both-slots update
interrupted banner offers two choices:
Re-select firmware to finish: choose the same .raucb file to install it to the
second slot. A file with a different version is rejected and the banner stays.
Cancel both-slots update: leave the second slot on the previous firmware.
The banner after an interrupted file-upload update.
If an update fails
A Last error box below the firmware information gives the reason, and the upload area returns
so you can try again. A request the device rejects outright, such as a URL that is not HTTPS, is reported in a
notification that disappears after a few seconds.
A failed update.
Automate
Update over the REST API
Install from a URL
The simplest way to script an update. Unlike the web interface, the API updates only the inactive slot unless
you add ?mode=full. With it, the device installs to both slots and, after its reboot, downloads the
bundle again and finishes the second slot without further help.
POST /api/firmware/update takes the bundle as the firmware field of a
multipart/form-data request. Single slot:
curl -X POST -F "firmware=@ninefives-4.7.0.raucb" \
http://<device-ip>/api/firmware/update
Both slots add ?mode=full. The device reboots after the first slot and then reports
updatePhase: "awaiting_second_upload"; upload the same bundle again to finish, or cancel to stay on
the new firmware with the previous version kept in the second slot:
curl -X POST -F "firmware=@ninefives-4.7.0.raucb" \
"http://<device-ip>/api/firmware/update?mode=full"
curl -X POST -F "firmware=@ninefives-4.7.0.raucb" \
http://<device-ip>/api/firmware/update/resume
curl -X POST http://<device-ip>/api/firmware/update/cancel
Follow progress
Installs run in the background and return 202 Accepted. Poll the status. It reports
updateInProgress, updateProgress (0–100) and updateMessage; for a
both-slots update, updateMode: "full" and the updatePhase:
installing_first, rebooting, awaiting_second_upload (an upload-sourced
update waiting for the bundle at /resume) or installing_second. A failure is reported
in lastError. Fields that are zero or empty are left out.
curl http://<device-ip>/api/firmware/status
When the update finishes, updateProgress stays at 100 and updateMessage keeps the result
until the device restarts. A both-slots update reports "Both slots updated successfully." and needs
no reboot. A single-slot update reports
"Installation complete. Reboot to activate new firmware."; reboot to activate it:
curl -X POST http://<device-ip>/api/system/reboot
A request fails with 400 for a missing or non-.raucb file or a non-HTTPS URL,
409 while another update is in progress, and 503 if the firmware manager is not
available.
Verify and read more
Check a download with sha256sum (Linux and macOS) or Get-FileHash (Windows) against the
SHA-256 on the Releases tab. The full reference is in each product's manual: