v0.1.8 Beta
Firmware Update Fun
The dependency between the launcher/firmware caused for some tricky update procedures, where you'd end up with updated firmware and a broken launcher when attempting to update via DFU or from an SD card. The 32blit tool is usually the cure-all for this, but we appreciate it's not suitable in all cases and we can do better.
And do better we have. Or @Daft-Freak has, anyway. The firmware now looks for launcher.blit
and firmware-update.blit
on the SD card and runs them if they're available. This means you can just stick these two files on an SD card and reset to perform a complete firmware upgrade.
Updating your firmware from SD card
Grab the -STM32.zip package (https://github.com/pimoroni/32blit-beta/releases/download/v0.1.8/32blit-beta-v0.1.8-STM32.zip) from this release and extract it somewhere.
Drop both firmware-update-v0.1.8.blit
and launcher.blit
on your SD card and run firmware-update-v0.1.8.blit
using your 32blit's launcher.
Following the update it will install itself again followed by the launcher.
For future updates you should rename firmware-update-v0.1.8.blit
to firmware-update.blit
when copying it to your SD card. Firmware v0.1.8 and greater will now detect and install it automatically.
Beneath The Surface
Some bugfixes for Surface have also snuck into this release. This includes slightly better support for .bmp formats and better handling of oversized images that might otherwise have overflowed a buffer.
If you're passing your own buffer into Surface::load
you will now also need to pass the size: Surface::load(filename, buffer, sizeof(buffer))
. load
will refuse to load oversized images and return a nullptr
.
It's a short list
As usual you can find the complete - rather short this time - list of changes here: v0.1.7...v0.1.8
Known Issues
It looks like - at least in my tests - this new firmware can delete the firmware updater before it's actually run, causing a weird situation where the 32blit looks like this:
This will only apply to the next firmware update you do, and to avoid this problem you need only rename firmware-update-v0.1.9.blit
to firmware-update.blit
, save it to your SD card and hit reset. The code that runs the firmware update from SD happens after any residual update utilities are deleted from flash.