Cellular_ModuleEnableUE fails on HL7802 (commit #77)

Hi, this is a follow-up to commit #77 (AT command timeouts for HL7802).

I have tried the new timeouts and while they seem to be correct and according to the AT command guide, there is a problem with boot time. According to AirPrime HL78xx Product Technical Specification 41113770 Rev. 4, the delay between cold start or software reboot and AT-ready state is up to 10 seconds.
However, in Cellular_ModuleEnableUE, there is no provisioning for the boot time before sending the first ATE0. This could be accounted for in user part of software but the Cellular_ModuleEnableUE function also resets the module (with AT+CFUN=1,1) and then only waits for 3 seconds (CELLULAR_HL7802_RESET_DELAY_MS) before sending ATE0. This would be OK, start sending after 3 seconds but then the software would have to allow for full 10 second boot time before failing. And this does not happen because ATE0 is sent 3 times (ENBABLE_MODULE_UE_RETRY_COUNT [sic]) with 2-second timeout (CELLULAR_HL7802_AT_TIMEOUT_2_SECONDS_MS). That is, in second 3, 5 and 7 after sending reboot command. My HL7802 module does not respond in this time for the ATE0 command causing the function Cellular_ModuleEnableUE to fail every time.

I think that sending ATE0 3 seconds after reboot is a great approach since the module may boot quicker but the sending step should allow for at least 10 seconds after reboot. So maybe send up to 6 times with 2-second timeout specifically for ATE0?

I don’t know how much time it takes from receiving AT+CFUN=1,1 to actually performing the reboot. Because this time may (or may not, who knows…) add to the 10-second boot time. The bad thing is that +CFUN has 30-second timeout in AT Commands Interface Guide, which is quite a lot and from my experience, AT+CFUN=1,1 never takes that much. I will also ask Sierra Wireless for clarification.

Hi Kaktus,

I can see two problems from your feedback.

1. Device cold start or software reboot to AT-READY state is up to 10 seconds.
The approach you mentioned, sending ATE0 6 times with timeout 2 seconds after reboot to comply with the spec, is a good approach to ensure modem AT-READY state. This is adapted into the repository.

2. How much time it takes from receiving AT+CFUN=1,1 to actually performing the reboot.
CELLULAR_HL7802_RESET_DELAY_MS is used to mitigate this problem. Since there is no recommended value in the spec, we also make it configurable. Developer can override the default value in cellular_config.h.

Thank you for your feedback. We appreciate your contributions to improve this library.

Hi Kaktus,

The suggestion merged in this commit.

Thank you for your feedback again.

Thank you, this works nicely in my setup.