Using the Huawei E352s-5 UMTS USB Modem Stick with Ubuntu and OpenWrt

The Huawei E352s-5 is being marketed as web'n'walk Stick Fusion III by German Telekom. This blog post describes how to use it on Linux systems with the distributions Ubuntu and OpenWrt.

The Features First

  • Supported Modem Standards: HSPA+, HSUPA, HSDPA, UMTS, EDGE, GPRS
  • Highest speeds with HSPA+: up to 21 MBit/s download and 5.76 MBit/s upload
  • Quad Band
  • Interface: USB 2.0
  • Includes a microSD card slot
  • Includes an external antenna connector (CRC9 type)
  • Includes a USB cable
  • Size (HBT in mm): ca. 68 x 26 x 12,3
  • Weight: ~ 30 g

It has a built in LED that has different operating modes:

  • blinking green twice every three seconds: stick is plugged in
  • blinking green once every three seconds: stick is registered with a GPRS network (GSM/GPRS/EDGE)
  • blinking blue once every three seconds: stick is registered with a UMTS network (WCDMA/HSPA)
  • constantly lit green: connected to a GPRS network
  • constantly lit blue: connected to a WCDMA network
  • constantly lit cyan: connected to a HSPA network

Usage with Ubuntu Linux 11.10

Just attach it, wait for a couple of seconds, then enter your SIM and click on the network manager applet to set up a new mobile broadband Internet connection.
Sometimes the connection won't show up in the network manager applet. This can easily be solved by restarting the network manager applet: sudo service network-manager restart

Usage with OpenWrt

On the OpenWrt router, do:

opkg install comgt kmod-usb-serial usb-modeswitch usb-modeswitch-data kmod-usb-serial-option
# ^ also installing chat
opkg install ppp kmod-usb-core kmod-usb2 kmod-usb-ohci
# ^ should reveal that all those are already "up to date".

update: On the newer OpenWrt version (14.07-rc3), I ran:

opkg install comgt kmod-usb-serial-option kmod-usb-acm usb-modeswitch luci-proto-3g
# ^ also installing libpthread, chat, kmod-usb-serial, librt, libusb-1.0

Then change the /etc/config/network:

config interface wan
        #option ifname ppp0
        option pincode 1234
        option device /dev/ttyUSB0
        option apn your.apn
        option service umts
        option proto 3g

Get your WAN interface up using ifup wan (or /etc/init.d/network restart if you changed more stuff; a reboot if you changed even more).

You can check the connection quality using gcom (read this for information on how to interpret the result):

root@OpenWrt:~# gcom -d /dev/ttyUSB2
SIM ready
Waiting for Registration..(120 sec max)
Registered on Home network: "o2 - de",2
Signal Quality: 14,99

Also check your logs using logread. An example for a functioning connection is given here.

AT Commands

Speed: 9600 baud, Software Handshake, CR line endings

Do I need to enter a SIM PIN? You can check that with the command AT+CPIN?, in this case, I need to enter a pin code:


So we enter the pin using AT+CPIN=1234 (where 1234 is the pin) and get


Now everything is fine and the stick should be connected as you can see from AT+CPIN?


Let's remove the pin using AT+CLCK="SC",0,"1234":


So which network are we connected to? Enter AT+COPS? and you'll get something like this:

+COPS: 0,0,"o2 - de",2

ATI : Status (Manufacturer, Model, Revision, IMEI, capabilities). The output was:

Manufacturer: huawei
Model: E352
IMEI: 354092823404170

AT^SYSINFO returns:


Where the numbers stand for status, domain, roaming status, mode, SIM state so in my case it means: Valid service, PS+CS service, Non roaming state, WCDMA mode, Valid USIM card state. I don't know about the last two numbers.







AT^SETPORT="A1,A2;1,16,3,2,A1,A2" - Set default configuration

Disable virtual CD drive after modeswitch: AT^SETPORT="A1,A2;1,16,3,2,A2" (unplug the stick, plug it back in and you'll notice).

AT^SYSCFG=? Read more here.

^SYSCFG: (2,13,14,16),(0-3),((400380,"GSM900/GSM1800/WCDMA2100"),(6a80000,"GSM850/GSM1900/WCDMA850/AWS/WCDMA1900"),(3fffffff,"All bands")),(0-2),(0-4)

It seems like the command AT^U2DIAG often used on other Huawei sticks does not work on the E352s-5!


^MODE: (0,1)

During a dial up connection the serial control terminal should give you DSFLOWRPT messages that tell you about the current connection statistics. Read more here. An example for a short session: ^DSFLOWRPT:00000046,0000E790,000065EB,000000000011D930,00000000002CA0D0,000C0000,000E8000 (which stands for: connected for 0x46 = 70 seconds, currently sending 0xe790 = 59280 bytes per second, and receiving 0x427B2 = 272306 bytes / s, total number of 0x11D930 = 1169712 bytes sent and 0x2CA0D0 = 2924752 bytes received); all those values while I had a reported ^RSSI value of 10 to 13.

AT+CLAC will reveal most (not all) supported commands for the stick. The output is a little bit long so you can find it on pastebin (I piped the list into the Unix command column to format it in columns).

More working AT Commands for the E352s-5:

Command Meaning My Output
AT+CGMI Get the manufacturer huawei
AT+CPAS Status of the phone +CPAS: 0
AT+CSQ Signal Quality +CSQ: 7,99
AT^YJCX ^YJCX: CH4E352SM,H8BCS0PE0MBR,0xada1,128MB,2048B
AT+CIMI Get SIM IMSI number 262075152103136
AT+CGSN Get device IMEI 354092823404170
AT^HWVER Get Hardware Version ^HWVER:"CH4E352SM"
AT+COPS=? List avail. networks

References for the AT commands: