TECHSHIP IS A GLOBAL SUPPLIER OF WIRELESS COMPONENTS

Register

Telit LM940 LTE CAT-11, GPS, mPCIe

Article Number: 10637
Manufacturer: Telit
Supplier number:

The Telit LM940 LTE CAT-11, GPS, miniPCIe data-card deliver High speed data rates on Advanced LTE and offer a cellular connection for future products in Router and gateway environment. miniPCIe form factor data-card is particularly well-suited for products with very high throughput requirements such as routers mobile gateways and access points, to provide the most advanced 4G LTE connectivity, ensuring seamless connectivity to the end users.
The LM940 mCPIe module achieves download rates up to 600 Mbps through support of 3GPP release 11 LTE Carrier Aggregation. LM940 mPCie data card supports the various RF frequency bands and band combinations deployed worldwide with MIMO capabilities and latest generation carrier aggregation support.

Key Benefits:
- Standard Mini PCIe Data-card form factor.
- Take advantage of Advanced LTE technology networks delivering LTE Cat 11 throughput up to 600 Mbps in DLand 75 Mbps in UL.
- Full GNSS support –GPS, GLONASS, Galileo, Beidou.
- Increased connectivity performance with Carrier Aggregarion 3CA, MIMO and 256 QAM.

End-of-life

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

Quantity Sample Price

No prices available

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

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

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

Subscribe to updates
UMTS Bands
B1 (2100)
B2 (1900)
B8 (900)
B4 (AWS)
B5 (850)
MIMO (Multiple-Input Multiple-Output)
Yes
LTE Bands
B1 (2100)
B2 (1900)
B3 (1800)
B4 (AWS)
B7 (2600)
B8 (900)
B12 (700ac)
B13 (700c)
B17 (700bc)
B20 (800DD)
B5 (850)
B25 (1900)
B38 (TDD 2600)
B40 (TDD 2300)
B26 (US 850 Ext)
B28 (700 APAC)
B29 (US 700de Lower)
B41 (TDD 2500)
B30 (2300 WCS)
B66 (AWS-3)
Manufacturer
Telit
LTE Region
Europe
North America
Asia
Australia
South America
China
Africa
Form Factor
mPCIe - full size
Technology
LTE - cat 11
Antenna Interface
IPEX MHF/U.FL
GPS
Yes
GNSS technology
GPS
GLONASS
BeiDou
Galileo
Max DL Speed
600 Mbps
Max UL Speed
75 Mbps
Chipset
Qualcomm
Operating Temperature Range
-40 °C – 85 °C
Driver Support
Windows 7
Windows Vista
Linux
Android
Windows
Windows 8
Windows CE
Windows 8.1
Windows 10
Interface
USB 2.0
USB 3.0
I2C
Voice Call Support
No
GNSS antenna support
Passive
Active 3.3VDC
Active
Active 3.05VDC
SIM interface
Through miniPCIe connector
Dual SIM interface
GPIO
Yes
Carrier Certification
AT&T
Verizon
Sprint
Extended Operating Temperature Range
-40 °C – 85 °C
Audio interface
Digital PCM signal input/output in socket
Certification
FCC
CE
RoHS
GCF
PTCRB
IC
REACH
CE RED
Size
51 x 30 x 2.7mm

Datasheet for the Telit LM940 module.

Download

Uploaded at
2017-07-12 18:26:40
Last updated
2019-09-25 14:48:23
Version
06.2019
Related products
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LM940 LTE CAT-11, GPS, mPCIe

This document introduces the Telit LM940 module and presents possible and recommended hardware solutions for developing a product based on the LM940 module.

Download

Uploaded at
2017-07-13 13:54:12
Last updated
2019-08-07 09:47:05
Version
R12
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This document is to describe all AT commands implemented on the Telit wireless modules listed on the Applicabilty Table.

Download

Uploaded at
2017-07-13 13:56:48
Last updated
2019-04-11 14:47:03
Version
(R4)
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This document describes LM940 modules software and interface towards host system.

Download

Uploaded at
2017-07-13 13:50:58
Last updated
2018-12-03 10:21:18
Version
R1
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This document describes the QUALCOMM® MSM™ Interface (QMI) architecture and framework. The QMI allows applications on attached Terminal Equipment (TE) devices to access various Services provided by devices based on QUALCOMM’s MSM chipsets and AMSS software.

Download

Uploaded at
2017-07-13 13:59:21
Last updated
2018-12-03 09:37:14
Version
R3
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This guide describes the Telit LM940 and LM960 series cellular modules accepted (raw) QMI commands.

Download

Uploaded at
2018-11-07 16:10:54
Last updated
2018-12-03 09:35:54
Version
R3
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM960 LTE CAT-18, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LM960A18 LTE CAT-18 mPCIe

Document describing the Telit LM940 band configuration and Carrier Aggregation combinations list

Download

Uploaded at
2018-12-03 15:43:16
Last updated
2018-12-03 15:43:16
Version
R5
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

CE-RED Declaration of conformity document for Telit LM940 cellular module.

Download

Uploaded at
2018-02-27 15:25:26
Last updated
2019-09-23 14:53:33
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This archive contains the Windows 10 WHQL certified Telit module drivers for both x86 and x64 system platforms.

Download

Zip archive with Telit cellular modules USB drivers installers for Windows 7, 8.x, 10 both x86 and x64 system architectures.
(Non WHQL certified drivers).

Download

This archive contains the Telit AT controller tool as well as XFP firmware update tool for Microsoft Windows systems.
It can be used to troubleshoot, test and command the Telit cellular module in a graphical interface.

Download

Firmware V.24.01.5X4 multi image pack including Windows based firmware updater TFI tool and XFP binary stream

It contains Generic firmware version used for most network operators as well as specific configurations for US network operators Verizon, AT&T and Sprint.

The default firmware loaded is the Generic firmware version, please relate to the AT commands guide and AT#FIRMWARE command regarding details on firmware image switching.

The multi firmware update package contains the following images.
Generic v.24.01.514
Verizon v.24.01.524
ATT v.24.01.544
Sprint v.24.01.532

Download

Uploaded at
2019-09-12 14:33:56
Last updated
2019-09-27 10:25:31
Version
V.24.01.5X4
Requirements
Microsoft Windows Systems
Telit LM940 Drivers
Telit XFP firmware download tool for relevant host operating system.
Related products
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LM940 LTE CAT-11, GPS, mPCIe

This Windows based firmware updater and firmware update stream file applies firmware V.24.01.5X3 image pack to Telit LM940 modules.
It contains Generic firmware version used for most network operators as well as the specific configurations used for US network operators Verizon and AT&T.
The default firmware loaded is the Generic firmware version, please relate to the AT commands guide regarding details on firmware configuration switching.
Related release notes are included.

Download

Uploaded at
2019-04-04 15:53:50
Last updated
2019-04-10 14:34:59
Version
V.24.01.5X3
Requirements
Microsoft Windows Systems
Telit LM940 Drivers
Telit XFP firmware download tool for relevant host operating system.
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This Windows based firmware updater applies firmware V.24.01.5X2 image pack to Telit LM940.
It contains Generic firmware version for used for most network operators as well as the specific configurations used US network operators Verizon and AT&T.
The default firmware loaded is the Generic firmware version, please relate to the AT commands guide regarding details on firmware configuration switching.

Download

Uploaded at
2018-01-18 16:54:23
Last updated
2018-05-16 08:34:09
Version
LM940_24.01.5X2_AGV_TFI_MULTI
Requirements
Microsoft Windows Systems
Telit LM940 Drivers
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe

This firmware update stream file applies firmware V.24.01.5X2 image pack to Telit LM940 modules.
It contains Generic firmware version used for most network operators as well as the specific configurations used for US network operators Verizon and AT&T.
The default firmware loaded is the Generic firmware version, please relate to the AT commands guide regarding details on firmware configuration switching.

Download

Uploaded at
2018-05-11 12:07:45
Last updated
2018-05-11 12:07:45
Version
LM940_24.01.5X2_AGV_STREAM_MULTI
Requirements
Telit XFP firmware download tool for relevant host operating system.
Related products
Telit LM940 LTE CAT-11, GPS, mPCIe
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe
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 MU709s
Techship Starter kit Huawei ME909s
SIMCom SIM7500A LTE SMT US
SIMCom SIM5300E HSPA SMT
SIMCom SIM5300E Development kit
SIMCom SIM7500A Development kit
Sierra Wireless WP7502
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E Development Kit
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
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 LM940 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 SIM7020G-SUB KIT
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7000A CAT-M/NB-IoT mPCIe
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
SIMCom SIM7070E CAT-M/NB2
SIMCom SIM7070E Development Kit
Telit LM940, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LM960A18 LTE CAT-18 mPCIe
Question

How to collect initial diagnostics data and logs for Telit cellular modules needed when requesting Techship technical support?

Solution

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 Telit module when creating a technical support ticket.

Problem description of what exact problem is and in what precise situations present.

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 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 logs from module firmware can be acquired by accessing one of the USB enumerated serial (COM) interfaces accepting AT commands. (In Windows this is generally modem devices or AT commands serial interfaces). Send the following commands to module and capture the text output and include them when creating the the technical support ticket.

Test that you get a OK reply:
AT
Enable AT command echo:
ATE1
Verbose error reporting:
AT+CMEE=2
Module model:
AT+CGMM
Firmware version:
AT+CGMR
IMEI Code:
AT+CGSN
USB endpoint configuration:
AT#USBCFG?
Serial port configuration:
AT#PORTCFG?
Operational mode:
AT+CFUN?
Selected network access techniques:
AT+WS46?
List network operator info:
AT+COPS?
Network registration status:
AT+CREG=2
AT+CREG?
AT+CGREG?
Signal strength:
AT+CSQ
Last serving cell network information:
AT#SERVINFO
Current network status:
AT#RFSTS
List APN details:
AT+CGDCONT?
List Packet switch enable/disable status:
AT+CGATT?
Enable Packet Switched functionality:
AT+CGATT=1
List PDP profiles status:
AT+CGACT?
List default data connection details:
AT#BND?
List bearers and IP addresses:
AT+CGCONTRDP=
AT+CGPADDR=

Additional test commands for Telit LM940/LM960:
AT#FIRMWARE
AT#FIRMWARE?
AT#GETFW
AT#ACTIVEFW?
AT#CACTL?
AT#RXDIV?
AT#RXTOGGLE?
AT#LRXDIV?
AT#LCFC
AT#TEMPSENS?
AT#GPIO?
AT#HWREV
AT#QSS?
AT#USB3TUNE?

AT#USBSWITCH?


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

Question

We cannot acquire an DHCP address over qmi_wwan driver when using Raspbian Linux OS?

Solution

Raspbian uses dhcpd to probe all available network interfaces found in the system, which is problematic for the qmi_wwan driver interface, if it is done before being configured properly when using cellular modules supporting only Raw-IP.

This can be avoided by setting dhcpd to deny the related cellular module network interface (most often named wwan0 by the system).
Add to the /etc/dhcpcd.conf file in Raspbian the following line (in the end):
denyinterfaces wwan0

Now, restart the system (preferably re-power it) so cellular module fully restarts also.

At next startup, the settings should be applied and you can now configure and use the qmi interface as described in some of the others faq's, found on the Techship webpage.

Question

How to change USB composition mode to Mobile Broadband Interface (MBIM) that is used by Windows 8 and 10 systems for data connectivity and enabling support for the built-in connection manager in Windows?

Solution

This is done by sending AT commands to the Modem or AT serial interfaces that are accepting AT commands. The module will then change the USB endpoint composition it exposes. You can find the correct Serial COM port number by checking in the 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.

Commands to use:
Sierra Wireless EM75xx series module:
AT!ENTERCND="A710"
AT#USBCOMP=1,3,100D
AT!RESET

Sierra Wireless EM74xx, MC74xx series module:
AT!ENTERCND=”A710”
AT!USBCOMP=1,1,100D
AT!RESET

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

Simcom SIM7xxx series modules:
AT+CUSBPIDSWITCH=9003,1,1
AT+CRESET

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

Telit LM940:
AT#USBCFG=2
AT#REBOOT

Telit LM960:
AT#USBCFG=2
AT#REBOOT

Telit LE910x V2:
AT#USBCFG=3
AT#REBOOT

On Huawei modules the USB mode changing is done automatically by the Windows drivers and otherwise defaults to the modules standard endpoint interfaces.

Question

MiniPCIe based cellular modules supporting both USB2 and USB3 are not detected in the host system? Such as Sierra Wireless MC74** series, and Telit LM940/LM960 series modules.

Solution

From start the PCI-SIG miniPCIe form factor standard only included support for PCIe + USB2 data interface and had designated signal lines for these between host system and the miniPCIe module. Since revision 2.1 of the PCI-SIG miniPCIe standard it is defined that the PCIe data lanes can be shared/used for USB3 also.

Cellular modules mainly rely on USB2 interface but as the cellular throughput speeds have increased, the USB2 can become a bottleneck on LTE Cat 6 modules and higher. To address this, USB3 data interface was introduced on the higher data throughput mobile broadband cellular modules and made available in parallel to USB2 interface. However due to limited amount of pin lanes available in the miniPCIe socket they share location with the PCIe data interface pin lanes.

When the host system and module are powered on, the cellular module will try to probe if USB3 interface is present on the pin lanes and if communication can be established, otherwise the module will revert to using the USB2 data interface instead.

However, in some host systems where PCIe data interface also is implemented on the shared pin lanes, the signals will interfere with the cellular modules probing for USB3 interface making it not fall back to USB2 data interface. This usually result in the cellular module not being detected at all in the host operating system.

The USB3 auto-sensing functionality is enabled by default but can be disabled by using AT commands to write the memory changes to the internal NV memory which is stored between restarts. After the module is restarted it will use only the USB2 pin lanes for data interface. Please also check and validate if the host system BIOS support disabling of the PCIe interface in the miniPCIe socket.

Related AT commands for configuring USB3/USB2 modes:

Telit LM940/LM960 modules:
AT#USBSWITCH=1
AT#REBOOT

For Sierra Wireless MC74 series: (firmware version dependent)
AT!ENTERCND="A710"
AT!USBSPEED=0
AT!RESET

For troubleshooting this issue in hardware, you can try isolating the USB3 data interface pins #23, 25, 31, 33 on the top side of the miniPCIe data cards card socket so no signalling to and from the hosts can occur. This could be done in the board design or with adapter.

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 can we acquire IMSI and ICCID using Libqmi's command line interface qmicli in Linux systems for Qualcomm QMI devices not supporting deprecated commands: "--dms-uim-get-iccid" and "--dms-uim-get-imsi"?

Solution

Cellular modules based on recent Qualcomm MSM Interface (QMI) (MDM9240 etc.) do not support the deprecated QMI commands for requesting the SIM cards related ICCID code and subscription related IMSI code.

They can instead be read directly from the module using the command option and addresses bellow. The result will be represented as sequences of bytes in hex format with most significant bit to the right as read from the SIM card according to 3GPP standard ETSI TS 131 102.

ICCID :
--uim-read-transparent=0x3F00,0x2FE2

Example:
qmicli -p -d /dev/cdc-wdm0 --uim-read-transparent=0x3F00,0x2FE2
[/dev/cdc-wdm0] Successfully read information from the UIM:
Card result:
SW1: '0x90'
SW2: '0x00'
Read result:

98:54:40:12:51:50:72:40:09:98

Resulting in ICC Identification ID:
89 45 04 21 15 05 27 04 90 89



IMSI :
--uim-read-transparent=0x3F00,0x7FFF,0x6F07
Example:
qmicli -p -d /dev/cdc-wdm0 --uim-read-transparent=0x3F00,0x7FFF,0x6F07
[/dev/cdc-wdm0] Successfully read information from the UIM:
Card result:
SW1: '0x90'
SW2: '0x00'
Read result:
08:29:83:02:78:00:21:28:87

Resulting in IMSI (15 digit long):
2 38 20 87 00 12 82 78

Question

How can we use the Linux NetworkManager and ModemManager applications that are built into many recent Linux desktop distributions (such as Ubuntu) with Telit LM940 cellular module?

Solution

When using NetworkManager and ModemManager that are pre-installed in many common Linux distributions, best compatibility can be reached when the Telit module is set to expose MBIM interface endpoints to the host system over the USB interface. The MBIM interface is often automatically detected and loaded without the need to configure and add additional drivers to the kernel via rebuild.

By default the Telit LM940 module is set to expose the QMI interface as well as a set of serial interfaces.
You can change this by sending the module the following AT command on the Modem serial interface:
AT#USBCFG=2
(please note ModemManager can occupy and interfere on the Modem/AT serial interface so it is recommended to stop its process first)
This will reset the module and when module is re-detected in the host system again, the endpoints exposed have changed and the cdc_mbim driver should have been automatically loaded for the cellular module, this can be verified with the command:
lsusb -t

By restarting ModemManager and NetworkManager or the complete host system, the LM940 cellular module should be automatically detected by both ModemManager as well as NetworkManager.

The graphical user interface in the Linux operating system can now be used to configure the PIN code and your network operators APN connection details and establish the data connection.

If you want to control NetworkManager by Linux command line, a guide and example is well documented in the following guides:

ModemManager:
https://docs.ubuntu.com/core/en/stacks/network/modem-manager/docs/configuring-cellular-connections

NetworkManager:
https://docs.ubuntu.com/core/en/stacks/network/network-manager/docs/configure-cellular-connections

Please note that DHCP clients are most often not supported for the cellular modules when MBIM interface is used, therefore this IP connection information should be collected via the ModemManager from the modules data bearer details. NetworkManager will do this automatically for you, so it is recommended to use NetworkManager together with ModemManager also.

Question

How to set up a simple data connection over the MBIM interface using libmbim and driver cdc_mbim in Linux?

Solution

Most 4G/LTE cellular modules implements the USB Implementers Forums Mobile Broadband Interface Model (MBIM) Interface. This because Microsoft request cellular module vendors to include the MBIM interface for good compatibility with Windows 8, 8.1, 10 and later systems. The Windows built-in connection manager also rely on MBIM interface for control of the cellular modules.

There is a open source Linux in-kernel driver supporting MBIM interface and it is called cdc_mbim. The library libmbim can be used to communicate with the cellular devices over the interface and do necessary configurations to trigger the data connection over the cellular network.

First install the libmbim Linux library using your system package manager like apt etc. (more details about libmbim here: https://www.freedesktop.org/wiki/Software/libmbim/)

Please relate to the FAQ bellow regarding how to set the cellular module into correct USB mode for usage with MBIM mode:
How to change USB composition mode to MBIM in cellular module, used by Windows 8 and 10 systems for data connectivity?

Verify that you have the Linux in-kernel cdc_mbim driver installed for the cellular modules exposed MBIM interface endpoint over USB:
lsusb -t
Can look e.g. like this:
...
|__ Port 1: Dev 12, If 12, Class=Communications, Driver=cdc_mbim, 480M
...
|__ Port 1: Dev 12, If 13, Class=CDC Data, Driver=cdc_mbim, 480M
...

Using libmbim with the command line interface mbimcli:
List all available options for mbimcli:
mbimcli --help-all

Check version
mbimcli --version

The cellular modules mbim interface is usually named cdc-wdm* among the devices. For mbimcli this is defined by --device=/dev/cdc-wdm0 parameter. You should also use the proxy function to enable parallel commands to be sent to module even if the interface already is in use by a data connection. This is done by including --device-open-proxy or -p in every mbimcli requst to module.
Command example to query device capabilities and information (firmware & IMEI code etc.):
mbimcli --device=/dev/cdc-wdm0 --device-open-proxy --query-device-caps

The libmbim tool: mbim-network can be used to establish a simple data connection.
First create a config file containing your network operators APN details. Save it in the default location where mbim-network searches for the file: /etc/mbim-network.conf . The parameter --profile=[PATH] can be used to alter this path when executing mbim-network.

Save the APN details, (and username, password and authentication type if necessary) into the configuration file /etc/mbim-network.conf:
APN=internet
APN_USER=
APN_PASS=
APN_AUTH=
PROXY=yes

If the APN requires a username and password then it is also required to fill in the APN_AUTH protocol type with either PAP, CHAP or MSCHAPV2.

How to start a data connection after configuration file is in place:
Enter SIM PIN (if necessary for SIM card):
mbimcli -d /dev/cdc-wdm0 -p --enter-pin=1234

Start the mbim data connection with command bellow, if successful it will print "Network started successfully"
mbim-network /dev/cdc-wdm0 start

You can now execute the mbim-set-ip script (download found bellow related to this FAQ) with sufficient system privileges:
./mbim-set-ip /dev/cdc-wdm0 wwan0

This script will collect the network interface IP configurations from the cellular module over MBIM interface using mbimcli, parse them and apply them to the network interface in Linux, this because DHCP requests are generally not supported over MBIM interfaces.

Once you have started the data connection and set the details with the mbim-set-ip script you should be able to ping the data connection:
IPv4 ping: (only supported if IPv4 address was acquired from cellular module)
ping -4 -I wwan0 8.8.8.8
ping -4 -I wwan0 google.com

IPv6 ping: (only supported if IPv6 address was acquired from cellular module)
ping -6 -I wwan0 2001:4860:4860::8888
ping -6 -I wwan0 google.com

The cellular data connection can be disconnected by commands:
Stop mbim data connection:
mbim-network /dev/cdc-wdm0 stop
Set network interface down:
ip link set wwan0 down

Other useful commands:
Query device capabilities and information (firmware & IMEI code etc.):
mbimcli -d /dev/cdc-wdm0 -p --query-device-caps

Query SIM card information:
mbimcli -d /dev/cdc-wdm0 -p --query-subscriber-ready-status

Query network registration state:
mbimcli -d /dev/cdc-wdm0 -p --query-registration-state

Query connection ip information:
mbimcli -d /dev/cdc-wdm0 -p --query-ip-configuration=0

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 Qualcomm MSM (QMI) Interface.
There is a open source Linux in-kernel driver supporting this interface and it is called qmi_wwan. The library libqmi can be used to communicate with the cellular devices over the interface and do necessary configurations to trigger the data connection over the cellular network.

First install the libqmi Linux library using your system package manager like apt etc. (more details about libqmi here: https://www.freedesktop.org/wiki/Software/libqmi/)

Verify that you have the Linux in-kernel qmi_wwan driver installed for the cellular modules exposed QMI interface endpoint 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 device interface are usually named cdc-wdm* e.g.:
qmicli --device=/dev/cdc-wdm0

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

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

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

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

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

The libqmi tool: qmi-network can be used to establish a simple connection, it will automatically also verify that the IP framing data mode is correctly matched between host and module (Raw-IP vs. 802.3 IP framing).

First create a config file containing your network operators APN detail and its username and password. Save it e.g. in the default location where qmi-network searches for the file: /etc/qmi-network.conf .
The parameter --profile=[PATH] can be used to alter this path when executing qmi-network.

Save the APN details, (and username and password if necessary) into the configuration file e.g. like bellow:
APN=internet
APN_USER=username APN_PASS=password

Once the APN information is set up, you can now 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 --device=/dev/cdc-wdm0 --get-wwan-iface

Once "Network started successfully" 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, used by most recent cellular modules, udhcpc however support this.
udhcpc -q -f -i wwan0

The IP information from cellular network can also be set manually by user, the correct addresses can then be acquired from cellular module with the command:
qmicli --device=/dev/cdc-wdm0 --wds-get-current-settings

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

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

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 several commands only working on selected devices and not necessarily on supported in the specific device you use, resulting in an error message.

Question

How to change USB composition mode to Mobile Broadband Interface (MBIM) that is used by Windows 8 and 10 systems for data connectivity and enabling support for the built-in connection manager in Windows?

Solution

This is done by sending AT commands to the Modem or AT serial interfaces that are accepting AT commands. The module will then change the USB endpoint composition it exposes. You can find the correct Serial COM port number by checking in the 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.

Commands to use:
Sierra Wireless EM75xx series module:
AT!ENTERCND="A710"
AT#USBCOMP=1,3,100D
AT!RESET

Sierra Wireless EM74xx, MC74xx series module:
AT!ENTERCND=”A710”
AT!USBCOMP=1,1,100D
AT!RESET

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

Simcom SIM7xxx series modules:
AT+CUSBPIDSWITCH=9003,1,1
AT+CRESET

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

Telit LM940:
AT#USBCFG=2
AT#REBOOT

Telit LM960:
AT#USBCFG=2
AT#REBOOT

Telit LE910x V2:
AT#USBCFG=3
AT#REBOOT

On Huawei modules the USB mode changing is done automatically by the Windows drivers and otherwise defaults to the modules standard endpoint interfaces.

Question

Why should we use USB3 instead of USB2 as host system data interface if the cellular module can support both?

Solution

Cellular modules supporting higher data throughput rates like LTE Advanced, category 6 and above (300Mbps downlink and 50Mbps uplink) often support both USB3 interface as well as USB2 interface towards the host system.

It is recommended to implement and use the USB3 data interface rather than the older USB2 interface on these modules between host system and the cellular module. This because USB3 can support around 10 times higher data throughput rate compared to USB2 and avoid a possible bottleneck / limitation in the data interface between host and cellular module.

If a miniPCIe based cellular module implementing USB3 are used, please verify that conflicts don't occur towards your hosts miniPCIe socket, as the USB3 interface is not implemented by default in the miniPCIe standard and therefore signal collisions can happen between USB3 pins and PCIe data interface pins situated on same locations. Refer to the cellular module hardware guides and host system hardware guides to verify this.

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".

You might also be interested in