Here is an update after several testing sessions over the past few months. The issue persists, and I would like to share my latest findings here.
1. Setup & Goal
Using eDRX on either HL7812 or HL7900 with an embedded TCP socket / MQTT broker in low-power mode (Lite Hibernate / Sleep) with official dev-kit.
- The module remains in sleep mode.
- Upon receiving a downlink message during the eDRX paging window, the module should wake up, output an UART URC, and trigger the Ring Indicator (RI) pin.
2. Observed Issue & Behavior
Randomly, after a varying period of time or number of messages, downlink processing breaks completely :
Current consumption traces confirm the modem radio correctly wakes up during the eDRX paging window when a packet arrives. After a few seconds, the modem “fails to toggle the RI pin and does not output any URC on the UART” (That might not be the cause, but it is the observed behavior.), then goes back to sleep.
Since the HL never receives the payload, no PUBACK is sent. The MQTT broker retransmits the TCP packet. On every retransmission, the modem radio wakes up during the next paging window, but again fails to generate the URC/RI and goes back to sleep.
If I manually force-wake the modem via WAKE-UP, AT+KTCPSTAT shows the socket is still CONNECTED. Uplink traffic works fine (can send PINGREQ or data to the broker), but downlink is permanently frozen. No further incoming messages are delivered until a full socket/modem reset.
3. Test
Modules & Firmware: HL7812 and HL7900 across all available firmware versions.
Low Power Modes: Sleep and Lite Hibernate
DRX vs eDRX: Standard DRX works reliably long-term with RI triggering. The issue occurs exclusively with eDRX.
Latest test run (HL7812, eDRX 5.12s, latest FW): During a 30-minute test, 20 consecutive downlink messages were received perfectly. On the 21st message, the bug suddenly occurred without any configuration change.
4. Questions
I am currently not using RTS/CTS lines. Could the lack of RTS/CTS cause an UART buffer lockup or prevent the application CPU from dumping URCs when waking up from eDRX sleep?
If anyone has a working, stable setup using HL7812 + eDRX (e.g., 20s) + Lite Hibernate or other mode + TCP/MQTT or others + RI wakeup, could you please share your firmware version and the full ordered AT command initialization sequence?
My next step will also be to try SMS or UDP to see if the issue stems from using TCP exclusively, though I’m not very confident about it.