The RIM Blackberry pager has a serial port on the bottom. All of the Palm peripherals are serial. So I constructed an adapter to let me connect these things together. Some will probably work, some will probably not for various reasons.
My initial hope was to write software for the Kodak PalmPix camera. Spent a few days documenting the serial protocol but then I ran into a snag because of a proprietary picture format. You may visit here to see the PalmPix protocol.
Here are some pictures of the Dongleberry. As you can see it is constructed by surgically mating a RIM cable connector and The Bridge for Palm III. I'll write up the wiring once I ring out my latest prototype. Essentially I just wired it one to one, except that I wound up also shunting DSR & CTS since the GoType expects to get power from CTS which the RIM doesn't supply. Though I don't expect anyone to build one for themselves since there is nothing you can use it for as of yet. Heck I don't even know if I will ever solve the THUMB_ROLL_UP issue above which would suck since what good is a keyboard if you can't move the cursor.
Really this is just a hobby. It would be very interesting to see this taken to an extreme and have the PalmPix, Palm folding keyboard, Happy Hacking Cradle, Palm modem, etc etc working on a Blackberry. There doesn't appear to be a physical limitation, just a lack of motivation, or in the case of Kodak -- complete and utter apathy towards developers.
Keyberry is a keyboard driver for use with the Dongleberry adapter (see above). It currently supports three types of keyboards; any keyboard compatible with the Happy Hacking Cradle, the GoType keyboard and I just added support for the Palm Portable Keyboard.
The Palm keyboard was actually a pain to add because I had to add some components to the Dongleberry. You see the Palm keyboard relies on the +3.3V (pin 2) which I needed to add to the Dongleberry by cutting down the DTR signal by a few volts. In addition, it is finicky about the power up timing; such that you must power the +3.3V approximately .25 seconds before the DTR power. Ugh! So I cheesed it by making a sample-hold with a capacitor and I bounced the signal to allow the capacitor to supply a +3.3V signal during the DTR off duration. It seems to work reliably and even though I just used diodes to reduce the +6V to +3.3V I am not worried about RS232 variations since the Dongleberry only plugs into the RIM's proprietary connector which always provides +6V on DTR.
If I had to choose between these options I would definitely pick the GoType. I thought the GoType was a turd with the PalmPilot but with the Blackberry it really rocks. You'll get used to the small keys because they are sensitive and the fact that it is sturdy means you can carry it on your lap (well almost). The Palm keyboard was a bit of a disappointment at first, but now that I'm used to it I like it the best. Of course the Happy Hacking Cradle is a dream because you can use any old PC keyboard, but it is mostly impractical because of the cable and full-size keyboard you'll be using.
Disclaimer: I am only a hobbyist. I am not responsible for damage to your Blackberry or other devices. If you have any doubts about this wiring please either ask me or get a second opinion from an electrical engineer (which I am not). Make sure you test your connector before attaching it to any valuable devices (i.e. Blackberry). Lots of stuff could be wrong; bad etching on The Bridge (happened to me), reverse wiring, etc etc.
Keep in mind that "Palm edge" refers to signal names that are present on a Palm peripheral. We are NOT mating the Blackberry to the Palm, but rather we are mating it to Palm peripherals. So the 10 pin signals I refer to as "Palm edge" are ones that you would find on the Palm cradle for instance. Yes confusing, but basically it just means that we are trying to emulate a Palm's signals so that they will plug into Palm peripherals and so the signals are named from a peripheral standpoint rather than from the Palm's.
Also take care to recognize the position of pin 1 on each connector. I have marked them on one of the above pictures of the Dongleberry.
These are self explanatory:
Blackberry Palm edge 1&14 (GND) <--> 10 (GND) 5 (RXD) <--- 3 (TXD) 3 (TXD) ---> 5 (RXD)
Okay this is weird. Normally DTR would be hooked to the Blackberry's DSR. But I like to plug the Dongleberry into my Palm III cradle to use programmer.exe and the Palm cradle does _not_ have a DTR signal. So I use the next best thing which is RTS.
Blackberry Palm edge 4 (DSR) <--- 6 (RTS)
The Blackberry supplies +6V on DTR. The GoType uses Palm's DTR and RTS for power, actually it probably only uses RTS since the Palm's DTR is non-standard and cannot be turned off. Blackberry doesn't have RTS signal so I just use DTR for both DTR and RTS.
Blackberry Palm edge 2 (DTR) ---> 1&4 (DSR & CTS)
This final mess is optional. It was only added to get the Palm Portable Keyboard (PPK) to work. It does two things, it makes a +3.3V (approx) signal for pin 2 of the Palm edge. And it provides a way to hold a charge for a second or so on this pin so that I can create the power up timing required for the PPK.
Blackberry Palm edge 2 (DTR) -- four .7 signal diodes -->|-->|-->|-->|--- 2 (+3.3V) |+ === 100uF capacitor | 1 (GND) -------------------------------------------
I must admit that when I got my RIM950 I worked feverishly to get a base of software written. I found the default software to be too limiting, or in the 950 case it didn't even come with software -- besides the Message and Address book. So the first thing was to write a Date book application.
For the Palm I wrote a program called HotDate which allowed you to navigate your appointments. I wished I had it on the RIM, and after a few weeks of porting the code my wish came true. Now I use it for everything.. it is the control center for my RIM. Though I am still adding mundane features to it (stuff is hard-coded for my prefs) and regrettably I must weed out some licensed code before I can release it.
GPL licensed free software.
Sparrow is a message application that is similar to the built-in messaging software. There is nothing particularly wrong with the built-in RIM message application, it just doesn't work very well for me. I find the header listing to be confusing since it interleaves day markers in the list, and it wastes too much screen just to show an envelope icon. I wanted something that was more pleasant such as my xfmail software which I run on my desktop; i.e. folders and colorizing.
Folders; I receive lots of mail so I need folders to separate the entertainment and fluff from the really important stuff. That's what folders do, you configure a header field string rule (or several) and it lets you view a list of matching records. In addition you can set a different tone/vibrate notification for each folder. So far so good, the main screen shows the folders and their total and unread message counts.
I've been using this long enough and it seems okay.. so I'm now building binaries into the distribution. There are bound to still be issues, one in particular which I run into every now and again whereby the message counts are incorrect. I intend to put work-arounds (i.e. the Recalculate counts menu option) in place until such time that these bugs can be corrected.
Development on Sparrow is slowing down a bit since I don't find that I need much more to get my work done. In fact if I had one thing that I would spend some time on it would be to make a new screen saver that showed the specific information that I always manually request on the pager. Something like a mixture of Nasdaq, Dow, portfolio, and perhaps news headlines and slashdot headlines. I figure an easy way would be to first mock up a replacement screen saver, and then add a list of items which can be programmed via a special email. Furthermore, I would like to get somewhere in hacking the go.web browser so that I can force it to view a particular URL.
A further note. There really is no documentation on this project other than this page and the FAQ link on the right. Of course you can look through the source code and find my comments if you have any questions about how this works. Please realize that this software was written out of neccessity and not intended to spawn any particular commercial interest. As such I have no plans to make it anything other than a stable and useful piece of software.. so don't be surprised if my interests fade a bit and I move on to other things once Sparrow works how *I* want. ABSOLUTELY NO WARRANTY.
Feedback: Chris Faherty <firstname.lastname@example.org>