palmorb howto
This is a short howto about using a Palm as a status display with linux, simulating a LCD with 4x20 characters.
This howto was last updated 2007-01-18
Hardware
I tested this procedure with different Palm powered devices:
- Palm V, Palm OS 3.3, serial connector
- Palm IIIxe, Palm OS 4.1, serial connector
- Sony CliƩ SL-10, Palm OS 4.1, USB
All work well, except for high battery consumption on IIIxe and CliƩ - the Palm V has a builtin rechargeable battery.
I assume your Palm is already configured properly and you are able to sync and install programs on it.
I have got a USB Serial Adapter USA-19 from Keyspan. According to Keyspan's website the needed driver is included in Kernel 2.6.x and 2.4.22 or later. If you don't have this driver installed, you can recompile your kernel with the following option set:
# make menuconfig
Device Drivers --->
USB support --->
USB Serial Converter support --->
<*> USB Serial Converter support
<*> USB Keyspan USA-xxx Serial Driver
[*] USB Keyspan [your specific device]
Software
You need PalmOrb, which is currently not being actively developed. But since my old Palms don't evolve either, it's sufficient. Version 1.1a3 worked best for me, I had problems installing v1.1a4. This Alpha release has the advantage of some nicer (bigger) display modes, so I recommend it over the stable release 1.0.
For the Linux side you need at least LCDproc, which consists of LCDd and lcdproc. LCDd manages the connection between Palm and the linux machine, lcdproc gathers the data which is then sent and displayed.
Additionally, I use lcd-stuff, which works as a plugin for LCDd (as lcdproc does) and adds support for display of email, mpd status, rss and weather.
installation
PalmOrb
Use your favorite method to install palmorb.prc to your device, for me this is pilot-xfer: pilot-xfer -p /dev/ttyS3 -i palmorb.prc (or -p /dev/ttyUSB1 for USB devices) and a press on the hotsync button.
The default settings work fine, the only things worth to play with are located under Menu -> Screen...
LCDproc
Install LCDproc either by means provided by your distribution (on gentoo: emerge lcdproc) or download it from its homepage and follow provided instructions.
Configuration is fairly easy, you have to edit two files:
/etc/LCDd.conf (location may vary) — You have to set the Driver to MtxOrb (because PalmOrb emulates a Matrix Orbital LK204-25 LCD): Driver=MtxOrb and set the device entry in the section corresponding to your driver (MtxOrb in my case) to the device your palm is connected, for me it is Device=/dev/ttyS3 or Device=/dev/ttyUSB1 respectively. You may experiment with the Speed= setting if your palm complains about connection errors. I get best results with my serial devices when Speed=9600, remember that you have to set the speed in PalmOrb accordingly: Menu -> Serial... -> Baud rateThat should be all.
/etc/lcdproc.conf (location may vary): Enable/disable the "screens" of information you want (not) to be displayed by setting Active=true (or false respectively). The config file is well documented and everything should be self-explanatory.
lcd-stuff
Same applies here, the config file is /etc/lcd-stuff.conf (in my case).
The interesting part (for me) is the [weather] section, you have to go to weather.com, put in your local information and grab the "citycode" out of the address bar (mine is GMMXX0166). Put this in the corresponding place. Comment out any part you don't want displayed.
Starting
Firstly, you should place your palm in its cradle (which should be already connected to the port you specified earlier) or connect it via USB, power it on and start PalmOrb.
Next you have to start LCDd, you can do this either directly by starting LCDd from the command line, try LCDd -h or by starting it via an init script. Gentoo lets me start LCDd with /etc/init.d/LCDd start (as root, LCDd will drop root privileges after start, look at documentation for details).
Lastly, you have to start the plugins you want to use, lcdproc and lcd-stuff in my case. You can do this likewise either by starting them directly, lcdproc or lcd-stuff -f 0 ("-f 0" puts lcd-stuff in background, this should be the default, but for me it was not), or as a daemon.
I hope you can now enjoy your new status display placed conveniently beside your monitor (or everywhere you like).



