2008 / 11 / 23

FreeRunner: First look

1. Hardware

First International Computer (FIC), the FreeRunner manufacturer, was limited in their choice of hardware by their endeavour to keep the design open, as it is explained in the answer to why USB 1.1 is used in the Openmoko FAQ.

Openmoko FreeRunner

Pros:

  • Open design, the CAD files and schematics are available on-line, documentation for most components is available.
  • Ruggedized (I have not found the bezel as big a problem as described in Dave Fayram's now famous video).
  • Good screen resolution1.
  • Charging through the usb port:
    • you can recharge it anywhere you have a usb port, so anywhere you have a computer, at work, at an internet cafe, etc....
    • you only need one charger when travelling, for example I am able to charge my Garmin running GPS with the FreeRunner charger.
  • Resistive touch screen, it works well with a stylus, which is convenient for handwriting applications for example, but has drawbacks.

Cons:

  • GSM tri-band rather than quad, the most disappointing deficiency as far as I am concerned.
  • Some NDAs had to be signed for some of the component such as the Ti Calypso GSM modem and the Smedia Glamo 3362 graphic accelerator. Some people have still managed to hack the Smedia Glamo 3362, but that does not make up for the lack of openness.
  • Resistive touch screen rather than the newer capacitive type, which makes it more difficult for some finger operations although it has other advantages
    Back of the Openmoko FreeRunner
  • No space to store a small stylus. I don't mind the stylus interface, it allows to do things like hand-writing recognition, and access smaller icons on the display, but having a space to store a small stylus would mean that you only need one device, the FreeRunner, rather than two, the FreeRunner + a stylus.
  • No camera: I am not fond of the typical quality of the images from cell phones, but it would be sufficient for documenting, mapping (take a picture of the street sign !), or grabbing the barcode of a book to look it up later, etc... It is rumoured that GTA03 will be equipped with one.
  • No button for the sound volume which makes it difficult to adjust the volume during a call, as you need to look and touch the screen.
  • No physical keyboard.
  • No headset. The jack is a four-contact, 2.5 mm type and apparently compatible with some Motorola headsets, but those are hard to source and not cheap. Through buying in bulk and their connection to the industry, FIC should be able to provide one for a small additional cost.
  • Top heavy: There is a whole at the bottom of the FreeRunner, and the battery is in the top part, so it always ends up upside down in your pocket.

2. Distributions

The FreeRunner design is open, anybody can write software, or an operating system for it. At the moment it seems that only Linux distributions have been ported to it.

FIC is the sponsor of such a distribution, the Openmoko project. The FreeRunner is delivered with an early version of Openmoko, Om2007.02

FreeRunner Distributions
some of the Distributions available on the FreeRunner

2.1 Om2007.02

While Om2007.02 is robust (no crash) and allows to place and receive calls and SMS messages, this is all it can do. The interface is crude and it has no other utilities, and no possibility to use the other devices (GPS, accelerometer). The sound quality is terrible.

2.2 2008.09

  • Could not access the "Setting" menu.
  • Could not resume properly after a suspend.
  • little apps provided with the jffs2 image
I now realise that a lot of the quality issues as well as the lack of applications could have been resolved using the opkg utility, but did not know at the time.

2.3 Om Daily 2008.11.04

The only functionality provided with the jffs2 image was the "Setting" menu.

2.4 2008.08

Same as 2008.09, except that the "Setting" menu was working. I did not check if suspend/resume was working.

2.5 FreeSmartphone.Org (FSO)

The interface is better than Om, it comes with a few apps, and allows you to switch between zhone and a regular X session where you can run your preferred X program.

Both the default zhone GPS application and tangoGPS (inside X) were able to get a fix in minutes when staying in the same position.

Unfortunately, with that particular version (FSO testing image from 2008/11/04), I was not able to dial nor answer phone calls, the phone would ring, but the keyboard was not responsive.

2.6 Qt Extended

Trolltech, now owned by Nokia, offers Qt Extended (formerly known as Qtopia) under a dual license, commercial, and GPL'ed.

This distribution is different because it transforms the FreeRunner from a computer into an appliance, into an expensive2 cell phone, but out of the few distributions I have tested, this is by far the most stable and most usable.

3. Qt Extended in depth

3.1 Regular operations

The interface is very responsive, especially compared to the other distributions, and looks very professional. The FreeRunner suspends and resumes flawlessly, and never crashed. I still have encountered a number of problems:
Qt Extended on the FreeRunner - Dialer
Qt Extended on the FreeRunner - Main Menu
  • there is a lot of echo not so much on the FreeRunner side, but for the other party. On some incoming calls there is a squeal so loud that people who have seen the movie "Fail Safe" think that Calgary has just been destroyed by an atomic bomb. Upgrading regularly and applying some other patches has improved the situation slightly but has not solved it yet.
  • calls to a number starting with an star (*) do not complete (a known bug).
  • the phone would not ring when receiving a call (vibrated only), this has been solved by adding and pointing to new wave files (I ended up using untie from OpenOffice.Org !).
  • new SMS messages would appear only after a reboot. Upgrading with opkg has partially solved this problem, I now receive SMS messages in real time, but the phone vibrates only and do not give any audible signal regardless of my changing the configuration.
  • all incoming calls get registered as a missed call ; not a huge issue but confusing at first.
  • after a reboot, it has to be plugged into a usb host or it will not go into suspend mode automatically, and the battery indicator keeps blinking as if it were charging.
  • the number of the caller is shown, but not the name.

3.2 Documentation

There is some very high quality documentation for Qt Extended on the Trolltech Qt Extended documentation page, and the page dedicated to Qt_extended on the Openmoko wiki contains extensive information about specifics to the FreeRunner.

3.3 Other applications

3.3.1 GPS

The Qt Extended mapping application ("Mapping Demo") stays stuck with the message "Connected, waiting for fix...", and TangoGPS (installed via opkg, and displayed through ssh X forwarding) is not able to connect to the GPS, even though this was not an issue with the FSO distribution.

3.3.2 Media player

Still pictures: Jpeg and png files are displayed properly.

Video: wmv, avi, and ogg theora files are not displayed.

Audio: mp3 files are decoded properly, but ogg vorbis files, although recognised as sound clips, produce no sound.

3.3.3 Calculator

Contrary to calculators I have tried on every cell phone I could get my hands on, this one can actually do basic integer arithmetic:

When you key in the sequence: "1 + 2 * 3 =" you obtain "7" !

3.3.4 Internet browser

Qt Extended web browser on the FreeRunner
The Qt Extended web-browser can display html, but Websites not designed for mobile appliances are not displayed properly. Https and flash are not supported, but basic javascript seems to work. Even videos from mobile youtube (in rtsp format) are not displayed.

Google Classic Google Mobile
Google Classic vs. Google Mobile

3.3.5 Wifi

Wifi can be started through the "Internet" menu in "settings", but there is no option to look for networks, you have to setup the networks for each ESSID. This is very unfortunate: I cannot imagine browsing the internet or sending emails without a physical keyboard, on the other hand having a small device that is handy and always on that can be used to check the presence of a hotspot would be most useful.

Note that you can ssh into the device and run "iwlist eth0 scan", so the issue is Qt Extended, and not the underlying OS.

3.3.6 Voice Notes

The "Voice Notes" application does not record anything from the internal microphone.
Qt Extended on the FreeRunner - handwriting recogniser

3.3.7 Hand writing recognition

Handwriting recognition is excellent but predictive writing gets in the way, the Internationalization section of the Openmoko Qt Extended documentation explains that you need to zero the .dawg files in the /opt/*/Qtopia/etc/dict directory in order to disable it.

3.3.8 Additional Qt Extended packages

The Qt Extended software package manager (menu "Software Packages") is configured by default to fetch packages at "http://qtextended.org/packages/feed/4.4.1/neo", but that directory does not exist. There is a "4.4.2" directory but it is empty. The directory "4.3" does contain files, but when pointing to it, or even right to the "feed" directory, the Package Manager claims that there is no software available.

3.3.9 Additional Openmoko packages

Openmoko uses the packet manager "opkg" which is installed and properly configured. The software available in this repository are either command line, or X based, and so cannot be used through the Qt Extended user interface.

3.4 Installing Qt Extended

As indicated in the Qt Extended installation instructions, you need to obtain:

You then need to untar the file, start the FreeRunner from NOR Flash, connect it via USB, and flash it:


tar zxvf ../qtextended-4.4.2-gta02-flash.tgz
dfu-util -l
dfu-util -a rootfs -R -D qtextended-4.4.2-gta02-rootfs-10302135.jffs2 

3.5 Connecting to the FreeRunner

You can connect to the FreeRunner via networking over usb. Like most other distributions, Qt Extended sets the default ip address to 192.168.0.202, and routes everything to 192.168.0.200.

Running:


ifconfig usb0 192.168.0.200
ssh root@192.168.0.202
will let you login to your FreeRunner. The default password is "password", change it !

If you want to access the internet from the FreeRunner, in order to be able to install or upgrade packages for example, you will also need to configure your host as a router. If the host is already behind a firewall these commands should suffice:


sysctl net/ipv4/ip_forward=1
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE -d 0/0
If you intend to forward X to your host, using "ssh -X", you need to install xauth (opkg install xauth).

The default shell is 'sh', which does not support file completion, ksh is not present, but bash is available. Note that changing the shell for root in /etc/passwd and adding a .profile in ~/home does work as expected, without any side effect.

3.5 Adding files

Qt Extended does have a bit of the MS Windows / Gnome mentality, it assumes that all your data files are in /home/root/Documents or /media/card/Documents. You can create subdirectories, the files will be found, but presented in a flat manner (all the files at the same level). It keeps track of files through its internal database, as a consequence, when you copy files to the FreeRunner, using scp for example, you need to force Qt Extended to update its database using the "Rescan System" option of the Document browser.

3.6 Setting the time

Once you are connected to the FreeRunner, you will need to install ntp, configure /etc/ntp.conf, and run hwclock after you run ntpd, to preserve the time after reboots:

/usr/bin/ntpd -gq
echo $?
/sbin/hwclock --systohc --utc








Appendix

1: screen resolutions on some mobile devices
devicepixels
Apple iPhone320x480
htc G1320x480
FIC Neo FreeRunner480x640
Nokia N810480x800

2: comparison of prices of unlocked phones at time of writing (November 2008).

phonebandspricesource
Motorola F3850/190035 CADnewegg.ca
Nokia 1112B850/190049 CADpuremobile.ca
Nokia 6300850/1800/1900174 CADnewegg.ca
FreeRunner850/1800/1900400 USDkoolu.ca



Copyright Yves Dorfsman, 2008.