Firmware Update over Bluetooth LE
#1
Hi All: Here's a proposed plan for supporting PineTime firmware updates over Bluetooth LE. If you're a firmware developer, please take a look...

https://lupyuen.github.io/pinetime-rust-...ticles/dfu

It covers everything we need to do to implement firmware updates in our firmware: Bootloader, Bluetooth Stack, Firmware Rollback, Flash ROM Layout, Firmware Format, Mobile Apps, ...

We need to adopt a common mechanism for firmware updates if we wish to allow PineTime Owners to switch firmware easily. It's more work for us developers... But it's a huge benefit for PineTime Owners!

Please lemme know what you think... While writing this article I have received really good feedback from firmware developers. Their suggestions have been documented in the "Upcoming Enhancements" section.

The most serious limitation in the proposed design is that the firmware size must not exceed 232 KB. Hence there will be an upcoming enhancement to increase this limit (by moving the Standby Firmware Image to External SPI Flash).

Thanks everyone for the awesome work on PineTime... Now let's make PineTime fun and easy to learn and explore! :-)
#2
Just updating everyone on my MCUBoot Bootloader progress:

(1) Yep it's possible to move the Standby Firmware Image to SPI Flash. Now testing this

(2) This solves a major showstopper with MCUBoot. We now allow application firmware images of up to 464 KB in size

(3) Now putting in a 5 second delay when MCUBoot starts up. If the watch button is pressed and held during the 5 seconds, MCUBoot will roll back the firmware to the previous one

(4) MCUBoot now displays a graphic image stored in SPI Flash while booting. This is needed because we have to show something during the 5 second delay. Also when MCUBoot swaps firmware during upgrade

(5) I have created a tool that loads a 240x240 PNG file into SPI Flash for display by MCUBoot: https://github.com/lupyuen/pinetime-graphic

So my job this weekend is to do more testing of MCUBoot with SPI Flash

And there shall be a new article to explains how all the above stuff works. So that someone can back me up on the MCUBoot development :-)


Attached Files
.jpg   pinetime-graphic-photo2-small.jpg (Size: 424.73 KB / Downloads: 451)
#3
Here's a video of the Enhanced MCUBoot Bootloader that displays the boot graphic stored in SPI Flash...

https://twitter.com/MisterTechBlog/statu...76544?s=19

Sent from my Pixel 4 XL using Tapatalk


Possibly Related Threads…
Thread Author Replies Views Last Post
  Develop a new firmware for PineTime belushi 2 2,067 09-25-2023, 12:32 PM
Last Post: ccchan234
  Bluetooth BLE-MIDI-controller app for PineTime / InfiniTime Luno 0 913 08-20-2023, 05:17 AM
Last Post: Luno
  Python programme for a vibration signal from Raspberry Pi 4 via bluetooth connection Tria91 1 1,179 06-03-2023, 04:14 PM
Last Post: wibble
  Realtime heartrate and accelerometer via bluetooth Marc_s 0 960 05-01-2023, 05:40 AM
Last Post: Marc_s
  help on developing BLE bluetooth MIDI Luno 0 975 04-05-2023, 12:08 PM
Last Post: Luno
  How to use bluetooth after flashing mynewt razrosman 0 1,430 06-09-2022, 12:27 PM
Last Post: razrosman
  bluetooth heart rate real time monitoring ptmatrtwo 3 4,572 02-03-2022, 10:06 PM
Last Post: barray
  bluetooth GATT questions wilsonjw 2 3,151 07-08-2021, 08:33 PM
Last Post: wilsonjw
  Update bootlogo and pinetime-app with OTA/DFU lookin 3 5,537 11-25-2020, 04:51 PM
Last Post: lookin
  Article: Bluetooth Time Sync and LVGL on PineTime Mynewt lupyuen 0 2,976 10-15-2020, 05:51 PM
Last Post: lupyuen

Forum Jump:


Users browsing this thread: 1 Guest(s)