CellularLib: How to deal with a modem that becomes unresponsive?


I have been running an endurance test on my hardware. It is running OTA on top of the cellularlib.
The code runs on a STM32L4S5 controller in combination with the SARA-R410M-02-B01
The modem firmware version is: L0.,A.02.04

After a few days of running my code. The SARA-R4 became unresponsive. All requests to it timed out after a certain moment. Attached is the complete extensive log of the modem UART as well as the application log. The log is big but contains time stamps. It happens at timestamp 2022.06.30 03:38:06
Error_2022_06_30_time_03_38_06.zip (3.1 MB)

How would I deal with such a situation? It would be very nice to have a callback that gets called when the modem becomes unresponsive. In this callback I would then implement a Cellular_CommonCleanup(CellularHandle); and cellular_setup() to get the modem going again.

Without having such a callback, how can this be implemented in the best way? Acting on a single command timeout would not be the right thing to do, as commands sometimes time out briefly. So I need to know when the commands consistently timeout every time in order to detect modem abnormal behavior and act upon this.

Please advise.

Hi Mike,

The brief error handling in OTA demo in this thread can be referenced.
Cellular_ATCommandRaw can be used to send “AT” to modem to test if the modem is unresponsive.

We will discuss this problem and your suggestion to add AT command timeout error callback. I will update in this thread after the discussion.