OTA Firmware Updates
The MDM platform supports over-the-air (OTA) firmware updates for managed devices, allowing fleet-wide updates without physical access.
Overview
Section titled “Overview”graph LR A[Upload Firmware] --> B[Deploy to Fleet] B --> C[Download on Device] C --> D[Flash & Reboot]
Firmware Management
Section titled “Firmware Management”Uploading Firmware
Section titled “Uploading Firmware”- Navigate to Firmware → Versions
- Click Upload New Version
- Fill in version metadata:
- Version number (e.g.,
1.52.1) - Release notes
- Target device model
- Minimum compatible version (optional)
- Version number (e.g.,
- Upload the
.binfile - The platform computes and stores the SHA256 checksum
Version List
Section titled “Version List”The firmware page shows all uploaded versions:
| Column | Description |
|---|---|
| Version | Semantic version number |
| Model | Target device model |
| Upload Date | When firmware was added |
| Size | File size |
| Devices | Number of devices running this version |
| Status | Active / Deprecated / Latest |
Deploying Updates
Section titled “Deploying Updates”Single Device Update
Section titled “Single Device Update”- Go to device detail → Commands tab
- Click Firmware Update
- Select the target firmware version
- Choose options:
- Preserve configuration (default: yes)
- Schedule (immediate or delayed)
- Click Deploy
Fleet Deployment
Section titled “Fleet Deployment”- Navigate to Firmware → Deploy
- Select the firmware version
- Choose targets:
- All devices on a specific model
- Devices with tag (e.g.,
region:us-west) - Selected devices from a list
- Configure rollout strategy:
- Immediate — All devices at once
- Staged — Percentage-based rollout
- Click Start Deployment
Staged Rollout
Section titled “Staged Rollout”For large fleets, use staged rollout to reduce risk:
| Stage | Percentage | Wait Time |
|---|---|---|
| Canary | 5% | 1 hour |
| Early | 25% | 4 hours |
| Majority | 50% | 12 hours |
| Complete | 100% | — |
Between stages, monitor for:
- Increased offline rates
- Error reports
- Telemetry anomalies
If issues are detected, pause or abort the rollout.
OTA Process (Device Side)
Section titled “OTA Process (Device Side)”When a device receives a firmware update command:
- Receive — MQTT message on
commands/firmwarewith download URL - Download — Device downloads firmware to
/tmp - Verify — SHA256 checksum validation against expected hash
- Acknowledge — Device reports “update starting” to platform
- Flash —
sysupgradewrites firmware to storage - Reboot — Device restarts into new firmware
- Report — After boot, device reports new firmware version
Timing
Section titled “Timing”| Phase | Duration |
|---|---|
| Download | 30s – 5min (depends on connection) |
| Verify | < 5s |
| Flash | 60 – 90s |
| Reboot | 30 – 60s |
| Total | 2 – 7 minutes |
Monitoring Deployment
Section titled “Monitoring Deployment”The deployment dashboard shows real-time progress:
| Status | Meaning |
|---|---|
| Queued | Update command sent, waiting for device |
| Downloading | Device is downloading firmware |
| Installing | Device is flashing firmware |
| Rebooting | Device is restarting |
| Success | Device reported new version |
| Failed | Download, verify, or flash failed |
| Timeout | Device didn’t complete within 15 minutes |
Failure Handling
Section titled “Failure Handling”If an update fails:
- Device remains on current firmware (safe — flash only proceeds after verification)
- Platform logs the failure reason
- Admin can retry the update or investigate
- Automatic retry available (configurable: 1-3 retries with backoff)
Modem Firmware Updates
Section titled “Modem Firmware Updates”Cellular modem firmware is updated separately from router firmware:
- Modem firmware is uploaded to the platform
- Update command sent to device
- Device uses QFirehose protocol to flash the modem
- Modem restarts and re-registers on network
- Device reports new modem firmware version
Best Practices
Section titled “Best Practices”- Test on a single device first before fleet deployment
- Use staged rollout for production fleets
- Monitor after deployment for unexpected behavior
- Keep previous versions available for quick rollback
- Document release notes for each firmware version
- Set minimum version requirements to prevent incompatible downgrades