Documentation version: v0.6.1
Firmware updates¶
Device applicability
This document applies to OpenZilo Q.
Update requirements
Use the official OTA package specified in the release notes. Match the device model, hardware revision and starting firmware version. The SDK updates application firmware only, not the bootloader.
1. Select a package¶
Open official firmware releases. Confirm that your model and hardware revision are supported, your current version is an allowed starting version, and you have read the data-retention policy and known issues.
Download the OTA package and keep its target version, model and SHA-256 checksum from the release notes. Factory flashing files are not SDK OTA packages.
2. Prepare¶
Back up important recordings. Stop recording, downloads and IMU reporting, and disconnect other apps. Ensure sufficient charge according to the release instructions.
From the SDK repository:
uv sync --locked
uv run openzilo device use
uv run openzilo info
Record the current firmware version. Run uv run openzilo ota-update --help to inspect the installed updater.
3. Run the update¶
Replace each placeholder with the values for this release:
uv run openzilo ota-update "path/to/official-update.bin" --version "TARGET_VERSION" --sha256 "SHA256_FROM_RELEASE" --model "MODEL_FROM_RELEASE"
The command uses your saved device; --address selects another one. Keep the ring nearby and avoid interrupting power or Bluetooth.
--sha256 verifies the downloaded bytes and --model checks the connected model. Starting-version compatibility must still follow the release notes.
4. Confirm completion¶
After transfer, the SDK waits for reboot, reconnects, checks that it is the same device, and reads its firmware version. The command reports success only after the target version is confirmed. Continue waiting when transfer reaches 100%.
Run uv run openzilo info again, record a short clip and check the features your application uses.
Timeouts are in seconds: --timeout defaults to 30 per operation, --total-timeout to 600 for preparation and transfer, and --reboot-timeout to 90 for reboot, reconnect and version checks. See the SDK guide and update_firmware.py for Python integration.
If the update is interrupted¶
Reconnect and read the firmware version before retrying after a timeout, disconnect or cancellation. Exiting the computer-side updater does not withdraw a package already received by the ring.
If reconnection fails, record the starting version, target version and error message, then contact support. Downgrade, recovery and recording retention depend on the release instructions.