The Dream Machine

This page describes a handheld computer that, as far as I know, does not yet exist. Some devices like the Nokia 770 and the GP2X come close, but they all fall short in important ways.

(Update: a reader has pointed out that the Tapwave Zodiac was very similar to what I'm describing here, though based on PalmOS. Sadly, despite great enthusiasm among its users, most people -- including me -- never heard of it, and the company has gone out of business.)

This computer would be slightly larger than a standard paperback book, with a good full-color screen, a pen for input (and no keyboard), WiFi connectivity, and game controls. It's a convergence device intended for the following functions:

The device would look something like this:
More detailed design notes follow.

Screen Size & Aspect Ratio

There are three major standards for video aspect ratios today. One is the 4:3 ratio used by older movies and (still) many current television shows. Then there are two "wide screen" formats typically used by movies: 1.85:1 and 2.35:1.

A screen aspect ratio of 1.85:1 forms a nice compromise among these. Movies such as The English Patient will completely fill the screen, while appearing exactly as they did in the theater. 4:3 videos (and video games designed for the TV) will be slightly letterboxed on the sides, and 2.35:1 videos will be slightly letterboxed on top and bottom, but neither of these appears extreme, as you can see below.

The actual dimensions still need a bit of hammering out, but in the examples above, the screen is about 360 pixels wide and 200 pixels tall, and the videos look quite good. On the other hand, the Nokia 770's display is 800x480, and 4.13" diagonal; that's nearly the same 1.85:1 aspect ratio, and could work well for the dream machine too.

Horizontal or Vertical Use

Some applications are better suited to a horizontal screen, such as watching videos or playing console-style games. Other applications make better use of a vertical screen: reading electronic books, playing arcade games (most of which use a vertical screen), and most PDA functions. Some things, like browsing the web, may work better either way depending on the content.

So, the dream machine is designed to work in either the horizontal or vertical orientation. For horizontal games, you would use the d-pad with the left thumb, and control up to four buttons with the right. The two additional buttons in the lower-left corner could also be used for rare special functions, as long as they don't need to be pressed at the same time as the d-pad.

In vertical mode, you still control the d-pad with the left thumb, but you use the two buttons near the corner of the screen with the right. (Two buttons are typically enough for old-style arcade games, and of course will suffice for any custom software written for this device.) The four buttons that are now above the screen would not be used. The d-pad and two buttons at the bottom would also be used for such things as navigating e-books.

For applications like web browsers which can work either way, there might be a preference setting for which orientation to use. Alternatively, the hardware itself might contain an orientation sensor which could tell the software which way is up. In that case, turning the unit would automatically change the display accordingly.

Software Platform

The Dream Machine runs Linux, a popular open-source operating system. All preinstalled software would be open-source as well, and should include applications to support all the primary device functions as listed at the top of this document.

Software development would be encouraged by providing a standard development tool chain, which could run on any Unix-based desktop system (e.g. Linux or OS X), or even on the device itself.

Finished applications should be provided to end-users as simple files they can just download and install or run, without having to worry about things like library dependencies. It is hoped that many of the users of this device would not be technically savvy Linux users, and so app installation (and deletion) needs to be as easy as possible.

Text Input

This device intentionally lacks a keyboard; the mini-keyboards sometimes seen on handheld computers are awkward and slow to use. With a pen, there are much better input methods. I favor the HexInput method, which is very easy to learn yet allows for text entry speeds approaching that of a keyboard.

However, the text entry (keyboard emulation) software would be an open module of the system, so if developers want to provide some other means of text entry, they could do so, and all applications would automatically support it.


Designers of pen-based user interfaces need to be sensitive to the needs of both left-handed and right-handed users. Unlike a mouse, the pen is held directly by the hand, and so obscures the screen to the left or right of the pen tip (depending on which hand is holding it). Unlike game controllers, pens are essentially unusuable by the non-dominant hand for most people. So, as described on Lefty Pilot Users, there will be a system-wide "handedness" preference setting, and properly-written apps will observe this preference and rearrange user interface elements accordingly (for example, putting scrollbars on the left side of the content rather than the right).

Hardware Requirements

The processor, memory, and storage systems need to serve the following tasks:

Hardware-accelerated 3D graphics is desirable but not a requirement.

The touch screen should have resolution sufficient for writing, drawing, and interacting with objects on the screen. Pressure sensitivity is not necessary.

Onboard speakers are not necessary; instead, a stereo headphone jack (like on the iPod and many other devices) will suffice.

Implementation Notes

Since none of the major manufacturers seem to be making such a device, it's worth considering what would be required for a small group of hobbyists to "homebrew" one.

Based on the above requirements, the Nokia 770 is probably a good reference machine. It uses an ARM9 processor at about 220 MHz, with a DSP that handles multimedia tasks. It has a total of 192MB of RAM on board, and uses 64MB memory cards.

A similar amount of power might be had from something like the gumstix "connex 400xm", which uses an Intel XSCale PXA255 running at 400MHz. This lacks the DSP but has almost twice the clock speed, so might be able to handle multimedia tasks in software. The Gumstix boards can drive LCD displays up to 800x600 or so, as long as they have a digital interface.

For the display, a number of possibilities are available at, including integrated touch screens and add-on touch screen kits. Most of these are too expensive, but some are quite reasonable, like this 7.8" color 640x480 touch screen for $99, or the Seiko C555002. That suggests that, with enough searching, an appropriate screen might be found. For example, offers add-on touch screen kits which convert an ordinary LCD display (like this one?) into a touch screen. EZScreen does too; their EZ-0423L-AGH-AN-W4R looks about the right size and is only $36.

I welcome any feedback -- especially if you're experienced in electronics and want to discuss making this device a reality. Send mail to

-- Joe Strout, November 2005