| Path | Transport | Trigger | Best For |
|---|---|---|---|
| HTTP OTA | WiFi / 4G | Backend assigns update, device downloads on next heartbeat | Devices with WiFi or 4G — no user action required |
| BLE OTA | Bluetooth | User initiates in the mobile app | Any device — works without WiFi or 4G |
HTTP OTA (WiFi / 4G)
For devices with WiFi or 4G connectivity. The update is fully automatic — once assigned, the device downloads and applies the firmware on its next heartbeat with no user interaction.How It Works
Step 1: Create a Firmware Release
Navigate to Firmware in the portal and click Upload Firmware.| Field | Description |
|---|---|
| Version | Version string (e.g., v1.0.1) |
| Device Model | Bota Pin, Bota Pin Pro, or Bota Note |
| Firmware file (.bin) | HTTP OTA binary — downloaded directly by the device |
| Firmware file (.ufw) | Bluetooth OTA file — pushed by the mobile app |
Step 2: Assign to a Device
- Open the device in the portal (Devices → select device → OTA tab)
- Select the firmware release
- Click Assign
pending. The device will receive the update on its next heartbeat (within 60 seconds).
Assignment Status
| Status | Description |
|---|---|
pending | Assigned, waiting for the device to check in |
delivered | OTA manifest sent to device in heartbeat response |
applied | Device reported the new firmware version |
failed | Device reported an error during update |
What the Device Does
Once the device receives the OTA manifest:- Downloads the
.binfrom the presigned S3 URL (retries up to 10 times on connection loss) - Verifies integrity via CRC32 checksum
- Writes to flash storage
- Reboots and applies the update
Monitoring
The device reports its firmware version in every heartbeat. When it matches the assigned release version, the assignment is automatically marked asapplied.
Bluetooth OTA (App-Driven)
For any device via Bluetooth. The end user initiates the update in the mobile app — no WiFi or 4G required. The app downloads the firmware from the cloud and transfers it to the device over BLE.How It Works
How to Trigger
No assignment is required. The mobile app automatically detects when a newer firmware release exists for the connected device and presents an Update Available prompt.- User connects device via Bluetooth in the app
- App shows “Update Available” on the Device tab
- User taps the update prompt and confirms
- App downloads the
.ufwfile and transfers it to the device over Bluetooth (~2–5 minutes) - Device verifies and reboots — the bootloader applies the update
Requirements
- Device must be BLE-connected to the mobile app
- A released firmware version newer than the device’s current version must exist in the portal
- No active recording on the device during transfer
Key Differences from HTTP OTA
| HTTP OTA | Bluetooth OTA | |
|---|---|---|
| User action | None (automatic) | User confirms in app |
| Connectivity | WiFi or 4G required | Bluetooth only |
| Assignment needed | Yes | No |
| Transfer time | Fast (direct download) | ~2–5 min over Bluetooth |
Key Constraints
- One active assignment — A device can only have one pending HTTP OTA assignment at a time.
- No active recording — Firmware transfer (both paths) is rejected if a recording is in progress.
- No partial resume — If a Bluetooth transfer fails, it restarts from the beginning. HTTP OTA retries automatically.
- Heartbeat delay — HTTP OTA is delivered on the next heartbeat. Allow up to 2 minutes from assignment to delivery.
- BLE connection blocks HTTP OTA delivery — When a device is connected to the mobile app via Bluetooth, it pauses its own heartbeat and the app relays status instead. The relay does not deliver OTA manifests, so HTTP OTA assignments will not be received while Bluetooth is active. The mobile app detects pending assignments and lets the user install them via Bluetooth instead.
Related
- Device Management — Register devices and configure settings
- Connectivity — WiFi and cellular network configuration
- Cellular Mode — Operate devices autonomously over 4G

