I am experiencing an issue with an EG800K-LA TCP connection where the module successfully transmits data to the server, but after several successful transactions it stops receiving application-layer responses (ACKs) from the server.
The issue appears to be related to the receive path inside the modem rather than TCP connectivity itself.
System Description
-
Module: EG800K-LA, firmaware version:
-
Protocol: TCP
-
Server: Node.js TCP server
-
Data transmission: Binary packets sent periodically
-
Application ACK: Server sends a single byte (0x06) after receiving a packet
Server code:
socket.on("data", (data) => {
console.log("Packet received");
socket.write(Buffer.from([0x06]));
console.log("ACK sent");
});
Expected Behavior
-
EG800K sends a TCP packet.
-
Server receives the packet.
-
Server sends application ACK (0x06).
-
EG800K receives ACK.
-
Application continues normally.
Observed Behavior
Initially everything works correctly.
Example:
SEND OK
+QIURC: "recv",0,1
06
However, after several successful transmissions (typically around 5-10 cycles), the following happens:
SEND OK
ACK NOT RECEIVED
The server continues reporting:
Packet received
ACK sent
for every packet received.
Network Status During Failure
The modem remains registered on the network:
AT+CREG?
+CREG: 0,1
AT+CEREG?
+CEREG: 0,1
PDP context remains active:
AT+QIACT?
+QIACT: 1,1,1,"10.47.xx.xxx"
Socket still appears connected:
AT+QISTATE
+QISTATE: 0,"TCP","18.xxx.xxx.xxx",5000,0,2,1,0,1,"uart1"
QIRD Result
When the issue occurs:
AT+QIRD=0
+QIRD: 0
OK
This indicates that no data is available in the socket receive buffer.
Packet Counters
I monitored packet counters using:
AT+QGDCNT
Example values:
+QGDCNT: 5648,2658
+QGDCNT: 5954,2790
+QGDCNT: 6260,2922
The RX counter continues increasing over time.
This suggests that the modem is still receiving data from the network even while:
QIRD reports 0 bytes available
and application ACKs are not being detected.
Current Hypothesis
Based on the observations:
-
TCP connection appears alive.
-
PDP context remains active.
-
Server continues receiving packets.
-
Server continues sending ACK responses.
-
EG800K packet RX counters continue increasing.
Therefore, it appears that the modem is still receiving network traffic, but received TCP payload data is no longer being delivered correctly to the application layer (QIRD and/or URC notifications).
Possible causes may include:
-
Internal receive buffer state issue.
-
Direct Push Mode / Buffer Mode interaction.
-
URC generation stopping after multiple transactions.
-
Socket receive path becoming stalled while transmit path remains operational.
-
Firmware issue affecting TCP RX handling after extended operation.
Questions
-
Has anyone observed a similar condition where:
-
TCP transmission continues to work,
-
RX packet counters increase,
-
but QIRD returns zero bytes?
-
-
Are there any recommended QICFG settings for reliable TCP receive operation?
-
Is there a known firmware issue affecting TCP RX or URC generation on the EG800K-LA?
Any guidance would be greatly appreciated.