docs: add version check on BLE connect to OTA spec
This commit is contained in:
parent
5524f173ac
commit
6df65d9adf
1 changed files with 14 additions and 2 deletions
|
|
@ -15,6 +15,7 @@ Firmware-updates via Bluetooth LE vanaf de Android app, zonder USB-kabel. Doelgr
|
||||||
|
|
||||||
### ESP32-S3 kant (`src/main.cpp`)
|
### ESP32-S3 kant (`src/main.cpp`)
|
||||||
|
|
||||||
|
- Nieuwe BLE characteristic `VERSION_UUID = "beb5483e-36e1-4688-b7f5-ea07361f26db"` — READ, exposeert firmwareversie als string
|
||||||
- Nieuwe BLE characteristic `OTA_UUID = "beb5483e-36e1-4688-b7f5-ea07361f26da"` — WRITE + NOTIFY
|
- Nieuwe BLE characteristic `OTA_UUID = "beb5483e-36e1-4688-b7f5-ea07361f26da"` — WRITE + NOTIFY
|
||||||
- Bestaande relay service blijft volledig intact, aparte characteristic in dezelfde service
|
- Bestaande relay service blijft volledig intact, aparte characteristic in dezelfde service
|
||||||
- OTA-modus flag: tijdens OTA worden relay-commando's genegeerd, relais vallen UIT
|
- OTA-modus flag: tijdens OTA worden relay-commando's genegeerd, relais vallen UIT
|
||||||
|
|
@ -30,8 +31,19 @@ Firmware-updates via Bluetooth LE vanaf de Android app, zonder USB-kabel. Doelgr
|
||||||
|
|
||||||
- Nieuwe `OtaManager.kt` — leest firmware, hasht, chunkt, verstuurt
|
- Nieuwe `OtaManager.kt` — leest firmware, hasht, chunkt, verstuurt
|
||||||
- OTA-knop in `SettingsActivity.kt` met progress UI
|
- OTA-knop in `SettingsActivity.kt` met progress UI
|
||||||
|
- Bij BLE connect: leest firmwareversie van ESP via `VERSION_UUID` characteristic, vergelijkt met versie in app. Toont toast bij beschikbare update.
|
||||||
- Firmware bron: `assets/firmware.bin` (of bestandskiezer voor handmatige update)
|
- Firmware bron: `assets/firmware.bin` (of bestandskiezer voor handmatige update)
|
||||||
- SHA-256 hash berekening voor eindverificatie
|
- SHA-256 hash berekening voor eindverificatie
|
||||||
|
- Bundled firmwareversie (uit `assets/`) vergeleken met ESP-versie bij connect
|
||||||
|
|
||||||
|
## Versie-check bij BLE connect
|
||||||
|
|
||||||
|
Bij elke BLE-verbinding leest de Android app de `VERSION_UUID` READ characteristic van de ESP. De ESP retourneert de stringwaarde van `FIRMWARE_VERSION`. De app vergelijkt met de versie van de gebundelde `firmware.bin` in assets. Als de ESP een lagere versie heeft toont de app een toast: "Firmware-update beschikbaar" — de gebruiker kan dan in SettingsActivity de OTA starten.
|
||||||
|
|
||||||
|
| VERSION_UUID | "beb5483e-36e1-4688-b7f5-ea07361f26db" |
|
||||||
|
|---|---|
|
||||||
|
| Properties | READ |
|
||||||
|
| Waarde | String, bijv. `"1"` |
|
||||||
|
|
||||||
## BLE OTA Protocol
|
## BLE OTA Protocol
|
||||||
|
|
||||||
|
|
@ -99,7 +111,7 @@ Chunk nuttige data: 488 bytes (512 - 24 header overhead)
|
||||||
## Edge cases
|
## Edge cases
|
||||||
|
|
||||||
- **OTA opnieuw starten:** `ota_1` wordt overschreven, geen clean-up nodig
|
- **OTA opnieuw starten:** `ota_1` wordt overschreven, geen clean-up nodig
|
||||||
- **Versie-check:** App kan firmwareversie opvragen voordat OTA start
|
- **Versie-check:** Bij BLE connect leest de app de firmwareversie van de ESP (`VERSION_UUID` characteristic). Bij mismatch met gebundelde firmware toont app een toast "Firmware-update beschikbaar" en activeert de OTA-knop.
|
||||||
- **Tijdens actieve relais:** relais vallen UIT bij start OTA (rust-toestand)
|
- **Tijdens actieve relais:** relais vallen UIT bij start OTA (rust-toestand)
|
||||||
|
|
||||||
## Transfertijd schatting
|
## Transfertijd schatting
|
||||||
|
|
@ -110,7 +122,7 @@ Chunk nuttige data: 488 bytes (512 - 24 header overhead)
|
||||||
|
|
||||||
| Bestand | Wijziging |
|
| Bestand | Wijziging |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `src/main.cpp` | OTA characteristic, `esp_ota_*` logica, OTA-modus flag, LED-signalering |
|
| `src/main.cpp` | VERSION characteristic, OTA characteristic, `esp_ota_*` logica, OTA-modus flag, LED-signalering |
|
||||||
| `platformio.ini` | Geen wijziging (partitietabel al OTA-ready) |
|
| `platformio.ini` | Geen wijziging (partitietabel al OTA-ready) |
|
||||||
| `android/.../OtaManager.kt` | Nieuw: firmware lezen, hashen, chunken, BLE verzenden |
|
| `android/.../OtaManager.kt` | Nieuw: firmware lezen, hashen, chunken, BLE verzenden |
|
||||||
| `android/.../SettingsActivity.kt` | OTA-knop + progress UI |
|
| `android/.../SettingsActivity.kt` | OTA-knop + progress UI |
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue