08 May 2010

Using a 3G UMTS stick under Linux

I've been trying to get a typical 3G UMTS modem in USB 'dongle' form working with an embedded Linux system. I subscribed to a local service (KPN 'Hi') a while ago. The dongle turned out to be a rebranded ZTE MF628. It works reasonably well under Microsoft Windows and Mac OS X.

Getting it work somewhat under Linux 2.6.26 or 2.6.30 wasn't very difficult either. Getting it to work reliably turned out to be beyond me. I didn't know it yet, but GSM modems have a whole set of standards that are generally based on the bastard child of the original "AT" commandset created 30 odd years ago by Hayes. The ETSI publishes these standards that are 'open' in that they can be accessed by everyone. That's all fine but it turns out that the ZTE has some peculiar issues with how it implements the standards and it's own company specific extensions that are hard to reverse engineer. Also, the serial speeds required for mega bit speeds (I've got 3,6 Mbps service) were beyond the serial drivers so the PPP connection kept going down. All in all a very frustrating experience that cost much more time than I'd anticipated.

There turns out to be a very simple solution: I bought an Option Icon 505 USB modem to replace the ZTE. What a difference! The Option device uses the same AT command set for control but provides an IP device for the data connection. This eliminates the PPP driver and has very good performance. The driver for Linux is written by Option employees and available on Pharscape. Kudos to Option for making an excellent product that works great with Linux.


  1. That is interesting, I've had connection drops on my Huawei 160(?) which I could never explain..

  2. I have successfully used the modem Huawei E220 what works straight out of the box under Linux :)

    Used it on the Linux EEEPC with stock Linux and Mandriva 2009 on a Dell Laptop.