Releasing firmware to a Product built on older system code


I am getting into testing Bluz as a product and I am trying to figure out how to best handle the following scenario:

  1. I compile new firmware against 2.2.50-beta3
  2. I upload firmware to my product and release the firmware
  3. I turn on a board that was provisioned and flashed with 2.2.50 over J-Link (it’s ID was added to the product)

At this point the board comes online and attempts to install the Released Firmware as it was instructed to do. However, it either gets stuck on solid magenta, or it ends up booting into safe mode, flashing yellow.

I am wondering if anything told it to upgrade to 2.2.50-beta3?

What is the correct workflow to make this work? I envision this happening when the system software has updated while the product was sitting on a shelf and has never been used. There doesn’t seem to be a way with a product to enforce newer system software in addition to the new user code.




I think I was running into that firmware upgrade bug that should now be fixed. After several reboots and reconnects it finally got all the way updated to the latest all on its own.


Yeah, if your product has a user app built against X version of the firmware, it will get flashed when the board comes online. That user app has a dependency system built in, so it will check that the system firmware has the right version, and enter safe mode if it doesn’t. Once the device comes online in safe mode, the dependencies are relayed to the cloud which will update the system firmware to the correct version. So all the dependencies are taken care of for you.

And yes, it sounds like you did hit that issue. That should hopefully be fixed from now on, I haven’t heard any more reports of it or seen it myself.