55010165
Supplier number:
Huawei MU709s-6 mPCIe is a dual band HSPA+ module (850/1900/2100MHz) with an attractive price performance ratio targeted for the Asia Pacific and Latin America market. Top class performance allows data speeds up to 21 Mbit/s downlink and 5.76 Mbit/s uplink. With a temperature range between -40 - + 70 degrees Celsius it offers a wide usage range for most industrial environments. MU709 has an embedded TCP/IP stack, PCM Voice and firmware-over-the-air update features.
The Huawei MU709s-6 is the first wireless M2M module from Huawei with a Hisilicon chipset and the MU709 is pin-pin compatible with MU609 and ME909.
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:
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.
How can we establish data connection for cellular modules in Windows 8 and Windows 10 systems?
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".
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?
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 EM74x0, MC74x0 series module:
AT!ENTERCND=”A710”
AT!USBCOMP=1,1,100D
AT!RESET
(See test command AT!USBCOMP=? for full usage description)
Sierra Wireless EM75xx, EM74x1, MC74x1 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.
How to collect initial diagnostics data and logs for Huawei cellular modules needed when requesting Techship technical support?
In order to troubleshoot and solve a technical problem, we ask you to please provide information about your system and logs from the related Huawei 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 the PC UI serial interface). Send the following commands to module and capture the text output and include them when creating the the technical support ticket.
ATI
ATE1
AT+CMEE=2
AT+CFUN?
AT+CPIN?
AT^SYSINFOEX
AT^SYSCFGEX?
AT^HCSQ?
AT+CREG?
AT+CGREG?
AT+CEREG?
AT+COPS?
AT+CGDCONT?
AT^AUTHDATA?
AT+CGCONTRDP
AT+CGPADDR
AT+CGATT?
AT+CGACT?
AT^NDISDUP?
AT^NDISSTATQRY?
AT^DHCP?
AT^DHCPV6?
AT^CHIPTEMP?
AT^THERMFUN?
AT^FOTAMODE?
The support ticket can be created after login at: https://techship.com/technical_support/
How to activate the data connection for Huawei cellular modules over the USB network interface in Linux?
The first step is to assure that the Huawei cellular module is properly loaded in the Linux system. Huawei modules are most often automatically detected in recent Linux kernels, this can be verified in different ways by commands bellow:
The lsusb command shows what physical USB devices are detected in the Linux operating system:
lsusb
root@support-up2:~# lsusb
Bus 001 Device 005: ID 12d1:1f1a Huawei Technologies Co., Ltd.
The lsusb -t command shows the USB endpoints exposed by the detected USB devices and the related drivers loaded for them:
lsusb -t
...
|__ Port 4: Dev 5, If 0, Class=Communications, Driver=cdc_ether, 480M
|__ Port 4: Dev 5, If 1, Class=CDC Data, Driver=cdc_ether, 480M
|__ Port 4: Dev 5, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 5, If 3, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 5, If 4, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 5, If 5, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 5, If 6, Class=Vendor Specific Class, Driver=option, 480M
The dmesg lists all the driver loading logs since system boot up:
dmesg
usb 1-4: new high-speed USB device number 6 using xhci_hcd
usb 1-4: New USB device found, idVendor=12d1, idProduct=1f1a, bcdDevice= 1.02
usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-4: Product: HUAWEI Mobile V7R11
usb 1-4: Manufacturer: Huawei Technologies Co., Ltd.
usb 1-4: SerialNumber: 0123456789ABCDEF
cdc_ether 1-4:2.0 usb0: register 'cdc_ether' at usb-0000:00:15.0-4, CDC Ethernet Device, 02:1e:10:1f:00:00
option 1-4:2.2: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
option 1-4:2.3: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB1
option 1-4:2.4: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB2
option 1-4:2.5: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB3
option 1-4:2.6: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB4
Enable the USB network interface in Linux host:
ip link set dev usb0 up
The command ifconfig list all network interfaces loaded in the Linux system, the cellular module interface can be named differently depending on the distribution used but generally named usb0, wwan0 etc. initially.
ifconfig usb0
usb0: flags=4163 mtu 1500
inet6 2a02:aa1:1601:d0da:1e:10ff:fe1f:0 prefixlen 64 scopeid 0x0
inet6 fe80::1e:10ff:fe1f:0 prefixlen 64 scopeid 0x20
ether 02:1e:10:1f:00:00 txqueuelen 1000 (Ethernet)
RX packets 120 bytes 6335 (6.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 946 (946.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
the command ls can list the USB serial interfaces detected:
ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 /dev/ttyUSB4
Once this far we can now start communicate with the cellular module over AT commands. There are different applications available in Linux that enables manual communication with serial interfaces:
minicom -D /dev/ttyUSB2
socat - /dev/ttyUSB2,crnl
etc.
Try writing to the modem/AT serial interface initially the command "AT" it should return you OK:
AT
OK
Enable input command echo:
ATE1
OK
Print general information about cellular module
ATI
Manufacturer: Huawei Technologies Co., Ltd.
Model: ME909s-120
Revision: 11.617.06.00.00
IMEI: 867377020520569
+GCAP: +CGSM,+DS,+ES
OK
Enter the SIM PIN code if such is needed for the SIM card inserted.
AT+CPIN=1234
OK
Define the operator APN name related to your operators data subscription
AT+CGDCONT=1,"IP","data.tre.se"
+CPIN: READY
OK
Check that you have acquired network registration
AT+CREG?
+CREG: 0,1
OK
Activate the data connection over for the network interface visible to host system using APN profile 1 previously created.
AT^NDISDUP=1,1,
OK
^NDISSTAT: 1,,,"IPV4"
^NDISSTAT: 1,,,"IPV6"
Once ^NDISSTAT:1,,,"IPV4" or (^NDISSTAT: 1,,,"IPV6" or if IPv6) is returned it indicates that you now have a active data connection to the network operator over either IPv4 or IPv6 or both.
You can then use a DHCP client in your host system to request the IP address from the cellular network:
dhclient -v usb0
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/usb0/02:1e:10:1f:00:00
Sending on LPF/usb0/02:1e:10:1f:00:00
Sending on Socket/fallback
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 3 (xid=0xfe313f69)
DHCPREQUEST of 2.69.217.204 on usb0 to 255.255.255.255 port 67 (xid=0x693f31fe)
DHCPOFFER of 2.69.217.204 from 2.69.217.201
DHCPACK of 2.69.217.204 from 2.69.217.201
bound to 2.69.217.204 -- renewal in 244094 seconds.
You now have a working cellular network data connection in your Linux system.
It can be tested e.g. by using ping over the specific network interface:
ping -4 -I usb0 www.google.com
PING www.google.com (74.125.131.147) from 2.69.217.204 usb0: 56(84) bytes of data.
64 bytes from lu-in-f147.1e100.net (74.125.131.147): icmp_seq=1 ttl=46 time=115 ms
64 bytes from lu-in-f147.1e100.net (74.125.131.147): icmp_seq=2 ttl=46 time=54.5 ms
64 bytes from lu-in-f147.1e100.net (74.125.131.147): icmp_seq=3 ttl=46 time=51.6 ms
64 bytes from lu-in-f147.1e100.net (74.125.131.147): icmp_seq=4 ttl=46 time=49.4 ms
^C
--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 49.486/67.774/115.379/27.544 ms
This is the basic way of bringing up the network interface. Additional checks and probing should be added in the control software or script if the process is to be automated. For scripting e.g. Python or other language can be used to setup the connection.