3G On Your Mac

By the time you read this, Vodafone's new 3G offering should be hitting the shops. Of course, most of the media ignored the fact that the Vodafone Mobile Connect Card was out a couple of months ago (and has been actually on sale and working since that date).

A phone is something everyone understands, though. And having used the Samsung/SGH-Z100 and Samsung/SGH-Z105 for over six months now, I can say it's a great way to use 3G - it's a normal-size phone with decent battery performance, a great screen and an easy-to-use interface (and mind you, I don't usually like clamshell phones). But best of all, it's a great device for Mac users - especially if you have a 12" PowerBook or an iBook, which lack the PCMCIA slot for a 3G card.

Mini-Disclaimer: I work for these people (and like it there). I also know good technology when I see it, and that doesn't mean I shouldn't highlight the product's advantages for Mac users. Also, as usual, I'm not responsible for any damage you might cause to your phone, your Mac or your cat - but neither is Vodafone, since this is not an officially supported configuration. It just happens to work for me.

Since the above disclaimer is not likely to be enough, let's make one point absolutely clear, then: I won't go into the phone's specifics (I'll leave that to the press), the service bundle, or its Mac OS X integration other than as a USB broadband modem. Any Mac-oriented shortcomings the phone might have in other fields (like not being supported by iSync out of the box) are more than likely to be offset in due time either by Apple or the burgeoning third-party community, since the phone supports SyncML and has no trouble syncing to Outlook.

It Just Works

Like pretty much everything else supported by Mac OS X, all you really have to do to get the phone installed is plug it in using the supplied USB cable (which, by the way, also provides a trickle charge to the phone's battery - it takes longer to charge than the AC adapter, but is a nice touch for people who like to travel light).

After a few seconds you'll get an onscreen prompt saying a "SAMSUNG CDMA Modem" was found, and you'll find it appears in both System Preferences and Internet Connect alongside your built-in modem.

The GPRS Two-Step

Also like pretty much any GPRS device, you need a modem script for it. GPRS requires a few AT Commands to set up the modem, and all current 3G devices use pretty much the same command set. Fortunately, the Samsung makes it easy for anyone to set up a 3G/GPRS connection (i.e., it is not at all picky about parameters), and Ross Barkman's Generic GPRS Scripts work fine.

Just unpack the scripts (be sure to read the supplied README), drop them in /Library/Modem Scripts and set up a new connection using the GPRS CID 1 script. If you're in Portugal, type internet.vodafone.pt (the APN, or Access Point Name) into the phone number field, and use vodafone as both username and password (authentication and billing are done towards your phone number, of course). In case you're curious about tariffs, at the time of this writing it's exactly the same for GPRS and 3G data.


Like all mobile services, bandwidth is essentially dependent on coverage. I get an average throughput of 320Kbps (just a tad below the max 384Kbps, which I can easily reach by simply sitting nearer my living room window). Your mileage may vary, but whatever throughput you get, it's only bound to get better as the network builds out (nominal coverage targets as publicly disclosed in this BBC article are essentially urban areas).

Latency is also far less than a GPRS connection, and non-tech users will find it virtually indistinguishable from a standard ADSL connection. Techies who jump straight in to an SSH session in a terminal window will find it feels very much like an ISDN connection - which is only natural, since you have a 64Kbps uplink. The real difference shows when you start using things like VNC, Citrix or Remote Desktop - with the 384Kbps downlink it's pretty much like being on the LAN, and running Outlook inside Virtual PC works OK (depending on your version of Outlook and Exchange server - the 2003 builds work much better over any connection).

What About Linux?

For the curious, the Samsung exposes a high-speed USB interface that can also be used in Linux as /dev/ttyACM0. Here are a few log samples from my Fedora laptop (I assume you know how to set up any kind of modems in Linux):

Device Detection

# tail -f /var/log/messages
Mar  4 22:23:05 hermes kernel: hub.c: new USB device 00:05.2-2, assigned address 4
Mar  4 22:23:05 hermes kernel: usb.c: USB device 4 (vend/prod 0x4e8/0x6601) is not claimed by any active driver.
Mar  4 22:23:08 hermes kernel: usb-uhci.c: ENXIO 80000480, flags 0, urb d238c500, burb d238c380
Mar  4 22:23:08 hermes kernel: usb.c: registered new driver acm
Mar  4 22:23:08 hermes kernel: ttyACM0: USB ACM device
Mar  4 22:23:08 hermes kernel: acm.c: v0.21:USB Abstract Control Model driver for USB modems and ISDN adapters

Dialling In

# tail -f /var/log/messages
Mar  4 22:30:01 hermes ifup-ppp: pppd started for VodafoneGPRS on /dev/input/ttyACM0 at 460800
Mar  4 22:30:01 hermes pppd[3811]: pppd 2.4.1 started by root, uid 0
Mar  4 22:30:02 hermes wvdial[3824]: WvDial: Internet dialer version 1.53
Mar  4 22:30:02 hermes wvdial[3824]: Initializing modem.
Mar  4 22:30:02 hermes wvdial[3824]: Sending: ATZ
Mar  4 22:30:03 hermes wvdial[3824]: OK
Mar  4 22:30:03 hermes wvdial[3824]: Sending: at+cgdcont=1,"ip","internet.vodafone.pt"
Mar  4 22:30:03 hermes wvdial[3824]: at+cgdcont=1,"ip","internet.vodafone.pt"
Mar  4 22:30:03 hermes wvdial[3824]: OK
Mar  4 22:30:03 hermes wvdial[3824]: Modem initialized.
Mar  4 22:30:03 hermes wvdial[3824]: Sending: ATDT*99#
Mar  4 22:30:03 hermes wvdial[3824]: Waiting for carrier.
Mar  4 22:30:03 hermes wvdial[3824]: ATDT*99#
Mar  4 22:30:03 hermes wvdial[3824]: CONNECT
Mar  4 22:30:03 hermes wvdial[3824]: Carrier detected.  Chatmode finished.

Update: Since this post gets quite a few hits from searches for the 3G Connect Card and Linux, here is the modprobe incantation to activate the Option card's built-in USB controller under Linux:

modprobe usbserial vendor=0xaf0 product=0x5000