Internet Connection with Quectel EC25 using ECM Mode

For an active internet connection with the Quectel EC25, you can use PPP, QMI, or ECM.
ECM (Ethernet Control Model) is the easiest method in order to provide an internet connection to your single-board computer such as Raspberry Pi.

EC25 Variant: The ECM mode successfully works on EC25-A & EC25-E variants. EC25-AF doesn't support & the rest of the variants are not tested.

This tutorial describes how to configure your module for the ECM mode on Raspberry Pi OS.

Prepare Hardware

It is important to properly setup your hardware before you get started. To setup the hardware please follow:

Note: Make sure the USB is connected.


Control the modem driver.


You should see it:

--> Quectel Wireless Solutions Co., Ltd. EC25 LTE modem

Now we are ready to start.

First, install the required app to talk with the modem such as minicom or cutecom. We are using minicom for this tutorial.

sudo apt install minicom -y

Then, open the serial communication for /dev/ttyUSB2 device and 115200 baudrate using minicom with

minicom -D /dev/ttyUSB2 -b 115200
Welcome to minicom 2.7.1 OPTIONS: I18n Compiled on Aug 13 2017, 15:25:34. Port /dev/ttyUSB2 Press CTRL-A Z for help on special keys AT OK CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7.1 | VT102 | Offline | ttyUSB2

Approve the communication by sending AT command. You should get a response of OK.

Configure Module

Now, we can start to configure the modem for ECM mode. The response should be OK.


The modem may reboot after the execution of the command. Wait for the minicom screen to be activated again.

Configure APN

If you use Super SIM from Sixfab. Your APN is super. If you don't know your APN, you can learn it from your SIM PROVIDER. In this case, the command should be:


The response should be OK.

Reboot the modem

Then reboot the modem using the following command. The response should be OK.


Wait for the modem to boot again. It may take 30 seconds. Once the modem reboots, minicom will be activated again.

After the reboot, open a new Linux terminal and check for usbX in the network interface using ifconfig or ipaddr commands.

Note: It may take a few minutes to establish the connection depending on the network.

That's all.

Test Internet Connection

Once the internet is active you should see usbX in your internet interface. You can use ifconfig or ipaddr and look for usbX interface.

Now check the assigned IP address and test the connection.

pi@raspberrypi:~ $ ifconfig usb0 usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet netmask broadcast inet6 fe80::8543:f6a0:e678:2e20 prefixlen 64 scopeid 0x20 ether 4a:aa:f8:62:36:bb txqueuelen 1000 (Ethernet) RX packets 73 bytes 5047 (4.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 100 bytes 15116 (14.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $ ping -I usb0 -c 5 PING ( from usb0: 56(84) bytes of data. 64 bytes from ( icmp_seq=1 ttl=52 time=209 ms 64 bytes from ( icmp_seq=2 ttl=52 time=202 ms 64 bytes from ( icmp_seq=3 ttl=52 time=192 ms 64 bytes from ( icmp_seq=4 ttl=52 time=193 ms 64 bytes from ( icmp_seq=5 ttl=52 time=195 ms --- ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 9ms rtt min/avg/max/mdev = 191.895/198.244/209.463/6.636 ms


If usbX interface is not visible reboot your whole system, check your SIM, antenna, module and USB.

Then check the configuration of the module.

AT+QCFG="usbnet" # Should return 1

Check the SIM is detected by the module.

AT+CPIN? # Should return READY

Check if the module is registered to the network.

AT+CREG? # Should return 0,1 or 0,5

Check the APN is right and have an IP.

AT+CGCONTRDP # Should return the APN details and IP address.