TTGO LORA OLED board crashes

Hello,

This has been puzzling me for a few days. My TTGO-LORA board (V2 with OLED) has started crashing every few counts of transmitting on a 60 second test interval. I have recently added battery voltage measurement to the payload but that’s pretty innocent stuff.

The messages are below. There do seem to be some timeout issues as well.

I am not sure what to make of this.

Message queued

9581500: setupRx1 txrxFlags 0x20 --> 01
start single rx: now-rxtime: 438448
9581570: RXMODE_SINGLE, freq=867900000, SF=9, BW=125, CR=4/5, IH=0
rxtimeout: entry: 9831878 rxtime: 9143119 entry-rxtime: 688759 now-entry: 4 rxtime-txend: 62126
10332438: setupRx2 txrxFlags 0x1 --> 02
start single rx: now-rxtime: 1127133
10332504: RXMODE_SINGLE, freq=869525000, SF=9, BW=125, CR=4/5, IH=0
rxtimeout: entry: 10582815 rxtime: 9205369 entry-rxtime: 1377446 now-entry: 4 rxtime-txend: 124376
10833127: processRx2DnData txrxFlags 0x2 --> 00
10833139: processDnData_norx txrxFlags 00 --> 20
EV_TXCOMPLETE (includes waiting for RX windows)
10896806: engineUpdate, opmode=0x900
TRANSMITTING
Relay = Off
Humidity: 36.501953
Pressure: 999.508423
Temperature: 25.370001
PM 2.5 0.0 PM 10 0.0
Battery = 0.50
12540719: engineUpdate, opmode=0x908
12540822: TXMODE, freq=868100000, len=26, SF=9, BW=125, CR=4/5, IH=0
Message queued

13355376: setupRx1 txrxFlags 0x20 --> 01
FAILURE
C:\Users\Mike\Documents\Arduino\libraries\MCCI_LoRaWAN_LMIC_library\src\lmic\radio.c:1063

The most obvious quick test would be to roll back to your previous working code.

Which version of the MCCI library are you using? If it’s failing when it goes in to startrx, then it thinks the radio chip is asleep which from my experience with the MCCI is another way of saying it’s run out of memory, which is unlikely on an ESP32 device but it could just have got rather confused.

Hello Nick,

Its 3.0.99 dated September 2019. So I guess that’s pretty recent.

I tried removing the new code but the failure continues.

I have traced back to the exact failure line referenced in the Radio.c source. Its the assertion below.

ASSERT( (readReg(RegOpMode) & OPMODE_MASK) == OPMODE_SLEEP );

This does not help me very much but it may be an indicator to someone who knows the LMIC stuff better…

Yeah, that’s what I said:

Can you go back to your previously known working code rather than remove your new code? The two can be just subtly different enough to introduce issues.

You could try bringing the library up to the latest version as you are two behind at present.

And if you have another module to hand, just in case there is a hardware issue, give that a try.