Faq MC7455
Faq MC7455
Question
What firmware versions are related to the specific SKU/BOM codes of cellular modules?
Solution
Sierra Wireless
10839 Sierra Wireless EM7565, CAT-12, M.2 CBRS ENABLED
SKU: 1104207 Firmware: 01.07.02.00 GENERIC
Huawei:
10278 Huawei ME909s-120 mPCIe:
SKU: 55010273 Firmware: 11.617.01.00.00
SKU: 55010782 Firmware: 11.617.09.00.00
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 and changing the USB endpoint composition:
Telit LM940:
AT#USBCFG=2
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
Not all miniPCIe interfaces can support USB3 according to the pin configuration Sierra
Wireless have chosen.
USB3 support is not defined in mPCIe standard by default and therefore conflicts can occur
with some system boards even if the MC74xx module will in most cases switch to USB 2.0
HS if USB3 isn't supported correctly.
The only currently working solution to this is to isolate USB3 data pins #23, 25, 31, 33 on top
side of the card so no connection to miniPCIe socket are achieved for them. This could be
done in board design or with proper adapter or e.g. by adhesive tape for further
testing/troubleshooting. The pins #27, 29 in between the others serve as two out of several
grounding pins and can also be isolated for easier application when troubleshooting.
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:
How can we capture DM serial port logs for Sierra Wireless EM/MC series cellular modules
in Linux?
Solution
In the Sierra Wireless QMI SDK downloadable archive there is a a DM log tool in the tools
folder.
Run the dmcapture.sh script with desired filter, and the ttyUSB0 (DM port) device selected.
This will create a log file that can be sent for analyze and debug to Sierra Wireless.
Question
Windows system show multiple network devices for my Sierra Wireless MC74-, EM74-series
cellular module
Solution
Sending the following AT Commands to the modules MODEM Serial COM port interface
will change the USB profile for exposed interfaces towards host system.
Setting for DIAG, NMEA, MODEM, RMNET0 interface: (Linux - QMI with one network
interface)
1. AT!ENTERCND=”A710”
2. AT!USBCOMP=1,1,10D
3. AT!RESET
Setting for DIAG, NMEA, MODEM, RMNET0, RMNET1 interface: (Linux - QMI with two
network interfaces)
1. AT!ENTERCND=”A710”
2. AT!USBCOMP=1,1,50D
3. AT!RESET
Setting for DIAG, NMEA, MODEM, MBIM interface: (Enabling MBIM mode supported by
Windows 8 & 10)
1. AT!ENTERCND=”A710”
2. AT!USBCOMP=1,1,100D
3. AT!RESET
Beware to not disable the MODEM serial interface, leaving module inaccessible for AT
commands.
Question
How can we use the Linux NetworkManager and ModemManager applications that are built
into many recent Linux desktop distributions (such as Ubuntu) with Sierra Wireless
MC/EM74 and EM75 series cellular module to establish and set up a data connection?
Solution
When using NetworkManager and ModemManager that are pre-installed in many common
Linux distributions, best compatibility can be reached when the cellular module is set to
expose the MBIM interface endpoints to the host system over the USB interface. The MBIM
interface driver is often automatically detected and loaded without the need to configure and
add additional drivers to the kernel via rebuild.
In factory default configuration the Sierra Wireless modules do expose the QMI interfaces as
well as a set of serial interfaces, this is the correct USB endpoints if the modules are used with
the Sierra Wireless recommended GobiNet and GobiSerial drivers.
However if you want to use the module with MBIM interface instead, you can change the
exposed USB endpoint configuration by sending the module the following AT command on
the Modem serial interface (usually dev/ttyUSB2 in Linux systems):
MC74xx/EM74xx series:
AT!ENTERCND="A710"
AT#USBCOMP=1,1,100D
AT!RESET
EM75xx series:
AT!ENTERCND="A710"
AT#USBCOMP=1,3,100D
AT!RESET
(please note ModemManager can occupy and interfere on the Modem/AT serial interface so it
is recommended to stop its process first)
This will configure and 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 Sierra
Wireless 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 when possible.
Question
How can we use Sierra Wireless MC/EM74 and EM75 series cellular modules in Linux with
the MBIM control and data interface?
Solution
The Sierra Wireless MC/EM74 and EM75 series cellular modules can expose the Mobile
Broadband Interface Model (MBIM) Interface.
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 and libmbim-utils Linux library using your system package manager
like apt etc. (more details about libmbim
here: https://www.freedesktop.org/wiki/Software/libmbim/)
Check with lsusb that you have the Sierra wireless module loaded, vid:pid value 1199:9091 or
1199:9071 should be present.
lsusb
Bus 002 Device 003: ID 1199:9091 Sierra Wireless, Inc.
or:
Bus 002 Device 003: ID 1199:9071 Sierra Wireless, Inc.
Verify with lsusb -t that the Linux in-kernel cdc_mbim driver is correctly loaded for the
cellular module. It can look e.g. like this:
lsusb -t
...
|__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=qcserial, 5000M
|__ Port 3: Dev 3, If 2, Class=Vendor Specific Class, Driver=qcserial, 5000M
|__ Port 3: Dev 3, If 3, Class=Vendor Specific Class, Driver=qcserial, 5000M
|__ Port 3: Dev 3, If 12, Class=Communications, Driver=cdc_mbim, 5000M
|__ Port 3: Dev 3, If 13, Class=CDC Data, Driver=cdc_mbim, 5000M
...
If this is not the case, you will have to change USB end points the cellular module exposes.
This can be done through AT commands sent to the modules serial interfaces accepting AT
commands. Usually located at dev/ttyUSB2 if the qcserial drivers are correctly loaded.
MC74xx/EM74xx series:
AT!ENTERCND="A710"
AT#USBCOMP=1,1,100D
AT!RESET
EM75xx series:
AT!ENTERCND="A710"
AT#USBCOMP=1,3,100D
AT!RESET
(Applications like Minicom or Picocom can be used to send AT commands over the serial
interfaces)
Should you have no serial interface loaded, it is because the driver has not been loaded for the
USB serial endpoints due to missing vid:pid values in the qcserial driver. You can then use
the commands bellow to temporarily load the driver for new vid:pid combinations.
modprobe qcserial
EM75 series:
echo 1199 9091 > /sys/bus/usb-serial/drivers/qcserial/new_id
MC74xx/EM74xx series:
echo 1199 9071 > /sys/bus/usb-serial/drivers/qcserial/new_id
When you have changed the cellular modules USB endpoint configuration to expose MBIM
interface and module have restarted, then you can use libmbim's command line interface to
control the cellular module.
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:
APN=
APN_USER=
APN_PASS=
APN_AUTH=
PROXY=yes
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
IP v6 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
Test setup:
Software: Ubuntu server 18.04 LTS with kernel 4.15.0-23-generic and mbimcli 1.14.2
Hardware: Sierra Wireless EM7565 with firmware SWI9X50C_01.07.00.00 on Aaeon UP
Squared host board with 10703 M.2 to USB 3.0 Adapter.
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".
Question
How to collect initial diagnostics data for Sierra Wireless EM/MC74xx and EM75xx series
cellular modules when requesting technical support?
Solution
In order to troubleshoot and solve a technical problem, we ask you to please provide
information about your system and logs from the related module when creating a technical
support ticket.
Please provide a problem description of what exact problem is and in what precise situations
it is present.
If you are running on a Linux based system, please capture the terminal logs bellow:
uname -a
lsusb
lsusb -t
ifconfig -a
ls -l /dev/serial/by-id
ls -l /sys/bus/usb-serial/devices
dmesg
The log output requested from the commands bellow, can be acquired from the module by
accessing one of the USB enumerated serial (COM) interfaces accepting AT commands. (In
Windows this is generally found listed as a Modem interface or AT commands serial interface
in the device manager and in Linux it is usually found on /dev/ttyUSB2 interface). Send the
following commands to the module and capture the text output and include them when
creating the the technical support ticket.
Sierra Wireless :
AT
ATE1
ATI
AT!ENTERCND="A710"
AT!PRIID?
AT!IMPREF?
AT!IMAGE?
AT+CFUN?
AT!UIMS?
AT+CPIN?
AT+CREG?
AT+CGREG?
AT+CEREG?
AT+COPS?
AT!GSTATUS?
AT+CGDCONT?
AT$QCPDPP?
AT+CGCONTRDP
AT+CGPADDR
AT!BAND?
AT!PCINFO?
AT!PCTEMP?
AT!PCVOLT?
AT!USBCOMP?
AT!USBCOMP=?
AT!CUSTOM?
AT!CUSTOM=?
AT!ERR
AT!BCFWUPDATESTATUS
AT!SELRAT?
AT!SELRAT=?
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 do we use the GNSS location tracking (GPS) functionality of the Sierra Wireless
EM/MC74** series cellular modules?
Solution
The Sierra Wireless EM/MC74 series modules include a GNSS tracker that can be enabled to
acquire location data.
Pre-requirements:
EM/MC74 series module:
Connected to host system with sufficient power supply and correct drivers installed in the host
system.
GNSS/GPS antenna:
The GNSS antenna should have clear sky view without obstacles in the way and be connected
to the cellular modules antenna connector marked "GPS". If a passive antenna is used the
antenna cable should be kept very short (preferably bellow 1 meter) as GNSS signals are very
weak and not placed near interference sources.
Details of the available AT commands related to GNSS functionality are described in the
"Sierra Wireless EM74XX and MC74XX AT Command Reference Manual" chapter 7: GNSS
Commands.
The serial interface accepting AT commands is usually found under /dev/ttyUSB2 in Linux
systems and under Modem tab in Windows Device manager (opening the device properties
and Modem tab will show its given COM port number in the Windows system).
A basic GNSS tracking session outputting the location data on the NMEA serial interface can
be started with the following AT command
AT!GPSTRACK=fixType,maxTime,maxDist,fixCount,fixRate
Bellow command starts a standalone tracking with 255 seconds timeout value, 250 meter
accuracy, continuous tracking, fixed data output rate every second on the NMEA virtual serial
interface:
AT!GPSTRACK=1,255,250,1000,1
A GNSS tracking session can be interrupted and ended with the command:
AT!GPSEND
In Linux applications it is recommended to use the Sierra Wireless provided GobiNet and
GobiSerial drivers for optimal performance. If the Linux in-kernel drivers are used, it might
be needed also to send the bellow sentence to the ttyUSBx that represents the NMEA serial
interface in order to activate the data stream on the interface:
$GPS_START
The antenna connector used by the GPS tracker can be either through the dedicated GNSS
port or it can be combined with the Rx Diversity antenna located on the AUX marked
connector. This is selected by changing a parameter with the AT!CUSTOM command:
To select usage of the dedicated GNSS antenna connector on cellular module, execute:
AT!ENTERCND="A710"
AT!CUSTOM="GPSSEL",0
This will select usage of the dedicated GPS antenna slot (Default value)
For further 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.
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. 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 e.g. by 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 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
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
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 several commands only working on selected devices and not
necessarily on supported in the specific device you use, resulting in an error message.