Bug Bounty: Electron not booting after battery discharges completely



It will be good to have:

  1. The firmware source code
  2. System firmware version
  3. Product link to the solar panel
  4. Any other sensors connected
  5. Hardware connection

What happens in this case?

Does the electron start flashing green after removing power and battery connection and reconnecting?
Or it does not boot at all?


Looked over your code.

Your not putting the Electron into a deep sleep when the battery gets low and turning it back on when the solar panel charges back up past the preset SOC.

If you were doing that as I suggested 4000 times then you would have no issues. No need for a 100w solar panel.


Since it seems that Particle cannot reproduce this with their devices reliably but you have devices that seem to got the “gift”, maybe Particle might want to get hands on one of your devices.

What do you think @rickkas7?


Yes, I know. I thought it would last a single flippin’ weekend.

This masks the problem anyway, and doesn’t fix it. I have a mild allergic reaction to workarounds, and greatly prefer a fix to the actual issue.

  1. https://gist.github.com/naikrovek/330fb772c3c00fb34ef60bea73d120ee
  2. 0.6.0
  3. https://www.adafruit.com/product/1525
  4. None.
  5. Not sure what you mean. No other hardware connected. Asset Tracker kit with solar panel. That’s it. I cut the connector off of the panel and threaded the wire through a hole I drilled into the case, and screwed the stripped wires into the terminal block.


It doesn’t really matter to me anymore. I mean, yes it matters; I want to know why and I want it fixed, but I’ve been instructed not to spend any more time on this.


I agree the Electrons should not go dead but using that Low SOC code also gives you a longer life span from the battery since your not discharging it as deeply on a regular basis also.


yeah I understand and agree.


Try adding code to enable brownout reset. It can’t hurt anything, might fix your problem, and if not, you can tell us so we can try to narrow down the root cause of the issue:


Is it an AssetTracker v1 or v2?

The reason why i asked is to reproduce a setup on my side if possible and see what went wrong.


v2 in the two most recent cases. i have two of each and it happens on all of them, though. i don’t think the GPS has anything to do with it.


Awesome. I have a AssetTracker V2 so that helps.

Don’t have a 6V 6W Solar panel but i will use something from the stash and see what happens.

Sorry for the bummer!


Hey All, we recently released v0.7.0-rc.1 pre-release firmware that offers many improvements for flash memory robustness.

A summary is here

Full changelog here

The pertinent bits are as follows:

  • System firmware now restores public server key and server address if missing
  • Added CRC checking to the Electron DCD & Photon/P1 DCT implementation so that write errors are detected.
  • Added a critical section around flash operations and around DCD/DCT operations to make them thread safe.
  • Fixes possible corruption of event data in multi-threaded firmware
  • Use backup registers instead of DCD/DCT to store system flags to avoid chance of a DCD/DCT corruption

:notepad_spiral: :pencil2: For those of you that can unfortunately replicate your issues quite easily… I would really appreciate your thoughts on the improvements made above and if they help in your applications.


@BDub Are you saying these updates should help eliminate the memory corruption issues with Electrons where the battery is allowed to drain to empty?


That’s the intention.


Yes, we’ve seen various types of flash corruption that can occur that 0.7.0-rc.1 proposes solutions to.





I was running a unit with 0.7.0-rc.2 and it got corrupted when the battery went flat. - How do we recover from this, I have STLINKv2 etc but can’t get it to connect, although following the docs, its difficult to get it connect anyway.

A second unit suffered from never connecting to the Particle Cloud after the battery went flat (ie Fast Cyan Flash) even after reflashing with 0.7.0-rc.3 and new application code. It connects to the cellular OK, and then gets stuck at Fast Cyan Flash.



I managed to wipe and relaod the bootloader and system firmware on the electron using the STLINK utility

now I get the following message

"I didn’t recognize that device name or ID, try opening https://api.particle.io/v1/devices?access_token=xxxxxx "

when I do a “particle flash tinker”

What do I do to make it work again?

This is sooo frustrating, this is supposed to just work, I really want to deploy this product and keep getting tripped up.



depending on what “wipe” means you might have to setup like new or reclaim the device. you can try particle flash --usb tinker or particle flash --serial tinker with device connected via usb