Hi All,
I am experiencing an issue with my Electron where it seems to put itself in a strange state after a call to DEEP SLEEP. It works fine for many hours but then simply stays connected (instead of going to sleep) and at that stage I cant do much other than a reset. Performing an OTA update fails as well. I am running the latest firmware.
If the run loop is running I assume that it would accept a firmware update at the very least?
Has anyone else seen this ?
Thanks,
Serge
What color is the RGB LED showing?
Is it flashing/blinking/breathing?
What does your loop()
do?
More initial info would make helping easier.
I sample some sensor every 15min. So the code runs from the start as expected when the Electron wakes from sleep mode, reads some sensor data, sends the data to a server and then goes back to DEEP SLEEP for 15min.
This can work fine for several hours and then the data stops and the electron appears to stay online with Cyan breathing.
It could be a bug in my code but I dont have anything which actually blocks the run loop so at the very least I would think I should be able to do an OTA update to restart the Electron but this fails as well.
What could cause the Electron to be online and breath cyan but not accept an OTA update ?
Due to difficulty in re-producing the problem its obviously not so easy to troubleshoot.
Thanks,
Serge
What sensor and library are you using?
If there is some code (your own or in the library) that blocks for some time but less than 10sec before it calles Particle.process()
or delay()
and then blocks again you won’t lose cloud connection (stay in breathing cyan) but OTA and other cloud features might get compromised.
And if this keeps your code trapped in such loop, you’ll never go to sleep either.
@ssozonoff, does your code include SYSTEM_THREAD(ENABLED);
?
Nope. But I will add some more debugging and try and gather some more intel
If there is no known issue its gotta be something on my end.
Serge
Did you resolve this? I have three units that are running a loop then dropping into deep sleep. Two of them seem to be working correctly, but a third appears to lock up with the status light on “white”.
Here are the initialization items;
//SET SYSTEM MODES AND SYSTEM THREAD
SYSTEM_MODE(SEMI_AUTOMATIC);
SYSTEM_THREAD(ENABLED);
Any help would be great.
Are you ever calling Particle.connect()
on that one device?
Hi,
I never got this working to satisfaction and then run out of time. I may pull the project out of the closet for this summer and try again.
Serge
A little more background;
This has a simple BME sensor, an external RTC and a SD card hooked up to it. The final use for the proof of concept likely will not have WiFi connection, thus the SD card for recording values.
We attempt to connect to WiFi with WiFi.Connect() and if it doesn’t connect we turn off the radio, then get values from the RTC and BME, write those to the card and go to into deep sleep for an hour.
Intent is to have a unit in the field for 30+ days recording pressure, temp and humidity with time stamps.
Again, 2 of them work perfectly fine, I’m wondering if we could have a breakout board failure. Just trying to get other peoples thoughts. I can post the code if needed, with some retractions.
Just because you mentioned the RGB showing white which in itself wouldn’t indicate an issue since that’s to be expected with the WiFi module off.
So what is the exact nature of the problem?
The issue is that is doesn’t move past the “white” light, it locks up at that point. The other two units wired exactly the same with the same code have no issues.
Trying to flash some other firmware and trying to reproduce the issue step-by-step might reveal the root cause.