EC200U mPCIe: can’t set up an automatic connection after a reboot and configure ECM on Linux

Hi,

I’ve been struggling for several days trying to configure the Quectel EC200U mPCIE module. I have the module connected to an RPi4 compute-module running a Debian distribution, and my goal is to set up ECM over the usb0 interface.

I’ve already managed to set up the module, connect to a network operator, obtain an IP, and ping the Google DNS. However, I’m encountering two problems:

  • On the RPi4 compute-module, when I run the command ifconfig -a in the terminal, I can see the usb0 interface but don’t see any IP address.
  • When I turn off the Quectel module and then turn it on again, the module fails to automatically establish a network connection.

Here are the troubleshooting steps I’ve performed:

  1. Check signal quality
    AT+CSQ
    Result: +CSQ: 31,99 (31 is the highest possible value and indicates excellent signal quality. 99 means that the bit error rate is not reported, but from what I researched, it is not critical for the connection to an operator)
  2. Checked for available operators:
    AT+COPS=?
    Result: +COPS: (2,“MEO”,“MEO”,“26806”,7),(1,“vodafone P”,“voda P”,“26801”,7),(1,“NOS”,“NOS”,“26803”,7),(1,“MEO”,“MEO”,“26806”,0),(1,“vodafone P”,“voda P”,“26801”,0),(1,“NOS”,“NOS”,“26803”,0),(0-4),(0-2)
  3. Forced automatic registration to an operator:
    AT+COPS=0
    Result: +CME ERROR: 32 (Network error timeout indicating that the module could not complete the registration process to a network)

The question remains: If the received signal quality is maximum, if there are available operators, and if the module is configured to register automatically, why is it not succeeding? Only after the following process was I able to re-establish a connection, obtain an IP, and ping 8.8.8.8:

  1. Reset the module to default settings
    AT&F
  2. Reboot:
    AT+CFUN=1,1
  3. Configure USB Network Port Protocol (Use 1 for ECM protocol) and reboot
    AT+QCFG=“usbnet”,1
    AT+CFUN=1,1
  4. Configured the module for automatic operator registration
    AT+CREG=1
  5. Checked the registration status:
    AT+CREG?
    Result: +CREG: 1, 5 (1 means it is registered (home network) and 5 means it is roaming)
  6. Set the PDP context again:
    AT+CGDCONT=1,“IP”,“iBASIS.iot”
  7. Activated the context:
    AT+CGACT=1,1
  8. Successfully checked the IP:
    AT+CGPADDR=1
    Result: +CGPADDR: 1,“10.160.216.221”
  9. Successfully pinged Google’s DNS:
    AT+QPING=1,“8.8.8.8”
  10. Saved all configurations:
    AT&W

Once again, I was able to establish a connection, obtain an IP, and ping successfully. However, on the compute-module when using ifconfig -a, I still don’t get an IP on the usb0 interface. And if I turn the module off and on again, I once again fail to automatically obtain a connection.

If I check the registration status with AT+CREG? I get +CREG: 1,2 which means the module is enabled to register but is searching for an operator to register with.

Is this type of issue common and does Quectel have a procedure to solve it?

More info to help the troubleshooting:

ati
Quectel
EC200U
Revision: EC200UEUAAR03A07M08

at+gmr
EC200UEUAAR03A07M08

Bellow you can see the output of the following commands on rpi4 compute module:

ifconfig -a


$ ifconfig -a

usb0: flags=4098<BROADCAST,MULTICAST> mtu 1500

ether 02:4b:b3:b9:eb:e5 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

lsusb


$ lsusb

usb0: flags=4098<BROADCAST,MULTICAST> mtu 1500

ether 02:4b:b3:b9:eb:e5 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**dmesg**

dmesg in the attached file
dmesg.txt (40.5 KB)

Seems that Jfrog has answered you.
Please check

AT+CGDCONT?
AT+QNETDEVCTL=?
AT+QNETDEVCTL?

(post deleted by author)

@Bean.Wang-Q
I’ll try the AT command you suggested.

What about rpi4 compute module not having any ip on the usb0 interface?

at+cgdcont?
+CGDCONT: 1,“IPV4V6”,“iBASIS.iot”,“0.0.0.0,0:0:0:0:0:0:0:0”,0,0
OK

at+qnetdevctl=?
+QNETDEVCTL: (0,1,3),(1-7),(0,1)
OK

at+qnetdevctl?
+QNETDEVCTL: 3,1,0,0
OK

Only if you have enable the data call with the AT command and then you can obtain the IP address for usb0.

  1. Send the AT command

AT+QNETDEVCTL=1,1,1

  1. obtain the IP

busybox udhcpc -i usb0

AT+QNETDEVCTL =1,1,1
+CME ERROR: 53

Pls send the AT
AT+QNETDEVCTL=0
AT+QNETDEVCTL=1,1,1

Thanks.

Now I was able to get an IPV4 and IPV6 on usb0 interface.

AT+QNETDEVCTL?
+QNETDEVCTL: 3,1,0,1

Now I’m scared that if I turn the Quectel module off and on again I won’t get that connection automatically, but I’ll try.

Unfortunately, I saved all the settings with AT&W, turned the module off and on again, but the module was unable to automatically connect to a network.

AT+CGPADDR=1
+CGPADDR: 1,“0.0.0.0,0:0:0:0:0:0:0:0”

AT+CGACT?
+CGACT: 1,0

AT+CGACT=1,1
+CME ERROR: 3

AT+CREG?
+CREG: 1,5

AT+QNETEVCTL=1,1,1
+CME ERROR: 58