Article: A developer’s perspective on Sharp’s Zaurus SL-5000D Linux/Java PDA
Nov 12, 2001 — by LinuxDevices Staff — from the LinuxDevices Archive — 28 viewsForeword: This article is the seventh in a LinuxDevices.com series on Exploring Linux PDA Alternatives by Jerry Epplin that explores the history, status, alternative architectures, and future developments of Linux on PDAs and handheld devices. In this installment, Epplin takes a close-up look at the new Sharp Electronics Zaurus SL-5000D Linux/Java PDA developer edition, from both a user and developer point of view. Note: refer to this device profile for a detailed list of the Zaurus SL-5000D's features and specs, and this article for additional (and larger) photos.
A milestone for Linux in the PDA market
With the announcement of the Sharp Zaurus SL-5000D, Linux has reached maturity as an operating system for handheld devices. The use of Linux was previously limited in production units to the Agenda Computing VR3 and the Compaq iPAQ. The VR3 is a noble effort to commercialize a Linux PDA, and the PIM applications Agenda provided have become widely used in other projects, but it has not yet gained wide acceptance, perhaps because it is relatively underpowered and does not have a color display. The handhelds.org project for the iPAQ, sponsored by Compaq, is admirably open; but it is only a sideline project — the iPAQ is shipped with a Microsoft operating system, and only a small percentage of intrepid individuals has loaded their iPAQs with Linux.
So the Zaurus is the first PDA from a major electronics company that uses Linux as its primary operating system. And so far, it appears that Sharp both “gets” the open source concept and is serious and committed to advancing it in the Zaurus. As we shall see, Sharp has put considerable effort into implementing and documenting the Zaurus, including the process of developing software for it. It's not surprising that Sharp, as an established manufacturer, has produced a device that users will find attractive. On the other hand it is, perhaps, somewhat surprising that Sharp's new PDA will also likely appeal to a wide range of software developers, ranging from kernel hackers through Java programmers.
First impressions
Looking at the specifications reported earlier, it is clear that the Zaurus has mostly typical hardware specs for a high-end PDA — a 206 MHz StrongARM SA-1110 processor, 16 MB of flash, 32 MB of RAM, a compact flash (CF) slot, and a 240×320 LCD display; these put it roughly on a par with the older iPAQs. Setting the Zaurus apart somewhat are its 16-bit color, its secure digital (SD) slot, and — most of all — its full QWERTY keyboard accessible by a slide cover. The developer units are priced at $399; this would make the Zaurus competitive with other high-end PDAs, but pricing has not yet been announced for consumer units, for which the release date is also yet to be announced.Physically, the Zaurus has the solid feel and good design that one would expect from a consumer device from a major manufacturer. Like the iPAQ, it has four user buttons below the touchscreen, adding a 'home' button and 'cancel' and 'OK' buttons. It also has, like the iPAQ, four directional buttons arranged on a solid circular plate. The iPAQ has a small speaker in the middle of the directional buttons, while the Zaurus simply has yet another button there; sound is provided only through a headphone jack. So the Zaurus has plenty of buttons on its front panel; it is also thankfully free of the side buttons that so many PDAs have — it's virtually impossible to hold the VR3, for example, without pressing one of its side buttons.
One of the nicer features of the Zaurus, distinguishing it from the iPAQ, is its removable battery. Thus you can keep a spare or replace the battery if it goes bad without replacing the whole unit.
Unique QWERTY keyboard
But by far the most distinctive physical feature of the Zaurus is its full QWERTY keyboard, accessible by sliding the panel containing the buttons away from the touchscreen panel. This is extraordinarily well designed, with a reassuring click-click as it opens and closes, and having a solid feel even when extended. The keyboard itself is similar to those found on the Blackberry email devices; you need some practice to get to the point of pressing only one key at a time.Touch-typing is of course out of the question, but I found that holding the unit in both hands and poking at the keys with my thumbs produced results pretty quickly. Someone with larger thumbs might find otherwise, but I find that this approach is significantly more practical than the more traditional PDA text input methods of handwriting recognition or using a pickboard.
The question of what to do with the stylus while you're using the keyboard is still unanswered, as it is not practical to press at the keys with the stylus. The stylus is round except for a tab at the end; it will happily roll away if you set it on a unstable surface with the tab hanging over the edge. I think you'll see Zaurus users poking at their keyboard with a stylus stuck in their mouths or behind their ears. At any rate, this is the first Linux-based PDA I've encountered that I consider a competitor to pen and paper for taking notes, and finding one's way way around the Linux environment using a shell is finally not a frustrating experience.
Software overview
The approach Sharp has taken for the unit's software environment is exactly the way open source software deployment should work. A manufacturer carefully chooses some preexisting open source projects, integrates them into a consistent whole, and packages and documents the entire project as a unit. Sharp has succeeded in integrating some diverse components nearly seamlessly both from a user's and a developer's perspective.
The applications are well designed, with the sparse but effective user interfaces one looks for in PDA apps. This is the Qt Palmtop Environment (QPE) about which I have written previously, but Trolltech has made some significant improvements since I wrote that article. To get a feel for the environment, you can run a simulation of an older version of QPE on your desktop. Some simple but enjoyable games are included with the Zaurus; my nine year old son, though accustomed to 3D console games, quickly became addicted to the “Snake” game and tried to monopolize the unit.
For syncing with your PC, Sharp provides Trolltech's Qt Palmtop Center, still unreleased as of this writing. I did receive a prerelease version which currently only supports Windows. After some grumbling, I sought out a Windows 2000 computer and installed the Palmtop Center. Like the other Trolltech applications I've seen, the Qt Palmtop Center has a tidy and intuitive user interface. It synced smartly with the Zaurus, and generally worked well. A Linux version is planned; this should be easy to implement with the cross-platform Qt API.
Also available is something called Intellisync for SL, which synchronizes with Microsoft Outlook. Anyone interested in a review on this will have to read elsewhere; I'm not set up for it.
Embedded Linux software stack
At the core of the Zaurus software environment is, of course, Linux. This is ARM Linux 2.4.6 in my unit, with Russell King's patches and Nicolas Pitre's StrongARM patches. To this by now widely used base, Sharp has added the device drivers necessary for their specific peripherals. Sharp calls their kernel “Lineo Embedix”; though it is not clear what Lineo brings to the party — at least from the point of view of the kernel. Basic functionality is provided by BusyBox, an open source project now maintained by Lineo. In any case, it should not be necessary to purchase Embedix to write software for the Zaurus — freely available tools will work just fine.
On top of Linux lies Qt/Embedded, Trolltech's framebuffer-based GUI development package using the same API as the desktop version of Qt, on which the KDE desktop environment is based. Qt/Embedded is built directly on the Linux framebuffer device rather than through X as is the desktop version of Qt. This saves the overhead of X at the expense of some flexibility. Few designers will miss X as Qt is more than robust enough to meet just about anyone's GUI needs; the main drawback to bypassing X is simply that it complicates porting strictly X-based applications to the environment.
In conjunction with Qt/Embedded, QPE provides a window manager, some screens, an application launcher, input methods, and a number of applications. QPE has become increasingly popular as an environment for Linux-based PDAs; see my earlier article on its use with the Compaq iPAQ.
The combination of Qt/Embedded and QPE provides a nice environment for PDA software development. Many developers consider the C++ based Qt to be an extremely rational and elegant API. There are plenty of programmers familiar with it from desktop Linux development. Also, Trolltech's documentation is excellent, so newcomers should find it easy to become acclimated to the environment. Sharp should have no trouble attracting third-party help in developing applications for the Zaurus based on the Trolltech packages alone.
Zaurus software architecture [Click to enlarge.]
All this and Java too
Not quite content with providing the elegant Qt for developing applications for the Zaurus, Sharp also implements a Java platform as an alternative. The particular environment chosen is Jeode, an implementation of Sun's PersonalJava Application Environment by Insignia Solutions. PersonalJava is one of the many Java products intended to adapt the language to every conceivable use. This product is a runtime environment intended for small footprint network-connected devices.
Identifying PersonalJava's particular place within the complicated Java universe requires a diagram, and indeed Sharp helpfully includes one in their well-written documentation, along with a page of text description of the Java family tree.
Jeode is an independent implementation of PersonalJava, one that has passed Sun's compatibility tests. It uses something called “dynamic adaptive compilation”, which attempts to identify frequently used execution paths and compiles them from bytecode, leaving the other execution paths to be interpreted. Insignia reports better performance from this patented approach than from the more typical JIT compilation, though the example Jeode programs provided with the Zaurus still load more slowly than the QPE applications.
One cannot argue with the wisdom of attracting a horde of Java programmers to Zaurus development. But if you are, like me, an old embedded system curmudgeon who questions the wisdom of adding a bytecode interpreter to a small footprint device — or if you are slightly uncomfortable with Java licensing — you can simply throw the Java environment away. This will save some space for your Qt applications. It is perhaps significant that Sharp has not themselves implemented any of the Zaurus applications in Java; they are currently all part of the QPE environment.
Developing for the Zaurus
As we have seen, Sharp actually wrote very little new code for the Zaurus. The OS is provided by Linux; the development environment by Qt/Embedded, QPE, and Java; and the applications by QPE. Nothing wrong with that, of course — after all, this is how open source software is supposed to work!
To their credit, Sharp has done an admirable job of documenting the entire process of software development, an area usually given short shrift in open source projects. Sharp has produced documents introducing the entire environment and each of the major components, describing how they fit together in the Zaurus, and providing good links for further information on the components.
Consequently, many developers will find the experience of developing for the Zaurus friendlier than developing for PDA projects like the VR3 and handhelds.org, which rely heavily on mailing lists and sketchy documentation. The Sharp documentation is well written and well organized, so that an experienced programmer should be able to develop an idea of how to solve a problem using the Zaurus in short order.
The Zaurus is sure to quickly have other environments ported to it, particularly the Familiar distribution for the iPAQ, from which the Zaurus borrows the ipkg packaging system. Porting Familiar to it should be a straightforward exercise, consisting simply of pairing the bulk of Familiar to the Zaurus device drivers. Of course, the opposite is also true — porting the Zaurus environment to the iPAQ should be similarly straightforward. As of this writing Sharp has not posted its kernel code and detailed hardware specs. It is far too early to start submitting “Sharp violates GPL!” articles to Slashdot, especially since the unit is not yet publicly available. But it would certainly be in Sharp's interest to post this information as soon as possible so that Linux PDA developers, who are already intensely interested in the Zaurus, can start working on it.
Some users will have a few nits about Sharp's developer support. Instead of the more traditional mailing lists for discussion and support, Sharp has a web-based bulletin board, a medium that many find annoying. It would probably be in everyone's interest for Sharp to use the more accepted mailing list medium, or at least link the bulletin board to a mailing list. Nevertheless, the support provided on the bulletin board has been timely, attentive, and of top quality. A Yahoo group is also available as an alternative.
Also, the web site asks for registration of the user's personal information before providing documentation and support, a requirement against which many open source advocates react strongly. One may consider this reaction naive, but it forms part of the initial perception of Sharp and the Zaurus, so Sharp should consider whether the value of the information gained outweighs the negative initial perception that many have. In any case, one can simply bypass the registration screen by going here.
A great beginning
Sharp is so far doing most of the right things in its handling of the Zaurus development environment. They have chosen the right components to integrate — with Linux, Qt/Embedded, and QPE forming an elegant and efficient platform. Even the choice of Java is defensible as it brings in a crowd of programmers who would otherwise not be interested in the Zaurus.
Overall, the polish and quality of integration of the environment and applications are excellent. Their documentation and support are first rate.
We will have to see whether Sharp's commitment to the open source model continues after some competitor inevitably incorporates Sharp's entire software environment into their own product, leveraging Sharp's work. One can only hope that they remain committed to the open source development model when this occurs. But so far they are showing an admirable understanding of the model.
About the author: Jerry Epplin has written embedded software for the past fifteen years, primarily for medical devices. He can be reached at [email protected]
The following articles and news items may also be of interest . . .
- 3rd way: Sharp pits Linux+Java against Palm/PocketPC
- Device Profile: Sharp Zaurus Linux/Java PDA
- A closeup look at Sharp's new Zaurus Linux-PDA
- Sharp announces November availability of Linux/Java PDA
- The Linux-PDA and PDA-Linux Quick Reference Guide
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.