Random Projects

This page is a collection of projects I've worked on and taken the time to document. I do a lot of things but often don't bother to take pictures or do a writeup, but I'll try to put more cool stuff here as time permits.

Palm Pilot date codes

The history of mobile devices is something I've been interested in for a while, and Palm handhelds are particularly interesting to me for being one of the first practical and usable portable computers. Since they're not particularly valuable at the moment I've picked up a few over the years. A few days ago I was curious if it's possible to figure out when a Palm was made based on the serial number so I spent a while looking at serial numbers and dates of introduction/discontinuation and think I've figured it out.

I started by trying to find something that looked like a year, and it looks like the 8th digit of the serial number is the last digit of the year of manufacture, this digit is always a number between 1 and 9, and in all the serial numbers I've looked at, matches up with years a particular model was made.

Identifying the month and day took a bit more looking, but I believe digits 6 and 7 contain this information. Digit 6 appears to always be either a digit between 1 and 9, or the letters A, B, or C. I'm guessing that 1-9 represent the respective months, then A = October, B = November, C = December. The scheme for the day appears to be similar, except that the letters go higher. I've never seen the letters "I" or "O" in position 6 or 7, I'm guessing those are not used to avoid confusion with 1 and 0.

I wrote a quick Python script for decoding date of manufacture based on these assumptions, you can find it here. It should work in Python 2.7 and 3. I commented my code and put in a few sanity checks for things like the number of days in each month. If you've found a serial number that doesn't make sense based on this scheme I'd be curious to see it. The script produces dates that look reasonable for US Robotics, 3Com, and Palm Inc. manufactured devices. I don't expect it to work for Handspring, Sony, and other third parties as they probably used their own encoding scheme.