Linux DevCenter    
 Published on Linux DevCenter (http://www.linuxdevcenter.com/)
 See this if you're having trouble printing code examples


The Agenda VR3: Real Linux in a PDA

by Chris Halsall
05/18/2001

It looks like Agenda Computing will claim victory in the race to produce the first PDA that runs Linux out of the box and can be purchased by consumers. Unless delayed (again), consumer versions of the VR3 should begin shipping May 21st, 2001, with three colors to choose from.

A few different developer's editions of the VR3 have been available since November of 2000, for those willing to put up with alpha and beta quality software. These units are functionally identical to the commercial VR3 models, except for their blue-and-white translucent color scheme, and on earliest models, slightly different internal designs.

The VR3 is the smallest of the three Linux PDAs we're looking at in this series, on many scales. It is lighter than the iPAQ or the Yopy, weighing only 4 ounces, and it's physically smaller at only 3.1" by 4.4" (7.8cm by 11.3cm). It's also the least expensive, with the consumer version costing $249 US.

On some scales, however, being smaller isn't best. The VR3's display has the lowest resolution of the three, at only 160 by 240 pixels, 16-bit gray-scale. Think of the display as the same size, physically as well as in resolution, as the new Palm m100/m105 models, except with renderable space on the VR3 where the fixed Graffiti writing area exists on the Palm.

For the CPU, the VR3 uses the NEC VR4181 MIPS-based chip, a 32-bit processor running at 66 MHz. Both the developer and initial consumer models are equipped with 16MB of flash memory, and 8MB of regular RAM. A future model, the VR3r, is expected with additional RAM available, although when such models will actual appear may be the subject of more than a few betting pools.

User input is by way of a stylus on the touch-sensitive screen, which also includes a thin row of seven "soft buttons" at the very bottom of the input area. There are also seven physical buttons around the device (including power), plus a handy switch inside the stylus storage chamber. The VR3 wakes up when the stylus is removed, and returns to sleep when it is re-inserted.

Previously in this series: Linux on Your PDA

Comment on this articleFrom your view, what are the advantages of running the Linux OS on your PDA compared to Palm or PocketPC?
Post your comments

Digital Io can be accomplished by way of the IrDA port, or a regular RS232 connection exposed by way of a cable plugged into the interface port on the bottom of the device. This port also has a proprietary interface which Agenda Computing have not yet documented, but plan to "in the future."

The device also has mono audio record and playback ability when a microphone and/or set of headphones are plugged into the audio jack. A piezo buzzer is used for normal audio generation needs. As an interesting extra feature, the VR3 includes a "Consumer IR Port" -- a high-intensity IR LED intended to allow remote control of consumer multimedia devices such CD Players, from distances much beyond normal beaming range.

Overall, the VR3 feels nice and natural in the hand, although those used to the Palm's textured plastic say that the smooth plastic finish of the VR3 is a bit different. One physical design feature I really like on the VR3 is the fact that the battery compartment cover, holding 2 AAA batteries, screws closed. I once lost an entire trade show's worth of contacts because of the Palm's insecure battery cover, so I really appreciate this feature.

The First Boot

Agenda
Looks like Agenda Computing wins the Linux PDA race by getting the first handheld shipped that runs Linux OS right out of the box.

When you first turn on an Agenda VR3, or reset it, it will take about a minute before it's ready to be a PDA. Fortunately, going through a full boot sequence is a rare requirement, as the device is in suspend mode most of the time, immediately available when the power button is pressed.

During the boot process, a full Linux 2.4.0-test9 kernel and OS environment is launched. The very first thing which runs is a boot-loader called PMON, that is the VR3's rough equivalent to the BIOS and LILO boot steps of a PC. Interactive control of PMON, along with upgrading the Linux images, is covered below.

Assuming PMON doesn't receive notice otherwise, it will transfer control to the installed Linux kernel, passing in which device to use as the root partition as a parameter. On the screen you'll see a console display, in a very tiny font, of the process of a Linux boot sequence.

After about 30 seconds, a screen calibration tool will appear, and the boot sequence will halt until the stylus has been pressed at five locations on the screen. Once completed the console display returns for a couple of seconds, and then a wonderful sight appears: the familiar cross-hatched pattern and X cursor of a launching X Windows system!

It takes a few more seconds for vrwm, the default window manager to initialize itself, and then the LaunchPad runs. This is a icon-based browser for launching applications, similar to the application icon view on the Palm OS. The LaunchPad is optional, and can be exited to save memory.

At all times, applications can be launched by selecting one of the soft buttons at the bottom of the display. On the far left is the Agenda logo which brings up a menu of applications. The other buttons launch applications directly, and by default bring up Contacts, To Do, Schedule, Notes, the Calculator.

The last soft-button on the VR3 is the Keyboard icon, on the far right of the button bar. It is special in that it launches (or hides) the virtual keyboard application, which also includes the handwriting recognition engine used for the VR3, recd. The character input engine is based on Xscribble, and is covered below.

For those interested, see the RecdInvestigation and HWRProjectPage in the AgendaWiki.com site for much more information on the subject.

The Software

Agenda's Launchpad
The LaunchPad is a familiar gateway to the Agenda's applications.


Graphical view of available programs
The To-Do application has a different look from the Palm version.

The list of included applications on the VR3 is impressive, and covers most of the functionality provided by a Palm. In short form, the applications included (as of 2001.05.15) are:

E-Mail, Faxing and IR-Remote applications are all planned for free download after June 2001.

In addition, there are several games included with the VR3. The Ace of Penguins suite of games by D.J. Delorie is installed, providing Solitaire, Freecell, Golf, Merlin, and several others. There is also a Tetris clone, a Mines clone, Checkers, and a pretty impressive Space Invaders type marching game called Aliens.

Under the System menu are the usual control interfaces for Contrast, setting the Date and Time, adjusting power-usage functions (when to power off, battery state). The Network application lets you establish connections to other devices, covered further below.

One entry under the System menu of particular interest is the StatusBar application. When launched, it opens a thin window at the top of the display and shows current time, battery condition and the name of the currently focused application. The StatusBar can also display the list of opened windows (or at least, most of them), and let you switch between them easily.

The other entry in the System menu of particular interest to geeks is the Terminal. When selected, a shell will pop up. A real, honest to Unix /bin/sh shell! With a $ prompt and everything. Type in bash, and you're greeted with bash-2.00$

Cool.

A fairly complete set of command-line tools are included, many provided by Busybox 0.48. This package emulates several common commands, but as of version 0.48 vi was not one of them. And in fact, an editor is not provided on the default installation, although cat and sed are always an option for those seriously determined.

Most, but not all of the GUI programs run in full screen mode. Checkers, for example, opens a window only big enough for itself. This reveals an exciting property -- X Windows decorations and widgets! Drag bar, Window close and minimizing -- it's all there. Folks, we're really running X Windows!

Character Input

As with most PDA devices, there are two ways of inputting data into the VR3 -- a virtual, on-screen keyboard, or handwriting recognition (HWR). When the Keyboard soft-button is pressed, a 50 pixel high by full width window will appear at the bottom section of the screen which is where all input actions are performed.

The window will contain one of two virtual keyboards (one for letters and the other numbers/symbols), or four small square writing areas, the first for upper case characters, the next for lower case, the third for numbers, and the last for symbols. Any already open windows will move or resize themselves to make room for the keyboard window.

To switch between the three input modes, there is a small button in the lower right hand corner to toggle between them. Starting with Letters, the button is labeled "123" and takes you to the number and symbol's input display. There the button is labeled "hwr", and leads to the handwriting section, where the button is labeled "abc".

How good is the handwriting input functionality? Not too bad, but not perfect. There are still some letters that I cannot reliably input, such as B and D, it always thinks are H. Also, there are some Graffiti strokes which I like to use, but which it doesn't recognize at all (like the backwards F and V.)

The good news is that work is under way to improve the HWR, and the results seen only in the last few weeks have been quite impressive. Don't even bother trying to use the HWR included with the original developer versions. Also, since the HWR engine is itself open source and takes classifier data in known (and modifiable) formats, I know I can add the missing strokes myself -- I just haven't been frustrated enough to do so yet.

Those interested in researching this topic further should look at the RecdInvestigation and HWRProjectPage on the Agendawiki.com site.

Networking

No Linux installation is complete without the ability to bring up network connections, and the Agenda VR3 environment doesn't disappoint. From the menu or LaunchPad, selecting Network brings up a list of connections: MS Direct Cable Connect, Modem to Internet, and Direct Serial.

To establish a PPP connection between your Linux desktop and the VR3, just connect them with the serial cable, and enter the following in a root console on your desktop:

/usr/sbin/pppd /dev/ttyS0 115200 10.1.1.2:10.1.1.3 noauth nodetach novj debug local

This assumes you've plugged the serial cable into the first port. If not, change ttyS0 to be appropriate. Then, on the VR3, select the Direct Serial connection and press the on-screen Start button. The VR3 and your desktop should negotiate a connection, with both sides reporting success.

At this point you can telnet to the Agenda VR3 from your desktop, and establish an interactive console session with your handheld. Haven't you always wanted to be able to do that?

The root password is, by default, "agenda". The regular user account which is used for the PDA applications, "default", has no password set. You can log into the VR3 as either user, and if you log in as default, you can execute the usual su and answer the challenge to become root.

How do you transfer files from and to the device? rsync.

I'm not joking.

To copy a file to the default home directory, execute something like this:

rsync somefile.txt 10.1.1.3::vr3/home/default/

Lastly, since the VR3 is running a full X Windows, you can also import and export your displays. On a console on your connected desktop, type in:

xhost +10.1.1.3

In a console on your VR3, enter:

export DISPLAY=10.1.1.2:0.0

Then, in the same VR3 console, launch one of the GUI applications, and watch it open its window on your desktop! You can also do the opposite, and run applications on your desktop that are displayed on your VR3. This can, in fact, be an excellent way of testing GUI design on the VR3 during development, without using the full cross-development tool chain.

While the ability to telnet and rsync in and out of the machine is incredibly useful and powerful, it also makes for a pretty serious security risks if ever connected to a hostile networking environment. I personally never intend to make my VR3 a full "peer" on the Internet. It will instead be a well-protected host behind NAT and firewalls (just like all my other important computers).

Upgrading your Flash

Installing a new version of the Linux Kernel and/or the root file-system involves flashing the appropriate blocks of memory with binary images. These are available from the Agenda FTP site, or you can compile and build your own. As of the date of publication, the latest versions are known as Matrix, and are release-to-manufacturer candidates.

Thanks to a tool called vrflash, written and maintained by Jeff Carneal, downloading and flashing new images is a piece of cake. Versions exist for both Linux and Windows -- see Carneal's pages for both versions.

Since the documentation included with vrflash is so complete, I won't bother suggesting command line options here. I will, however, strongly suggest you read, and then complete, the instructions included in the doc/pmon-protect-unprotect.txt file. You wouldn't want your VR3 to be a brick, now would you?

I encourage you to upgrade to the latest versions of both the kernel (vmlinux-???.binary) and root (root-???.cramfs) images. Agenda has made significant improvements have occurred in only the last few weeks prior to publication of this article, and I suspect, new and improved images will be available on an ongoing basis.

Terminal Booting

Bash shell
The terminal session is legible and fairly usable, even on the small screen

The boot process of a VR3 is a bit like that for a PC, but instead of a BIOS and LILO, we first encounter the PMON facility immediately after a boot. Sending any character in the VR3's serial port within 3 seconds of a reset will result in an interactive session with PMON.

In addition to burning new file systems into flash memory, PMON can be used to change the default Linux boot parameters. For example, issuing the command $linux console=ttyS0,115200 at the PMON> prompt results in the boot console messages being redirected from the VR3's screen out to the serial port.

Before the vrflash utility was available, VR3 users had to interact with PMON directly every time they wanted to upgrade their systems. Fortunately, that's no longer needed, but PMON can be a very handy tool to know about, being the equivalent of LILO on a PC. Documentation for PMON is available at the developer's site.

Conclusion

The Agenda VR3 is an interesting product, from several perspectives. For a Linux geek, it is a relatively inexpensive way of getting a real Linux environment running in a PDA form factor. While executing shell commands in a tiny console using HWR or a virtual keyboard has limited practical uses, I personally find it more enjoyable than Solitaire during boring meetings ...

For Agenda Computing using Linux means they've been able to deliver a full PDA product without paying anyone a software license fee. Based on their projections of unit sales of 500,000 and 750,000 units for this and next year, the savings in licensing expenses could be in the millions of dollars. This is money which would have had to come from the end-consumer in the form of higher prices, making their product less competitive. This money would have also flowed right out the door to someone else.

In light of this, it's pretty easy for Agenda to justify employing a few hackers of their own to bring all the pieces together, and fill in any missing components. In a testament to Agenda's commitment to the open source community, the Personal Information Management (PIM) application suite developed by them has been released under the GPL. This has actually been ported to the Familiar environment for the iPAQ.

Now, being real life, in addition to the positives, there are also a few negatives with the VR3.

Probably my biggest concern is with the amount of regular RAM memory available -- 8 Megs is awfully minimalist, particularly when you're running a full Linux and X Windows environment. And when the VR3 runs out of memory, applications can slow to a crawl, or the entire environment can fall out from under you.

In order to make the best of what's available, the Agenda team have recently implemented XIP in the kernel. This is eXecute in Place, and means the application libraries are executed directly from their flash memory locations, rather than being copied to regular RAM. This has improved things significantly, such that it's now possible to have all the applications running at the same time. (You just know regular users are going to do that!)

I have been told by Agenda that a later model, the VR3R, will have more on-board RAM. Considering how inexpensive RAM is now, I really think 32 megs should have been the first design target, particularly how constrained some applications might be in low memory environments. (Another arm-chair engineer!)

Another issue has to do with the interfacing and expandability or rather the lack of it. Until the proprietary interface on the sync port is documented, the only way to interface to the unit is via IrDA or RS232 serial. This is certainly good enough for most PDA uses, but some people are wanting more, like PCMCIA, 802.11, or even Bluetooth.

Again, I think this was conscience design decision on the part of Agenda Computing, which is targeting the VR3 as a PDA, and not as some power user's mobile hacking platform. With a unit as small as the VR3, offering advanced expansion options is difficult and somewhat expensive.

Also, some functionality is simply missing. One critical example is that the unit cannot currently wake itself up if it's suspended. This is a problem if the Schedule program can't inform you have a meeting in 10 minutes. Agenda Computing reports this wake-up ability will not be ready until June 15th.

On the usability, reliability and stability fronts, the VR3 looks like a good contender. With the addition of the XIP kernel, the VR3 has become much more trust worthy as a PDA, staying responsive without requiring a reboot for several days of regular (on-off-on-off) PIM usage. However, it's still not at the 99.9% of Palm (but then, neither is Windows CE).

And, one last down-side: the desktop Sync software for Windows isn't finished yet and won't be until the first week in June. This means anyone buying the VR3 as a PDA to use under Windows before those dates will be missing a major component to the whole equation.

One could argue Agenda Computing might be releasing the VR3 too early. And, frankly, I couldn't recommend the VR3 to Jane Consumer PDA user who just wants some stable PIM apps and the ability to IrDA data between co-workers -- not just yet. Maybe in another month or two, after everything settles out and other people have had a chance to find the bugs. But now, today (2001.05.17), I'd recommend a Palm m105.

To a geek or developer, on the other hand, I think the VR3 is a platform worth having a serious look at. The price-point is such that it can be simple to justify its deployment at specialized and targeted applications. Porting of apps, so long as they fit within the constraints of such a small display size, cannot get much easier. It's Linux and X!

At first, Agenda plans to sell the VR3s (the three consumer models and the developer model) via their website at www.agendacomputing.com. The developer model will be available while supplies last. The consumer models will also be available at www.thinkgeek.com, and will be available via retail outlines over the coming months.

This roll-out plan is optimal for the transition to a deployed, consumer product. The more technical users will be the largest group to buy the units online, which will help find and fix any outstanding bugs in the system. It should also result in a marketed increase in the number of VR3 users who are porting and developing applications, increasing the selection for the next wave: retail users.

Being the first in a market is rarely a guarantee that the market is simply there for the taking. Agenda will no doubt face competition from others who think they can do it better or cheaper, or both. So long as it runs Linux and X, and we can port our apps between them, what do we care?

If the manufacturers want to compete to offer us better, cheaper products, great! As developers and consumers, we simply take advantage of it. Since it's an open platform, we know we can develop for it and become dependent on the platform without being told, "Oh, sorry. You need to buy this now."

Only time will tell which platform(s) will take off, and which won't, and who will be manufacturing them. Agenda Computing and the VR3 are certainly going to be one of the early players -- it will be interesting to see how they and the market adapt to each other.

Online Resources

One of the most important indicators for future success of a platform is the activity of independent developers and users. The Palm platform would have been a dead story years ago if there weren't so many developers producing so much software for the devices.

Thus, it is a great sign to see how much material is already available on the Internet for VR3 users and developers. A strong independent developer community already exists for the VR3 platform, and is growing. The list below is by no means complete, but is a good selection of what is available.

Agenda Developer Zone Official development site, hosted by Agenda Computing. Hosts CVS and FTP servers with kernel and apps.

Agenda Software Repository (ASR)
Database of software for the Agenda devices. As of 2001.05.15, there were just under 100 applications listed, with several new entries added each week.

Help Page: My Agenda
An independent site run by Andrej Cadilnik. It has extensive documentation on the devices, including how to protect PMON from being overwritten.

AGENDAwiki.COM
Based on the UseModWiki system, is a user created/edited/updated site containing useful information for Agenda users and developers.

Linux VR
Repository for kernel and tools targeted at VR MIPS processors.

Agenda Community Portal
Slashdot-like news site for Agenda-related info. Not terribly busy, but worth visiting once a week.

Today's Agenda
Another news site. Old articles worth skimming over for interesting links and software.

Apologies to anyone whose site was left out -- there were many to choose from.

Chris Halsall is the Managing Director of Ideas 4 Lease (Barbados). Chris is a specialist... at automating information gathering and presentation systems.


Return to the Linux DevCenter.

Copyright © 2009 O'Reilly Media, Inc.