I finally joined the ranks of self-respecting, smartphone-carrying tech enthusiasts. Over three years after the introduction of the iPhone (and untold years into the Blackberry/Palm/WinMo era), in September I capitulated and bought a Samsung Captivate, the ATT version of Samsung’s successful Galaxy S Android phone.
After four months of relatively intensive use, I think I have a pretty good idea about the strengths and weaknesses of this particular phone, and of Android phones more generally. Furthermore, my wife recently bought an iPhone 4, and of course I have been playing with it, too–as have our kids! Finally, since June, our family has been the proud home of an iPad 3G+WiFi. Bottom line: we actively straddle both sides of the Android/iOS divide.
Armed with this wealth of empirical evidence, I was going to write a lengthy post comparing the two phones and platforms. But, as more experienced bloggers probably already know, this violates what I’m going to call Chabon’s Law (thanks Gruber). Posts should be short and timely. Well, the time for that has clearly passed. Instead, I’m going to collect random observations and tips, in the hope they may be useful to others.
Why a Captivate?
I will allow myself only this bit of editorializing. Why did I decide on a Captivate, despite being a long-time Mac fan? The answer is simple: especially with the original firmware (codename JF6), the Captivate was very easy to unlock. You didn’t even need to root. Even with the new firmware, which ATT delivered over the air in November 2010 (codename JH7), it is still possible to unlock the Captivate by running a simple app you can download from the Android Market, although you do need to be rooted. Apparently, leaked Froyo builds make this more complex, but still feasible. The excellent XDA Developers forum is recommended (if not required) reading if you wish to make the most of your phone, and work around its shortcomings; start with this post, which provides a nice, PDF-formatted guide that includes information on unlocking and rooting.
Much as I love the iPhone 4, I spend a considerable time in Europe, and the idea of either paying ridiculous roaming charges, or jailbreaking (rooting) my phone to unlock it, and then engaging in a constant struggle with Apple to keep it unlocked was not especially palatable. Hence, no iPhone 4 for me. Instead, I bought a prepaid Vodafone IT SIM card, which I can simply pop into my Captivate when I land in Italy or Europe; I get very reasonable voice and data rates, and can thus enjoy my phone to the fullest. My wife’s iPhone 4, on the contrary, magically turns into an iPod Touch the moment we land 🙂
The GPS issue and Da_G’s partial fix
The main drawback of the Captivate is its non-functioning GPS chip. This is really unfortunate; geolocation is one of those facilities you do not appreciate until you actually try it. When it does work, it is magical. Android gives you a great Maps app (much better than the iOS one), plus turn-by-turn navigation. Yes, your phone doubles as a GPS unit! With the latest iteration of Google’s software, you can even pre-download maps, so you don’t need to have an active 3G connection to use this feature.
However, the Captivate’s GPS chip is notoriously faulty, especially in earlier builds. Basically, it does not pick a clear signal unless conditions are ideal (clear sky, no tall buildings around you). As a consequence, tracking (i.e. showing your position on a map) can be quite imprecise, and navigation can break down.
Additionally, XDA Developers’ hacker extraordinaire Da_G figured out that Samsung misconfigured the GPS software in a way that makes matters even worse. In a nutshell, for a GPS unit to pin down your position, it first has to `lock’ on at least three satellites. To do so quickly, it helps to know where these satellites are at a given time and in a given approximate location. Otherwise, the GPS unit has to wait until it gets a signal from some satellite, and can then download information about the location of other satellites directly `from the sky’. But, this takes time–sometimes a very long time (as in, 5 minutes or more).
`Assisted GPS’ (AGPS) is, essentially, a way to provide satellite information to the GPS unit using the cellular network. But, there are two (maybe three) different AGPS modes of operation. It turns out that only `Control Plane’ mode is properly configured on a stock Captivate. In an epic post, Da_G describes the issue and provides a way to fix this. However, just setting your phone to use Control Plane mode improved things dramatically for me; lock times are now under a minute. This does not resolve the wobbly tracking issue, but it does makes things better, because, if the satellite signal is lost, it can be acquired again pretty quickly.
To configure Control Plane mode, you need to launch the LBSTestMode activity. There are apps in the Market that do so; if you use LauncherPro, you can easily create a shortcut to any registered activity, including LBSTestMode: you don’t need any additional app. Launch the activity, choose SUPL/CP settings, and set the last drop-down menu (AGPS mode) to Control Plane. If you use the phone in the US, you can leave the Server FQDN Type to Auto Config, and it will use the ATT AGPS server; othwerwise, select Custom Config, and use the supl.google.com Server, port 7276, with Secure Socket OFF. This works for me both in the US and in Europe.
To clarify: Da_G’s fix is probably much superior to just using Control Plane; it improves tracking as well. However, you need to be rooted to use it, and also must be willing to do some hacking. I am not yet ready, and using Control Plane is an OKish solution for now. Also, this is, technically, not so much a fix as a partial workaround: the GPS chip in the Captivate is faulty. I will be much more careful to read up on GPS performance when I buy my next phone. For now, this is a livable compromise.