Notifications
Clear all

Pico W - OTA firmware updates

3 Posts
1 Users
4 Reactions
6,206 Views
THRandell
(@thrandell)
Brain Donor
Joined: 5 years ago
Posts: 311
Topic starter  

Brian Starkey wrote software that allows the Pico W board to be flashed “over the air”.  Once you add his picowota code to your project all follow up code changes can be done via WiFi over your home network.  I got it to work with his blink.c example and it’s pretty kewl.

Here's how I found out about it. https://blog.adafruit.com/2024/01/03/over-the-air-firmware-updates-for-raspberry-pi-pico-w-raspberrypi-ota-wifi-usedbytes/

Tom


To err is human.
To really foul up, use a computer.


   
robotBuilder and Lee G reacted
Quote
THRandell
(@thrandell)
Brain Donor
Joined: 5 years ago
Posts: 311
Topic starter  

I finally got around to adding this submodule to one of my robots.  The robot uses two Pico boards that communicate via I2C so I was a little concerned that I might hit a blocker, but the I2C Pico slave library and the picowota library seem to play nice together…

 

The author of picowota points out that the SDK adds 300-400 KB to support the WiFi chip on the Pico W to any program you build using it.  This gets duplicated in his picowota bootloader and in the application binary!  

I was curious to see what it does to the size of my code.  Here’s what I got:

* with the picowota bootloader my app is 664 KB; 

* and without the picowota bootloader it’s 75 KB.   

So I’m on the low side with a 589 KB increase in binary size.  The good thing is that I don’t think I’ll ever exceed the 2 MB flash size 🙂

 

Tom


To err is human.
To really foul up, use a computer.


   
Lee G and robotBuilder reacted
ReplyQuote
THRandell
(@thrandell)
Brain Donor
Joined: 5 years ago
Posts: 311
Topic starter  

I upgraded my Pico SDK to the latest release (2.2.0) thinking that I could:

1) prepare for my first steps with a Pico 2

2) make use of MQTT to publish status/debug messages from my robots, and

3) install the VL53L1X C language API for RPi Pico

In the process I discovered that the 2.0.0 SDK upgrade broke picowota!   https://github.com/usedbytes/picowota/issues

The cmake -DPICO_BOARD=pico_w ..  threw some warnings that I hacked for a while to no avail.  It seems that a find_package(ELF2UF2) call is failing so the the correct .uf2 and .elf executables are not being created.

This is a real drag because my swarm robot design leans heavily of picowota for firmware updates :/

I read in MagPi issue 145 that big changes were made to the boot path in order to support code security and multiple partitions, so maybe support for over the air updates will become an ‘official’ feature … someday.

Tom


To err is human.
To really foul up, use a computer.


   
ReplyQuote