EG800K-LA TCP RX Issue Investigation

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

  1. EG800K sends a TCP packet.

  2. Server receives the packet.

  3. Server sends application ACK (0x06).

  4. EG800K receives ACK.

  5. 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:

  1. Internal receive buffer state issue.

  2. Direct Push Mode / Buffer Mode interaction.

  3. URC generation stopping after multiple transactions.

  4. Socket receive path becoming stalled while transmit path remains operational.

  5. Firmware issue affecting TCP RX handling after extended operation.

Questions

  1. Has anyone observed a similar condition where:

    • TCP transmission continues to work,

    • RX packet counters increase,

    • but QIRD returns zero bytes?

  2. Are there any recommended QICFG settings for reliable TCP receive operation?

  3. Is there a known firmware issue affecting TCP RX or URC generation on the EG800K-LA?

Any guidance would be greatly appreciated.

Hi there,
I have sent you a follow up email. Kindly check your email inbox.