Particle Electron Wake Early on RI_UC


A few Electrons deployed remotely are waking prematurely during sleep. For example, in one unit with a ~60min sleep cycle, the unit wakes ~45times. On wake, I publish the sleep result as one of the following strings:

String wakeupStrings[5] = {“UNKNOWN”, “BY_GPIO”, “BY_ADC”, “BY_DAC”, “BY_RTC”};

The unit wakes from BY_GPIO, not RTC. It appears to return to sleep normally.
I am using the following sleep configuration with SYSTEM_THREAD(ENABLED) and SYSTEM_MODE(AUTOMATIC) thanks to a recommendation by rickkas7 in a previous thread.

SystemSleepConfiguration config;
.gpio(RI_UC, RISING)
SystemSleepResult result = System.sleep(config);

Serial.printlnf("%d:%d:%d Sleep end. Reason = %d.",Time.hour(), Time.minute(), Time.second(), result.wakeupReason());

The issue does not arise on all Electrons running the same code. Any ideas as to why this is occurring?


Are you also enabling wake on data using AT+URING=1? If so, any data from the cloud side will wake the device, including function calls, variable requests, system requests for a describe message (firmware and Device OS configuration), and OTA requests. If you subscribe to events on the device side, published events matching the event prefix will also wake the device.

I am using AT+URING=1 to allow wake for flash or function. We are not subscribed to any events. Is it possible that these devices are picking up interference from surrounding devices?