Not too long ago I bought and unpacked a brand-new Palm T|X cradle kit, and since then my once daily driven Palm T|X handheld is sitting beautifully in its own little place beside my desktop monitor stand, patiently waiting until I have the time to see what I can still do with it in 2025.
Google Maps warns me not to use it while driving, but without GPS or traffic data, it actually has nothing over a paper map (I do not live in San Fransisco)
a few years ago, I found drivers that would allow the Palm T|X to use a somewhat more modern and secure Wi-Fi than what it originally supported. Not quite as modern and secure as what we use at home, but if I’ve ever had…
Not too long ago I bought and unpacked a brand-new Palm T|X cradle kit, and since then my once daily driven Palm T|X handheld is sitting beautifully in its own little place beside my desktop monitor stand, patiently waiting until I have the time to see what I can still do with it in 2025.
Google Maps warns me not to use it while driving, but without GPS or traffic data, it actually has nothing over a paper map (I do not live in San Fransisco)
a few years ago, I found drivers that would allow the Palm T|X to use a somewhat more modern and secure Wi-Fi than what it originally supported. Not quite as modern and secure as what we use at home, but if I’ve ever had a reason to create a dedicated guest network, this would be it. My router does not allow devices connected to that network to talk to each other, and they’re in a different IP range from my normal network. This network is for guests and unsafe devices only.
When I was still daily driving the PDA, I bought a few applications, such as Agendus Premier, that has occupied a place in my memory as the best digital calendar that I’ve ever used, though I’ve barely retained an idea what it was like, so I can’t really compare it to today’s digital calendars without using it again.
In a folder that has been somewhere in my ~/ ever since, sits a file with official registration codes for Pocket Tunes, CorePlayer Mobile for PalmOS, and MMPLayer, alongside the original installable files of all of them. As long as they don’t need a registration server to be online, they should still work.
Originally, Palm PDAs would not go online themselves but synchronise with a PC to send and receive emails, update calendars and contacts, and also, to install software. Both KPilot and GnomePilot, which would synchronise Palm devices with their own calendar and contacts data, are very much unmaintained. However, both J-Pilot, which can also synchronise with Palm PDAs, and its dependency pilot-link, seem to be forked and even maintained on GitHub, at least in a manner that makes them compile on a 2025 PC.
There are also (slightly) newer solutions, like palm-sync, but the instruction to npm install --save palm-sync failed on my machine. I should look into that. For now though, according to the Arch wiki, J-Pilot uses pseudo device nodes under /dev/bus/usb/ to synchronise. These are not to be confused with /dev/ttyUSB0 and 1 that appear whenever I connect the cradle with the Palm inserted.
Agendus accepted the registration code, but I have no way to synchronise it with my caldav server
$ lsusb | grep Palm
Bus 001 Device 013: ID 0830:0061 Palm,⏎
Inc. Lifedrive / Treo 650/680 / Tunsten⏎
E2/T5/TX / Centro / Zire 21/31/72 / Z22
$ ll /dev/bus/usb/001/013
crw-rw-r-- 1 root root 189, 12 28 okt⏎
14:46 /dev/bus/usb/001/013
I’ve aliased ls -l to ll
But the node is owned by root:root and since I’m not inclined to start J-Pilot as root or make my user part of the root group (thereby allowing any application I start to do anything) I had to change that group ownership. Udev is responsible for device file creation, so I needed a dedicated udev rule.
Palm OS allows you to launch any application using the four function buttons below the screen
Writing udev rules is not that difficult. Using the line below, you get all you need to know from a device, conveniently presented in the same format that you have to use in your rule:
$ udevadm info --attribute-walk⏎
--path=$(udevadm info⏎
--query=path⏎
--name=/dev/ttyUSB0)
With that knowledge, I could create the rule itself:
$ sudo vim /etc/udev/rules.d/⏎
11-palm.rules
ACTION=="add", SUBSYSTEM=="usb",⏎
DRIVERS=="usb", ATTRS{idVendor}=="0830",⏎
ATTRS{idProduct}=="0061", GROUP="uucp",⏎
MODE="0666"
The group is the one that the /dev/ttyUSB* nodes already had, so that seemed appropriate. After re-inserting the USB plug, I found that the pseudo device now also had that group, and all I had to do was make myself a member and re-log, after which I could install Agendus Premier, Opera Mini and Google Maps. They all installed without problem, though Opera seemed to need a JVM, which I found in my folder as well.
If I ever want to find out what exactly made Agendus so much better than a modern Android, or even a paper calendar, I have to figure out a way to synchronise it with my calendars. Since my Palm only connects to my guest network, it won’t be able reach any of my self-hosted services, like Radicale. There is jpilot-icalendar, which is a J-Pilot plugin, but ./configure wants a pilot-link header file that isn’t there, so that’s another puzzle.