view · edit · print · history

Palm as LCD-Display or terminal

On this page I want to describe how you can connect a Palm to your NSLU2 for using it as a normal LCD-display to display informations about your Slug, Traffic, memory, (up)time, MP3-tags (if you using your slug as an mp3-player like me), ....
Or you can use it as a terminal to remote-control the NSLU2 with a VT100? emulator application so you don't need a PC to control the NSLU2. I have tested it with unslung and openslug and with my old Palm Pilot with PalmOS 2.0. [quantumphaze: I have this working on a Palm Zire (2MB OS4?) which has no serial port, just USB]

  • If using the Palm Pilot's serial cradle you need a USB2Serial converter between it and the Slug.
I have bought it for 4€
(my converter has a pl2303 chipset, so if you buy a new one look for it, I don't know if it work with other chipset's)
  • You can plug newer Palm handhelds directly into a USB port as they seem to emulate a USB2serial? converter and show up as /dev/ttyUSB0. You may need to install kernel-module-visor.


  • You must install the kernel-module-pl2303 from ipkg and kernel-module-usbserial
    (last one should be installed automatic when using ipkg)
  • connect the USB2Serial converter to the slug and load the pl2303 module with modprobe.
  • check with lsmod if the usbserial and pl2303 module is loaded
  • check with dmesg if your USB2Serial converter is detected:
    my output:
    usb 3-1.2: new full speed USB device using ohci_hcd and address 6
    pl2303 3-1.2:1.0: PL-2303 converter detected
    usb 3-1.2: PL-2303 converter now attached to ttyUSB0

Palm as LCD:

  • NSLU2:
    • Install lcdproc from ipkg or build it (Sources at http://www.lcdproc.net/, LCDd is a part of it)
      • LCDd must be compiled with the MtxOrb-Module.
      • edit config-file /etc/LCDd.conf for LCDd:
    • start LCDd, this is the server application
    • start lcdproc, that's the client for LCDd
    • you can use other clients for LCDd (look at http://www.lcdproc.net/)
    • you can use any other LCD-software that can handle a serial MatrixOrbital display to communicate with the Palm
  • Palm:
    Screenshots at http://palmorb.sourceforge.net/screenshots.html
    For your Palm you need this application: http://palmorb.sourceforge.net/
    PalmOrb is a Software that emulates an MatrixOrbital-Display on any Palm with PalmOS 2.0 or higher, for more information look at the author's page. You must install this application on your Palm. If you have any troubles with your palm, try the latest Alpha/Beta (v1.1a4) Release of palmorb because it fixes some connection issues and there where added support for more handspring visors.

Palm as terminal:

  • NSLU2:
    • Enable terminal access with this command: getty -h -L ttyUSB0 9600 vt100
    • to load on (re)boot:
      • insert into /etc/inittab before the line starting with 'l3:3:wait...'
        T0:23:respawn:/sbin/getty -h -L ttyUSB0 9600 vt100
      • ensure that your serial module is loaded during bootup:
        modprobe pl2303
      • ln -s /etc/init.d/loadmodules /etc/rc3.d/S99loadmodules
  • Palm:
    • Install a terminal application on your palm, I have tested "ptelnet" and "PiloT VT 100" successfully.
    • Ensure that that you setup the same speed defined with the getty-command above in that application.
    • The serial connection is off by default on the Palm unless HotSyncing?. The terminal emulator app must switch it on (ptelnet has a [ON] button)

Please add your success/fail storry's

A succes story

I plugged (naief?) the usb/serial cable in USB port 1 of the SLUG (USB port 2 is used by my disk)

Using modprobe did not work on my unslung-ed NSLU2. After digging around I found the 'insmod' command. First:

insmod usbserial
insmod pl2303

The lsmod command gave me the following info:

# lsmod
Module Size Used by Tainted: P\\ pl2303 10212 0 (unused)
usbserial 18480 0 [pl2303]
ufsd 164872 0 (unused)
x1226-rtc 3664 0
rbuttons 1304 0 (unused)
pbuttons 800 0 (unused)
ixp425_eth 17116 0 (unused)
ixp400 608216 0 [ixp425_eth]

The dmesg command showed me the following info (amongst many more lines.....)

usb.c: registered new driver serial
usbserial.c: USB Serial support registered for Generic
usbserial.c: USB Serial Driver core v1.4
usbserial.c: USB Serial support registered for PL-2303
usbserial.c: PL-2303 converter detected
usbserial.c: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.11
Now I could you the getty command mentioned earlier on this page in combination with ptelnet on my (very old) PalmV. It worked!!

Another success story

My old Palm Zire was gathering dust in a drawer until I rediscovered its possible usefulness as a terminal for my NSLU2 running SlugOS. After testing out its terminal ability on my laptop I simply changed the inittab line as per above and installed kernel-module-visor and kernel-module-usbserial. It seems that the newer USB based Palms pretend to be two USB2serial? devices that "connect" when using HotSync? or an app starts a connection giving be both /dev/ttyUSB0 and ttyUSB1 (I used the ttyUSB0 and have no idea why there are two interfaces).

Starting up ptelnet, configuring and tapping the [ON] button it may not display anything. Bare with it for a while and send a few 'enter/return' chars and eventually you will be presented with the getty screen.

Many (n)curses based apps can be unusable on the 120x120 screen since they expect a minimum of 80 columns.

Unsuccessful story

Mine is a Visor Deluxe. I am using the USB craddle to connect it to my slug. The problem is that Visor is only detected while it is tryng to sync, once the sync'ing process fails it disconnects, so I never get a chance to telnet from Visor to Slug.

Using dmesg this is what I get to see:

hub.c: new USB device 00:01.0-1, assigned address 2
Device descriptor:8 bytes received.
Device descriptor:18 bytes received.
usbserial.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x converter detected
visor.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x: Number of ports: 2
visor.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x: port 2, is for HotSync use and is bound to ttyUSB0
visor.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x: port 0, is for Generic use and is bound to ttyUSB1
usbserial.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
usbserial.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
usb.c: USB disconnect on device 00:01.0-1 address 2
visor.c: Bytes In = 0 Bytes Out = 86
usbserial.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x converter now disconnected from ttyUSB0
usbserial.c: Handspring Visor / Treo / Palm 4.0 / `CliÈ 4.x converter now disconnected from ttyUSB1

You could try the latest Alpha/Beta Release of palmorb, look above.

This page is password protected.

The password is "palmlcd". Let's see if that stops the automated wiki spam.