Module: Quectel EC200U
Firmware Version: EC200UCNAAR03A09M08
MCU Platform: ESP32-S3 (ESP-IDF)
Working SIMs: Airtel, Vodafone-Idea, BSNL
Problem SIM: Jio (India)
APN Used: jionet
Issue Description
I am using the EC200U module with an ESP32-S3 (ESP-IDF) and a Jio SIM card to access the internet via PPP over UART. The same setup works perfectly with Airtel, VI, and BSNL SIM cards. However, with the Jio SIM, I face the following issue:
- After initialization, the Jio SIM connects and works for 20–30 seconds**, and some data transfer occurs.
- After that, I receive only 7 bytes or fewer from the EC200U module via UART, as if the incoming buffer is partially filled or cut off.
- Then, all three module indicator lines—STA, N_STA, and N_MOD—go LOW (off) and automatically reset back ON, suggesting some kind of internal reboot or modem failure.
- After this reset, no more data is received from the EC200U module via UART, and the PPP session fails.
- I have tested this multiple times and the behavior is consistent only with Jio SIM. All other SIMs work continuously without issue.
Logs
pppos_input[2]: got 65 bytes
ppp_input[2]: ip in pbuf len=60
pppos_netif_output[2]: proto=0x21, len = 60
pppos_input[2]: got 109 bytes
ppp_input[2]: ip in pbuf len=40
ppp_input[2]: ip in pbuf len=60
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 76
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_input[2]: got 109 bytes
ppp_input[2]: ip in pbuf len=40
ppp_input[2]: ip in pbuf len=60
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 76
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
ppp_input[2]: ip in pbuf len=60
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 76
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_input[2]: got 7 bytes
pppos_netif_output[2]: proto=0x21, len = 76
pppos_netif_output[2]: proto=0x21, len = 76
pppos_input[2]: got 41 bytes
pppos_input[2]: got 19 bytes
pppos_input[2]: got 18 bytes
pppos_netif_output[2]: proto=0x21, len = 60
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52
pppos_netif_output[2]: proto=0x21, len = 52