Downgrade Device OS through Serial and OTA


We currently have 0.6.3 deviceOS on most of our production units, and are planning on fleet flashing entire unit with 1.4.4.

We have so far tested and validated that when we build our firmware with 1.4.4 and perform OTA flash the device, p1, upgrades to 0.7, then to 1.2 and then 1.4.4, which is amazing! :slight_smile:

Now, my question if, in case if something goes wrong, and we want to downgrade, OTA, how do we go back to 0.6.3? ( Right now, we can downgrade to 0.6.3 through serial monitor by flashing 0.6.3 binaries directly, but when we try to OTA flash a device FW built for 0.6.3, system is not able to roll-back to the old device OS, and remains on 1.4.4.)

Do we flash a binary build with 0.6.3 and then do OTA device flash with 1.2 and then 0.7 and then 0.6.3 or is there any other way?

Any help is much appreciated!


In order to downgrade OTA 1.4.4 to 0.6.3:

  • Flash user application OTA that targets 0.6.3. Your 0.6.3 app should still run on 1.4.4, but to be safe you might want to flash a simple empty setup and loop instead.
  • Flash 1.2.1 System Part 2
  • Flash 1.2.1 System Part 1
  • Flash 0.7.0 System Part 2
  • Flash 0.7.0 System Part 1
  • Flash 0.6.3 System Part 2
  • Flash 0.6.3 System Part 1

Basically, reverse the steps that were used to upgrade, and also flash part 2 then part 1 when downgrading. (For Electron with 3 parts, it would be 3, 2, 1.)

When flashing by USB in DFU mode, you don’t need to reverse the ordering of the parts for downgrading, but it doesn’t hurt to do so.