OpenMoko's OM2008.9 for the Neo FreeRunner
The OpenMoko project recently released a much-needed update to the official software stack of the Neo FreeRunner. I've had a FreeRunner for a few months and during that time I have used it to run everything from Debian to Qtopia (now known as QT Extended), so when OpenMoko announced the OM2008.9 update I eagerly upgraded to see what it had to offer.
(This is a short review of the recently released OM2008.9 software stack. For a full evaluation of the Neo FreeRunner please read my review in the upcoming December issue of Linux Journal.)
The first thing I noticed when booting the FreeRunner into OM2008.9 was the shiny new boot splash screen. Previously one had to watch two to three minutes of kernel messages scrolling down the screen before arriving at any sort of GUI. For us geeks this not only was cool, but sometimes even useful. However, whenever I showed the FreeRunner booting to my plebian friends it always evoked the same sort of "WTF?" bewilderment. Adding a simple splash screen for the boot process is one of those little things that actually adds a lot of polish (even if it simply displays a pair of boots, as it oddly does).
Once the GUI was started and the FreeRunner is ready I noticed the nice icons on the home screen. The icons are bright and colorful, although not necessarily indicative of the functionality they represent. By default there are only 6 icons: Contacts, Dialer, Locations, Messages, Settings, and Sudoku. These are icons for applications that run on OM2008.9. More applications can be added with the built-in Installer that is shown at the bottom of the screen.
The Standard Applications
The Contacts application is simple enough and offers barebones contact management features. It is sometimes a little buggy, although the biggest drawback is having to use the default keyboard to enter information (more on this later). If your contacts are already stored on your SIM then OM2008.9 can access them directly from the card, even without importing.
The Dialer application hasn't evolved much, and is still a little tricky to use. There is a little red "X" square in the keypad that one would think deletes the previous digit that was entered. Instead, pressing this key quits the Dialer, which can be rather frustrating. The key for deleting digits is displayed in the menu at the bottom of the screen, where you normally quit an application. Otherwise, the Dialer is mostly what you would expect.
The Locations application takes advantage of the FreeRunner's GPS capabilities to display your current location on a worldwide map. This is neat, although at this point it appears to be nearly useless. I'm sure the developers have plans for this application, as we have seen that mapping applications can be quite powerful.
The Settings application is used to configure your preferences, as one would expect. Although the interface for this has improved quite a bit, it still is rather limited. I was excited to see a new, simpler way to join WiFi networks. However, after trying (unsuccessfully) to join several networks I became suspicious. As it turns out WiFi support is just one of the many known issues in OM2008.9.
Areas for Improvement
One major area that OpenMoko still has plenty of space to improve is in call quality. Calls made with OM2008.9 are muffled and hazy, both to you and the person on the other end of the line. For a device that is marketed as a phone it should be very important to make sure that calling works very well. Also, the FreeRunner lacks a hardware volume button, which can be quite frustrating when the noise in the environment around you changes.
Most of the time I used the FreeRunner's stylus when reviewing OM2008.9, but often it would be more convenient to just use my finger with the screen. I found that several parts of the OM2008.9 software respond differently to touch than to the stylus. For example, in Settings you have to scroll down the page to see the items at the bottom of the list. This works fine with the stylus, but when using a finger the Settings application tends to select an item from the list rather than scroll. I do not know how hard this problem is from a technical standpoint, but it certainly would be nice if the software could respond to input from a stylus and a finger consistently.
Another area that could use improvement is the battery life. Even when the FreeRunner is idle, and both WiFi and GPS are disabled, I was only able to get about 6-7 hours of battery life. I know this is probably not a focus for the OpenMoko team, but improvement here would definitely encourage people to use the device as a fulltime phone. It is unlikely that anyone will be willing to carry a phone that only lasts for 6 hours. On a related note, the phone sometimes stops charging, even when plugged into the charger, leaving you with an unpleasant surprise when you need your phone.
There are tremendous improvements in the UI from previous versions. Although at times it lags a little, for the most part the interface is quite snappy and responsive. Having said that, there are two particular interface elements that could benefit from more work. First, there should be more progress meters. For example, when attempting to join a WiFi network the UI gives no indication of its progress, seems to finishes immediately, and provides no way to tell if you have successfully joined the network. In this case a simple progress meter could set expectations for the user and can ease some frustration.
The second UI element that needs work is the error message dialog. These messages pop up to convey some message about the status or output of an action. Although the text of the message is there, the background of the dialog is transparent. The text is often overlayed on the background screen, making it difficult to read and especially hard to dismiss the message.
But, of all these issues, none compared with the pain of using the default keyboard.
The Dreaded Keyboard
My biggest complaint with the OM2008.9 stack is the default keyboard. At first it appears to support only the standard 26 characters in lower case. I had to research the keyboard to learn that other characters are revealed by flicking the onscreen keyboard upwards. The keyboard is extremely unintuitive and rather difficult to use. For example, to enter an email address you must type the first characters, then flick the keyboard up two screens to enter the @ sign, then flick the keyboard back two screens to enter the domain, then back two screens to enter the period (.), then back two screens to enter "com." This process is anything but quick. The keyboard home screen has plenty of space to include a few common characters such as the @ sign, dash, period, question mark, and a shift key (the uppercase characters are also listed on a separate screen that you must switch to).
The keyboard is such a critical piece of any mobile device and it really needs to be easy to use and understand. The space limitations that mobile devices place on keyboards is well known, and mobile software vendors continue to create interesting solutions to the problem. The OpenMoko team needs to make sure to get the keyboard right.
Do you remember the state of Linux in late 2000 and early 2001? The 2.4 kernel was about to become officially supported, KDE 2 was almost ready to go, and companies around the world were making headlines by adopting Linux. At the time it seemed like Linux was "almost there." At any day your Grandma would be using Linux. Well, that's how I now feel about OM2008.9 on the Neo FreeRunner. It's getting closer, and people are working very hard to make this this thing ready for prime time. As a phone there is still some work (ok, a lot of work) to be done before your Grandma will be making calls with it.
However, as a Linux device the FreeRunner is really quite amazing. That is what I cover in my upcoming article about the FreeRunner in the December 2008 issue of Linux Journal. You'll see everything I learned about the Neo FreeRunner in the months that I used it, and even how to run Debian on your phone.