HL7900 – RI not triggered all the time on incoming TCP/MQTT data in eDRX

Regarding the RI pin.
EDRX is working and the cycles are fine, but even though it detects that a message has been received, the pin’s state doesn’t change.

Yes, I’ve contacted them and am waiting for a response, but I’m posting here just in case i might have some information.

(Sorry, I made a mistake in my previous message—I wrote eDRX instead of RI.)

for my test, when the module goes to sleep mode by “at+ksleep=1,1,10”, I can see the RI pin toggled when receiving TCP data

And we agree that what you’re doing is :

  • You see the RI pin change state
  • You set WAKE-UP (fast)
  • You see the TCP notification, so you call KTCPRCV to clear the buffer
  • You clear WAKE-UP
  • Return to sleep automatically

Is that all?

And are you checking GPIO7? To see if, when the modem wakes up to control RI, it does so on the first wake-up (Does it generally take a while for your message to be received after you send it?)

no, i did not check GPIO7, I only check RI pin as mentioned in the beginning of this forum thread.

Hi everyone,

I currently encounteering the same issue as Tom explained in the previous conversation.

The Ring indicator doesn’t work when the module entering Lite Hibernate mode with eDRX activated.

It only works for the first TCP packet received. After that, I can see the module wakes up when I send a message, but the RI doesn’t trigger.

Like Tom, I used the same AT commands, the same functionning , but I cannot find the mistake or the problem.

Note : I’m not using Nb-IOT, but LTE-M, maybe could be the cause, although there are no reasons to not working…

I’ve done additional tests on this issue and it seems that the problem is not related to the RI itself, but more to eDRX (and also PSM).

In DRX mode (no eDRX / no PSM), everything works as expected:

  • RI triggers correctly
  • data is always received
  • TCP/MQTT flow is stable

However, when enabling eDRX (same hardware, same AT config, same SIM/network):

  • First message is usually received correctly (RI triggered, data read)
  • Then behavior becomes inconsistent:
    • modem wakes up (visible on current consumption)
    • but no RI trigger
    • no data in TCP buffer (KTCPSTAT=0)
  • Broker shows no pending messages (as if data was already consumed or dropped)

This suggests that the issue may be related to eDRX behavior and possibly network-side buffering (messages not stored long enough or discarded before PTW).

I’ve seen similar reports on other modems and references in the GSMA LTE-M deployment guide.

Has anyone experienced similar behavior with HL79xx in eDRX or PSM?

I’ve attached the details of my tests.

is this only happening in LTE CAT-M network instead of NBIOT network?

I don’t have an Nb-iot SIM card to test, sorry.

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.