A few breaths of Cyan followed by Fast Blue Flashing


I’m attempting to “reprovision” a Photon. It has always been a pain to provision but usually worked. I’ve followed various dfu-util/particle xxx suggestions but nothing “sticks”. I get a few expected breaths of Cyan followed by fast flashing blue. I have a dfu-util dump if someone is interested.



What happens when you place it in safe mode?

Quickly switches to white and then in 2 seconds starts flashing blue (maybe not as quick but the flashing seems to be changing speeds over time).

If you can, try updating the CLI to the latest version. Then place the device in DFU mode and issue “particle update”, once that’s done, place it in DFU once more and issue “Particle flash --usb tinker”. Then, hold the setup button for ten seconds to erase all credentials. Following that, try the CLI with “particle serial wifi”, and follow the steps.

Let’s us know if that works, and if not, show us the errors?

1 Like

@Moors7, thanks. Reflashing tinker seems to have been the solution. I’ll see if I can’t recreate the problem to see if I was just “lucky” or if the installed application was the problem.

1 Like

Have the same problem here after I configured with particle setup on command line a manuel wifi with “wpa mixed”.
Now Tinker will assists for a new installation, but after step 1 (short cyan) I got an fast breathing blue.
Remark: my wifi is “wpa + wpa2” secured. This option is not available in particle setup. I cant change my first “wpa mixed”.

My 50ct, Ingo

The problem can be synonymous with another photon with this code imitate (my stuck on a Grove Shield):

indent preformatted text by 4 spaces
// This #include statement was automatically added by the Particle IDE.
#include <blynk.h>

#include "application.h"

#define LED D4
const int pushButton = D6;      // Button auf D6 (buttonPin)
int x = 1;
int pushButtonState = 0;        // Statusabfrage vom Button (buttonState)
int oldButtonState = LOW;
char auth[] = "xxx"; // photon5

void setup() {
    pinMode(pushButton, INPUT_PULLUP);   // declare Button as input
    pinMode(LED, OUTPUT);

void loop() {
// Start Button-check
Blynk.run(); // all the Blynk magic happens here

void readButton_einaus() {
    // Get the current state of the button
  int newButtonState = digitalRead(pushButton);

  // Has the button gone high since we last read it?
  if (newButtonState == HIGH && oldButtonState == LOW) {

    if (x == 0) {
      // Toggle on
      digitalWrite(LED, HIGH);
      x = 1;

    } else {
      // Toggle off
      digitalWrite(LED, LOW);
      x = 0;

  // Store the button's state so we can tell if it's changed next time round
  oldButtonState = newButtonState;

AFAIK, WPA2 will allow for WPA as well when the WLAN-CIPHER is set to WLAN_CIPHER_AES_TKIP which should happen automatically when your “mixed” WiFi is present.

I was able to narrow it down, apparently with the integration of the Blynk-Lib together: without Blynk v0.4.5 folds the execution of the program; With it it can be replicated that the photon goes into a fast blue flashing loop.

I do recall issues with Blynk when the update time of a widget was too fast and/or when the Blynk app got suspended while the device needed to communicate.
But that’s several Blynk versions back.

Can you post a video of the color codes leading up to the issue and at least 10sec of the flashing/breathing blue?