Huawei UMTS USB Stick with OpenWRT

Because of the increasing proliferation of mobile data services and the increased affordability due to falling prices and affordable flat-rate offers, I have dealt a little with the possibilities of this type of Internet access. My goal was to find out if UMTS (or GPRS) can be used as a replacement for a cable DSL connection.

Since the normal home user works with WiFi at home, I wanted to create a solution where a mobile data connection such as GPRS or UMTS can be shared by several clients via WiFi. Since most of the UMTS/GPRS receivers that can be used for this purpose are available as USB versions (the other few are PC Cards), a router with USB connection had to be purchased. Fortunately, I had a Asus WL500g Premium in my hands. A well known customizable firmware for self-build or self-download is OpenWRT, so I was looking for ways to get such a USB data stick with OpenWRT running on this WL500g. As a stick I used the K3520 from Vodafone, which is nothing more than a beautifully packed Huawei E620 (as far as I know).

A very nice manual that worked (almost) without any problems can be found at http://josefsson.org/openwrt/dongle.html. Using other Huawei UMTS/GPRS modems is no problem, you only have to find out the appropriate USB-ProductID (e. g. using a normal Linux, plug in the stick and run lsusb). Almost every commercially available device subsidized by the major mobile operators such as o2, T-Mobile, E-Plus and Vodafone is a renamed and repackaged Huawei card.

The only problem is caused by this strange dual-mode of the USB devices: The Huawei sticks log in (depending on your mood?) either as a mass storage device or as a USB modem. In the OpenWRT sources there is a small tool which can tell the device that the modem mode should be selected – but hardcoded to the product ID 0×1001, which I think applies to the E220, but not to the E620 (0×1003). Interestingly, the code for parameter use is already there, but is commented out….

To eliminate this flaw, I created the package myself again, this time with support for parameters. If you want, you can download the package, copy it to your router via SCP or wget and install the package with opkg install (please uninstall the old package first). Here are the commands for removing the old package (if installed), installing the new package, and an example of how to use the program:

opkg remove huaweiaktbbo  # remove old package
wget https://mlohr.com/wp-content/uploads/2009/06/huaweiaktbbo_1_mipsel.ipk  # download patched package
opkg install huaweiaktbbo_1_mipsel.ipk  # install new package
huaweiAktBbo 0x12d1 0×1001  # use program (use your specific USB ID)

After these actions it was no longer a problem to access the internet with the help of the above linked instructions. Even with GPRS, the speed for surfing is still acceptable, but fast is different. I haven’t been able to test UMTS yet, but I will be using it soon. I measured latencies between 1000 and 2500ms, bandwidth ranged between 20 and 35 KB/s.

Conclusion

In rural areas or for chronic chatters, this solution is very practical, as the data throughput is higher than first expected, but by far not as exhilarating as with “real” DSL. For chatting, blogging and further web browsing this solution is acceptable, most pages are visible after 5 seconds. If you have the possibility of a cable DSL connection, you should prefer this in any case. If you want to administrate via SSH server, for example, you are on a lost position because of the very high latency times. Multi-user operation also works without any problems, with simultaneous data transmissions it takes a little longer. Please note: The providers differentiate between single and multi-user tariffs. This is not easy to determine whether one or more devices are going online over the same connection, but it works. I don’t know to what extent this is used by providers.