Once he finds someting that works for him, my father sticks with it. Which is why, until very recently, he was still using his Palm Pilot Vx. But all things come to an end, and now that he and Mom got His and Her’s Samsung Galaxy S‘s, it was time to get his contacts migrated from the Pilot to Gmail, so they could get picked up by the Android.
This turned out to be less straight-forward and more challenging than anticipated. So, although I don’t expect many will need to run through this, I’m posting for the few who might. This’ll save you a couple of days of heartache.
The first step was to synchronize the data on the Palm with the Palm Desktop. Dad hadn’t been synching his Palm for about a year; and he no longer had a computer with a serial port. The Palm dock had a DB9 serial interface, and I was able to get a serial to USB adapter for about $15. (In passing, you’ll be subjected to egregiously poor service at Canada Computers in the Newtonbrook plaza, North York. Even the manager just mumbled at me and walked away when I asked for help. The one bright spot in this bleak and grim landscape was Andrew, who not only looked up the part I wanted, but went to the back to ferret it out. Thanks Andrew!)
The Bytecc BT-DB925 comes with a mini CD with drivers and such. (Pro tip: don’t try using a mini CD in a MacBook Pro. If you get one stuck in there, tip the MBP on its side, with the CD slot facing down and quickly lift the machine. Eventually the mini CD will make an appearance at the slot, and you’ll be able to withdraw it.) If you can’t use the the CD, you can download drivers from the site. But the drivers are only available for the Windows platforms. So I used my Parallels virtual machine with XP.
The drivers also have a little utility which allows you to change the COM port. Very handy.
Having connected the dock to the computer, we now need to install the Palm Desktop software to sync. Although there are versions of the software for the Mac, they’re PowerPC, and this is no longer supported on OSX. In any case, our serial/USB connection is to our Windows XP virtual machine; so we need to download a Windows version of the app.
It took a while to get the sync working, but it eventually did, partially. It crapped out before it finished, but it had already gone through the contact part, and I got the file (yay), which I found at C:\Program Files\palmOne\
I was hoping the Palm Desktop software would recognize the file it created, and allow me to export it as a CSV, but I found no joy there. It wouldn’t display the contacts, or allow me to import a PDB file.
OK, so maybe I can find a conversion program for PDB to CSV? There were a number of these utilities around, but the quality, when they actually ran, was not inspiring. I also found an online service, but it looked like they were charging 10cents a record, which would have turned into $55, and by this time my confidence wasn’t high.
That’s when I ran across a PHP library called PHP-PDB which reads and writes various types of PDB files. It looks like it hasn’t been updated in a decade, but that’s OK, because neither has the Palm specification.
At this point I’d like to extend my enormous gratitude to the author(s) of this library, for their hard work, and their generosity in publishing it under the GPL.
It comes with a demo program which I modified to read the data and write it out in CSV format. This worked marvelously well, and I was preparing to congratulate myself, when I found that for some reason Gmail wouldn’t process this file. Colour me disappointed.
Although Gmail recognizes CSV files from a number of sources, such as Hotmail, Yahoo, Outlook, and so forth, it seems to require specific formats. So it occurred to me to export part of my Gmail contacts to CSV, and use that as the template for my import file. This worked with one exception: I couldn’t find a way to import the title and company fields. So I copied them into the notes field.
I’ve packaged up the whole thing so you can convert your own PDB file for import into Gmail. Drop me a line if this is at all useful to you.