Skip to content

Release Firmware Procedures

neilh edited this page Jan 22, 2020 · 5 revisions

Intro

This describes a procedure for capturing a firmwware release.
The value of this is that defined firmware load can be downloaded multiple times.
The procedure of building the release can be upgraded over time, and this procedure is just my method of doing it, other methods could work equally as well.

Release Procedure

As of 2019Oct22: Build the target release
In Platformio/VSC - Open folder ModularSensors\a\xxxx\platformio.ini

  • In platformio.ini select env_default = mayfly [or other "board"]
  • press icon "Platformio: Clean"
  • press build icon
  • the process should build completely

look for
Environment "Board" [SUCCESS]
the resulting firmware is in
ModularSensors\a\xxxx.pioenvs\"Board"\firmware.hex

Step to .pioenvs\"Board", and copy firmware.hex to another directory giving it a name (board)_(rel)(branch)(X).hex
eg step to .pioenvs\mayfly\ and copy firmware.hex to firmware\firmware.hex
Then rename rename firmware.hex to mayfly_v0.21.05.rel1_dvlp1mX.hex

For ARM SAMxx its firmware.bin to
For boards that have a embedded USB that support USB Flashing format .uf2 use
python uf2conv.py -c -o firmware.uf2 firmware.bin
(uf2conv.py can be found in neilh10\ModularSensors\tools\build . Python needs to be installed, use Python3)

Then rename firmware "board"_v0.21.05.rel1_dvlp1mX.xxx (the extension is usually unchanged)

Good practice for a release is to tag:
$git tag -a v0.21.05.rel1_dvlp1mX -m "Working for Digi WiFi and LTE"
$git push origin v0.21.05.rel1_dvlp1mX
(Note for neilh10\ModularSensors this doesn't capture the full release configuration as there are many libraries. tbd: how to capture repeatable build)