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.
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.
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.