{Home}
Palm Pong Clock
Some time ago, when I still lived in the US, I bought a cheap Handspring Visor (a PalmPilot clone) on eBay. I planned to "do something with it" but never got around to it and it just sat in a box. But recently I started thinking about it again. I found a cheap one locally too (around $NZ20 on trademe and was inspired to make it into a mini Pong Clock.
The plan was
- sort out a frame/mounting solution
- sort out powering it (bypassing the AAA batteries)
- write the software
I found a nice small (but deep) picture frame ("memory box") at Bunnings. Sorted.
I made a pair of "fake" AAA batteries from dowel which I could insert into the Visor's battery compartment and connect to a 3V power supply. The Visor was in very nice shape so I tried throughout to "First, Do No Harm", to modify it as little as possible. Apart from drilling two holes in the clip-on cover and one in the battery cover, the unit is in original condition and could be removed and used again. Not that anyone would, those days are long gone.
And that of course was the complication with the final (and most interesting) step: writing the software.
In 1998 I'd got myself a Palm III and wrote a program for it, CountDown, 'cos that's what I do, that's how I roll (it's been downloaded almost 16000 times?). More than 10 years later it was a real struggle to find the tools to make another (my original '98 toolset was long gone, I think it was gcc-based). I'd bought some Palm programming books back in the day, and one came with a CD which included a copy of Metrowerks CodeWarrier Lite. I managed to get this to work on Windows XP (but as of this writing it doesn't work on my new laptop with Windows 7). The "Lite" means it's limited in several ways (for example a max program size of 16k I think) but it was enough. After a week or so of fiddling, I had my program. Quite a bit simpler than my Windows Pong Clock, I was way less picky about the "miss the ball" algorithm and as Palm programs go, it's very minimal (no configuration, no true About dialog). I can't be sure how well it will behave in general, but it does the job for me.
Things to note about the program (PongClock.prc):
- It takes the time and the time format (12 or 24hr) from the Prefs.
- If the supplied voltage is 2.75V or greater when it starts up, it will disable the auto-off feature.
The clock in 12 hour mode:

In 24 hour mode:

The "About" window:

The icon:

One of the complications in putting it all together is that the Palm/Visor doesn't use flash (too expensive back then?). If the unit loses power for more than perhaps a minute, all data is lost, including installed programs. A bit of a nuisance moving it around etc. I tackled this by including a battery backup and making it relatively easy to get access to the Visor. If the unit is switched to battery then back to mains it can be popped out of the frame and switched on again, and the clock restarted (note that you can re-map the main buttons to invoke your own programs, very convenient). In a future incarnation I may disassemble a slightly less pristine Palm IIIx I have, bridge the unit's switches and pull them outside the frame. No need to open the frame. And easy access to up to four programs...
It's handy to have a second Visor/Palm because you can use it as an easy, cradle-free, way of reloading programs by using the IR Beam feature.
Pre-assembly:

Assembled:

The back:

More pictures (including video) here.
You can get a copy of the PongClock program here.