I am experiencing a packet loss of nearly 50% when transmitting larger packets (e.g 1400B) using a SIM7070G GSM module connected via USB OTG to ESP32S3. Smaller packets (e.g. 1000B) are OK. The terminal is lousy with errors from CDC-ACM and other USB subsystems. The exact same GSM module has a packet loss of <1% when connected to a Linux PC, so I suspect Espressif's USB drivers or modem drivers to misbehave.
HW: a SIMCOM SIM7070G evaluation board is connected to ESP32S3 DevKitC V1.1 "USB" plug using a short OTG cable. I tested the same SIM7070G EVB behind a Linux PC and it experienced no such packet loss; it has an independent power supply, good signal, correct APN, etc - so the problem does not come from GSM side.
SW: The ESP32S3 devkit runs on ESP IDF v5.1.1, with recent esp_modem and esp_modem_usb_dte components from the official component repository.
Code: Select all
dependencies:
espressif/esp_modem: "^1.0.1"
espressif/esp_modem_usb_dte: "^1.1.0"
idf:
version: "^5.1.1"
Code: Select all
PING 1000 packets transmitted, 510 received, 49.00% packet loss, time 1246627 ms
Code: Select all
PING 1000 packets transmitted, 998 received, 0.20% packet loss, time 448171 ms
Code: Select all
PING 1436 bytes from 185.154.221.184 icmp_seq=97 ttl=43 time=557 ms
W (11340739) cdc_acm: IN buffer overflow (22/512)
W (11340739) cdc_acm: IN buffer overflow (0/512)
W (11340749) cdc_acm: IN buffer overflow (0/512)
PING timeout from 185.154.221.184 icmp_seq=98
W (11341649) CMUX: Protocol mismatch: Missed trailing SOF, recovering...
I (11341649) CMUX: Protocol recovered
W (11341659) cdc_acm: IN buffer overflow (4/512)
W (11341669) cdc_acm: IN buffer overflow (0/512)
W (11341669) cdc_acm: IN buffer overflow (0/512)
PING timeout from 185.154.221.184 icmp_seq=99
W (11342779) cdc_acm: IN buffer overflow (32/512)
W (11342779) cdc_acm: IN buffer overflow (0/512)
W (11342789) cdc_acm: IN buffer overflow (0/512)
W (11342799) cdc_acm: IN buffer overflow (28/512)
PING 1436 bytes from 185.154.221.184 icmp_seq=100 ttl=43 time=592 ms
The packet loss wreaks havoc with my useful Internet traffic, as I see frequent TLS connection failures and slow responses when transferring larger data objects. Again, I saw no such packet loss on a Linux PC, so the prime suspect is the USB subsystem on ESP32S3.
Any advice how to diagnose or fix this?