Using Xenons just for BLE, not mesh

I am trying to use some Xenons just as BLE devices. I was thinking I could locally flash the latest boot loader (xenon-bootloader@1.4.4.bin) and then my application which is compiled for 1.4.4. I also have this code in my setup.

  const uint8_t val = 0x01;
  dct_write_app_data(&val, DCT_SETUP_DONE_OFFSET, 1);

I am trying to upload the new boot loader by putting the Xenon in Flashing Blue serial listening mode, but as soon as I start sending the file, it shows a purple light and then reboots. However, I’m back being stuck in blue listening mode which makes me think that the boot loader update didn’t take.

Is their a lower boot loader version I need to flash first before flashing 1.4.4?

Ah, I see the progression list on GitHub. I’ll try that and see how things go.

So I believe I need to flash the 1.2.1 boot loader first, and then 1.4.4 which I believe have worked, although I am not positive. At least no errors from the terminal.

However the device still acts like it isn’t set up yet and when I do a particle serial inspect, I see this for one of the sections.

Platform: 14 - Xenon
Modules
  Bootloader module #0 - version 501, main location, 49152 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
  System module #1 - version 1406, main location, 671744 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: FAIL
      Bootloader module #0 - version 501
      Radio stack module #0 - version 202
  User module #1 - version 6, main location, 131072 bytes max size
    UUID: 254124699ACB9EBC93ED8DB9DDE9B3030F9577C7920A7980184A31C531E971EC
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS
      System module #1 - version 1406
  Radio stack module #0 - version 169, main location, 192512 bytes max size
    Integrity: PASS
    Address Range: PASS
    Platform: PASS
    Dependencies: PASS

Any ideas how I can fix this?

Usually the easiest way is to just use

particle update

in DFU mode. This will fix the bootloader, softdevice, and Device OS.

From the dependency failures you need an upgrade of the bootloader (to the 1.4.4 version) and the SoftDevice (radio stack module).

The reason the Xenon goes into listening mode (blinking blue) is that it has unmet dependencies. The normal solution is to get them OTA, but for a standalone BLE Xenon there is no way to get the parts OTA since there’s no cloud, so the device just goes into listening mode.

https://docs.particle.io/support/particle-devices-faq/xenon-standalone/

1 Like

And once you have your device updated to the version you want, your application needs to be running SYSTEM_MODE(MANUAL) (as noted in the “standalone Xenon” link).

Yep, thanks @ScruffR. Am doing that now.

1 Like

Woohoo. This worked like a charm. Thanks @rickkas7