Good morning,
I am currently stuck with troubleshooting the transmission failure of my sensor node. It can work for several days fine until it reports a failure detected by the LMIC library and stops transmitting. I am using Arduino IDE, ATMEGA328P and an external interrupt to wake up my sensor node after a certain time interval.
For troubleshooting, I have logged the events using an SD card and noticed following error msg:
Measurement done 23:40:18 Sending uplink packet... FAILURE
The failure arises from the LMIC library and most likely this part:
// start transmitter (buf=LMIC.frame, len=LMIC.dataLen)
static void starttx () {
ASSERT( (readReg(RegOpMode) & OPMODE_MASK) == OPMODE_SLEEP );
if(getSf(LMIC.rps) == FSK) { // FSK modem
txfsk();
} else { // LoRa modem
txlora();
}
// the radio will go back to STANDBY mode as soon as the TX is finished
// the corresponding IRQ will inform us about completion.
}
The assert function checks the statement and reports an error. How do you think shall I troubleshoot this problem?
I have thought about:
- editing the library to report no failures
- changing the code flow to allow
- best solution imo: add an if statement in the Arduino code to force sleep or restart the loop after detecting a failure.
Thank you!