TECHSHIP IS A GLOBAL SUPPLIER OF WIRELESS COMPONENTS

Register
FAQs /
Question

How can we configure Telit LN94* series cellular modules to expose QMI mode which is used by qmi_wwan or GobiNet drivers in Linux based systems?

Solution

The Telit LN94* series cellular module requires a USB mode change in order to expose the QMI network interface used by GobiNet drivers or the qmi_wwan drivers.

This procedure can be done once by AT commands (see further down) and it get stored in the modules NV memory for future on. You can also setup the common usb_modeswitch tool in Linux to this change for the Telit LN940 series modules at every device detection instead.

You can download and install usb_modeswitch tool from:
http://www.draisberghof.de/usb_modeswitch/

Or install it e.g. through a package manager if your Linux distribution supports one:
apt-get install usb-modeswitch

For manually perform the mode changing, you can execute the command bellow which alters the bConfigurationValue to 1:
usb_modeswitch -v 1bc7 -p 1900 -u 1

This will set the module to expose the QMI/RMNET interface as well as the related serial interfaces for Qualcomm diagnostics, NMEA and AT interface.

It can also be automated on every module detection in host system:
Open the file 40-usb_modeswitch.rules with a text editor found in /lib/udev/rules.d/ , e.g as bellow:
nano /lib/udev/rules.d/40-usb_modeswitch.rules

Add the following entry bellow and save the file:
#Telit LN94x series (QMI mode)
ATTR{idVendor}=="1bc7", ATTR{idProduct}=="1900", RUN+="usb_modeswitch '/%k'", RUN+="/sbin/modprobe qmi_wwan"

(the additional RUN+="/sbin/modprobe qmi_wwan" can be used to trigger the loading of qmi_wwan driver so it get assigned after mode change)
Create a new text file in the folder /etc/usb_modeswitch.d/ called 1bc7:1900 e.g:
nano /etc/usb_modeswitch.d/1bc7:1900

Paste in the following configuration lines in the editor and save the file:
# Telit LN94x series (QMI mode)
TargetVendor=0x1bc7
TargetProduct=0x1900
Configuration=1
NoDriverLoading=1

You can run the command bellow to update the udev rules in the system:
udevadm control --reload-rules && udevadm trigger

If you restart the system now, the USB mode switching should be done automatically, and the correct USB mode endpoints and drivers loaded as bellow. (Provided that you have modified the option.c and qmi_wwan.c source files and rebuilt the option and qmi_wwan modules according to Telit instructions in "Telit LN94x series Linux Driver Source Package V.0.00.01" downloadable resource.

lsusb
Bus 002 Device 002: ID 1bc7:1900 Telit Wireless Solutions

lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M
|__ Port 4: Dev 2, If 0, Class=Vendor Specific Class, Driver=option, 5000M
|__ Port 4: Dev 2, If 1, Class=Vendor Specific Class, Driver=qmi_wwan, 5000M
|__ Port 4: Dev 2, If 2, Class=Vendor Specific Class, Driver=option, 5000M
|__ Port 4: Dev 2, If 3, Class=Vendor Specific Class, Driver=option, 5000M
|__ Port 4: Dev 2, If 4, Class=Vendor Specific Class, Driver=option, 5000M

If this is not occurring correctly, usb_modeswitch debug logging can be turned on by editing the usb_modeswitch.conf file located in /etc/:
nano /etc/usb_modeswitch.conf

The log file can be found in:
/var/log/usb_modeswitch.log

Please note that all Linux command line commands were executed with elevated / root privileges in this example.

How to change the USB mode via AT commands:

By default configuration there is no serial interfaces available that can accept AT commands in Windows system, but a tool can be used to issue the AT commands over MBIM interface, enabling you to set the module in other configuration than the default one.

Download and install "Telit LN94x Series Microsoft Windows Driver Installer" in you Windows 10 system, now the module should be detected correctly, check e.g. in device manager.

Download and open the "Telit LN94x Series AT Commands over MBIM Interface Helper Tool" application.
In the application, open the Telit LN94x MBIM device and send the AT command according to desired mode:

AT^SETMODE=0
Default mode, MBIM interface only for Windows.
Supported in Windows 10 systems.
USB VID: 1bc7 PID: 1900

AT^SETMODE=1
MBIM mode with serial interfaces
Supported in Windows 10 systems
USB VID: 1bc7 PID: 1901

AT^SETMODE=2
QMI/RMNET and serial interfaces
Supported in Linux systems
USB VID: 1bc7 PID: 1900

Sending the AT command should result in the cellular module automatically restarting with the new usb endpoint configuration exposed.
Please note that the Windows system do not load correct drivers for the module any longer after the USB endpoint configuration is changed.

Recently added

Question

How to collect initial diagnostics data and logs from Telit 5G cellular modules necessary when creating a Techship technical support ticket?

Solution

In order to troubleshoot and solve a technical problem, we ask you to please provide information about your host system and logs from the related Telit 5G module when creating a technical support ticket.

This allows us to get a better understanding of what could relate to the experienced behaviour.

Please provide a detailed problem description and in what situations the problem is present or how it can be reproduced. Please also attach pictures showing the module assembled in your host device with RF interface cables connected between cellular module and the casing and provide datasheets for the antennas used if the problem appears to be a RF related problem such as no network registrations seen, or data throughputs not meeting your expectations etc.

Describe the host system:
-Hardware (system board, peripherals...)
-Operating system and detailed versions (E.g. Windows, Linux release, kernel version...)
-Drivers and driver versions

Identify the precise details of cellular module found on label (if not visible in attached picture)
-Model
-P/N code
-Serial / IMEI number

If your system is Linux based, please capture the terminal logs bellow:
uname -a
lsusb
lsusb -t
usb-devices
ifconfig -a
ls -l /dev/serial/by-id
ls -l /sys/bus/usb-serial/devices
dmesg

The log outputs from AT commands below can be collected from the cellular module by accessing the USB enumerated serial interfaces that accept AT commands. These are typically found as Modem or Serial type of interfaces in Window device manager, check their related COM port numbers from device manager and use a terminal software like Teraterm, Sscom or similar to communicate with the cellular module using AT commands. typically the default 115200 bitrate and 8N1 parity settings works well for collecting these log details.

In Linux systems the USB serial ports are typically found in path /dev/ and named ttyUSB0, ttyUSB1, ttyUSB2, not all serial ports accept AT commands so you might have to check which of them are the correct ones. Please note that if you have Modemmanager process running in your Linux system, it likely already communicate on the USB serial interfaces so you should stop the Modemmanager service prior to attempting to collect the diagnostic logs. Minicom or other terminal software can be used to communicate with the cellular module with AT commands.

Start by sending an plain AT command followed by enter key to confirm that you get a OK reply and knowing that the AT communication is working.

Now start sending the following AT commands to the module and capture the output into a log text file and include them when creating the technical support ticket at Techship.com. If possible, provide the logs with a SIM card inserted and PIN unlocked, to allow the module to be in normal operational mode and registered in network.

Test that you have a working AT interface opened:
AT

Enabled AT command echo:
ATE1

Basic module info:
AT#CGMI
AT#CGMF

Display V.25TER configurations
AT&V

Detailed module firmware version and active carrier config info:
AT#SWPKGV
AT#FWSWITCH?
AT#FIRMWARE
AT#FWSWITCH
AT#FWAUTOSIM?

Verbose error reporting:
AT+CMEE=2

Hardware & firmware version:
AT#HWREV
AT#CGMR

Serial number / IMEI:
AT#CGSN

Host interface configurations:
AT#USBCFG?
AT#USBSWITCH?
AT#USBPCISWITCH?
AT#PCIERCMODE?

Operational mode:
AT+CFUN?

SIM card interface, SIM card detect signal:
AT#HSEN?
AT#SIMDET?
AT#SIMINCFG

Pin status:
AT+CPIN?

Cellular RF path and MIMO configurations:
AT#RXTOGGLE?
AT#NRRXTOGGLE?
AT#RXDIV?
AT#LRXDIV?
AT#4RXDIS?
AT#DPT?

Active technologies, RF bands, and scan orders:
AT#5GCTL?
AT#5GCTL=?
AT#BND?
AT#BND=?
AT+CEMODE?
AT+CEUS?
AT#ENS?
AT+WS46?
AT#NETWORKCFG?
AT#CACTL?

Request UE network system info:
AT#5GLINKSTAT?
AT#SERVINFO
AT#RFSTS
AT#LAPS
AT#MONI=0
AT#ENWCAUSE?
AT#CEERNET
AT#NRDS
AT#CAINFO?
AT#LTEDS
AT#MIMOSTS

List network operator info:
AT+COPS?

Network registration status:
AT+CREG=2
AT+CREG?

Network GPRS registration status:
AT+CGREG=2
AT+CGREG?

Network (4G/LTE) EPS registration status:
AT+CEREG=2
AT+CEREG?

Network 5G SA
AT+C5GREG=2
AT+C5GREG?

IMS registration state:
AT+CIREG=2
AT+CIREG?

Signal strength:
AT+CSQ
AT+CESQ

List APN details/PDP profiles:
AT+CGDCONT?
AT#PDPAUTH?

Packet domain attach status:
AT+CGATT?

PDP profiles attach status:
AT+CGACT?

Show PDP IP address:
AT+CGPADDR
AT+CGCONTRDP

Device temperature:
AT#TEMPSENS=2

Supply voltage:
AT#CBC

Last reset reason:
AT#RESETINFO

List supported LTE carrier aggregation for active configuration:
AT#LCFC?

Customized features activation status:
AT#GETCUSTFEAT=?
AT#GETCUSTFEAT="GPSSEL"


The support ticket can be created after login at Techship.com: https://techship.com/technical_support/

Question

How to collect initial diagnostics data for Simcom 5G cellular modules when creating a Techship technical support ticket?

Solution

In order to troubleshoot and solve a technical problem, we ask you to please provide information about your host system and logs from the related Simcom 5G module when creating a technical support ticket.

This allows us to get a better understanding of what could relate to the experienced behaviour.

Please provide a detailed problem description and in what situations the problem is present or how it can be reproduced. Please also attach pictures showing the module assembled in your host device with RF interface cables connected between cellular module and the casing and provide datasheets for the antennas used if the problem appears to be a RF related problem such as no network registrations seen, or data throughputs not meeting your expectations etc.

Describe the host system:
-Hardware (system board, peripherals...)
-Operating system and detailed versions (E.g. Windows, Linux release, kernel version...)
-Drivers and driver versions

Identify the precise details of cellular module found on label (if not visible in attached picture)
-Model
-SKU / BOM or P/N code
-Serial / IMEI number

If your system is Linux based, please capture the terminal logs bellow:
uname -a
lsusb
lsusb -t
usb-devices
ifconfig -a
ls -l /dev/serial/by-id
ls -l /sys/bus/usb-serial/devices
dmesg

The log outputs from AT commands below can be collected from the cellular module by accessing the USB enumerated serial interfaces that accept AT commands. These are typically found as Modem or Serial type of interfaces in Window device manager, check their related COM port numbers from device manager and use a terminal software like Teraterm, Sscom or similar to send the AT commands to the cellular module. typically the default 115200 bitrate and 8N1 parity settings works well for collecting these details.

In Linux systems the USB serial ports are typically found in path /dev/ and named ttyUSB0, ttyUSB1, ttyUSB2, not all serial ports accept AT commands so you might have to check which of them are the correct one. Please note that if you have Modemmanager process running in your system, it likely already communicate on the USB serial interfaces so you should stop the Modemmanager service prior to attempting to collect the diagnostic logs. Minicom or other terminal software can be used to send the AT commands to the cellular module.

Start by sending an plain AT command followed by enter key to confirm that you get a OK reply and knowing that the AT communication is working.

Now start sending the following AT commands to the module and capture the output into a log text file and include them when creating the technical support ticket at Techship.com. If possible, provide the logs with a SIM card inserted and PIN unlocked, to allow the module to be in normal operational mode and registered in network.

Test that you have a working AT interface opened:
AT

Enabled AT command echo:
ATE1

Basic module info:
ATI

Display V.25TER configurations
AT&V

Detailed module version info:
AT+SIMCOMATI

Verbose error reporting:
AT+CMEE=2

Firmware version:
AT+CGMR

Additional details:
AT+CSUB

Serial number / IMEI:
AT+CGSN

USB endpoint configuration:
AT+CUSBCFG?

PCIe interface configuration:
AT+CPCIEMODE?

SIM card interface, SIM card detect signal and active SIM slot:
AT+UIMHOTSWAPON?
AT+UIMHOTSWAPLEVEL?
AT+SMSIMCFG?

Operational mode:
AT+CFUN?

Pin status:
AT+CPIN?

Active technologies, RF bands, and scan orders:
AT+CNMP?
AT+CSYSSEL=?
AT+CSYSSEL="nr5g_disable"
AT+CSYSSEL="nr5g_band"
AT+CSYSSEL="nsa_nr5g_band"
AT+CSYSSEL="lte_band"
AT+CSYSSEL="w_band"
AT+CSYSSEL="rat_acq_order"

Request UE network system info:
AT+CPSI?
AT+CNSMOD?
AT+CNWINFO?

List network operator info:
AT+COPS?

Network registration status:
AT+CREG=2
AT+CREG?

Network GPRS registration status:
AT+CGREG=2
AT+CGREG?

Network (4G/LTE) EPS registration status:
AT+CEREG=2
AT+CEREG?

Network 5G SA
AT+C5GREG=2
AT+C5GREG?

Signal strength:
AT+CSQ

List APN details/PDP profiles:
AT+CGDCONT?
AT+CGAUTH?

Packet domain attach status:
AT+CGATT?

PDP profiles attach status:
AT+CGACT?

Show PDP IP address:
AT+CGPADDR
AT+CGCONTRDP

Device temperature:
AT+CPMUTEMP
AT+CCPUTEMP=2

Supply voltage:
AT+CBC

The support ticket can be created after login at Techship.com: https://techship.com/technical_support/

Question

How to collect initial diagnostics data for Sierra Wireless EM919x and EM7690 series cellular modules when requesting technical support?

Solution

In order to troubleshoot and solve a technical problem, we ask you to please provide information about your system and logs from the related module when creating a technical support ticket.

Please provide a problem description of what exact problem is and in what precise situations it is present.

Describe the host system:
-Hardware (system board, peripherals...)
-Operating system and detailed versions (E.g. Windows, Linux dist, release, kernel...)
-Drivers and driver versions

Identify the precise details of cellular module found on label:
-Model
-SKU/BOM or P/N code
(For RMA returns the IMEI number is required also)

If you are running on a Linux based system, please capture the terminal logs bellow:
uname -a
lsusb
lsusb -t
ifconfig -a
ls -l /dev/serial/by-id
ls -l /sys/bus/usb-serial/devices
dmesg

The log output requested from the commands bellow, can be acquired from the module by accessing one of the USB enumerated serial (COM) interfaces accepting AT commands. (In Windows this is generally found listed as a Modem interface or AT commands serial interface in the device manager and in Linux it is usually found on /dev/ttyUSB2 interface). Send the following commands to the module and capture the text output and include them when creating the the technical support ticket.

Sierra Wireless :
AT
ATE1
ATI
AT!ENTERCND="A710"
AT!PRIID?
AT!IMPREF?
AT!IMAGE?
AT+CFUN?
AT!UIMS?
AT+CPIN?
AT+CREG?
AT+CGREG?
AT+CEREG?
AT+COPS?
AT!GSTATUS?
AT+CGDCONT?
AT$QCPDPP?
AT+CGATT?
AT+CGACT?
AT+CGCONTRDP
AT+CGPADDR
AT!BAND?
AT!BAND=?
AT!LTEINFO?
AT!LTECA?
AT!RXDEN?
AT!PCINFO?
AT!USBCOMP?
AT!USBCOMP=?
AT!SELRAT?
AT!SELRAT=?
AT!USBSPEED?
AT!PCOFFEN?
AT!CUSTOM?
AT!CUSTOM=?
AT!PCTEMP?
AT!PCVOLT?
AT!PCVOLTLIMITS?
AT!HWID?
AT!ERR
AT!BCFWUPDATESTATUS
AT!TMSTATUS?
AT!RATCA?

The support ticket can be created after login at: https://techship.com/technical_support/

Question

How do I set USB-interface modes on my Sierra Wireless module?

Solution

Sierra Wireless modules can expose different USB interfaces, like MBIM, MODEM, NMEA or RMNET. The different interfaces can be combined or used individually, depending on the specific need for your project.
Here is how to set the different USB interface configurations. (In this example we use a Sierra Wireless EM7421, but it will be similar for many other Sierra Wireless modules.)

Make sure you get an OK after every AT command sent.
We start by typing:
AT
To be able to view what we just sent to the module we type:
ATE1
Since this feature is password protected we need to type:
AT!ENTERCND=”A710”
To see what USB interface we are currently using, just type AT!USBCOMP? and you should receive something like this:

Config Index: 1
Config Type: 3 (Generic)
Interface bitmask: 0000010D (diag,nmea,modem,rmnet0)
OK

Config index is what the type applies to and should be set to 1.
The config type means what USB composition is used. For this module USBIF-MBIM (1), PCIE USBIF (2), Legacy Generic (3) or RNDIS (4) are available.
Interface bitmask is the part where we see what USB interface our module is set to.

Now, to see what our USB interface options are we need to type:
AT!USBCOMP=?
Here we can see that for this module we have the following options:
DIAG - 0x00000001
NMEA - 0x00000004
MODEM - 0x00000008
RMNET0 - 0x00000100
MBIM - 0x00001000
These values are hexadecimal. So, for an example, if we wanted to activate all the options (DIAG, NMEA, MODEM and MBIM) we just add these values together.
If we open the Windows Calculator in Programmer mode (and make sure you have “HEX” selected!) and add all the values together like this 1 + 4+ 8 +1000, we will get 100D. (Please note, RMNET0 and MBIM cannot be used simultaneous for this module. Refer to the manual of your specific module to when setting up the USB interface.)
If we then send the following AT command to the module, we will set it to DIAG, NMEA, MODEM and MBIM:
AT!USBCOMP=1,3,100D

Again, type AT!USBCOMP? to confirm we have the new settings selected, it should look like this:

Config Index: 1
Config Type: 3 (Generic)
Interface bitmask: 0000100D (diag,nmea,modem,mbim)
OK

For further information please take a look at the AT command user guide available on the product's specific page under "technical documentation", which is available for download once logged in.

Question


How do I select specific bands on my Sierra Wireless module?

Solution

The AT command AT!BAND can be used to select what specific GSM and LTE bands that you want to be active on your module.

If you are experiencing poor DL or UL speeds, one solution may be to only select the bands that you know are available, which can increase the transfer speeds.

(Please note that the following examples are when using a Sierra Wireless EM7421)

First, see that you get an “OK” with command:
AT
Then, to make sure you can see what command has been sent, type:
ATE1

Since what we are about to do is password protected, we need to type:
AT!ENTERCND="A710"

When entering AT!BAND? it will return a reply looking like (for example):
AT!BAND?
Index, Name, GW Band Mask L Band Mask 1 TDS Band Mask L Band Mask 2 L Band Mask 3 L Band Mask 4
00, All Bands 000200000C400000 000007A0880800C5 0000000000000000 0000000000000000 0000000000000000 0000000000000000
OK


The "00" is referring to the selected preset, "All Bands" to the preset name, "000200000C400000" to GSM bands and "000007A0880800C5" to selected LTE bands in hexadecimal.

To get information on all available bands, we need to type:
AT!BAND=?

Starting at the GSM band (at chapter "AT!BAND - Select/return frequency band set" in the AT command reference manual) we can see that 000200000C400000 corresponds to “0002000000000000 - B8 (900) + 0000000008000000 - B6 (800) + 0000000004000000 - B5 (850) + 0000000000400000 - B1 (2100) = 000200000C400000 (All GSM Bands)”

Now for LTE, which is probably what is a little tricky to understand. Let’s start the Windows Calculator and change it to Programmer mode. If you copy the "000007A0880800C5" into the calculator window it should convert it to binary.
HEX: 0000 07A0 8808 00C5
BIN: 0111 1010 0000 1000 1000 0000 1000 0000 0000 1100 0101

If you look at the line of BIN above you can see what bands are active (1) and which are not (0). Looking from right to left, the first bit corresponds to B1, second bit to B2, third bit B3, and so on…

HEX: 0000 07A0 8808 00C5
BIN: 0111 1010 0000 1000 1000 0000 1000 0000 0000 1100 0101
Selected bands: B1+B3+B7+B8+B20+B28+B32+B38+B40+B41+B42+B43

So if I, for example, only want the GSM bands "GSM 900MHz + GSM 850MHz", and LTE bands "B3, B4, B7, B28" we enter the following:
AT!BAND= 11,"Custom User Preset",0002000004000000,000000000800004C

Now we have created a new preset slot “11”, a name for the preset “Custom User Preset” and selected bands for GSM “GSM 900MHz + GSM 850MHz” and also selected bands for LTE "B3, B4, B7, B28", see explanation below:

Bands: B3, B4, B7, B28
Binary: 1000 0000 0000 0000 0000 0100 1100
Hexadecimal: 800 004C

Now we want to make sure our newly created preset is selected, so we type:
AT!BAND=11

And finally to check that we have selected the preset we again type AT!BAND? and should get the following response:
Index, Name, GW Band Mask L Band Mask 1 TDS Band Mask L Band Mask 2 L Band Mask 3 L Band Mask 4
11, Custom User Preset 0002000004000000 000000000800004C 0000000000000000 0000000000000000 0000000000000000 000000000000000
OK

For further information please take a look at the AT command user guide available on the product's specific page under "technical documentation", which is available for download once logged in.

Question

How do we detect an inserted SIM card using the FN980 module?

Solution

Please note that we do not recommend generic adapters for 5G modules as there might be pin conflicts. This can, in a worst case scenario, damage the module and/or the connected USB port. Therefore, always ensure that the adapter is pin compatible with the 5G module.

Firstly, determine which SIM interface you are using. The FN980 is equipped with 2 SIM interfaces, one for a physical SIM and one for eSIM (please note that eSIM is only available on specific SKUs) where one interface is active and the other one is in standby. The SIM interface that you want to use is selected by the following command:

AT#SIMDET=y

Where y is either 0 or 1. Here, 0 represents SIM interface 1 (physical SIM) and 1 represents SIM interface 2 (eSIM). Please note that further configuration is needed in order to use SIM interface 2. To use SIM interface 2, please refer to the necessary commands in the AT Command reference guide.

One common issue when trying to detect an inserted SIM card is that the adapter with the SIM card holder doesn't support the SIM hot-swap feature. This feature can be turned off in order to detect the SIM, if this is the underlaying issue. The hot-swap feature can be disabled by using the following command:

AT#HSEN=0,y

Where y is either 0 or 1. Here, 0 represents SIM interface 1 and 1 represents SIM interface 2.

Another common issue is the polarity of the SIMIN pin. The polarity of this pin is dependent on the SIM slot manufacturer and sometimes differ depending on the SIM card size the slot is designed for. Usually, an inserted SIM card sets the SIMIN pin LOW when the SIM card size is normal. Similarly, an inserted SIM card usually sets the SIMIN pin HIGH when the SIM card size is micro. However, there are some exceptions so is is usually best to test both. The polarity of the SIMIN pin can be changed with the following command:

AT#SIMINCFG=x,y

Where y is either 1 or 2. Here, 1 represents SIM interface 1 and 2 represents SIM interface 2.
Similarly, x is either 0 or 1. 0 means that the SIMIN pin should be LOW when a SIM card is inserted and 1 means that the SIMIN pin should be HIGH when a SIM card is inserted.

A good way to determine if the module correctly detect the SIM card it to request the IMSI (International mobile subscriber identity) stored in the SIM card. The IMSI will only be reported if the module can read the SIM card which makes it a great method to determine if the module can read the SIM card. The IMSI can be requested by the following command:

AT+CIMI

Here, an error means that the SIM card can't be accessed and a string of numbers means that the SIM card is correctly read by the module.

Make sure that the module is power cycled between the different attempts and check if SIM card is detected by requesting the IMSI for each attempt!

Please refer to the FN980 AT Command Reference Guide for more information about these commands. This document can be found on the product's page, under the Technical Documentation tab, or by accessing the following link: https://techship.com/downloads/telit-fn980-family-at-commands-guide

Question

How to collect initial diagnostics data and logs for Alcatel USB dongles, needed when requesting Techship technical support?

Solution

In order to troubleshoot and solve a technical problem, we ask you to please provide information about your host system and logs from the related Alcatel USB dongles when creating a technical support ticket.

Detailed problem description and in what situations it present or can be reproduced.

Describe the host system:
-Hardware (system board, peripherals...)
-Operating system and detailed versions (E.g. Windows, Linux release, kernel...)
-Drivers and driver versions

Identify the precise details of cellular module found on label:
-Model
-SKU/BOM or P/N code
(For RMA returns the IMEI number is mandatory)

If you are running on a Linux based system, please capture the terminal logs bellow:
uname -a
lsusb
lsusb -t
ifconfig -a
ls -l /dev/serial/by-id
ls -l /sys/bus/usb-serial/devices
dmesg

The logs from the cellular module firmware can be acquired by accessing the USB enumerated serial (COM) interfaces accepting AT commands. They can be named modem, AT, PC UI etc. (In Windows device manager, found under modem or serial interfaces). Send the following AT commands bellow to module and capture the output and include them when creating the the technical support ticket.

Test that you get a reply with command:
AT
Command echo enabled:
ATE1
Basic module info:
ATI
Verbose error reporting:
AT+CMEE=2
Last error report:
AT+CEER
Firmware version:
AT+GMR
IMEI Code:
AT+CGSN
USB endpoint configuration:
AT+USBMODE?
List current configuration:
AT&V
Operational mode:
AT+CFUN?
Pin status:
AT+CPIN?
Request extended system info:
AT^SYSINFOEX
AT^SYSCFGEX?
Preferred PLMN list:
AT+CPOL?
Request resident Band:
AT+CNBP?
List network operator info:
AT+COPS?
Network registration status:
AT+CREG?
Network EPS registration status:
AT+CEREG?
Signal strength:
AT+CSQ
Packet domain attach status
AT+CGATT?
List APN details/PDP profiles:
AT+CGDCONT?
AT$QCPDPP?
PDP profiles attach status:
AT+CGACT?
Show PDP IP address:
AT+CGPADDR
AT+CGCONTRDP

The support ticket can be created after login at: https://techship.com/technical_support/

Question

How to establish a data connection with Sierra Wireless EM9190, EM9191 and EM7690 in Linux using MBIM network interface over USB

Solution

5G technology introduces new requirements on the interface links between the host systems and cellular modules.
The Linux community continuously commit necessary changes to the kernel drivers and interface management tools to improve the compatibility and performance.
Because of this, it is important that you base your Linux system builds on up-to-date kernel versions, avoiding many problems already solved.

Ensure that you have up-to-date firmware version in the cellular module. Check the dedicated product page here at Techship and the firmware downloads tab or open a technical support ticket.

Early devices and engineering samples came with a older baseline firmware version and typically need to be updated in a Windows system.

This guide describes how to establish a MBIM data connection in Linux using libmbim library and mbimcli command line interface for Sierra Wireless EM919x series modules when connected over USB to the host system.
The cdc_mbim kernel driver module and libmbim library is used.

Ensure that the cdc_mbim network kernel driver and qcserial usb-serial driver is properly loaded to the module interfaces, refer to Sierra Wireless Mobile broadband package for Linux for more details. Binary version and guide linked below.
It can be checked e.g. through dmesg, usb-devices or lsusb -t commands.

usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=1199 ProdID=90d3 Rev=00.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=Sierra Wireless EM9190
S: SerialNumber=
C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I: If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=techship_serial
I: If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=techship_serial
I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

Should you not have the qcserial drivers loaded correctly, you can try compile our modified option usb-serial kernel driver module techship_serial from git link below and load them into your system build, it is however always recommended that you use the vendor provided or recommended drivers.

See the git readme files for details on pre-requirements, how to clone, compile and use the make file options to install the drivers.

They are available in the following git repository:
https://bitbucket.org/storjor/techship_linux_drivers/

Refer to the mbimcli manual pages for details on the control commands that can be supported by the libmbim library and mbimcli command line interface. Note however that not all mbim commands are supported by all cellular module vendors and might be dependant on chipset families, firmware versions and additional vendor specific command etc.
https://www.freedesktop.org/wiki/Software/libmbim/

Example of how to set up a cellular data connection:
Note! A working MBIM network interface data connection requires that the MBIM control message tunnel is kept open at all time also.
To keep it open, start a new session with a mbimcli command, and keep the session open after the command execution by the --no-close attribute.
The Session ID / Transaction ID number (TRID) that is opened with the mbimcli command will be given back in the reply, save it for use in the next mbimcli command.
If the session ID linked to the network data connection is closed, then the data connection on the network interface will also be closed.

Check cellular module device version and capability details:
mbimcli -p -d /dev/cdc-wdm0 --query-device-caps --no-close

Check cellular RF radio status:
mbimcli -p -d /dev/cdc-wdm0 --query-radio-state --no-close
If not enabled, set it active:
mbimcli -p -d /dev/cdc-wdm0 --set-radio-state=on --no-close --no-open=##

Check SIM card subscriber state:
mbimcli -p -d /dev/cdc-wdm0 --query-subscriber-ready-status --no-close --no-open=##
If pin is needed, enter it using --enter-pin command:
mbimcli -p -d /dev/cdc-wdm0 --enter-pin=#### --no-close --no-open=##

Check cellular network registration state:
mbimcli -p -d /dev/cdc-wdm0 --query-registration-state --no-close --no-open=##

If not registered already, try using register automatic:
mbimcli -p -d /dev/cdc-wdm0 --register-automatic --no-close --no-open=##

Check the packet data service state:
mbimcli -p -d /dev/cdc-wdm0 --query-packet-service-state --no-close --no-open=##

If packet service state is not attached, use attach command:
mbimcli -p -d /dev/cdc-wdm0 --attach-packet-service --no-close --no-open=##

To to start a data connection use the connect command, with the desired parameters for PDP APN, IP type, auth details, etc.
mbimcli -p -d /dev/cdc-wdm0 --connect=apn='data.tre.se',ip-type='ipv4v6' --no-close --no-open=##

Bring down the MBIM network interface:
ip link set dev wwan0 down

Clear any existing IP address and routes:
ip -4 -6 address flush dev wwan0
ip -4 -6 route flush dev wwan0

The mbimcli connect command returns the IP, gateway, DNS, and MTU details for the data connection if established successfully.
Enter the IPv4 details to the network interface in the Linux host system, e.g.:
ip address add 2.67.32.120/28 dev wwan0
ip link set mtu 1500 dev wwan0

Enter the IPv6 details to the network interface in the Linux host system, e.g.:
ip -6 addr add 2a02:aa1:1019:50b6:a5b0:ade:8531:b178/64 dev wwan0
ip -6 link set mtu 1500 dev wwan0

Enable the network interface:
ip link set dev wwan0 up

Apply appropriate network interface routing suitable for your use-case, e.g:
ip route add default dev
ip -6 route add default dev wwan0

You should now have a working cellular network data connection.

Test it e.g. by sending ping requests over the interface:
ping -I wwan0 8.8.8.8 -c 4
PING 8.8.8.8 (8.8.8.8) from 2.67.32.120 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=38.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=36.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=43.5 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=41.5 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 36.374/39.975/43.500/2.728 ms

ping -6 -I wwan0 2600:: -c 4
PING 2600::(2600::) from 2a02:aa1:1019:50b6:e59e:4d4a:e778:f24e wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=52 time=156 ms
64 bytes from 2600::: icmp_seq=2 ttl=52 time=171 ms
64 bytes from 2600::: icmp_seq=3 ttl=52 time=169 ms
64 bytes from 2600::: icmp_seq=4 ttl=52 time=167 ms

--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 156.153/165.508/170.577/5.576 ms

To stop the cellular data network connection use mbimcli disconnect command.
Use the Session ID from the previous mbimcli command reply in --no-open=## attribute, but do not include the --no-close attribute, doing so closes the session afterwards.
mbimcli -p -d /dev/cdc-wdm0 --disconnect --no-open=##

Bring down the interface:
ip link set dev wwan0 down

Clear any remaining IP address and routes:
ip -4 -6 address flush dev wwan0
ip -4 -6 route flush dev wwan0

It is up to the host application to manage and poll the connection state of the cellular module.
E.g. if the connection is lost temporarily due to no network coverage in the current location, the host application should tear down and re-establish the data connection when cellular module is registered in network again.

If the data connection fails for some reason several times, ensure that the connect retry attempts do not take place continuously without some extended delays in-between.
Depending on the cellular network operator, they can enforce lock-out on your subscription/device for certain time periods in order to protect the network from being flooded by requests.

Question

Example on how to establish a data connection with Telit FN980 series in Linux using MBIM mode over USB interface

Solution

Example on how to establish a data connection with Telit FN980 series in Linux using MBIM network interface over USB

5G technology introduces new requirements on the interface links between the host systems and cellular modules.
The Linux community continuously commit necessary changes to the kernel drivers and interface management tools to improve the compatibility and performance.
Because of this, it is important that you base your Linux system builds on up-to-date kernel versions, avoiding many problems already solved.

Ensure that you have up-to-date firmware version in the cellular module. Check the dedicated product page here at Techship and the firmware downloads tab or open a technical support ticket.

Early devices and engineering samples came with a older baseline firmware version and typically need to be updated in a Windows system.

This guide describes how to establish a MBIM data connection in Linux using libmbim library and mbimcli command line interface for Telit FN980 series modules when connected over USB to the host system.
The cdc_mbim kernel driver module and libmbim library is used.

Ensure that you have the Telit module in MBIM usb mode and cdc_mbim network kernel driver and option usb-serial driver properly loaded to the module interfaces.
It can be checked e.g. through dmesg, usb-devices or lsusb -t commands.

usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 10 Spd=5000 MxCh= 0
D: Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
P: Vendor=1bc7 ProdID=1051 Rev=04.14
S: Manufacturer=Telit Wireless Solutions
S: Product=FN980m
S: SerialNumber=
C: #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=896mA
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=techship_serial
I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
I: If#=0x2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I: If#=0x3 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=techship_serial
I: If#=0x5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=techship_serial
I: If#=0x6 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=techship_serial
I: If#=0x7 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=techship_serial

If the option serial drivers are not correctly loaded in your current system build and kernel version, please refer to Telit Linux integration guide for details on the integration.
You can try compile our modified option kernel driver module techship_serial from git link below and load them into your system build instead also.
See the git readme files for details on pre-requirements, how to clone, compile and use the make file options to install the drivers.

They are available in the following git repository: https://bitbucket.org/storjor/techship_linux_drivers/

Refer to the mbimcli manual pages for details on the control commands that can be supported by the libmbim library and mbimcli command line interface. Note however that not all mbim commands are supported by all cellular module vendors and might be dependant on chipset families, firmware versions and additional vendor specific command etc.
https://www.freedesktop.org/wiki/Software/libmbim/

Example of how to set up a cellular data connection:
Note! A working MBIM network interface data connection requires that the MBIM control message tunnel is kept open at all time also.
To keep it open, start a new session with a mbimcli command, and keep the session open after the command execution by the --no-close attribute.
The Session ID / Transaction ID number (TRID) that is opened with the mbimcli command will be given back in the reply, save it for use in the next mbimcli command.
If the session ID linked to the network data connection is closed, then the data connection on the network interface will also be closed.

Check device details and capabilities:
mbimcli -p -d /dev/cdc-wdm0 --query-device-caps --no-close

Check cellular RF radio status:
mbimcli -p -d /dev/cdc-wdm0 --query-radio-state --no-close --no-open=##
If not enabled, set it active:
mbimcli -p -d /dev/cdc-wdm0 --set-radio-state=on --no-close --no-open=##

Check SIM card subscriber state:
mbimcli -p -d /dev/cdc-wdm0 --query-subscriber-ready-status --no-close --no-open=##
If pin is needed, enter it using --enter-pin command:
mbimcli -p -d /dev/cdc-wdm0 --enter-pin=#### --no-close --no-open=##

Check cellular network registration state:
mbimcli -p -d /dev/cdc-wdm0 --query-registration-state --no-close --no-open=##

If not registered already, try using register automatic:
mbimcli -p -d /dev/cdc-wdm0 --register-automatic --no-close --no-open=##

Check the packet data service state:
mbimcli -p -d /dev/cdc-wdm0 --query-packet-service-state --no-close --no-open=##

If packet service state is not attached, use attach command:
mbimcli -p -d /dev/cdc-wdm0 --attach-packet-service --no-close --no-open=##

To to start a data connection use the connect command, with the desired parameters for PDP APN, IP type, auth details, etc.
mbimcli -p -d /dev/cdc-wdm0 --connect=apn='data.tre.se',ip-type='ipv4v6' --no-close --no-open=##

Bring down the MBIM network interface:
ip link set dev wwan0 down

Clear any existing IP address and routes:
ip -4 -6 address flush dev wwan0
ip -4 -6 route flush dev wwan0

The mbimcli connect command returns the IP, gateway, DNS, and MTU details for the data connection if established successfully.
Enter the IPv4 details to the network interface in the Linux host system, e.g.:
ip address add 2.68.254.241/30 dev wwan0
ip link set mtu 1500 dev wwan0

Enter the IPv6 details to the network interface in the Linux host system, e.g.:
ip -6 addr add 2a02:aa1:1011:b001:5fc:6a67:296c:8852/64 dev wwan0
ip -6 link set mtu 1500 dev wwan0

Enable the network interface:
ip link set dev wwan0 up

Apply appropriate network interface routing suitable for your use-case, e.g:
ip route add default dev
ip -6 route add default dev wwan0

You should now have a working cellular network data connection.

Test it e.g. by sending ping requests over the interface:
ping -I wwan0 8.8.8.8 -c 4
PING 8.8.8.8 (8.8.8.8) from 2.70.103.209 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=224 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=42.7 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=30.7 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=38.4 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 30.657/84.031/224.373/81.140 ms

ping -6 -I wwan0 2600:: -c 4
PING 2600::(2600::) from 2a02:aa1:1021:b9d1:8847:afd4:e35a:aa29 wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=52 time=173 ms
64 bytes from 2600::: icmp_seq=2 ttl=52 time=153 ms
64 bytes from 2600::: icmp_seq=3 ttl=52 time=152 ms
64 bytes from 2600::: icmp_seq=4 ttl=52 time=208 ms

--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 152.108/171.523/208.073/22.623 ms

To stop the cellular data network connection use mbimcli disconnect command.
Use the Session ID from the previous mbimcli command reply in --no-open=## attribute, but do not include the --no-close attribute, doing so closes the session afterwards.
mbimcli -p -d /dev/cdc-wdm0 --disconnect --no-open=##

Bring down the interface:
ip link set dev wwan0 down

Clear any remaining IP address and routes:
ip -4 -6 address flush dev wwan0
ip -4 -6 route flush dev wwan0

It is up to the host application to manage and poll the connection state of the cellular module.
E.g. if the connection is lost temporarily due to no network coverage in the current location, the host application should tear down and re-establish the data connection when cellular module is registered in network again.

If the data connection fails for some reason several times, ensure that the connect retry attempts do not take place continuously without some extended delays in-between.
Depending on the cellular network operator, they can enforce lock-out on your subscription/device for certain time periods in order to protect the network from being flooded by requests.

Question

Example on how to establish a data connection with Simcom SIM8202x-M2 series in Linux using MBIM network interface over USB

Solution

Example on how to establish a data connection with Simcom SIM8202x-M2 series in Linux using MBIM network interface over USB

5G technology introduces new requirements on the interface links between the host systems and cellular modules.
The Linux community continuously commit necessary changes to the kernel drivers and interface management tools to improve the compatibility and performance.
Because of this, it is important that you base your Linux system builds on up-to-date kernel versions, avoiding many problems already solved.

Ensure that you have up-to-date firmware version in the cellular module. Check the dedicated product page here at Techship and the firmware downloads tab or open a technical support ticket.

Early devices and engineering samples came with a older baseline firmware version and typically need to be updated in a Windows system.

This guide describes how to establish a MBIM data connection in Linux using libmbim library and mbimcli command line interface for SIM8202x-M2 series modules when connected over USB to the host system.
The cdc_mbim kernel driver module and libmbim library is used.

Ensure that you have the Simcom module in MBIM usb mode and cdc_mbim network kernel driver and option usb-serial driver properly loaded to the module interfaces.
It can be checked e.g. through dmesg, usb-devices or lsusb -t commands.

usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
P: Vendor=1e0e ProdID=901e Rev=04.14
S: Manufacturer=QCOM
S: Product=SDXPRAIRIE-MTP _SN:
S: SerialNumber=
C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=techship_serial
I: If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=techship_serial
I: If#=0x2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I: If#=0x3 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=techship_serial
I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs

If the option serial drivers are not correctly loaded in your current system build and kernel version, you can try compile our modified option kernel driver module techship_serial from git link below and load them into your system build.
See the git readme files for details on pre-requirements, how to clone, compile and use the make file options to install the drivers.

They are available in the following git repository: https://bitbucket.org/storjor/techship_linux_drivers/

Refer to the mbimcli manual pages for details on the control commands that can be supported by the libmbim library and mbimcli command line interface. Note however that not all mbim commands are supported by all cellular module vendors and might be dependant on chipset families, firmware versions and additional vendor specific command etc.
https://www.freedesktop.org/wiki/Software/libmbim/

Example of how to set up a cellular data connection:
Note! A working MBIM network interface data connection requires that the MBIM control message tunnel is kept open at all time also.
To keep it open, start a new session with a mbimcli command, and keep the session open after the command execution by the --no-close attribute.
The Session ID / Transaction ID number (TRID) that is opened with the mbimcli command will be given back in the reply, save it for use in the next mbimcli command.
If the session ID linked to the network data connection is closed, then the data connection on the network interface will also be closed.

Check cellular RF radio status:
mbimcli -p -d /dev/cdc-wdm0 --query-radio-state --no-close
If not enabled, set it active:
mbimcli -p -d /dev/cdc-wdm0 --set-radio-state=on --no-close --no-open=##

Check SIM card subscriber state:
mbimcli -p -d /dev/cdc-wdm0 --query-subscriber-ready-status --no-close --no-open=##
If pin is needed, enter it using --enter-pin command:
mbimcli -p -d /dev/cdc-wdm0 --enter-pin=#### --no-close --no-open=##

Check cellular network registration state:
mbimcli -p -d /dev/cdc-wdm0 --query-registration-state --no-close --no-open=##

If not registered already, try using register automatic:
mbimcli -p -d /dev/cdc-wdm0 --register-automatic --no-close --no-open=##

Check the packet data service state:
mbimcli -p -d /dev/cdc-wdm0 --query-packet-service-state --no-close --no-open=##

If packet service state is not attached, use attach command:
mbimcli -p -d /dev/cdc-wdm0 --attach-packet-service --no-close --no-open=##

To to start a data connection use the connect command, with the desired parameters for PDP APN, IP type, auth details, etc.
mbimcli -p -d /dev/cdc-wdm0 --connect=apn='data.tre.se',ip-type='ipv4v6' --no-close --no-open=##

Bring down the MBIM network interface:
ip link set dev wwan0 down

Clear any existing IP address and routes:
ip -4 -6 address flush dev wwan0
ip -4 -6 route flush dev wwan0

The mbimcli connect command returns the IP, gateway, DNS, and MTU details for the data connection if established successfully.
Enter the IPv4 details to the network interface in the Linux host system, e.g.:
ip address add 2.70.103.209/30 dev wwan0
ip link set mtu 1500 dev wwan0

Enter the IPv6 details to the network interface in the Linux host system, e.g.:
ip -6 addr add 2a02:aa1:1021:b9d1:4fb:e1c9:589c:d53f/64 dev wwan0
ip -6 link set mtu 1500 dev wwan0

Enable the network interface:
ip link set dev wwan0 up

Apply appropriate network interface routing suitable for your use-case, e.g:
ip route add default dev
ip -6 route add default dev wwan0

You should now have a working cellular network data connection.

Test it e.g. by sending ping requests over the interface:
ping -I wwan0 8.8.8.8 -c 4
PING 8.8.8.8 (8.8.8.8) from 2.70.103.209 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=224 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=42.7 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=30.7 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=38.4 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 30.657/84.031/224.373/81.140 ms

ping -6 -I wwan0 2600:: -c 4
PING 2600::(2600::) from 2a02:aa1:1021:b9d1:8847:afd4:e35a:aa29 wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=52 time=173 ms
64 bytes from 2600::: icmp_seq=2 ttl=52 time=153 ms
64 bytes from 2600::: icmp_seq=3 ttl=52 time=152 ms
64 bytes from 2600::: icmp_seq=4 ttl=52 time=208 ms

--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 152.108/171.523/208.073/22.623 ms

To stop the cellular data network connection use mbimcli disconnect command.
Use the Session ID from the previous mbimcli command reply in --no-open=## attribute, but do not include the --no-close attribute, doing so closes the session afterwards.
mbimcli -p -d /dev/cdc-wdm0 --disconnect --no-open=##


Bring down the interface:
ip link set dev wwan0 down

Clear any remaining IP address and routes:
ip -4 -6 address flush dev wwan0
ip -4 -6 route flush dev wwan0

It is up to the host application to manage and poll the connection state of the cellular module.
E.g. if the connection is lost temporarily due to no network coverage in the current location, the host application should tear down and re-establish the data connection when cellular module is registered in network again.

If the data connection fails for some reason several times, ensure that the connect retry attempts do not take place continuously without some extended delays in-between.
Depending on the cellular network operator, they can enforce lock-out on your subscription/device for certain time periods in order to protect the network from being flooded by requests.