Skip to main content
Bota supports two over-the-air (OTA) firmware update paths:
PathTransportTriggerBest For
HTTP OTAWiFi / 4GBackend assigns update, device downloads on next heartbeatDevices with WiFi or 4G — no user action required
BLE OTABluetoothUser initiates in the mobile appAny device — works without WiFi or 4G
Both paths start with a firmware release uploaded to the portal. Bota provides the firmware files for each release — contact support@bota.dev to obtain them.

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.
FieldDescription
VersionVersion string (e.g., v1.0.1)
Device ModelBota 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
Both files are required to mark a release as Released. After uploading, click Release to make the release available for assignment.

Step 2: Assign to a Device

  1. Open the device in the portal (Devices → select device → OTA tab)
  2. Select the firmware release
  3. Click Assign
The assignment is created with status pending. The device will receive the update on its next heartbeat (within 60 seconds).

Assignment Status

StatusDescription
pendingAssigned, waiting for the device to check in
deliveredOTA manifest sent to device in heartbeat response
appliedDevice reported the new firmware version
failedDevice reported an error during update

What the Device Does

Once the device receives the OTA manifest:
  1. Downloads the .bin from the presigned S3 URL (retries up to 10 times on connection loss)
  2. Verifies integrity via CRC32 checksum
  3. Writes to flash storage
  4. Reboots and applies the update
The device continues operating normally during download. A reboot is required to apply the firmware — the device will briefly go offline.

Monitoring

The device reports its firmware version in every heartbeat. When it matches the assigned release version, the assignment is automatically marked as applied.
{
  "firmware_version": "v1.0.1-001"
}
You can also check assignment status in the portal under Devices → device → OTA tab.

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.
  1. User connects device via Bluetooth in the app
  2. App shows “Update Available” on the Device tab
  3. User taps the update prompt and confirms
  4. App downloads the .ufw file and transfers it to the device over Bluetooth (~2–5 minutes)
  5. Device verifies and reboots — the bootloader applies the update
The app shows a progress screen with live status (downloading, transferring, verifying).

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 OTABluetooth OTA
User actionNone (automatic)User confirms in app
ConnectivityWiFi or 4G requiredBluetooth only
Assignment neededYesNo
Transfer timeFast (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.