Friend icon indicating copy to clipboard operation
Friend copied to clipboard

Cloud update for firmware

Open kodjima33 opened this issue 10 months ago • 3 comments

Firmware on Friend's wearable should be able to be updated via cloud

reference

Ideal scenario: All friend's firmware should check our github folder and auto-update once it has internet connection>

"ok" scenario: Friend's firmware should be able to update via the mobile app "appwithwearable"

User-story: As a user, I want to be able to open Friend's app, connect to my wearable, then click "update". It should update the firmware from github

kodjima33 avatar Apr 27 '24 05:04 kodjima33

Resources to help solve the issue: https://github.com/adafruit/Adafruit_nRF52_Bootloader/pull/291

https://enzolombardi.net/adding-ota-firmware-update-support-to-xiao-ble-boards-3db6f034c1fa

https://github.com/0hotpotman0/Adafruit_nRF52_Bootloader

akshaynarisetti avatar Apr 29 '24 20:04 akshaynarisetti

So it looks like with the bootloader in place, we should be able to utilize nordic's swift and java libraries to do the updating for us from the app. Adafruit's bluefruit le connect app is an example (see this dir).

after-ephemera avatar May 01 '24 17:05 after-ephemera

Did more research on the topic:

  • Information on Zephyr DFU here with links to FOTA and the guide

eng1n88r avatar May 03 '24 02:05 eng1n88r

Initial implementation of firmware changes to support the OTA DFU, and a rudimentary button to trigger update from app asset currently in https://github.com/francip/Friend/tree/francip-ota-update-client

Known issues:

  • need to instruct current users to update the bootloader to min v0.8.0, preferably to v0.9.0 using uf2 file (instructions in firmware/readme.md)
  • need to produce new firmware v1.0.3 uf2 file
  • going forward need to produce both uf2 file and a zip file for future firmware versions. UF2 will be used for manual update for advanced users, zip will be used by the app for OTA DFU
  • need to add app changes to properly deal with OTA state and progress tracking

francip avatar Jun 02 '24 08:06 francip

https://github.com/BasedHardware/Friend/pull/207

francip avatar Jun 02 '24 17:06 francip

The firmware changes have landed.

francip avatar Jul 08 '24 17:07 francip