As a system administrator and compulsive sms text (I often have IM and IRC gatewayed to sms via weechat scripts) and identi.ca user, I really, really dislike the lack of a keyboard, or any other reasonable method of text entry using just the device by itself. I really dislike the fact that you pretty much have to use external device with the device when doing any kind of hacking on it, and to do initial setup.
Personally I'm hoping that the ROAD handyPC S101 will be as open as the Openmoko Freerunner (I've emailed them asking this question), or the next version of the Pandora will both be more open (right now bluetooth and wifi have userspace non-free driver components, with only the core dev members having access to that code under NDAs) and have some way to add a GSM radio. Or even better, the next version of the Openmoko will have a form factor like the Modu which would allow the easy creation of hardware shells suitable to a wide variety of situations and people.
But as a personal and professional supporter of the Free Software movement (my day job is as a Sys Admin with the Free Software Foundation), I can't give Openmoko enough kudos for going to the lengths they have gone to make sure the hardware is usable with 100% free software. For that reason alone I think they deserve the wholehearted support of the community and myself, both to make the device as usable as possible for as many people as possible given the current hardware, and to show other vendors and the people who will make the decisions about if and when there will be a new Openmoko version that the free software community supports vendors that support them.
This section in process.
1. A helper device for people who want to make sure they use only free software - i.e. no Binary Blobs. I happen to help support the person on earth who probably cares the most about this, rms. RMS tends to accumulate weird, alpha- and beta- quality mobile hardware that supports free software best at any given moment. For a while, he used an OLPC XO; currently he uses a Lemote Loongson 2e based laptop that is never going to go into mass production (they do have plans for 2f laptops that will be produced). These pieces of hardware tend to either not have a lot of internal peripherals that work, or have internal peripherals that RMS will not use due to their non-free nature (OLPC XO wifi) or that don't work all that well due to other issues. As a workaround RMS has a large number of USB devices he carries around with him. Initial thought is that the openmoko could replace the external USB wifi device he carries around (it's not all that much bigger or heavier than the linksys wusb54g), which could give easier configuration, WPA2 support, and also a backup computing device to use should the laptop fail. It should also be possible to set it up as a SIP phone; I'm not sure if he would use the GPS or GSM radio due to the closed black-box nature of that hardware.
2. As a communications / PAN hub.
3. As a terminal device (see hardcore-term below).
Fixing the things I initially disliked
Lack of keyboard (hardware solutions): Ordered adapters to use with external USB keyboards, and some cheap small USB keyboards (dclarktodo get URLs). Ordered a Zipit Z2 to see if it can be hacked to be a mobile keyboard for the Freerunner (at about $40 it's cheaper than all the portable bluetooth keyboards I could find, and runs GNU/Linux independently). Until I hack the Freerunner to do all the things I need my portable device to do (mostly act as a quick-to-write-to external memory repository to implement the Zen to Done methodology), I'm using a Treo 650, which can be used as a Bluetooth keyboard for the Openmoko with Blueremote 1.2 by Károly Lőrentey.
Lack of keyboard (software solution): The existing terminal / console applications I've seen look pretty non-tailored to the form factor of the openmoko to me. They have a lot of wasted space for icons and control text, and tiny keyboards usable only with the stylus. So my first project is going to be to try to code up something that is a terminal for hard-core terminal users that uses space efficiently. For the moment I'm calling it hardcore-term or hcterm. I just finished a mockup to see if the text will be readable on the openmoko screen which is included below.
Initial setup requires other devices / a stylus: I think these problems can be fixed by including thumb-friendly GUI utilities that set up networking and keyboard use (wifi, usb, bluetooth, wired ethernet via a USB ethernet adapter on the USB port), by having gui utilities to set up x2x, x2vnc, and some vnc server (in addition to the default ssh server), by installing operating systems onto the microSD card from the installed OS, and by the addition of code in uBoot that would allow the microSD OS to be copied over to the main OS (a lot of higher-end IBM hardware has this as an option so you can test new firmware before promoting it to production). Also, operating systems should be runnable and installable from USB sticks, preferably with uBoot being able to check for some sentinel file so end-users don't need to remember what random combinations of buttons to hold down for an upgrade. I plan on working on this (or encouraging others to, as firmware is outside of things I have a big clue about) after hardcore-term works.
- Matchbox Keyboard and Stroke - Initial implementation will use Keyboard - later will see if matchbox-stroke with fullscreen input mode would work well / allow for a more readable 80x26 line screen.
I think this should be doable just with a little bit of clue code that ties together 2 xterms (or whatever a good lightweight alternative may be for openmoko) and matchbox-keyboard, and some utility / remapper that allows use of the freerunner's buttons. Oh, and a new termcap entry perhaps.