Monday, December 01, 2008

Howto: Ubuntu 8.10, Dell 5530, 3G/WWan and GPS

There is an updated howto on the Dell 5530 using my own python based monitoring tool at


Here is a Howto document for getting the Dell 5530 wwan card working along with the onboard GPS under Ubuntu 8.10. This card does not work conveniently with the bundled Network Manager software, but replacing NetworkManager with other utilities will give the ability to get online using a pretty GUI and not have to resort to using wvdial and the command line...

It should also work with the Ericsson f3507g as I believe the Dell 5530 is a rebadged version of this module.

Check Hardware

First you need to check the modem is detected correctly. On my computer, the modem is detected out of the box by the cdc_acm module and exposes three serial ports (/dev/ttyACM[0,1,2]) for communication. Check by running:

dmesg | grep ACM

Mine shows the following:

[ 34.385302] cdc_acm 1-6:1.1: ttyACM0: USB ACM device
[ 34.390039] cdc_acm 1-6:1.3: ttyACM1: USB ACM device
[ 34.401983] cdc_acm 1-6:1.9: ttyACM2: USB ACM device

Install and Configure wvdial

Next, you need to ensure you can get online using the terminal and wvdial - you will only need to use wvdial to switch the radio on and off - something that can easily be added to Ubuntu's Gnome menu.

Using apt, install wvdial:

sudo apt-get install wvdial

I have written a wvdial script which uses /dev/ttyACM0 for reading the signal quality and switching the device on and off. /dev/ttyACM1 is used exclusively for ppp and /dev/ttyACM2 is used exclusively for the GPS.

[Dialer Defaults]
New PPPD = yes
Stupid Mode = 1
Modem Type = USB Modem

#[Dialer PIN]
#Init1 = AT+CPIN=

[Dialer signal]
Modem = /dev/ttyACM0
Init1 = AT+CSQ
Init2 = AT+COPS?

[Dialer gps]
Modem = /dev/ttyACM2
Init1 = AT*E2GPSCTL=1,2,1

[Dialer on]
Modem = /dev/ttyACM0
Init1 = AT+CFUN=1

[Dialer off]
Modem = /dev/ttyACM0
Init1 = AT+CFUN=4

[Dialer connect]
Modem = /dev/ttyACM1
Init1 = AT
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Baud = 460800
ISDN = 0
Phone = *99***1#
Password = web
Username = web

This script allows the following commands to be run:

wvdial onSwitch Radio On
wvdial offSwitch Radio Off
wvdial signalShow signal quality, network provider and signal connection (HSPA/3g/GPRS)
wvdial connectConnects to the mobile network
wvdial gpsEnables GPS NMEA message output on /dev/ttyACM2 outputting a new message every 2 seconds

Make sure you can switch your radio on and connect to the internet. If so, you should also be able to switch the GPS on without effecting your network connection. As a final check, run wvdial signal and you should get information about the signal strength - this is crucial that you can get this information whilst the connection is open as it will help later with UMTSMon.

If you find you cannot connect to the network with wvdial connect without being root or using sudo. Ensure you are in the 'dip' group. You can do this through the "Users and Groups" application in the the Adminstration menu, make sure you unlock to get superuser privileges, highlight your login and press the "Properties" button. In the "User Privileges" tab you can tick the box next to "Use Modems", I also clicked a few more like "Dial out using a modem" which I think adds you to the 'dialout' group which appears to be completely irrelevant to pppd and I presume NetworkManager since it's unchecked by default - WTF?

You might need to logout and back in again or re-source your shell. Check you can dial out using wvdial. This is important so you don't need to run UMTSMon as sudo.

Install UMTSMon

Download a pre-built binary of UMTSMon for Debian from the following page: Note I had to use dpkg to install this file, the graphical gdebi failed for some reason.

sudo dpkg -i umtsmon_0.9-1_i386.deb

Once it is installed it should appear in your "Internet" Gnome application sub-menu.

Before you run umtsmon, switch your radio on using wvdial on.

I initially ran umtsmon from the command line so run it using umtsmon. During first run it will setup an rc file in your home directory at ~/.umtsmon/umtsmonrc. You may have to add a profile for your network provider - I use Vodafone and found the information I needed online. Once you have the information you need, add it using the Connection>Manage Profiles... menu item. Add a new profile and fill in the information you need. Additionally you can set usage limits for this profile on this page.

Hopefully you will see signal strength in the umtsmon window, but don't click connect just yet as you want to ensure wvdial and umtsmon are compatible. This is so you can switch the radio off, use GPS and view signal strength whilst connected. The first time I used UMTSMon, it used the same serial port for everything and I couldn't see signal strength or switch the card off once online. Close UMTSMon and in the command line edit the following file ~/.umtsmon/umtsmonrc using your favourite editor! Ensure the device section entries for ATPortName and PPPPortName looks like this:


This ensures the UMTSMon config is compatible with wvdial.

Add the following entries to your Gnome menu:

wvdial on
wvdial off
wvdial gps

All with options to run in the terminal. The last GPS option will hold onto the terminal for the moment, but once you kill it, the GPS will continue to write NMEA statements for read on /dev/ttyACM2.


You will need to install gpsd using apt, then run using gpsd /dev/ttyACM2.

I used tangoGPS which I installed from their website at Tango can also be configured to use Google Maps data in addition to OpenStreetMap.

NetworkManager alternative

To stop the NetworkManager applet nagging you about the new card it can't use, get rid of it and try Wicd - a much cleaner and faster utility for accessing WiFi networks.