TECHSHIP IS A GLOBAL SUPPLIER OF WIRELESS COMPONENTS

Register

SimCom SIM7100 LTE mPCIe China

Article Number: 10307
Supplier number: S2-106EN-Z1L7N

SIMCom presents an ultra compact and reliable wireless module SIM7100C which is based on Qualcomm MDM9215 multiple mode LTE platform. SIM7100C is a complete multi-band TDD-LTE/FDD-LTE/TD-SCDMA/WCDMA/GSM/GNSS SMT type module designed with very powerful processors integrating application core:CortexTM A5(550MHz),three QDSP6 cores (Up to 500Mhz), allowing customer to benefit from small dimensions and cost-effective product solutions.

It has strong extension capability with rich interfaces including UART, USB2.0, SPI, I2C,Keypad, PCM, etc. With abundant application capabilities like TCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS, the module provides much flexibility and ease of integration for customer’s applications.

To develop applications and to test the mPCIe module separately the article 10069 Techship MiniPCIe Developer Kit incl. Technical support could be very helpful.

End-of-life

This product has reached
end-of-life and can not be
ordered any more.

Quantity Price

No prices available

For more information
please contact us at
sales-americas@techship.com

For larger quantities and complete pricing, please sign in or register

Do you need offline data on this product?

Download datasheet

Subscribe to stay up to date with the latest about this product.

Subscribe to updates
UMTS Bands
B1 (2100)
B8 (900)
MIMO (Multiple-Input Multiple-Output)
Yes
LTE Bands
B1 (2100)
B3 (1800)
B7 (2600)
B8 (900)
B38 (TDD 2600)
B40 (TDD 2300)
B34 (TDD 2000)
B39 (TDD 1900)
B41 (TDD 2500)
GSM/EDGE Bands
B8 (900)
B3 (1800)
Manufacturer
SIMCom
LTE Region
China
Form Factor
mPCIe - full size
Technology
LTE - cat 3
Antenna Connectors
IPEX MHF/U.FL
GPS
Yes
GNSS technology
GPS
GLONASS
Max DL Speed
100 Mbps
Max UL Speed
50 Mbps
Chipset
MDM9215
Operating Temperature Range
-30 °C – 80 °C
Driver Support
Windows 7
Windows XP
Windows Vista
Linux
Android
Windows
Windows 8
Windows CE
Windows 8.1
Data Interface
USB 2.0
GNSS antenna support
Passive
Active 3.05VDC
GPIO
Yes
Audio interface
Digital PCM signal input/output in socket
Digital PCM signal over USB interface
Certification
CCC
NCC
CTA
TA
Size
30x30x2.9 mm
Technical details:
This module will be shipped with the latest firmware and BOM code. At this moment the firmware 4534B09SIM7100C and BOM code S2-106EN-Z1L6Y. If you would like to order with a special firmware or BOM code, please contact the sales team.

This document describes the electronic specifications, RF specifications, interfaces, mechanical characteristics and testing results of the SIMCom SIM7100 miniPCIe modules. With the help of this document and other related software application notes/user guides, users can understand and use SIM7100-PCIE modules to design and develop applications quickly.

Download

Uploaded at
2015-06-05 17:02:43
Last updated
2019-01-21 13:56:25
Version
1.05
Related products
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100E LTE mPCIe SIM

AT Commands manual for SIMCOM SIM7100 series cellular modules

Download

Document summarizing and describing the GPS systems epoch roll over dates in Simcom products GPS trackers and how to take precaution for it.

Download

Uploaded at
2020-01-07 14:50:05
Last updated
2020-01-07 14:50:05
Version
191119
Related products
SIMCom SIM7070E Development Kit
SIMCom SIM7912G LTE CAT-12 M.2
SIMCom SIM7070E CAT-M/NB2
SIMCOM SIM8200EA-M.2 5G
SIMCom SIM7600G-H LTE CAT-4 mPCIe
SIMCom SIM7000A CAT-M/NB-IoT mPCIe
SIMCom SIM7906E LTE CAT-6 mPCIe
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7000A CAT-M/NB-IoT SMT AT&T
SIMCom SIM7000A CAT-M/NB-IoT SMT Verizon
SIMCom SIM7020G-SUB KIT
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
SIMCom SIM7600E Development Kit
SIMCom SIM7000G CAT-M/NB-IoT/GSM miniPCIe
SIMCom SIM7000E CAT-M/NB-IoT PCIE
SIMCom SIM7000G Development Kit
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7020E NB-IoT SMT
SIMCom SIM7000G
SIMCom SIM7020E-SUB KIT Developer kit
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7000E Development Kit
SIMCom SIM7000E CAT-M/NB-IoT SMT
SIMCom SIM7500SA LTE mPCIe Audio
SIMCom SIM5320A mPCIe
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM868 GSM/GNSS SMT
SIMCom SIM7500E Development Kit
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500A Development kit
SIMCom SIM5300E HSPA SMT
SIMCom SIM7500A LTE SMT US
SIMCom SIM28M development kit
SIMCom SIM68M development kit
SIMCom SIM39EAU development kit
SIMCom SIM33ELA development kit
SimCom SIM5360E-mPCIe SIM
Simcom SIM33ELA
Simcom SIM39EAU
SIMCom SIM68M GNSS SMT
Simcom SIM28M
SimCom SIM5360E HSPA+ mPCie Audio/GPS
SimCom SIM7100E LTE mPCIe SIM
SIMCom SIM808 development kit
SIMCom SIM800F development kit
SimCom SIM800F GSM SMT
SimCom SIM900B development kit
Simcom SIM900 development kit
SimCom SIM800C development kit
SimCom Connector to SIM900B
SimCom SIM800H development kit
SimCom SIM808 GSM/GPS SMT
SimCom SIM7230 LTE mPCIe EU
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100E LTE mPCIe EU
SimCom SM7100A LTE SMT US
SimCom SIM7100E LTE SMT EU
SimCom SIM5360E HSPA+ mPCie EU
SimCom SIM900B GSM B2B
SimCom SIM800C GSM SMT
SimCom SIM800H GSM LGA
SimCom SIM900 GSM SMT
SIMCom SIM7070E mPCIe
SIMCom SIM7600NA-H mPCIe

This archive contains application guides for the module SIM7100 series cellular modules.
The following files:
Antenna design guidelines for diversity receiver system V1.01
SIM7100_CSD_Application_Note_V0.01
SIM7100_Delta_Package_Update_Application_Note_V0.01
SIM7100_ECALL_Application Note_V0.01
SIM7100_Email_Application_Note_V0.01
SIM7100_FTP_Application_Note_V0.01
SIM7100_GPIO_Application_Note_V0.01
SIM7100_GPS_Application_Note_V0.01
SIM7100_HTTP_Application_Note_V0.01
SIM7100_Internet_Service_Application_Note_V0.01
SIM7100_MIFI_Application Note_V1.00
SIM7100_MMS_Application_Note_V0.01
SIM7100_Network_Cell_Info_Application_Note_V0.01
SIM7100_SAT_Application_Note_V0.01
SIM7100_SIM5360_SIM800 Compatible Design_V1.01
SIM7100_SIM5360_SIM800C Compatible Design_V1.01
SIM7100_SIM7500_SIM7600 Series_LBS_Application Note_V1.00
SIM7100_SIM7500_SIM7600 Series_UIM HOT SWAP_Application Note_V1.01
SIM7100_SIM7500_SIM7600 Series_USB AUDIO_Application Note_V1.03
SIM7100_SIM7600M22 Series_TTS_Application Note_V1.02
SIM7100_Sleep_Mode_Application_Note_V0.01
SIM7100_SMS_Application_Note_V0.01
SIM7100_SSL_Application_Note_V1 01
SIM7100_TCPIP_Application_Note_V0.01
SIM7100_TTS_Application_Note_V0.01
SIM7100_UART_Application_Note_V0.01
SIM7X00_Audio_Application_Note_V1.00
SIM7X00 Series_Delta Package Update_Application Note_V1.00
SIM7X00 Series_TTS_Application Note_V1.00
SIM7X00 Series_UIM HOT SWAP_Application Note_V1.00
SIM7X00 Series_USB AUDIO_Application Note_V1.01

Download

This PDF document describes the Audio Application for SIM7X00 series modules.

Download

Uploaded at
2017-01-12 11:15:02
Last updated
2017-01-12 11:15:02
Version
V1.00
Related products
SimCom SIM7100E LTE mPCIe SIM
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100E LTE mPCIe EU

This guide explains how to make a NDIS connection using the SIM7100 in Linux.

Download

Uploaded at
2016-05-10 13:42:37
Last updated
2016-05-10 13:42:37
Version
01
Requirements
Linux
Related products
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100E LTE mPCIe EU
SimCom SM7100A LTE SMT US
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe SIM

This is the data sheet for the mPCIe module SIM7100C.

Download

Uploaded at
2015-10-09 15:48:00
Last updated
2015-10-09 15:48:00
Version
01
Related products
SimCom SIM7100C LTE mPCIe China

Datasheet for SimCom SIM7100 European version. This document includes an overview of SIM7100 and it's features. For more detailed technical information, see the Huawei ME909 Hardware Guide.

Download

Uploaded at
2015-06-05 17:45:21
Last updated
2015-09-24 17:54:29
Version
1001
Related products
SimCom SIM7100C LTE mPCIe China

Firmware update tool and user guide for SIM7000, SIM7100, SIM7070, SIM7080, SIM7500, SIM7600 and SIM8200.

Download

Uploaded at
2020-04-07 11:19:45
Last updated
2020-08-14 11:07:12
Version
R1.58
Requirements
A compatible firmware file
Related products
SimCom SIM7100E LTE SMT EU
SimCom SM7100A LTE SMT US
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100E LTE mPCIe SIM
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500A Development kit
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E Development Kit
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
SIMCom SIM7000E CAT-M/NB-IoT SMT
SIMCom SIM7000E Development Kit
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7000G
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
SIMCom SIM7000G Development Kit
SIMCom SIM7000E CAT-M/NB-IoT PCIE
SIMCom SIM7000G CAT-M/NB-IoT/GSM miniPCIe
SIMCom SIM7600E Development Kit
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
SIMCom SIM7000A CAT-M/NB-IoT SMT Verizon
SIMCom SIM7000A CAT-M/NB-IoT SMT AT&T
SIMCom SIM7000A CAT-M/NB-IoT mPCIe
SIMCom SIM7600G-H LTE CAT-4 mPCIe
SIMCom SIM7600G-H R2 mPCIe
SIMCom SIM7600NA-H mPCIe
SIMCom SIM7080G CAT-M/NB-IoT
SIMCom SIM7070E Development Kit
SIMCom SIM7080G Development Kit
SIMCom SIM7070E CAT-M/NB2
SIMCOM SIM8200EA-M.2 5G
SIMCom SIM7070E mPCIe

This archive contains the Windows operating system drivers for the SIM7000, SIM7100, SIM7230, SIM7500, SIM7600, SIM7800 series Qualcomm chipset based cellular modules. Please refer to the installation instructions document for USB mode selection details.

Download

This archive contains the Simcom SIM7100 series Linux firmware update tools and related step by step guide applying the firmware update.

Download

This archive contains the firmware update tool, QPST tool and a firmware upgrade guide. Please follow instructions carefully.

Download

Uploaded at
2016-09-21 17:36:25
Last updated
2017-09-22 15:26:00
Version
V1.34
Requirements
Microsoft Windows OS
Related products
SimCom SM7100A LTE SMT US
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100E LTE mPCIe SIM

This archive contains the Qualcomm Product Support Tools V.2.7.438.3 for SimCom SIM7-series modules.

Download

Uploaded at
2016-04-26 10:03:17
Last updated
2017-02-24 17:14:10
Version
2.7.438.3
Requirements
Microsoft Windows
Related products
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100E LTE mPCIe SIM
SimCom SIM7230 LTE mPCIe EU
SimCom SM7100A LTE SMT US
SimCom SIM7100E LTE SMT EU

This archive contains the Simcom SIM7100 QMI NDIS Linux driver and installation manual.

Download

Firmware update file 4534B15SIM7100C and release notes for SimCom SIM7100C

Download

Uploaded at
2018-11-30 11:49:54
Last updated
2018-11-30 11:49:54
Version
4534B15SIM7100C
Related products
SimCom SIM7100C LTE mPCIe China

SimCom SIM7100C Firmware update file 4534B12SIM7100C and release notes

Download

Uploaded at
2017-07-31 11:00:26
Last updated
2017-07-31 11:05:20
Version
4534B12SIM7100C
Requirements
Microsoft Windows and SIM71X0 Firmware update and QPST tool for Windows
Related products
SimCom SIM7100C LTE mPCIe China

This ZIP archive contains the SimCom SIM7100C Firmware update file V.4534B13SIM7100C and change notes

Download

Uploaded at
2017-07-31 11:04:16
Last updated
2017-07-31 11:04:16
Version
4534B13SIM7100C
Requirements
Microsoft Windows and SIM71X0 Firmware update and QPST tool for Windows
Related products
SimCom SIM7100C LTE mPCIe China

This ZIP archive contains the SimCom SIM7100C Firmware update file V.4534B11SIM7100C and change notes

Download

Uploaded at
2017-04-06 12:39:26
Last updated
2017-04-06 12:39:26
Version
4534B11SIM7100C
Requirements
Microsoft Windows and SIM71X0 Firmware update and QPST tool for Windows
Related products
SimCom SIM7100C LTE mPCIe China

This archive contains the firmware updater and the release notes for the module SIM7100C that will update the module to firmware 4534B09SIM7100C.

Download

Uploaded at
2016-09-15 12:46:31
Last updated
2016-09-15 12:46:31
Version
4534B09SIM7100C
Related products
SimCom SIM7100C LTE mPCIe China
Question

How-to automatically set up and maintain the cellular data connection in headless Raspberry Pi OS / Raspbian systems?

Solution

The open-source tools NetworkManager and ModemManager can be uesd to establish, control and maintain a cellular connection even if the enironment and antenna RF circumstances vary.

First ensure that the cellular module have been detected in the Raspbian system, and that Linux in-kernel driver alternatives have been loaded correctly for the USB interfaces.
This can be verified through different tools like lsusb and usb-devices, and by checking the dmesg log.
Look at the Driver output, serial interface typically use option or qcserial driver and the network interfaces typically bind to the qmi_wwan or cdc_mbim drivers.

The in-kernel drivers, as well as NetworkManager and ModemManager tools are continously improved, due to the rapid progress in wirelless connectivity. Therefore it is recommended to use fairly recent Linux kernel and distribution versions, which is more likely to have device support out of the box.

lsusb
Bus 001 Device 012: ID 1e0e:9001 Qualcomm / Option

lsusb -t
|__ Port 4: Dev 12, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 4, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 5, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
|__ Port 4: Dev 12, If 3, Class=Vendor Specific Class, Driver=option, 480M

usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=02 Dev#= 12 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1e0e ProdID=9001 Rev=03.18
S: Manufacturer=SimTech, Incorporated
S: Product=SimTech, Incorporated
S: SerialNumber=0123456789ABCDEF
C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan

If drivers aren't loaded for all the USB interfaces, please see the following general FAQ on kernel configs and patches for cellular modules.
FAQ: Common Linux kernel modules and configs necessary for communicating with cellular modules over USB interface

On Raspberry Pi OS / Raspbian uses dhcpcd to configure networks, this causes problems for several cellular devices, so it is recommended to exclude the cellular modules wwan interfaces, see following FAQ for how-to details:
FAQ: We cannot acquire an DHCP address over qmi_wwan driver when using Raspbian Linux OS?

Update the system and install NetworkManager and ModemManager:
apt update
apt upgrade
apt install network-manager modemmanager libmbim-utils libmbim-proxy libqmi-utils libqmi-proxy

Once they are installed and services running, set the cellular module to be a managed interface for NetworkManager.
(The control interface is typically called cdc-wdm0 for cellular devices using qmi_wwan / cdc_mbim driver.)
nmcli device set cdc-wdm0 managed true

Now you can go ahead and establish the cellular data connection as described in FAQ below:
FAQ: Using NetworkManager and ModemManager in Linux to automatically establish and maintain a connection

Related products
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
Sierra Wireless MC7430 mPCIe
Sierra Wireless EM7430 LTE Cat 6
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
Telit LM940A11 LTE CAT-11, GPS, mPCIe
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Sierra Wireless EM7565 LTE CAT-12
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
Fibocom NL668-EAU mPCIe LTE CAT-4
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Sierra Wireless EM7511 LTE CAT-12
Sierra Wireless EM7565, CAT-12, M.2 CBRS Enabled
Fibocom NL678-E mPCIe LTE CAT-6
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910C4-NF
Telit LE910-PCI (LE910C1-AP)
Telit LE910-PCI (LE910C1-NA)
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Sierra Wireless EM7411 NAM
Sierra Wireless MC7411 NAM
Sierra Wireless EM7421 EMEA/APAC
Sierra Wireless MC7421 EMEA/APAC
Sierra Wireless EM7431 Japan
Sierra Wireless MC7431 Japan
Sierra Wireless MC-WP7610 LTE CAT-4 mPCIe
SIMCom SIM7600G-H R2 mPCIe
SIMCom SIM7600NA-H mPCIe
Question

How to collect initial diagnostics data and logs for Simcom cellular modules, 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 Simcom module 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
Detailed module version info:
AT+SIMCOMATI
Verbose error reporting:
AT+CMEE=2
Last error report:
AT+CEER
Firmware version:
AT+CGMR
AT+CSUB
IMEI Code:
AT+CGSN
USB endpoint configuration:
AT+CUSBPIDSWITCH?
List current configuration:
AT&V
Operational mode:
AT+CFUN?
Pin status:
AT+CPIN?
Request UE system info:
AT+CPSI?
Preferred network mode:
AT+CNMP?
Preferred band selection:
AT+CNBP?
Preferred acquisition order:
AT+CNAOP?
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
RM network interface status:
AT$QCRMCALL?

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

Question

How to use NetworkManager and ModemManager in Linux to automatically establish and maintain a cellular data connection?

Solution

Using NetworkManager and ModemManager in Linux to automatically establish and maintain the cellular data connection

In this FAQ we will show how to set up NetworkManager to automatically configure, establish and maintain the cellular data connection in your system.

NetworkManager and ModemManager are open source tool for Linux to manage several types of networks and interfaces such as ethernet, wifi, etc. It can also manage cellular WWAN interfaces through the ModemManager tool.
It is hosted by the Freedesktop.org community and driven by Aleksander Morgado and other contributors. please visit https://wiki.gnome.org/Projects/NetworkManager and https://www.freedesktop.org/wiki/Software/ModemManager/ for latest information, source code, API reference manuals, debugging tips, contribution, mailing list etc.

ModemManager is capable of communicating over several types of device control channels such as QMI/RMNET, MBIM, MODEM / AT command etc. But support for vendor proprietary or out-of-kernel drivers are limited. Such drivers are gobinet, simcom_wwan and other drivers provided by the vendors directly.

Many Linux distributions have NetworkManager and ModemManager pre-installed or they can typically easily be installed through the systems package manager.
In Ubuntu for example apt can install it for you by command:
apt install network-manager

Check with commands below that you have both tools installed in system and their versions.
NetworkManager -V
ModemManager -V

ModemManager (and NetworkManager) are continuously developed for better compatibility with the cellular devices, therefore it is recommend to use a recent version of the tools and in case of problem situations, evaluate the latest versions from source and check the mailing list archives for possible discussions on the problem experienced.

Keep in mind that NetworkManager and ModemManager projects are not directly developed or driven by the cellular device vendors and the compatibility with the device you aim to use can be limited. Some vendors contribute with code to make their devices fully compatible, while others don't. Many cellular devices can be set to expose standardized types of USB network interface and control channel such as MBIM interface by USB-IF or the Qualcomm proprietary interface QMI that ModemManager will try to identify, and often manage to work successfully with but there are exceptions also.

Both NetworkManager and ModemManager have command line interfaces (nmcli and mmcli respectively) where you can interact with the management tools.

Relate to the following FAQ if you want more details for using ModemManager only to configure and control the cellular device but manually establish, maintain the connection and network interface IP address details.
How-to guide: control and set up a data connection in Linux using ModemManager as connection manager?

Have ModemManager list all the cellular device it has detected. Here we use the Alcatel IK41 series with MBIM interface in this example:
mmcli --list-modems
/org/freedesktop/ModemManager1/Modem/0 [Alcatel] Mobilebroadband

General details and status of them modem can be listed with "--modem" option.
mmcli --modem=0
-----------------------------
General | dbus path: /org/freedesktop/ModemManager1/Modem/0
| device id: 998e478c5b14c75e16bffe6abaacabef22fb2f5b
-----------------------------
Hardware | manufacturer: Alcatel
| model: Mobilebroadband
| firmware revision: MPSS.JO.2.0.2.c1.7-00004-9607_
| carrier config: default
| h/w revision: 0
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id:
-----------------------------
System | device: /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1
| drivers: option1, cdc_mbim
| plugin: Generic
| primary port: cdc-wdm0
| ports: cdc-wdm0 (mbim), ttyUSB0 (at), ttyUSB2 (at), wwan0 (net),
| ttyUSB1 (qcdm)
-----------------------------
Status | lock: sim-pin
| unlock retries: sim-pin (3)
| state: locked
| power state: on
| signal quality: 0% (cached)
-----------------------------
Modes | supported: allowed: 2g; preferred: none
| allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 2g, 3g; preferred: 3g
| allowed: 2g, 3g; preferred: 2g
| allowed: 2g, 4g; preferred: 4g
| allowed: 2g, 4g; preferred: 2g
| allowed: 3g, 4g; preferred: 3g
| allowed: 3g, 4g; preferred: 4g
| allowed: 2g, 3g, 4g; preferred: 4g
| allowed: 2g, 3g, 4g; preferred: 3g
| allowed: 2g, 3g, 4g; preferred: 2g
| current: allowed: 2g, 3g, 4g; preferred: 2g
-----------------------------
Bands | supported: egsm, dcs, pcs, g850, utran-1, utran-8, eutran-1, eutran-3,
| eutran-7, eutran-8, eutran-20, eutran-28
| current: egsm, dcs, pcs, g850, utran-1, utran-8, eutran-1, eutran-3,
| eutran-7, eutran-8, eutran-20, eutran-28
-----------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------
SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0

Check that the cellular device is managed by NetworkManager by not having state "unmanaged" listed for it.
nmcli device status
DEVICE TYPE STATE CONNECTION
cdc-wdm0 gsm disconnected --
enp3s0 ethernet unmanaged --
lo loopback unmanaged --

Now you should create a connection profile in NetworkManager for your specific network carrier and SIM card with the "nmcli connection add" command:
For example:
nmcli connection add type gsm ifname '*' con-name '3-sweden' apn 'data.tre.se' connection.autoconnect yes gsm.pin 0000

- type is gsm for all typical cellular connections unless it is of cdma type.
- ifname is the control interface name, in this case cdc-wdm0, wildcard can be used also to have it autoselect.
- con-name is the profile name you want to give it.
- apn is provided by your network carrier and tells the modem what attach point it should use for the data connection.
- connection.autoconnect set to yes will make NetworkManager always try to auto connect and maintain this profile connection.
- gsm.pin lets you provide a pin code for the SIM card, that NetworkManager will try to use if PIN check is enabled for SIM card.

There are several additional commands and attributes available such as username and password settings for the APNs etc. Refer to the NetworkManager help and manual pages for full details on the commands.

If successful you should receive a reply similar to this one:
Connection '3-sweden' (cad6fcbf-2cb1-4796-b7e6-67b9f9635aef) successfully added.

You can check the status now by command:
nmcli device status
DEVICE TYPE STATE CONNECTION
cdc-wdm0 gsm connected 3-sweden
enp3s0 ethernet unmanaged --
lo loopback unmanaged --

Where connected should be listed as state if the connection establishment was successful.

If the connection is not successful or you want more details about the device and connection you can check commands:

You can list the current status with command:
nmcli radio
WIFI-HW WIFI WWAN-HW WWAN
enabled enabled enabled enabled

nmcli device show cdc-wdm
GENERAL.DEVICE: cdc-wdm0
GENERAL.TYPE: gsm
GENERAL.HWADDR: (unknown)
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: 3-sweden
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/18
IP4.ADDRESS[1]: 2.68.73.130/30
IP4.GATEWAY: 2.68.73.129
IP4.ROUTE[1]: dst = 2.68.73.128/30, nh = 0.0.0.0, mt = 700
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 2.68.73.129, mt = 700
IP4.DNS[1]: 80.251.201.177
IP4.DNS[2]: 80.251.201.178
IP6.ADDRESS[1]: 2a02:aa1:1017:6d11:1060:3dff:feac:e92f/64
IP6.ADDRESS[2]: 2a02:aa1:1017:6d11:6474:7254:7b72:eb09/64
IP6.GATEWAY: 2a02:aa1:1017:6d11:21e6:9049:6cfb:8ac3
IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]: dst = 2a02:aa1:1017:6d11::/64, nh = ::, mt = 700
IP6.ROUTE[3]: dst = ::/0, nh = fe80::21e6:9049:6cfb:8ac3, mt = 1024
IP6.ROUTE[4]: dst = 2a02:aa1:1017:6d11::/64, nh = ::, mt = 256
IP6.ROUTE[5]: dst = ::/0, nh = 2a02:aa1:1017:6d11:21e6:9049:6cfb:8ac3, mt = 700
IP6.DNS[1]: 2a02:aa0::55
IP6.DNS[2]: 2a02:aa0::56

nmcli connection show
NAME UUID TYPE DEVICE
3-sweden e946017f-2e9c-477b-89ad-4c31e7331d65 gsm cdc-wdm0

Ifconfig should now show the related IP address details already set to the network interface by NetworkManager:
ifconfig
wwan0: flags=4291 mtu 1500
inet 2.68.73.130 netmask 255.255.255.252 broadcast 2.68.73.131
inet6 2a02:aa1:1017:6d11:6474:7254:7b72:eb09 prefixlen 64 scopeid 0x0
inet6 2a02:aa1:1017:6d11:1060:3dff:feac:e92f prefixlen 64 scopeid 0x0
ether 12:60:3d:ac:e9:2f txqueuelen 1000 (Ethernet)
RX packets 186 bytes 10886 (10.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5 bytes 480 (480.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

You can now for example test the connection over the network interface by sending ping requests.
Testing IPV4 connection:
ping -4 -I wwan0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 2.68.73.130 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=55.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=45.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=118 time=42.9 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 42.918/48.053/55.845/5.601 ms

Testing IPV6 connection: (if your cellular device, network subscription and APN supports it)
ping -6 -I wwan0 2600::
PING 2600::(2600::) from 2a02:aa1:1017:6d11:1060:3dff:feac:e92f wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=46 time=172 ms
64 bytes from 2600::: icmp_seq=2 ttl=46 time=171 ms
64 bytes from 2600::: icmp_seq=3 ttl=46 time=169 ms
64 bytes from 2600::: icmp_seq=4 ttl=46 time=168 ms
--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 167.921/170.037/172.272/1.651 ms

The connection is successful and automatic reconnect is working when testing to unplug and plug in the device again.
For additional configurations, commands and available attributes, please relate to the manual pages for NetworkManager and ModemManager.

Related products
Huawei ME909u-521 - EU/ASIA
Huawei ME909u-521 Mini PCI Express - EU/ASIA
Huawei ME909u-523D Mini PCI Express - US - AT&T
Huawei MS2131i-8 USB-stick
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7230 LTE mPCIe EU
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
Sierra Wireless MC7430 mPCIe
Sierra Wireless EM7430 LTE Cat 6
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
Telit HE910-G HSPA+, GPS, mPCIe
Telit HE910-G-SIM HSPA+, GPS, miniPCIe, SIM card holder
Telit HE910-D HSPA+, miniPCIe, Global
Telit HE910-D-SIM HSPA+, miniPCIe, SIM card holder
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit HE910-GL SIM UMTS, miniPCIe, SIM card holder
Telit HE910-G (Voice) HSPA+ LGA
Telit HE910-DG HSPA+ LGA
Telit HE910-EUD HSPA LGA
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Telit LE910D1-E1 LTE CAT-1 LGA
Huawei MS2372h-153 LTE USB Dongle EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Sierra Wireless EM7565 LTE CAT-12
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
Huawei MS2372h-517 LTE USB Dongle US
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Huawei MS2372h-607 LTE USB Dongle Asia
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
Fibocom NL668-EAU mPCIe LTE CAT-4
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Sierra Wireless EM7511 LTE CAT-12
Sierra Wireless EM7565, CAT-12, M.2 CBRS Enabled
Fibocom NL678-E mPCIe LTE CAT-6
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910-SVL LTE CAT-1
Telit HE910-GL HSPA+ LGA
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
Telit HE910-NAD HSPA+ LGA
Telit LE910-SVG LTE CAT-3 LGA
Telit HE910-NAR HSPA LGA
Telit HE910-D HSPA+ LGA
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
Telit LE910-NAG LTE CAT-3 AT&T LGA
Telit LE910-SVG LTE CAT-3 mPCIe
Telit LE910-NVG LTE CAT-3 LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU
Telit LE910-JN1
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF
Telit LE910-PCI (LE910-SV1)
Telit LE910-PCI (LE910-EU1)
Telit LE910-PCI (LE910-JN1)
Telit LE910-PCI (LE910-NA1)
Telit LE910-PCI (LE910C1-AP)
Telit LE910-PCI (LE910C1-NA)
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF
SIMCOM SIM8200EA-M.2 5G
Telit FN980m 5G M.2
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Sierra Wireless EM7411 NAM
Sierra Wireless MC7411 NAM
Sierra Wireless EM7421 EMEA/APAC
Sierra Wireless MC7421 EMEA/APAC
Sierra Wireless EM7431 Japan
Sierra Wireless MC7431 Japan
Huawei MS2372h-158 LTE USB Dongle EU
Huawei MS2372h-518 LTE USB Dongle US
Huawei MS2372h-608 LTE USB Dongle Asia
Huawei ME909s-120p V2 mPCIe
Huawei ME909s-120 V2 LGA
Sierra Wireless MC-WP7610 LTE CAT-4 mPCIe
SIMCom SIM7600G-H R2 mPCIe
SIMCom SIM7600NA-H mPCIe
Telit FN980 5G M.2 sub-6
Sierra Wireless EM7690 LTE CAT-20
Alcatel IK41VE LTE USB Dongle EU
Alcatel IK41US LTE USB Dongle US
Alcatel IK41CQ LTE USB Dongle APAC
Alcatel IK41UD LTE USB Dongle LATAM
Alcatel IK41UC LTE USB Dongle NA
Question

How-to guide: How can we control, configure and establish a simple data connection for a cellular module in Linux systems using the open source ModemManager tool for modem control and connection management.

Solution

ModemManager is a open source tool for Linux that can be used to communicate with cellular devices for configuration, status check, connection triggering etc. It is capable of communicate over several types of device control channels such as QMI/RMNET, MBIM, MODEM / AT command etc.

It is hosted by the Freedesktop.org community and driven by Aleksander Morgado and other contributors, please visit https://www.freedesktop.org/wiki/Software/ModemManager/ for latest information, source code, API reference manuals, debugging tips, contribution, mailing list etc.

Keep in mind that ModemManager is not directly developed or driven by cellular device vendors and the compatibility cannot be guaranteed for the specific device you aim to use. Some vendors contribute with code to make their devices fully compatible, while others don't. However many cellular devices can be set to expose standardized types of USB network interface and control channel such as MBIM interface by USB-IF or the Qualcomm proprietary interface QMI that ModemManager will try to identify, and often manage to work successfully with.

Before continuing with ModemManager, a good thing to ensure is that you have common Linux driver modules available in your kernel build.
You can compare your own systems kernel config with the ones listed in the following FAQ:
Common Linux kernel modules and configs necessary for communicating with cellular modules over USB interface
Selections of these are commonly used by cellular devices and need to be available in order to have device drivers correctly loaded when devices are detected.

Start by installing ModemManager and its dependencies to your Linux system.
You can build it from source code release tarball found at freedesktop.org (install instructions included in the archive)
If you have a package manager in your Linux distribution, it can usually be installed through them also.
E.g. on Ubuntu using apt to install it and related dependencies:
apt install modemmanager libmbim-utils libqmi-utils

Keep in mind that Linux distributions sometimes rely on fairly old releases in their repositories and the development of ModemManager, libqmi and libmbim are on-going continuously. So is also the development of the cellular devices when the cellular technologies evolve. It is therefore recommended that you have a fairly recent version of ModemManager, libqmi and libmbim running in your system as well as when it comes to kernel version since the driver modules sometimes acquire patch fixes to be compatible with new chipset features etc.
Check Freedesktop.org pages for details on the latest ModemManager, NetworkManager, Libqmi and Libmbim releases.

Once you've installed ModemManager and rebooted your system, the service daemon should be running already in background.
Mmcli is the related command line interface tool which can be used to interact with ModemManager daemon through command line commands.

Check the version by command:
mmcli -V
<< mmcli 1.13.0
<< Copyright (2011 - 2020) Aleksander Morgado
<< License GPLv2+: GNU GPL version 2 or later
<< This is free software: you are free to change and redistribute it.
<< There is NO WARRANTY, to the extent permitted by law.

Print general mmcli help message:
mmcli --help

ModemManager normally listen, probes and detects cellular devices automatically when operating correctly but a forced scan can be triggered with command:
mmcli --scan-modems
<< successfully requested to scan devices

To list detected cellular devices use command:
mmcli --list-modems
<< /org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] MC7455

Here ModemManager have detected a Sierra Wireless cellular device and it has here been given the the identifier number 0 by ModemManager.

To acquire more device information and status use the --modem command and identifier value.
mmcli --modem=0
<< -----------------------------
<< General | dbus path: /org/freedesktop/ModemManager1/Modem/0
<< | device id: 3a2f5fad8e91dbf417694f23165017c1f8a6e061
<< -----------------------------
<< Hardware | manufacturer: Sierra Wireless, Incorporated
<< | model: MC7455
<< | firmware revision: SWI9X30C_02.32.11.00 r8042 CARMD-EV-FRMWR2 2019/05/15 21:52:20
<< | carrier config: default
<< | h/w revision: 1.0
<< | supported: gsm-umts, lte
<< | current: gsm-umts, lte
<< | equipment id: 359072066171840
<< -----------------------------
<< System | device: /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2
<< | drivers: qcserial, qmi_wwan
<< | plugin: sierra
<< | primary port: cdc-wdm0
<< | ports: cdc-wdm0 (qmi), wwan1 (net), ttyUSB2 (at), wwan0 (net),
<< | cdc-wdm1 (qmi), ttyUSB1 (gps), ttyUSB0 (qcdm)
<< -----------------------------
<< Status | lock: sim-pin
<< | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (0), sim-puk2 (10)
<< | state: locked
<< | power state: on
<< | signal quality: 0% (cached)
<< -----------------------------
<< Modes | supported: allowed: 3g; preferred: none
<< | allowed: 4g; preferred: none
<< | allowed: 3g, 4g; preferred: 4g
<< | allowed: 3g, 4g; preferred: 3g
<< | current: allowed: 3g, 4g; preferred: 4g
<< -----------------------------
<< Bands | supported: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2,
<< | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
<< | eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-29,
<< | eutran-30, eutran-41
<< | current: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2,
<< | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
<< | eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-29,
<< | eutran-30, eutran-41
<< -----------------------------
<< IP | supported: ipv4, ipv6, ipv4v6
<< -----------------------------
<< SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0

A detailed summary of device status, configs and system drivers, paths and IDs are returned.

Currently the device status indicates that inserted SIM card is PIN locked, so a unlock by --pin command is necessary:
mmcli --modem=0 --sim=0 --pin=****
<< successfully sent PIN code to the SIM

Now we can change device state to enabled using command:
mmcli --modem=0 --enable
<< successfully enabled the modem

if we're check device status again we can see that device:
mmcli --modem=0

<< --------------------------------
<< Status | lock: sim-puk2
<< | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (0), sim-puk2 (10)
<< | state: registered
<< | power state: on
<< | access tech: lte
<< | signal quality: 96% (recent)

<< 3GPP | imei: 359072066171840
<< | operator id: 24002
<< | operator name: 3
<< | registration: home
<< --------------------------------
<< 3GPP EPS | ue mode of operation: csps-2
<< --------------------------------
<< SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0


The status output shows that devices is registered in network using LTE technology with a good signal strength.

It is now time to activate the data connection with --simple-connect command.
ModemManager will tie the data bearer for our given subscription APN to the qmi_wwan network interface, typically named wwan0 (unless renamed by Linux distribution or user)
Fill in the details as below but for your modem number, subscription APN and the IP type it can work with (ipv4 / ipv6 ipv4v6)
mmcli -m 0 --simple-connect='apn=data.tre.se,ip-type=ipv4v6'
<< successfully connected the modem

if we check modem status again we can see that a bearer have been established.
mmcli --modem=0

<< --------------------------------
<< Bearer | dbus path: /org/freedesktop/ModemManager1/Bearer/0


The bearer have got identifier number 0 so we can request more details for it to acquire the IP details:

mmcli --modem=0 --bearer=0
<< ------------------------------------
<< General | dbus path: /org/freedesktop/ModemManager1/Bearer/0
<< | type: default
<< ------------------------------------
<< Status | connected: yes
<< | suspended: no
<< | interface: wwan1
<< | ip timeout: 20
<< ------------------------------------
<< Properties | apn: data.tre.se
<< | roaming: allowed
<< | ip type: ipv4v6
<< ------------------------------------
<< IPv4 configuration | method: static
<< | address: 2.68.206.100
<< | prefix: 29
<< | gateway: 2.68.206.101
<< | dns: 80.251.201.177, 80.251.201.178
<< | mtu: 1500
<< ------------------------------------
<< IPv6 configuration | method: static
<< | address: 2a02:aa1:1010:b6bb:6d12:d0dc:978e:3982
<< | prefix: 64
<< | gateway: 2a02:aa1:1010:b6bb:21ea:c721:62c3:9760
<< | dns: 2a02:aa0::55, 2a02:aa0::56
<< | mtu: 1500
<< ------------------------------------
<< Statistics | duration: 450
<< | bytes rx: 6693
<< | attempts: 1
<< | total-duration: 450
<< | total-bytes rx: 6693

From here we can see the IP details we've been assigned by the cellular network.
ModemManager does not assign IPv4 address details to the cellular modules network interface in Linux by itself.
When ModemManager is used in conjunction with NetworkManager and the cellular connection is managed by it, then the IPv4 address details will be collected by NetworkManager through ModemManager and automatically assigned to network interface when connection is established.
If the system does not implement NetworkManager, then the IP and routing configuration needs to be handled by user software/scripting.

Example:
Enable network interface in Linux:
ip link set wwan0 up

Set the IPv4 address acquired from bearer information above, the CIDR subnet mask can always be set to 32:
ip addr add 2.68.206.100/32 dev wwan0

Disable ARP:
ip link set dev wwan0 arp off

Set MTU value acquired from network:
ip link set dev wwan0 mtu 1500

Add a default or other type of route to the cellular network device (e.g. with a metric to set which route to prefer)
ip route add default dev wwan0 metric 200

Add the DNS servers reported by cellular network or use other public/desired ones.
DNS server addresses are handled in different ways depending on the Linux distribution and network manager used. Therefore please refer to related dist documentation for best practice to add / maintain DNS server addresses in your specific system.
sh -c "echo 'nameserver 80.251.201.177' >> /etc/resolv.conf"
sh -c "echo 'nameserver 80.251.201.178' >> /etc/resolv.conf"

We should now have a network interface passing data successfully, we can try it out by doing ping requests:
IPv4 data:
ping -4 -c 4 -I wwan0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 2.68.206.100 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=50.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=48.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=44.8 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 23.979/42.115/50.840/10.694 ms

IPv6 data:
ping -6 -c 4 -I wwan0 2600::
PING 2600::(2600::) from 2a02:aa1:1010:b6bb:8962:7405:b81c:7627 wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=47 time=179 ms
64 bytes from 2600::: icmp_seq=2 ttl=47 time=176 ms
64 bytes from 2600::: icmp_seq=3 ttl=47 time=175 ms
64 bytes from 2600::: icmp_seq=4 ttl=47 time=177 ms

--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 175.411/176.935/179.268/1.446 ms

Related products
Huawei ME909u-521 - EU/ASIA
Huawei ME909u-523D - US - AT&T
Huawei ME909u-521 Mini PCI Express - EU/ASIA
Huawei ME909u-523D Mini PCI Express - US - AT&T
Huawei MS2131i-8 USB-stick
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
Sierra Wireless MC7430 mPCIe
Sierra Wireless EM7430 LTE Cat 6
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
SIMCom SIM7000E CAT-M/NB-IoT SMT
Telit HE910-G HSPA+, GPS, mPCIe
Telit HE910-G-SIM HSPA+, GPS, miniPCIe, SIM card holder
Telit HE910-D HSPA+, miniPCIe, Global
Telit HE910-D-SIM HSPA+, miniPCIe, SIM card holder
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit HE910-GL SIM UMTS, miniPCIe, SIM card holder
Telit HE910-G (Voice) HSPA+ LGA
Telit HE910-DG HSPA+ LGA
Telit HE910-EUD HSPA LGA
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Telit LE910D1-E1 LTE CAT-1 LGA
Huawei MS2372h-153 LTE USB Dongle EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Sierra Wireless EM7565 LTE CAT-12
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
Huawei MS2372h-517 LTE USB Dongle US
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Huawei MS2372h-607 LTE USB Dongle Asia
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7000G
Fibocom NL668-EAU mPCIe LTE CAT-4
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Sierra Wireless EM7511 LTE CAT-12
Sierra Wireless EM7565, CAT-12, M.2 CBRS Enabled
SIMCom SIM7000E CAT-M/NB-IoT PCIE
SIMCom SIM7000G CAT-M/NB-IoT/GSM miniPCIe
Fibocom NL678-E mPCIe LTE CAT-6
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910-SVL LTE CAT-1
Telit HE910-GL HSPA+ LGA
SIMCom SIM7000A CAT-M/NB-IoT SMT Verizon
SIMCom SIM7000A CAT-M/NB-IoT SMT AT&T
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
SIMCom SIM7000A CAT-M/NB-IoT mPCIe
Telit HE910-NAD HSPA+ LGA
Telit LE910-SVG LTE CAT-3 LGA
Telit HE910-NAR HSPA LGA
Telit HE910-D HSPA+ LGA
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
Telit LE910-NAG LTE CAT-3 AT&T LGA
Telit LE910-SVG LTE CAT-3 mPCIe
Telit LE910-NVG LTE CAT-3 LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU
Telit LE910-JN1
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF
Telit LE910-PCI (LE910-SV1)
Telit LE910-PCI (LE910-EU1)
Telit LE910-PCI (LE910-JN1)
Telit LE910-PCI (LE910-NA1)
Telit LE910-PCI (LE910C1-AP)
Telit LE910-PCI (LE910C1-NA)
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF
SIMCOM SIM8200EA-M.2 5G
Telit FN980m 5G M.2
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Sierra Wireless EM7411 NAM
Sierra Wireless MC7411 NAM
Sierra Wireless EM7421 EMEA/APAC
Sierra Wireless MC7421 EMEA/APAC
Sierra Wireless EM7431 Japan
Sierra Wireless MC7431 Japan
Huawei MS2372h-158 LTE USB Dongle EU
Huawei MS2372h-518 LTE USB Dongle US
Huawei MS2372h-608 LTE USB Dongle Asia
Sierra Wireless EM9190 5G NR M.2
Huawei ME909s-120p V2 mPCIe
Huawei ME909s-120 V2 LGA
Sierra Wireless MC-WP7610 LTE CAT-4 mPCIe
SIMCom SIM7600G-H R2 mPCIe
SIMCom SIM7600NA-H mPCIe
Telit FN980 5G M.2 sub-6
Sierra Wireless EM9191 5G sub-6 M.2
Sierra Wireless EM7690 LTE CAT-20
Alcatel IK41VE LTE USB Dongle EU
Alcatel IK41US LTE USB Dongle US
Alcatel IK41CQ LTE USB Dongle APAC
Alcatel IK41UD LTE USB Dongle LATAM
Alcatel IK41UC LTE USB Dongle NA
Question

How can I enable DC voltage output for active GPS/GNSS antennas on modules that support this feature?

Solution

The 3 volt DC Low Noise Amplifier voltage supply from the cellular module can be enabled according to AT commands bellow:

For Sierra Wireless EM/MC74 series:
AT!ENTERCND="A710"
AT+WANT=1

For Sierra Wireless MC73 series:
AT!ENTERCND="A710"
AT+WANTGNSSPWR=1

For Simcom SIM7100, SIM7500, SIM7600 and SIM7600 -H series:
AT+CVAUXV=3050
AT+CVAUXS=1

Question

How-to change the cellular modulesUSB composition mode to Mobile Broadband Interface Model (MBIM) used by Windows 8 and 10 systems for controlling and establishing data connectivity through the built-in connection manager in Windows?

Solution

This is done by sending a set of AT commands to the cellular modules Modem or AT serial interface found in Windows Device Manager. Please see list below for associated AT commands.
(For additional details, refer to the product specific software, ports, and AT commands guides found on the Techship product web pages under technical documentation tab).

After the AT commands have been received by the module and has restarted, the USB interface endpoint composition should have changed to include MBIM interface as well.

You can find the correct Serial COM port number by checking Windows Device Manager, under the Modems drop down -> (right click and see properties for selected COM port info) or under the Ports (COM & LPT) drop down.

Vendor specific commands to use:
Sierra Wireless EM74xx, MC74xx series module:
AT!ENTERCND=”A710”
AT!USBCOMP=1,1,100D
AT!RESET
(See test command AT!USBCOMP=? for full usage description)

Sierra Wireless EM75xx series module:
AT!ENTERCND=”A710”
AT!USBCOMP=1,3,100D
AT!RESET
(See test command AT!USBCOMP=? for full usage description)

Sierra Wireless EM73xx, MC73xx series module:
AT!ENTERCND=”A710”
AT!UDUSBCOMP=8
AT!RESET

Simcom SIM7100, SIM7500 and SIM7600 series modules:
AT+CUSBPIDSWITCH=9003,1,1
AT+CRESET

ZTE Welink ME3630 series:
AT+ZSWITCH=8
AT+ZRST

Telit LE910C1 and LE910C4 series:
AT#USBCFG=2
AT#REBOOT

Telit LM940 and LM940A11:
AT#USBCFG=2
AT#REBOOT

Telit LM960 and LM960A18:
AT#USBCFG=2
AT#REBOOT

Telit LE910 V2 series:
AT#USBCFG=3
AT#REBOOT

On Huawei and Telit LN94x series modules the USB mode changing is done automatically by the modules Windows drivers based on current Windows version.

Please be aware that some USB mode configurations do not include any serial interfaces, making it impossible to revert the changes using AT commands.

Related products
Sierra Wireless MC7304
Sierra Wireless MC7354
Sierra Wireless MC7350
Sierra Wireless EM7305
Sierra Wireless EM7355
Huawei MU709s-2 LGA
Huawei MU709s-2 mPCIe
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
Huawei MU709s-6 mPCIe
SimCom SIM7100E LTE SMT EU
SimCom SM7100A LTE SMT US
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
Huawei ME906s-158 M.2 EU
Huawei ME909s-120 LGA dev.kit
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
Sierra Wireless MC7430 mPCIe
Sierra Wireless EM7430 LTE Cat 6
ZTE ME3610 E1A LCC
Techship Starter kit Huawei ME909s
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
Huawei MU709s-2 LGA TTS
Welink ME3630 E1C LCC EU
Welink ME3630 E1C mPCIe EU
SIMCom SIM7500E LTE mPCIe EU
Welink ME3630 U1A LCC (US)
Welink ME3630 U1A mPCIe (US)
SIMCom SIM7500SA LTE mPCIe Audio
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Telit LE910D1-E1 LTE CAT-1 LGA
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Sierra Wireless EM7565 LTE CAT-12
Welink ME3630 C1C mPCIe CN
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Welink ME3630 E1C M.2 EU
Welink ME3630 E2C CAT-1 M.2 EU
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Sierra Wireless EM7511 LTE CAT-12
Sierra Wireless EM7565, CAT-12, M.2 CBRS Enabled
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU
Telit LE910-JN1
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF
Telit LE910-PCI (LE910-SV1)
Telit LE910-PCI (LE910-EU1)
Telit LE910-PCI (LE910-JN1)
Telit LE910-PCI (LE910-NA1)
Telit LE910-PCI (LE910C1-AP)
Telit LE910-PCI (LE910C1-NA)
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Gosuncn GM500 U1A mPCIe (US)
SIMCom SIM7600G-H R2 mPCIe
SIMCom SIM7600NA-H mPCIe
Question

How do we enable basic standalone GPS tracking with the SIMcom cellular modules that include GNSS tracking feature?

Solution

The SIM7100 series, SIM7500 series SIM7600 series and SIM7600 -H series cellular modules that include a GNSS tracker can be used to acquire current accurate location data with and active or passive GNSS antenna connected to the module.

Details of the available AT commands related to GNSS functionality are described in the AT command reference manuals under GPS section. The AT command reference manuals can be found under our product web pages under technical documentation tab.

Depending on if an GNSS antenna with or without low noise amplifier (active/passive antenna) are used, the AT+CVAUXV and AT+CVAUXS command can be used to adjust if the antenna power supply of 3 VDC should be enabled or disabled on the GNSS antenna connector.

Module configured for active GNSS antenna with 3VDC power supply enabled directly from module:
AT+CVAUXV=3050
AT+CVAUXS=1

Module configured for passive GNSS antenna and antenna voltage supply from cellular module is disabled:
AT+CVAUXS=0

A basic standalone GNSS tracking session outputting the location data on the dedicated NMEA virtual serial interface can be started with the following AT command:
AT+CGPS=1,1

Other useful commands:
(Please note that GNSS configuration parameters can only be changed when tracking is not active)

Stop ongoing GNSS tracking:
AT+CGPS=0

Clear GNSS fix related data stored in module:
AT+CGPSDEL

Set minimum accuracy threshold in meters for location fix (default value 50 meters):
AT+CGPSHOR=50

Enable autostart of GNSS tracking at module start up:
AT+CGPSAUTO=1

The latest GNSS fix can also be requested by AT command:
AT+CGPSINFO
And the output is in the form:
+CGPSINFO: [lat],[N/S],[log],[E/W],[date],[UTC time],[alt],[speed],[course]

For details on how to configure the GPS for different application and scenarios, such as using Assisted GPS, or changing output formats etc. please relate to the AT commands reference manuals for the specific SIMcom module.

Question

How to step by step set up a data connection over QMI interface using qmicli and in-kernel driver qmi_wwan in Linux?

Solution

Several cellular modules based on Qualcomm chipsets implements the Qualcomm Qualcomm MSM (QMI) Interface.
There is a open source Linux in-kernel driver supporting this interface and it is called qmi_wwan. This driver can be used together with ModemManager and NetworkManager to automate connection establishment and as a connection manager.

The library libqmi which ModemManager uses can also be used to communicate in a more direct way with the cellular devices over the QMI interface and to step by step do necessary configurations and trigger the data connection over the cellular network.

A selection of cellular modules can be supported:

Using RAW IP kernel configuration:
Sierra Wireless MC74 series, EM74 series, EM75** series
Telit LM940, LM960
Telit LN94x series (requires USB mode switch)
Simcom SIM7500 series, SIM7600 series, SIM7600 -H series
(can be supported in qmi_wwan driver from kernel 4.18 or by applying the following one line qmi_wwan source code patch on previous kernel builds: qmi_wwan: apply SET_DTR quirk to the SIMCOM shared device ID)

Using 802.3 IP framing kernel configuration:
Simcom SIM7100 series
Sierra Wireless MC73**/EM73** series

ModemManager combined with NetworkManager will detect the cellular modules automatically in most cases, please refer to their respective documentations on how to establish a data connection using them.

Example on how to set up the data connection step by step manually with libqmi:
First install the libqmi Linux library e.g. by using your system package manager like apt or preferably latest version from source on the Freedesktop pages for libqmi project: https://www.freedesktop.org/wiki/Software/libqmi/

Verify that you have the Linux in-kernel qmi_wwan driver installed and attached for the cellular modules QMI interface over USB:
lsusb -t
Can look e.g. like this:
...
|__ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
...

If the driver is not correctly loaded, please verify that the module is set to expose the correct USB endpoints configuration toward the host system and that you have followed the provided guides from the cellular module vendors, regarding how to implement the module in Linux.

Libqmi expose a command line interface that can be used to communication with the module over QMI interface.
The qmicli help will output information about all commands available:
qmicli --help-all

The cellular modules QMI control interface are usually named cdc-wdm* e.g.:
qmicli --device=/dev/cdc-wdm0

In order to allow parallel commands to be execute on the module over QMI interface, it is recommended to use the libqmi proxy function. This can be done by including the attribute -p or --device-open-proxy in every qmicli command.

If a SIM pin is required for the SIM card, use command bellow:
qmicli --device=/dev/cdc-wdm0 -p --dms-uim-verify-pin=PIN,1234

The name of the related network interface to QMI control channel can be acquired with the command:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --get-wwan-iface

The most recent Qualcomm based cellular modules only expose QMI interfaces that can support Raw-IP mode. Sierra Wireless EM/MC74 and EM75 series modules, Telit LM940 and LN940 series for example require this.
Check what IP-mode the host system is configured for:
qmicli --device=/dev/cdc-wdm0 --get-expected-data-format
Check what IP-mode the cellular module require:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --wda-get-data-format

to change qmi_wwan driver to use Raw-IP.
Disable the network interfaces exposed by the cellular module:
ip link set dev wwan0 down
Trigger the Raw-IP support:
echo Y > /sys/class/net/wwan0/qmi/raw_ip
Enable the network interfaces again:
ip link set dev wwan0 up

Now the data connection in the cellular module can be activated e.g. with a IPv4 type configuration on the specified APN:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --wds-start-network="ip-type=4,apn=data.tre.se" --client-no-release-cid

Once "Network started" is displayed, you can send a DHCP request on the network interface.
Please note that not all DHCP clients in Linux can support Raw-IP format, udhcpc however support this for IPv4 over Raw-IP.
udhcpc -q -f -n -i wwan0

Disconnect the data bearer and data connection over QMI by command bellow and providing the network handle and CID returned at connection activation:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --wds-stop-network=NETWORK_HANDLE --client-cid=CID

Additional useful commands:

Request module manufacturer:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-manufacturer

Get module model:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-model

Get firmware version:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-revision

Get module IDs (IMEI etc.):
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-ids

Get SIM card status:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --uim-get-card-status

Recent cellular modules like Sierra Wireless EM7565 require at least libqmi V1.20. Check version with command:
qmicli --version

If the connection was successfully set up established, you now have data connectivity. A ping to a remote server using the cellular network interface can for example prove this:
ping -I wwan0 8.8.8.8

The ifconfig Linux tool can show the current details for the network interface:
ifconfig wwan0

libqmi is well integrated and supported in ModemManager tool for Linux. ModemManager again is well integrated and supported when using NetworkManager tool in Linux. Please note however that these two tools expect the cellular module interfaces to only be used by them so if you manually want to use the libqmi library or AT commands interfaces, please turn off/disable ModemManager and NetworkManager first.

The libqmi is a generic open source library for Linux systems and QMI protocol from Qualcomm, therefor there are commands only working on selected devices and not necessarily supported on the device you use, resulting in an error message.

Question

How do we configure the Simcom SIM7100, SIM7500 and SIM7600 series cellular modules for usage in Windows 8 and 10 systems and support Windows built-in connection manager?

Solution

The Simcom modules are by default set in a USB configuration used most often by Linux and Windows 7 systems. If you want to use the module in Windows 8, 8.1, 10 systems with the Windows integrated connection manager you have to once configure and set the module to expose Mobile Broadband Interface Model (MBIM) interface as bellow:

Start by installing the latest Simcom series Windows drivers (instructions included in download package). They can be found on on our dedicated product web pages.

In Windows device manager you can now find a serial interface called e.g."SimTech HS-USB AT Port 9001 (COM5)" Memorize the COM* interface number in your system.

Open a command prompt with admin rights (right click Windows icon in bottom left corner). Copy and paste the command bellow, edit port number to match the one in your system and hit enter. The command will then be sent to module overt the serial interface.
ECHO AT+CUSBPIDSWITCH=9003,1,1 >\\.\COM5

If the command is received successfully by module, a restart of the cellular module will be performed and it appears with the new USB endpoints supporting Windows 8 systems and later.

Make sure that all Simcom module end points are correctly loaded in Windows device manager, a system restart might be necessary also.

By clicking the Windows network connection symbol in the start bar or navigating to the "Cellular" topic in Windows system settings you can now activate the connection and configure APN details and enter PIN code if it is necessary for the cellular connection and subscription you have.

Question

What Linux kernel modules and configs are commonly used for communicating with cellular modules over their USB interface?

Solution

Most cellular modules can be supported in Linux by using som of the in-kernel drivers. The physical data interface to the host Linux system is usually done over USB which enumerates a set of different endpoints/interfaces. A set of serial interfaces for Modem/PPP, AT commands, NMEA location data and chipset debug information are almost always available in all configurations.

In addition some type of network endpoint/interface are also available and exposed. This can vary between manufacturers and chipset vendors and can also commonly be configurable by using USB configuration mode switching or through vendor specific AT commands.

Recommended kernel configurations to enable are listed bellow. Many cellular modules base their Linux support on these modules and drivers. Once included in the kernel build, the USB interfaces will be detected and bound correctly out-of-the-box or after applying source code patches to the driver modules.

Configs for USB serial drivers:
CONFIG_USB_SERIAL
CONFIG_USB_SERIAL_GENERIC
CONFIG_USB_SERIAL_WWAN
CONFIG_USB_SERIAL_OPTION
CONFIG_USB_SERIAL_QUALCOMM
CONFIG_USB_ACM

Configs for Modem/PPP support:
CONFIG_PPP
CONFIG_PPP_BSDCOMP
CONFIG_PPP_DEFLATE
CONFIG_PPP_FILTER
CONFIG_PPP_MPPE
CONFIG_PPP_MULTILINK
CONFIG_PPPOE
CONFIG_PPP_ASYNC
CONFIG_PPP_SYNC_TTY

Configs for USB network drivers:
CONFIG_USB_USBNET
CONFIG_USB_NET_QMI_WWAN
CONFIG_USB_NET_CDCETHER
CONFIG_USB_NET_RNDIS_HOST
CONFIG_USB_NET_CDC_NCM
CONFIG_USB_NET_HUAWEI_CDC_NCM
CONFIG_USB_NET_CDC_MBIM

Please relate to the Techship product specific web pages for vendor specific Linux integration guides.

Below is a selection of kernel commits relating to cellular module support in Linux kernels:
qmi_wwan: Add support for Fibocom NL678 series
qmi_wwan: Added support for Telit LN940 series
qmi_wwan: Added support for Fibocom NL668 series
USB: serial: option: add support for GosunCn ME3630 RNDIS mode
USB: serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode
USB: serial: option: add Simcom SIM7500/SIM7600 (MBIM mode)
USB: serial: option: add Fibocom NL678 series
USB: serial: option: add Telit LN940 series
USB: serial: option: add Fibocom NL668 series
USB: serial: option: add GosunCn ZTE WeLink ME3630
qmi_wwan: apply SET_DTR quirk to the SIMCOM shared device ID

If you use any of the listed cellular modules, drivers and specified USB modes in the commits above, ensure that your kernel version already include the patch or apply it to your build.

Related products
Huawei ME909u-521 - EU/ASIA
Huawei ME909u-523D - US - AT&T
Huawei ME909u-521 Mini PCI Express - EU/ASIA
Huawei ME909u-523D Mini PCI Express - US - AT&T
Sierra Wireless MC7710
Huawei ME909u-521 developer kit
Sierra Wireless MC7750
Sierra Wireless MC7700
Sierra Wireless MC7304
Sierra Wireless MC7354
Sierra Wireless MC7350
Sierra Wireless EM7305
Sierra Wireless EM7355
Huawei MU709s-2 LGA
Huawei MU709s-2 devkit
Huawei MS2131i-8 USB-stick
Huawei MU709s-2 mPCIe
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
Huawei MU709s-6 mPCIe
SimCom SIM5360E HSPA+ mPCie EU
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7230 LTE mPCIe EU
Huawei ME906s-158 M.2 EU
Huawei ME909s-120 LGA dev.kit
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
SimCom SIM5360E HSPA+ mPCie Audio/GPS
Sierra Wireless MC7430 mPCIe
SimCom SIM5360E-mPCIe SIM
Sierra Wireless EM7430 LTE Cat 6
Techship Starter kit Huawei ME909s
SIMCom SIM7500A LTE SMT US
SIMCom SIM5300E HSPA SMT
SIMCom SIM7500A Development kit
Sierra Wireless WP7502
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E Development Kit
Huawei MU709s-2 LGA TTS
Welink ME3630 E1C LCC EU
Welink ME3630 E1C mPCIe EU
SIMCom SIM7500E LTE mPCIe EU
Welink ME3630 U1A LCC (US)
Welink ME3630 U1A mPCIe (US)
SIMCom SIM5320A mPCIe
SIMCom SIM7500SA LTE mPCIe Audio
SIMCom SIM7000E CAT-M/NB-IoT SMT
Telit HE910-G HSPA+, GPS, mPCIe
Telit HE910-G-SIM HSPA+, GPS, miniPCIe, SIM card holder
Telit HE910-D HSPA+, miniPCIe, Global
Telit HE910-D-SIM HSPA+, miniPCIe, SIM card holder
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit HE910-GL SIM UMTS, miniPCIe, SIM card holder
Telit HE910-G (Voice) HSPA+ LGA
Telit HE910-DG HSPA+ LGA
Telit HE910-EUD HSPA LGA
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Telit LE910D1-E1 LTE CAT-1 LGA
Telit LN940 A11 LTE CAT-11 M.2
Telit LN940 A9 LTE CAT-9 M.2
SIMCom SIM7000E Development Kit
Huawei MS2372h-153 LTE USB Dongle EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Sierra Wireless EM7565 LTE CAT-12
Welink ME3630 C1C mPCIe CN
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
Huawei MS2372h-517 LTE USB Dongle US
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Huawei MS2372h-607 LTE USB Dongle Asia
Welink ME3630 E1C M.2 EU
Welink ME3630 E2C CAT-1 M.2 EU
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
Telit LE910-NA1 LTE CAT-1 Developer Kit
Telit LE910-EU1 LTE CAT-1 Developer Kit
Telit LE910-SV1 LTE CAT-1 Developer Kit
SIMCom SIM7020E-SUB KIT Developer kit
SIMCom SIM7000G
SIMCom SIM7020E NB-IoT SMT
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Telit LN941 LTE CAT-6, M.2
Sierra Wireless EM7511 LTE CAT-12
Sierra Wireless EM7565, CAT-12, M.2 CBRS Enabled
SIMCom SIM7000G Development Kit
SIMCom SIM7000E CAT-M/NB-IoT PCIE
SIMCom SIM7000G CAT-M/NB-IoT/GSM miniPCIe
SIMCom SIM7600E Development Kit
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
SIMCom SIM7020G-SUB KIT
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910-SVL LTE CAT-1
Telit HE910-GL HSPA+ LGA
SIMCom SIM7000A CAT-M/NB-IoT SMT Verizon
SIMCom SIM7000A CAT-M/NB-IoT SMT AT&T
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
SIMCom SIM7000A CAT-M/NB-IoT mPCIe
Telit HE910-NAD HSPA+ LGA
Telit LE910-SVG LTE CAT-3 LGA
Telit HE910-NAR HSPA LGA
Telit HE910-D HSPA+ LGA
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
Telit LE910-NAG LTE CAT-3 AT&T LGA
Telit LE910-SVG LTE CAT-3 mPCIe
Telit LE910-NVG LTE CAT-3 LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU
Telit LE910-JN1
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF
Telit LE910-PCI (LE910-SV1)
Telit LE910-PCI (LE910-EU1)
Telit LE910-PCI (LE910-JN1)
Telit LE910-PCI (LE910-NA1)
Telit LE910-PCI (LE910C1-AP)
Telit LE910-PCI (LE910C1-NA)
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910-SV V2 (Reel)
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
GosuncnWelink GM500 U1A CAT-4 M.2
Telit LE910C1-NF
SIMCom SIM7070E CAT-M/NB2
SIMCom SIM7070E Development Kit
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
SIMCom SIM7070E mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Sierra Wireless WP7702 LTE CAT-M/NB-IoT LGA
Telit LM960A18 LTE CAT-18 mPCIe
Gosuncn GM500 U1A mPCIe (US)
SIMCom SIM7600G-H R2 mPCIe
SIMCom SIM7600NA-H mPCIe
Question

How can we establish data connection for cellular modules in Windows 8 and Windows 10 systems?

Solution

Microsoft Windows desktop versions starting from Windows 8 and newer have built in data connection manager for WWAN, Wifi etc. that can be used to configure, control and establish the data connection of cellular module that support MBIM interface, which most cellular modules do.

The connection managers settings and controls can be found and accessed on Windows desktop start menu through the network icon (see picture).

The Cellular tab can be found in Windows system settings and if needed the connection APN details can be manually entered through "Advanced options".

Images
Windows 10 connection manager Windows 10 connection settings
Related products
Sierra Wireless MC7304
Sierra Wireless MC7354
Sierra Wireless MC7350
Sierra Wireless EM7305
Sierra Wireless EM7355
Huawei MU709s-2 LGA
Huawei MU709s-2 mPCIe
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei MU709s-6 mPCIe
SimCom SIM7100E LTE SMT EU
SimCom SM7100A LTE SMT US
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
Huawei ME906s-158 M.2 EU
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
Sierra Wireless MC7430 mPCIe
Sierra Wireless EM7430 LTE Cat 6
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
Huawei MU709s-2 LGA TTS
Welink ME3630 E1C LCC EU
Welink ME3630 E1C mPCIe EU
SIMCom SIM7500E LTE mPCIe EU
Welink ME3630 U1A LCC (US)
Welink ME3630 U1A mPCIe (US)
SIMCom SIM7500SA LTE mPCIe Audio
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Telit LE910D1-E1 LTE CAT-1 LGA
Telit LN940 A11 LTE CAT-11 M.2
Telit LN940 A9 LTE CAT-9 M.2
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Welink ME3630 C1C mPCIe CN
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Welink ME3630 E1C M.2 EU
Welink ME3630 E2C CAT-1 M.2 EU
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Telit LN941 LTE CAT-6, M.2
SIMCom SIM7600E Development Kit
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF
Telit LE910-PCI (LE910-SV1)
Telit LE910-PCI (LE910-EU1)
Telit LE910-PCI (LE910-JN1)
Telit LE910-PCI (LE910-NA1)
Telit LE910-PCI (LE910C1-AP)
Telit LE910-PCI (LE910C1-NA)
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Gosuncn GM500 U1A mPCIe (US)
Question

How to set up a simple data connection over Qualcomm QMI interface using libqmi and driver qmi_wwan in Linux?

Solution

Several cellular modules based on Qualcomm chipsets implements the Qualcomm MSM QMI RMNET Interface.
There is a open source Linux in-kernel driver supporting this interface called qmi_wwan. The helper library libqmi can be used to communicate with the cellular devices over the interface and do cellular module configurations to control and trigger the data connection over the cellular network.

Install the libqmi Linux library using e.g. your OS package manager like apt etc.
(Check out the official libqmi page here: https://www.freedesktop.org/wiki/Software/libqmi/)
Please be aware that libqmi is a 3rd party software not distributed by the chipset or module vendors. So full compatibility on all available commands should not be expected.
There are Qualcomm chipset standard QMI commands and in addition vendors specific custom QMI commands not supported by all manufacturers, but still available in libqmi. There are also new QMI commands not supported in older chipsets and vice versa, old QMI commands no longer supported in new chipset series.

Verify that you have the Linux in-kernel qmi_wwan driver installed and loaded for the cellular modules QMI interface endpoint over USB:
lsusb -t

Can look like this:
...
|__ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
...

If the driver is not loaded correctly, please verify that the cellular module is set to expose QMI RMNET network interface endpoint in its configuration. How to do so can often be found in AT commands guides, Linux implementation guides and similar from the cellular module vendors.

Libqmi library include a command line tool qmicli that can be used in a more convenient way communicate directly with the module over QMI interface for testing, scripting and troubleshooting.

The qmicli help will output information about all commands available:
qmicli --help-all

The qmi_wwan network control interfaces for modules are usually named like cdc-wdm# under /dev/ path.
Use the attribute --device or -d to specify it for qmicli in your command execution:
qmicli --device=/dev/cdc-wdm0
qmicli -d /dev/cdc-wdm0

In order to ease usage of the QMI interface and handle parallell command requests, libqmi include a proxy function to handle it correctly on the QMI interface, To use it, make sure to have the the attribute present in the qmicli command:
-p
--device-open-proxy

Example commands on how to communicate
Request module manufacturer:
qmicli -p -d /dev/cdc-wdm0 --dms-get-manufacturer

Get module model:
qmicli -p -d /dev/cdc-wdm0 --dms-get-model

Get firmware version:
qmicli -p -d /dev/cdc-wdm0 --dms-get-revision

Get module IDs (IMEI etc.):
qmicli -p -d /dev/cdc-wdm0 --dms-get-ids

Get SIM card status:
qmicli -p -d /dev/cdc-wdm0 --uim-get-card-status

The script qmi-network can be used to establish a simple data connection, it will automatically try to verify the IP framing type match them correctly between qmi_wwan driver and module (Raw-IP vs. 802.3 IP framing).

Create a config file containing your network operator APN details and if needed, the username and password.
Save it e.g. in the default location /etc/qmi-network.conf
The parameter --profile=[PATH] can be used to define the path to config when executing qmi-network.

Example config file content: APN details and enabling of proxy usage.
Add the username and password lines if it is needed for your APN:
APN=my-network-operators-apn
APN_USER=my-apn-username
APN_PASS=my-apn-password
PROXY=yes

Once the APN information is saved, you can start the network connection with the command:
qmi-network /dev/cdc-wdm0 start

The name of the related network interface in the Linux system can be acquired with the command:
qmicli -p -d /dev/cdc-wdm0 --get-wwan-iface

Once you see "Network started successfully" message, you can send a DHCP request on the network interface.
Please note that not all DHCP clients in Linux can handle Raw-IP format but udhcpc support it.
udhcpc -q -f -i wwan0

The IP information from the cellular network can also be acquired and set manually to the network interface by the user or scripting, the correct address details can be acquired from the cellular module over QMI with command:
qmicli -p -d /dev/cdc-wdm0 --wds-get-current-settings

If the connection was successfully set up and established, you now have a data connection. Ping request to a remote server using the cellular network interface can prove this:
ping -I wwan0 8.8.8.8

The ifconfig Linux tool can show the current details for the network interface:
ifconfig wwan0

To bring down and stop the cellular network connection, please use the stop command bellow:
qmi-network /dev/cdc-wdm0 stop

The ModemManager tool for Linux is based on libqmi. NetworkManager and ModemManager . Please note however that these two tools expect the cellular module interfaces to only be used by them so if you manually want to use the libqmi library or AT commands interfaces, please turn off/disable ModemManager and NetworkManager first.

The libqmi is a generic open source library for Linux systems and QMI protocol from Qualcomm, therefor there are several commands only working on selected devices and not necessarily on supported in the specific device you use, resulting in an error message.

Related products
Sierra Wireless MC7304
Sierra Wireless MC7354
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
Sierra Wireless MC7455 LTE Cat 6
Sierra Wireless EM7455 LTE Cat 6
SimCom SIM7100E LTE mPCIe SIM
Sierra Wireless MC7430 mPCIe
Sierra Wireless EM7430 LTE Cat 6
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
Telit LM940A11 LTE CAT-11, GPS, mPCIe
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Sierra Wireless EM7565 LTE CAT-12
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
Fibocom NL668-EAU mPCIe LTE CAT-4
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Sierra Wireless EM7511 LTE CAT-12
Sierra Wireless EM7565, CAT-12, M.2 CBRS Enabled
Fibocom NL678-E mPCIe LTE CAT-6
SIMCom SIM7600E Development Kit
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910C1-AP
Telit LE910C1-EU
Telit LE910C4-NF
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe

You might also be interested in