Trigger Your First OTA Update¶
Phase 2 — Tenant-Stack required
hawkBit, ThingsBoard, and the OTA update pipeline are part of the Tenant-Stack, which is available in Phase 2. The steps below will work once a Tenant-Stack is deployed and the device is enrolled. See Tenant-Stack Setup.
This guide shows you how to upload a software bundle to hawkBit and deploy it to a device.
Prerequisites¶
- The Tenant-Stack is running (ThingsBoard + hawkBit bootstrapped).
- At least one device is enrolled and connected (see Enroll Your First Device).
- The device's
rauc-hawkbit-updaterservice (orddi-poll.shsimulation) is running.
1. Log In to hawkBit¶
Open https://tenant.example.com/hawkbit in your browser (replace with your Tenant-Stack hostname).
Default credentials:
- Username:
admin - Password:
admin
2. Upload a Software Bundle¶
- Go to Upload in the left navigation.
- Create a new Software Module:
- Name:
cdm-os-image - Version:
1.0.0 - Type:
OS - Upload a bundle file. For testing, you can use any file (the simulation does not check the content).
- Create a Distribution Set:
- Name:
cdm-release-1.0.0 - Version:
1.0.0 - Assign your software module to it.
3. Create a Rollout Campaign¶
- Go to Rollout in the left navigation.
- Click Create Rollout.
- Fill in:
- Name:
test-rollout-1 - Distribution Set:
cdm-release-1.0.0 - Target Filter:
name==device-001(or*for all devices) - Action Type:
Forced - Groups: 1 group, 100% of targets
- Click Create and then Start the rollout.
4. Watch the Device Receive and Apply the Update¶
On the device side, the DDI poller (ddi-poll.sh or rauc-hawkbit-updater) checks hawkBit every 30 seconds. When it detects a pending deployment:
[ddi-poll] Polling hawkBit DDI...
[ddi-poll] Deployment action found: action-id=42
[ddi-poll] Downloading artefacts...
[ddi-poll] Simulating RAUC install (slot B)...
[ddi-poll] Reporting success to hawkBit...
[ddi-poll] Update complete.
Real Hardware
On a real Yocto device with RAUC installed, rauc-hawkbit-updater downloads the bundle and calls rauc install on the inactive A/B partition. After a successful install, the device reboots into the new slot.
5. Verify the Update Status in hawkBit¶
- Go to Deployment in hawkBit.
- Find
device-001— the status should show Finished: Success.
6. Verify the Update Status in ThingsBoard¶
The device reports its OTA status back via MQTT. In ThingsBoard:
- Open the
device-001device. - Check Latest Telemetry for the key
sw_version— it should show1.0.0. - Check Attributes for
rauc_slot— it should reflect the active boot slot.
Next Steps¶
- OTA Updates Workflow — full rollout strategies, staged rollouts, and rollback.
- Monitoring — track update success rates across the fleet in Grafana.