We are working on a sensor using LoRaWAN for communication.
Our setup is a custom board using the CMWX1ZZABZ module from Murata for the communication part (this module is the same as the one on the B-L072Z-LRWAN1 Discovery Kit). The sensor is connected to the LoRaWAN module with 2 wires: 1 output to activate the sensors, 1 input to get the sensor status.
For the LoRaWAN code, we used as base the End_Node project of I-CUBE-LRWAN v1.1.1 (01-June-2017). The main differences with the original project are:
- Disabled vcom and corresponding UART (for power saving)
- Added ADC configuration
- Added an interrupt for the sensor status GPIO
- The application data transmission duty cycle is changed to 10 minutes.
The STM goes to STOP mode using WFI, so it is woken up either by the 10 minute timer, or the sensor status interruption. On wake-up, if the sensor status pin is changed, the new value is sent, otherwise a heartbeat packet is sent.
We flashed 40 devices about 2 months ago as a trial. After about a month, the heartbeat of some devices suddenly stops, and the only way to get them going again is to reset them. So far, 7 devices out the 40 have failed, and we have not managed to reproduce the problem under debug conditions.
We feel quite blocked, as it is very difficult to find the origin of the problem: any debug output was disabled to save power, and connected a debugger resets the device. We are unsure if the problem could be in the firmware or the hardware.
Has anybody seen a similar problem before ? Or has anybody any suggestions as to a way of debugging efficiently such a problem ?