Bootloader version mismatch after upgrading Xenon from 0.9.0 to 1.2.1

After upgrading the DeviceOS from the command-line on several Xenon devices, the last one appeared to flash correctly (did it via Workbench with the right xenon-deviceOS 1.21-deviceid settings). However it remained in listening mode, and after doing a particle inspect I saw the following:

Platform: 14 - Xenon
Modules
  Bootloader module #0 - version 300, main location, 49152 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 1213, main location, 671744 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      Bootloader module #0 - version 311
  User module #1 - version 5, main location, 131072 bytes max size
    UUID: 846FAA519535B3A1DC90D8E390789EE2A37A9D02C5982EF9DCFAA389D27FCE51
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 403
  User module #1 - version 5, factory location, 131072 bytes max size
    UUID: 846FAA519535B3A1DC90D8E390789EE2A37A9D02C5982EF9DCFAA389D27FCE51
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 403

If I read this correctly there’s a bootloader version mismatch, 300 vs 311.
I tried to flash the bootloader separately via
particle flash --usb xenon-bootloader@1.2.1.bin
and received
Error writing firmware: unknown module function 2, use --force to override
So then I tried the --force option and it flashed successfully, but the problem remained.

Any ideas how to fix this?

Updating from a firmware prior to 1.2.1 (IIRC) the bootloader cannot be flashed via DFU Mode (using --usb).
You’d need to put the device into Listening Mode and use particle flash --serial xenon-bootloade@1.2.1.bin

OK thanks, that worked and fixed the FAIL on inspect. However the device is still stuck in listening mode, even after powering on/off and pressing the reset button. Also, trying to add the device to my mesh using
particle add mesh <deviceid> <gatewayname>
results in the following:
IN control transfer failed: LIBUSB_TRANSFER_TIMED_OUT

Weird. After rebooting my computer and waiting a little while the device magically connected to the cloud and has left listening mode.

1 Like