I don’t usually follow the latest gadgets and tend to skip a few generations of products before getting a new one. That’s what happened recently when I switched from my Pocket PC staring Windows Mobile 2003 to the HTC Dream (aka G1) with Android. That’s a 6 years gap between technologies and involved some workaround to migrate the contact data.
Finally, yesterday, I took the time to transfer everything properly. This was a one time operation and here is how I proceeded. The main constraints being that I don’t have a Windows computer at hand anymore.
The process involves using a Funambol server, syncing the PDA with it and finally getting the data to the Android phone. The connection between the PDA and the server will be done through the USB cradle and the connection between the phone and the server through the Wifi network.
Pretty straightforward: go to https://www.forge.funambol.org/download/ and get the linux server. Unpack the archive and install in /opt. At the end of the installation, run the server. Check on http://localhost:8080/funambol/ds that it is running. Then a little configuration is needed:
cd /opt/Funambol admin/bin/funamboladmin
That will open the administration interface. Connect as an admin with the default password (‘sa’) and, on the server setting, set the hostname to something like this http://192.168.5.1:8080/funambol/ds (192.168.5.1 will be the address of the server on the usb connection with the pocket pc).
That’s it. Now comes the difficult part.
Syncing the Pocket PC
Took me a while, and I tried quite a bit of stuff that might not be necessary to get the connection working (install odccm, install synce-trayicon, load the ipaq module…). After messing around, I found out (from http://ftp.linuxchannel.net/apps/kernel/Documentation/usb/usb-serial.txt) that using
MYIP=192.168.5.1 REMOTEIP=192.168.5.2 MYDNS=ip_of_my_dns killall -9 pppd sudo /usr/sbin/pppd /dev/ttyUSB0 \ connect "/usr/sbin/chat -v TIMEOUT 60 CLIENT 'CLIENTSERVER\c'" \ nocrtscts local debug passive $MYIP:$REMOTEIP ms-dns $MYDNS noauth \ proxyarp
did the trick.
The second step is to find the correct funambol plugin willing to work on a 6-year-old device. The correct version was: funambol-pocketpc-2003-plugin-6.0.19.exe available from http://forge.ow2.org/project/download.php?group_id=96&file_id=8479.
Once it is installed with the connection up, the syncing is simple: run funambol on the pda, connect to http://192.168.5.1:8080/funambol/ds with the login and password of your choice (just remember it for the next step).
Bring it on the phone
As we will use a different connection to the server, we need to reconfigure the funambol hostname to http://192.168.4.1:8080/funambol/ds. In my case, 192.168.4.255 is my internal wifi network for which my linux server play the role of the access point (AP). With the android phone, just connect to the wifi network, on the android market, download the funambol application, connect to your funambol server and voila, you’re data just became 6 years younger with the additional benefit of being in sync with your Google account.
Data are on the cloud!