Are you using Particle Workbench and did you flash your firmware (and possibly Device OS) over USB?
If so, the problem is that Workbench does not upgrade all of the necessary components of Device OS. In this case, it’s probably the bootloader. The device is trying to get online to upgrade the bootloader OTA, but the device does not have Wi-Fi credentials so it’s going into blinking dark blue (listening mode).
See Local build and flash and scroll down and click to expand More about changing the Device OS version for how to solve this problem. The basic idea is to upgrade Device OS using Device Restore USB before flashing your firmware.
i guess we need to do this in the factory also? what does it actually do?
right now, with p1, we use flash system part1, system part 2 and our application (per dfu) and then flash the bootloader (per serial). see below. will this work with the p2? or what needs to change?
There are two bootloaders, bootloader and prebootloader-part1. The prebootloader-part1 does not change often, but could in the future.
Do not under any circumstances flash prebootloader-mbr. The device will never be able to boot again because it contains device-specific encryption keys for SecureBoot.
Be really careful about flashing the user binary by DFU directly. The address of the user binary moves based on the size of the binary, so it’s not a fixed address. The .bin file itself contains this address, or it could be calculated based on the file size and sector alignment.
the device os parts can be found here: device os files and contains: bootloader.bin, system-part1.bin, prebootloader-part1.bin, tinker.bin
we need to flash all over usb:
we first dfu flash system-part1.bin and our application and then serial flash bootloader.bin and prebootloader-part1.bin?
our application.bin is created by your plugin in visual studio: what exactly do you mean by “Be really careful about flashing the user binary by DFU directly”? is this going to work?
we first dfu flash system-part1.bin and our application and then serial flash bootloader.bin and prebootloader-part1.bin?
Yes, that will work.
“Be really careful about flashing the user binary by DFU directly”
Flashing directly from Workbench, using particle flash --usb, or particle flash --serial from the Particle CLI will work properly.
The issue is if you are flashing directly using dfu-util in DFU mode, because the address you flash to changes based on the size of the binary. The other tools understand this and change the start address based on the address in the .bin file.
one more question: so far i got the device os files from the particle cli installation. i just updated to the latest greatest but only find: device-os-flash/binaries/5.1.0/p2/p2-system-part1@5.1.0.bin
i do not see the 5.3.1 version. where can i find these?