TECHSHIP IS A GLOBAL SUPPLIER OF WIRELESS COMPONENTS
The Sierra Wireless MC7700 PCI Express Mini Card is a compact, lightweight, wireless LTE- and UMTS-based modem, designed to be AT&T certified.
The MC7700 provides LTE, DC-HSPA+, HSDPA, HSUPA, WCDMA, GSM, GPRS, EDGE and GPS connectivity for portable and handheld computers, point of sale devices, telemetry products and other machine to machine and vertical application over several radio frequency bands.
To develop applications and to test the mPCIe module separately the article 10069 Techship MiniPCIe Developer Kit incl. Technical support could be very helpful.
What Linux kernel modules and configs are commonly used for communicating with cellular modules over their USB interface?
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:
Configs for Modem/PPP support:
Configs for USB network drivers:
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.
How can we capture DM serial port logs for Sierra Wireless EM/MC series cellular modules in Linux?
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.
E.g. like this:
sudo ./dmcapture.sh -l -d /dev/ttyUSB0 -o testlog -f ./filters/v11026_Generic_GSM_WCDMA_LTE_IP.sqf
This will create a log file that can be sent for analyze and debug to Sierra Wireless.
How do I set USB-interface modes on my Sierra Wireless module?
Sierra Wireless modules can expose different USB interfaces, like MBIM, MODEM, NMEA or RMNET. The different interfaces can be combined or used individually, depending on the specific need for your project.
Here is how to set the different USB interface configurations. (In this example we use a Sierra Wireless EM7421, but it will be similar for many other Sierra Wireless modules.)
Make sure you get an OK after every AT command sent.
We start by typing:
To be able to view what we just sent to the module we type:
Since this feature is password protected we need to type:
To see what USB interface we are currently using, just type AT!USBCOMP? and you should receive something like this:
Config Index: 1
Config Type: 3 (Generic)
Interface bitmask: 0000010D (diag,nmea,modem,rmnet0)
Config index is what the type applies to and should be set to 1.
The config type means what USB composition is used. For this module USBIF-MBIM (1), PCIE USBIF (2), Legacy Generic (3) or RNDIS (4) are available.
Interface bitmask is the part where we see what USB interface our module is set to.
Now, to see what our USB interface options are we need to type:
Here we can see that for this module we have the following options:
DIAG - 0x00000001
NMEA - 0x00000004
MODEM - 0x00000008
RMNET0 - 0x00000100
MBIM - 0x00001000
These values are hexadecimal. So, for an example, if we wanted to activate all the options (DIAG, NMEA, MODEM and MBIM) we just add these values together.
If we open the Windows Calculator in Programmer mode (and make sure you have “HEX” selected!) and add all the values together like this 1 + 4+ 8 +1000, we will get 100D. (Please note, RMNET0 and MBIM cannot be used simultaneous for this module. Refer to the manual of your specific module to when setting up the USB interface.)
If we then send the following AT command to the module, we will set it to DIAG, NMEA, MODEM and MBIM:
Again, type AT!USBCOMP? to confirm we have the new settings selected, it should look like this:
Config Index: 1
Config Type: 3 (Generic)
Interface bitmask: 0000100D (diag,nmea,modem,mbim)
For further information please take a look at the AT command user guide available on the product's specific page under "technical documentation", which is available for download once logged in.
I want to use a specific network technique. Can I specify that with a Sierra Wireless module?
The AT command AT!SELRAT lets you specify what technique to use.
The parameters are:
01, UMTS 3G Only
02, GSM 2G Only
05, GSM and UMTS Only
06, LTE Only
07, GSM, UMTS, LTE
11, UMTS and LTE Only
12, GSM and LTE Only