Category Archives: PicoGUI



Another nostalgic post about an old project that I’m purging from my closet… This time from late-1999 through mid-2000.

The Kiwi was a rather ambitious built-from-scratch Linux PDA that I spent my high school years on. My original goal for this project was reminiscent of the One Laptop Per Child project. I liked typing my notes, but of course laptops were prohibitively expensive. I wanted to design a very simple PDA, with a keyboard, that I could sell to my classmates for $100 a unit.

[flickr id=”5920009823″ thumbnail=”medium_640″ overlay=”false” size=”large” group=”” align=”none”]

To reach that low cost, I needed something extremely simple:

  • A cheap 16 MHz system on a chip, the Motorola 68EZ328 “DragonBall”
  • Minimal amounts of DRAM and Flash
  • A cheap laptop-style matrix keyboard, sourced from a surplus shop.
  • Very low-resolution grayscale LCD, with no touch screen.

With these tight constraints, the project was actually more like a souped up AlphaSmart than a bare-bones PDA. It ran uCLinux, and I could use the uCSimm board to start prototyping the software. This project eventually led to the PicoGUI project, as I needed a special kind of GUI to fit such a small device. And developing PicoGUI led to starting the service.

[flickr id=”5920580416″ thumbnail=”medium_640″ overlay=”false” size=”small” group=”” align=”none”]

The Kiwi prototype was done with a hellish combination of a custom PCB, wire-wrapping, and dead-bug surface mount rework. The PCB acted mainly as an SMT prototyping adapter. All the real interconnection was done with wire-wrapping, as I didn’t trust my design enough to bake it into a PCB right away. Of course, the one thing the PCB was designed to do, it didn’t. So the DRAM chip and serial level-shifter ended up grotesquely blue-wired.

[flickr id=”5920577826″ thumbnail=”medium_640″ overlay=”false” size=”small” group=”” align=”none”]

Despite the mess, this machine did boot Linux. I wrote my own bootloader for it, which I used for initial hardware bringup. It booted the uCLinux kernel from flash, and ran PicoGUI on the tiny LCD. Like most of my projects, it was never finished. PicoGUI took over as the focus of my attention, and I targeted my GUI at larger and less haphazard platforms.


PicoGUI… not quite dead yet?

Way back in 1999, when I was in high school, I started my own embedded GUI project for a little 68EZ328-based Linux machine I wire-wrapped. This turned into PicoGUI, which I spent about 4 years working on. It was a great learning experience, but I eventually stopped maintaining PicoGUI. (I wrote a short document at the time, explaining why.)

Apparently there’s at least one device that still runs it… the mvBlueLYNX networked camera from MATRIX VISION. The manual has a whole section on PicoGUI, including a link to some Doxygen’ed docs for the client library, configuration options for pgserver, and so on.

Looks like they’re using PicoGUI’s “Classique” (Classic Mac OS) theme 🙂

2002 seems so long ago

Somehow I end up revisiting my past life as an embedded systems GUI hacker from time to time. I’m not entirely sure what prompted it, but I realized that PicoGUI‘s site is still up and running on a full Plone instance that Zettai has been kind enough to provide for us.

This is clearly overkill for a very dead, very static site. I used a combination of httrack and some manual hacks to create a static archive of the site, and moved it to a virtual host on zero.

This got me thinking about all the other project sites I had during that era. PicoLinux is still running on Sourceforge, with a nostalgic collection of screenshots and news items. The Kiwi site, however, is completely missing. Even its sourceforge project page is nowhere to be found. Luckily, I backed up the Kiwi photos in my own gallery a while back.