Quectel EG25-G disconnecting intermittently with Ubuntu 22.04 on Pi CM4

Hello,

I followed the setup here: Getting Started to get the Sixfab 3G-4G/LTE Base HAT set on my Ubuntu 22.04 system.

After following the setup the usb device shows up and I can communicate with the Quectel module with AT commands as well as ping the internet briefly, however the usb device keeps disconnecting and then reconnecting intermittently, issuing the following on the terminal:

dwc2 fe980000.usb: Not connected

My setup uses the following:
Raspberry Pi CM4
Ubuntu 22.04 LTS
Sixfab 3G-4G/LTE Base HAT
Quectel EG25-G
Sixfab SIM card

Here are some Linux command outputs:

uname -a:

Linux ubuntu 5.15.0-1055-raspi #58-Ubuntu SMP PREEMPT Sat May 4 03:52:40 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

lsusb (when the usb device is recognized):

Bus 001 Device 025: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ifconfig (when the usb device is recognized):

enx56e1d31ee0f2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::54e1:d3ff:fe1e:e0f2  prefixlen 64  scopeid 0x20<link>
        ether 56:e1:d3:1e:e0:f2  txqueuelen 1000  (Ethernet)
        RX packets 10  bytes 632 (632.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5  bytes 908 (908.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether d8:3a:dd:39:ac:2b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1655  bytes 144929 (144.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1655  bytes 144929 (144.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.18.20  netmask 255.255.255.0  broadcast 192.168.18.255
        inet6 fe80::da3a:ddff:fe39:ac2c  prefixlen 64  scopeid 0x20<link>
        ether d8:3a:dd:39:ac:2c  txqueuelen 1000  (Ethernet)
        RX packets 1969  bytes 464489 (464.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4082  bytes 395354 (395.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

however when the device is not recognized, the first entry above (enx56e1d31ee0f2) does not appear, and when it reconnects, appears with a different network interface name.

usb-devices (when the usb device is recognized):

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=05.15
S:  Manufacturer=Linux 5.15.0-1055-raspi dwc2_hsotg
S:  Product=DWC OTG Controller
S:  SerialNumber=fe980000.usb
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 28 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0125 Rev=03.18
S:  Manufacturer=Quectel
S:  Product=EG25-G
C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=89(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

dmesg | grep tty

[ 2301.393628] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 2301.395650] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 2301.397685] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 2301.399831] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 2315.092070] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 2315.093101] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 2315.094215] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
[ 2315.095135] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3

These lines appear on loop while the device connects and reconnects.

I’ve also followed the instructions posted on Cellular Internet Connection in ECM Mode with no improvement.

Common AT commands to the module return the expected output:

AT                                                                
                                                                  
OK
AT+CGMR


EG25GGBR07A08M2G

OK

OK
AT+CPIN?

ATE0
OK

AT+CPIN?


+CPIN: READY

OK
AT+CPAS

+CPAS: 0

OK

+CSQ: 21,99

OK
AT+CFUN?

+CFUN: 1

OK
AT+COPS?

+COPS: 0,0,"Rogers Wireless Twilio",7

OK

+COPS: 0,0,"Rogers Wireless Twilio",7

OK


+COPS: 0,0,"Rogers Wireless Twilio",7

OK

OK

OK
AT+QCFG="usbnet"

+QCFG: "usbnet",1

OK

Thanks in advance for any help