Stuck with a Xenon blinking with a blue LED

I have a Xenon which I had claimed and named before. For some reason, however, after powering on, the device starts blinking blue as if in Listening Mode or when a brand new device is not yet set up. I tried several times the setup procedure on the IOS app but it always hangs at the penultimate step (adding the new device to the selected mesh). I performed several times the following steps:

  • scanned the QR code of the Xenon to be set up
  • selected the (existing) mesh to which the device should be added
  • scanned the QR code of the assisting device
  • entered the password for the mesh network
  • then I see the next screen progressing with the following notifications, i.e. “requesting permission from assisting device to add Xenon”, “Adding Xenon to the mesh network” … and this is where the sequence hangs: this step times out after a while and I do not reach the final step “Starting a secure session with the Partice Device Cloud” (“Retry” did not help).

Next, I tried the factory reset procedure as described in the Docs and subsequently the setup procedure again, with the same negative results as described above.

After that I used the CLI to claim the Xenon and to add it to my existing mesh. Both steps seem to have worked because in the console I see the device (strangely with the name I had chosen before all the problems started), and the device is correctly assigned to the selected mesh. I also tried to flash tinker over USB which gave me a “Flash success”. After all, however, it still insists on blinking blue after powering on. It does not enter into safe mode.
Any ideas?

I'm missing the step that you put the assisting device into Listening Mode.

Not too surprising as the name is stored in the cloud, so even wiping the device clean won't make the cloud forget the name stored for that immutable device ID.
Hence the fact that the name is displayed doesn't indicate that the device was setup correctly.

It may be that the "has-been-setup" flag got wiped and/or not been set correctly.
You can flash this code to ensure it being set.

#include "Particle.h"
#include "dct.h"
SYSTEM_MODE(SEMI_AUTOMATIC);

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

    // This is just so you know the operation is complete
    pinMode(D7, OUTPUT);
    digitalWrite(D7, HIGH);

    Mesh.on();
    Mesh.connect();
    Particle.connect();
}

Thanks for the quick response.

Yes, I put them in Listening mode, i just did not mention it.

I flashed the code you provided onto the Xenon. The D7 LED comes on, so it has executed. However, the Xenon keeps on blinking blue.

How are you powering the device?
Can you try powering it from a USB charger rather than from your computer?
What happens when you comment out the last three code lines that should establish the connection?

I added a battery (while tethered to the PC on USB) --> same result.

It starts breathing white, I guess that this the expected behaviour, right?

The intent of my proposal was to exclude the magic baudrate LM trigger by removing the device from the USB port.

Yes, exactly.

When you reactive the commented lines one-by-one I guess the blue blinking starts with Mesh.connect(), right?

Sorry, wasn't aware of that. Tried a USB charger, but same result as before.

No, the blue blinking starts to come back already after re-activating the first line (Mesh connect():wink:

I meant the last three active code lines - the closing brace wasn't counted. So the first is Mesh.on() and that doesn't cause blue blinking, right?

I did not count the closing bracket :upside_down_face:

So, to summarise:
Your original code: Blinking blue
Your originial code with the last three lines commented out: Breathing white
Your original code with just the last two lines commented out (and Mesh.on() active): blinking blue again.

@ScruffR: I resolved the issue, although, after all, I am not quite sure how. I was almost about to give up on that Xenon when I tried a couple of things (amongst which another factory reset, flashing tinker via USB, at least two other setup attempts using the mobile app and CLI respectively), although I cannot exactly remember in what order. Anyway, after the CLI setup attempt the device started finally to blink green and cyan and connect to the cloud.
Thanks again for all your efforts, always very much appreciated!

2 Likes