Photon setup flashing cyan with a "quick red burst" (now orange burst) [Solved]

At the end of the day, I decided to bite the bullet and DFU’d a new private key to my photon:

dfu-util -d 2b04:d006 -a 1 -s 34 -D 4400snip3738_new.der

This recovered my photon.

I think this clearly points to a bug in the current version of particle-cli (where “particle keys load photon.der” is unable to handle corrupt private keys.) I did save my private key, cloud key, and another misc DFU dump; should anyone care to try and replicate this bug.

excellent! I’d be very interested in seeing the corrupted private key. Could you let me have them via a PM? (you can rename them to .gif and upload as an image.)

@mdma, @bryce, I have two Electrons that are totally unusable! Any progress on fixing this? I tried making a new Electron firmware image (monolithic) from the latest develop repo and flashing over then copying the server key over but still no luck. It would be great to have a fix-it guide. :wink:

1 Like

@Phoenix confirmed there is a bug here. It tries to backup the existing key, and then generate the public key from it. In the corrupt key case, it fails. It should continue on regardless. I will file an issue for this and get it fixed.

Glad I could help, thank you for following up on this.

One of my Photons exhibited the quick red burst behavior 2 days ago for the 1st time. After scouring the forums for possible fixes, the solution that worked for me was the following:
Get particle cli, node.js, openssl, zadig, etc. installed on my windows 8 machine as outlined by @HappyCookie

Plus, making sure that I had properly added the pathing instructions for openssl and the dfu utility to my user variables pathing list. This was actually the tricky part for me. I had accidentally placed commas after each entry instead of semicolons :stuck_out_tongue_closed_eyes:
Running command prompt as admin, I then entered “particle keys doctor (my device id)” while having my Photon in DFU mode. This repaired the Photons public key, which had most likely corrupted while I was doing some funny things with voltage on a breadboard.
I must admit this took me a long time to figure out. Thank you to everyone in this post and others that helped diagnose this issue :wink:

Hi @kennethlimcp … i have this same problem with one of my new photons … when i floow your four steps, everything looks fine, excepting step 4, since i obtain the following message when i run it:
“Please provide a filename for your device’s public key ending in .pub.pem” … but file exists and I am in the current directory where the file is. whch could be the problem? … in case i successfully run this last step, shoud the photon to finally connect to thw wifi after reseting it? … once again, thanks for your help and support!!!

So the brownout issue… Is it a bug? Or is this expected?

If it’s expected the battery/power shields need to be modified to prevent this from happening…

Can anyone from Particle comment on this?

As mentioned here (although I’m not from Particle)

Although I didn’t have such a problem with the original Particle Power Shield.
@frlobo, have you got a link to a thread where an original Particle Power Shield did cause this behaviour?
In this case there’d need to be an issue opened on the shield hardware repo too.

I don’t have a battery shield from particle… Only a power/battery shield from SparkFun.

This issue will not happen if you use the battery shield alone, since when the battery is dry you connect it to USB and it will be enough power to charge and power the photon…

It will most likely happen if you use it with a solar panel. Because once the battery is dry it will die… But when the solar power kicks in… There is a time where it will be attempting to power the photon and charge the battery. I am guessing this is the moment where the issues occur… Right when the battery gets sufficient power to attempt a boot but when the photon boots it drains the battery quickly and thus the cycle continues for a while…

AGAIN. newbie here… Just making conclusions that might be way off road.

This might be something for SparkFun to look into but maybe @BDub can also comment here (and more importantly in the GitHub issue for safe keeping and ease of reference)
It would be useful if the controler on the shield would only allow a power-up if the battery got beyond a certain level of charge that will allow the device to properly work at least for a few minutes.
I’m quite sure there is a hysteresis set, but it might need to be increased and since the controler can’t know your external circuitry, which might outweigh the Particles own power consumption and hence render the set hysteresis too small again, it might also be useful to allow for the user to twiddle that setting to fit the hardware setup (with documentation ;-))

That would be great!

oops, meant this to appear below “MDMA’s” post of 1 June. Guess I need know just a teetee more about the thread system…

running “particle keys new” got the following response:

‘openssl’ is not recognized as an internal or external command

–On further investigation–
evidently I have to load a bunch of other stuff…what is the total package required to talk use ‘Particle’ commands effectively?

@kennethlimcp

I went to the link
https://s3.amazonaws.com/spark-website/cloud_public.der127
and got an error…
((Just figured it out. What are those numbers in the gray ovals??))

((Whoa! It’s the count of downloads or clicks or something. OK, disregard.))

sorry for replying to a late post, but how to I get his device.der thing

Hey all,

I’m still having a lot of trouble with this breath cyan flash red issue on the photon.

I’ve done everything in every help guide / forum. Tried resetting the public key with this:

particle keys server cloud_public.der
particle keys new photon
particle keys load photon.der
particle keys send photon.pub.pem

…keeps failing on the last step. Error is:

Error sending public key to server: Permission Denied

Got a dead Photon. No fun. Any suggestions?

particle keys send photon.pub.pem need to be particle keys send deviceID photon.pub.pem

Or you can simply place the device in DFU mode and do a particle keys doctor PASTE_DEVICE_ID_HERE

Excellent. Thanks. I’ll give that a shot. Great support.

Hey Kenneth,

Flashing Cyan / Red - still not resolved. Cannot connect this sucker.

  • Device has been claimed
  • It’s connected before and has worked - then stopped

Tried all suggestions in this thread and then tried running the key doctor while in DFU mode:

particle keys doctor 3D0020000347343339373536

and I get this error:

Error sending public key to server: Permission Denied

Anything else to try?


Full text here:

particle keys doctor 3D0020000347343339373536
running dfu-util -l
Found DFU device 2b04:d006
running dfu-util -l
Found DFU device 2b04:d006
running openssl genrsa -out 3D0020000347343339373536_rsa_new.pem 1024
running openssl rsa -in 3D0020000347343339373536_rsa_new.pem -pubout -out 3D0020000347343339373536_rsa_new.pub.pem
running openssl rsa -in 3D0020000347343339373536_rsa_new.pem -outform DER -out 3D0020000347343339373536_rsa_new.der
New Key Created!
running dfu-util -l
Found DFU device 2b04:d006
This file already exists, please specify a different file, or use the --force flag.
Continuing…
checking file 3D0020000347343339373536_rsa_new.der
spawning dfu-util -d 2b04:d006 -a 1 -i 0 -s 34:leave -D 3D0020000347343339373536_rsa_new.der
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Deducing device DFU version from functional descriptor length
Opening DFU capable USB device…
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #1
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "DCT Flash "
Downloading to address = 0x00000022, size = 610
Download [=========================] 100% 610 bytes
Download done.
File downloaded successfully
Saved!
running openssl rsa -inform PEM -in 3D0020000347343339373536_rsa_new.pub.pem -pubout -outform PEM -out /var/folders/sy/trb7qvx90hj2fqxfd96xt7n00000gp/T/116212-48975-hdyfbh.pub.pem
running openssl rsa -pubin -inform PEM -in 3D0020000347343339373536_rsa_new.pub.pem -pubout -outform PEM -out /var/folders/sy/trb7qvx90hj2fqxfd96xt7n00000gp/T/116212-48975-hdyfbh.pub.pem
attempting to add a new public key for device 3D0020000347343339373536
Error sending public key to server: Permission Denied
Make sure your device is in DFU mode (blinking yellow), and that your computer is online.
Error - undefined

Do you see the device when you run particle list ?