Hi,
We have a Particle based product out in the field. It consists of serial interface with Atmel 328P, I2C connections to Energy Measuring Chip, RTC and Digital I/O expander.
Of our deployed devices (500+) we have a small amount devices that periodically “lock up” with solid cyan requiring Power on Reset. The lock ups occur often after 24+ hours of operation.
OS : 1.4.2
Free memory is 34312 bytes.
Config
SYSTEM_THREAD(ENABLED);
SYSTEM_MODE(SEMI_AUTOMATIC);
STARTUP(System.enableFeature(FEATURE_ETHERNET_DETECTION));
WDT is coded enabled static ApplicationWatchdog s_wd(30000, System.reset);
We have 1 thread operating that serves the serial interface to the Atmel 328P.
We have a unit on soak test in the office which never exhibits the lock up. So I am wondering if it’s environment issues such as network.
I am running out of ideas on what to try as I cannot reproduce.
Particle support have said that the WDT won’t fire if we are in a condition where interrupts are disabled but none of the application code or libraries disable interrupts. They also said to limit use of CStrings (which I have) and I’ve moved a lot of memory allocation from stack to heap.
I’m not expecting anyone to pin point the problem just would be grateful if you could suggest a debug route.
Many thanks
Ian