Battery; Electron stopped running code

I’m using this 3.6V 13Ah LiSOCl2 battery to power my Particle Electrons. About two weeks ago, one of my Electrons stopped reporting in. As most of my Electrons are in pretty remote locations, I only managed to retrieve it yesterday, but I’m confused as to what happened.

My Electrons are designed to enter Deep Sleep mode, and wake up either based on the RCT, or when registering movement beyond a certain threshold. I could confirm that this device definitely was not woken up by the RCT as it is supposed to ping the server 4 times a day (and hadn’t done so for 2 weeks here). Moving it around also didn’t trigger the accelerometer. However, I was able to re-activate it by pressing the Reset button.

Doing this however, I found the following odd things:

  • When I plug in the battery, the RGB led is dark-red for a second or two, and then reverts to the normal colour. (note: this doesn’t happen to any other LiSOCl2-batteries I have)
  • No code seemed to be ran; no accelerometer-measurements are taken, and no information is being printed on my screen
  • When I power the Electron with USB to force it to run code, and I place back the battery, it continues to run code, but with hiccups. When I call ‘‘Particle.connect’’ it would slowly blink cyan for a while (not the characteristic fast-blinking) for several minutes, and eventually timeout.

I’m not quite sure how to interpret these results. I’ve only had experience with powering an Electron with the 2000mAh LiPo’s. I suppose the battery voltage is running too low? In this case, I wonder if a software glitch caused the battery to drain all the way (lowering the voltage), or if there’s something inherently wrong with these batteries and they reach a too low voltage too quickly…

They’re all brand-new batteries (http://www.greenergy-battery.com/Specs/li-SOCl2/ER34615M.pdf)

Looking at the datasheet, the nominal voltage of 3.6V should be sufficient. With my code, a 13Ah capacity should last more than a year (provided the code didn’t malfunction at some point) and it can definitely handle the 800mA pulses of the 3G. Temperatures were between -10C and +5C the last couple weeks.

As I’m currently doing a pilot project with 50 Electrons, and looking to upscale it to 100 Electrons soon, it’s crucial for me to figure out the culprit ASAP.

EDIT: measured that the battery is only delivering 2.3V, so yup, guess it’s drained. In case this was caused by a software glitch, what’s the best way of ensuring that the Electrons never stay active for more than ~5 mintues at time?

Yea low battery voltage keeps my Electron from connecting or staying connected to the cellular network.

The low voltage issue can also wipe the Electron’s memory clean as has happened to others before.

You’re just now learning what these batteries you using will really do and how long they will really last in your environment and use pattern so don’t be surprised if they do not last near as long as your hoping.

What code are you using to keep the Electron in Deep Sleep when the battery voltage hits a certain point?

For sure I’m learning that energy preservation is crucial, and the 4 daily connections my Electrons make drain it waaaaay too much (I have a few Electrons that on average spend between 5-10min. a day connecting, so with the 800mA peaks that adds up real quick) so I will definitely reduce that.

I’m still not totally convinced though that this battery really is not up for the task, as when I do the calculations (using the maximum mAh they could possibly draw) it still died out very prematurely. When I use a capacity of 13Ah, and a 500mA draw for 10 minutes a day, I still end up with an expected lifespan of about 155 days, way more than the 20 days it took for this thing to die out.

Right now I’m not using any code yet to put it in Deep Sleep when the voltage dips below a threshold. I will add that in today.

If you have an oscilloscope I would watch the voltage dips on the battery when it’s powering the Electron at different stages of your code to see if your getting voltage dips that can cause a brownout. A capacitor may help with this if you see large voltage dips especially at the lower temps.

You may also have a bad battery out of the batch.

@Vitesze how are you connecting the battery to the Electron? If it is via Li+, then the minimum voltage specified is 3.6v @ 800ma peak. The battery specs at -10C to +5C and at current draw between 10ma - 350ma, show a voltage output well below the 3.6V required. This may cause the Electron to get apoplectic and go into a reboot cycle, drawing greater than expected current and running the battery down. Ideally, an external voltage watchdog which holds the Electron in RESET mode would prevent this. However, you may want to consider having code on your Electron which put it in timed deep sleep if the temperature is starting to drop too much.

2 Likes

I don’t have an oscilloscope sadly. The lowest measurement I found was about 2.3V on the 3V3 pin.

The battery is connected with a JST-PH2 connector, similar to the way one would connect the 2Ah LiPo to the Electron. The battery voltage (which I obtain right after the Electron connects to the Particle Cloud) shows a very steady 3.40 to 3.50V between all Electrons outside. But yeah, I should collect the voltage while it is getting those 800mA peaks to say for sure how low of a voltage they’re receiving

@Vitesze, that explains things then. Your battery can’t handle the environmental conditions and you may need to be more aggressive and your connection management. You may need to do some diagnostics on the amount of time your Electron is taking to connect to best understand your power consumption.

If we assume a temperature of -10C and 800mA draw, the corresponding voltage would be around 2.9V. Would the battery drop to this level right away, or does this drop rather occur over time?

I can reduce the connection times and monitor the voltage better so the Electron doesn’t enter this reboot cycle, but if supplied voltage simply isn’t satisfactory from this battery, I will have to look for something else.

@Vitesze, the spec sheets don’t speak to the voltage decay time but I suspect it is fast enough to create problems. Adding a simple (low power) external data logger (Arduino based possibly) which measures the battery voltage, temperature and possibly monitor a pin on the Electron which you set when you attempt connecting and reset when connection is complete and you go back to sleep would give you some good information. You would only need to log for a day or two to get a sense of what’s going on.

Assuming the voltage dips too low, couldn’t I just add two of these batteries in series though, for a maximum of up to 7.2V (and a minimum of 4.0V)? I’m very satisfied with these batteries otherwise, as they have an impressive capacity and very low self-discharge

The voltage drop happens quickly basically because the battery can’t handle the load placed upon it. This can cause all kinds of problems with the electron or really anything that’s expecting a stable voltage.

A voltage of 2.9 volts is essentially a dead battery as far as a lipo is concerned.

Using two batteries in series to supply a higher voltage to the VIN input pin is a way to raise your voltage and cut your load per battery in half which may solve your problem.

This chip may be helpful to you also without needing a 2nd battery.

1 Like

Would it be possible to add in any kind of code that kicks in fast enough to safely put the sensor to sleep/reboot when this happens? This would instantly remove the 800mA pulse current it experiences when it connects, and put it to a much lower current draw which hopefully should then restore the voltage to an appropriate level.

I’m having a hard time to test this myself, as sensor shutdowns are a rare occurance to me, so I have very little practical data to work with. So I’m more interested in the theoretical perspective on this.

Not really, the real problem is the battery not being able to support the load. The cellular modem has to be able to connect properly and needs that current pulse to do it correctly sometimes, especially when the cellular tower is further away and higher transmission power is required for communication.

If you want to stick with single battery cells in your projects then go for that booster chip so the voltage dips do not happen.

Or use the 2 batteries in series and feed the Electron the higher voltage which will also split total current pulled from each battery during the 800mA burst in half which will also help with voltage sagging.

Thanks, your post makes a lot of sense actually! As the two Electrons so far that shut down are actually ones that are at the most rural sites of my project.

I will give it some thought. Even if these two Electrons didn’t shut down because of the voltage, in the long run I’m planning to send Electrons to colder areas either way (northern Alberta, anyone?) so it’s going to cause big issues either way.

The three options right now I’m considering are:
(1) Single LiSOCl2-cell, with booster (13Ah)
(2) Parallel double LiSOCl2 cells, with booster (26Ah)
(3) Series double LiSOCl2 cells (13Ah)

The reason I’m not just picking the booster right away, is because adding a second battery to my sensor only would cost a few extra dollars, so it’s as expensive as the booster itself (possibly even cheaper to produce).

This will help with voltage dips because current will be split between both batteries. This setup will also allow you to still use the Fuel Gauge to read battery voltage vs 2 batteries in series connected to the Vin pin where you will lose the easy voltage reading via the PMIC.

The booster will help if your batteries voltage sags in the cold weather well before they are actually empty. The booster will give you every last drop of power from the battery as it discharges.

Yeah, the loss of useful information with (3) is something I didn’t consider yet. I reached out to that supplier; the battery issue is becoming pretty important to me now as it’s starting a lot of progress.

Which supplier did you reach out to?

And you mean the battery issue is stopping your progress?

I’ve found that when the battery voltage starts to drop my cellular connection goes out or takes a lot more time to connect. I’m using an older battery and it’s for sure making the connection less stable when it get’s below 50%. When I plug in 5v via the USB cable the Electron connects almost instantly and stays connected.

If your battery voltage is getting low then I would expect to start seeing extended connection times and less stable connections which will even further drain the battery by the extended connection times.

1 Like

The supplier from Tindie.

Yes, at the moment my device is pretty functional and everything, but as long as devices randomly shut down every now and then, there’s no point in acquiring additional Electrons and placing them in the field. That’s why fixing this voltage issue is a main priority for me right now.

5V indeed connects pretty reliably for me as well. For the bulk of my sensors, I don’t notice much of an issue either with connecting; it really is just 2 or 3 (out of 50) that systematically take a long time to connect or shut down, so so far it has been a bit hard for me to really pinpoint whether it’s due to bad connectivity, a failing battery or something else.

I’m definitely considering a parallel LiSOCl2-setup with 3.6V Booster now. I think out of the three options it is worth it, as it does provide double the battery capacity while preserving some useful PMIC information.


Just to indicate that this issue can be hard to reproduce sometimes; I have placed one device in a freezer (set to -18C, which is colder than any winter day we had so far) for a week now, and it still happily connects. I retrieve the battery voltage right after Cellular.connect is called, and the supply is at a steady 3.45-3.55V. I have some devices outside however (it has been 0-10C the last few days) that show up at 3.3-3.4V. I think it could be a mix of temperature, and connectivity that may affect the voltage supply.

Yea, it could be a few weak battery cells also. The boost converter will fix the voltage sag.

Tell Kris with the boost converters that Ryan B. sent ya his way :slight_smile: