Tuesday, October 11, 2005

Zaurus pdaXrom IR Keyboard Drivers (part 5)

(continued from part 4)

It's been an insanely busy week and it's only Tuesday! But I am still on track for a "Zkbdd" alpha release by the end of the week. I have deviated so much from the original "Kbdd" code base that I'm going to rename this project to avoid confusion. Because of the Zaurus specific re-architecting, there's no way my changes could ever be rolled back into Kbdd. Better to just declare this an independent fork of Kbdd. I do wish I had a catchier name ... the name Zkbdd looks like output from a broken keyboard driver :)

I've split the code up into one source file per keyboard type plus one source file for the main daemon and support functions. Adding a driver for a new keyboard type will be pretty trivial for even a green C programmer. Simply create a new driver source file that mimics the design of an existing driver, add two lines of code to the "main" file, and rebuild.

I coded up "alpha" drivers for Targus and Palm IR keyboards, but with neither of tho
se keyboards to test with it will be interesting to see how close they are to being correct. I also added a "test9600" driver that simply opens the IR port at 9600 bps (the rate most IR keyboards use) and then displays every scancode it receives. It doesn't try to actually generate any keystrokes but it will be helpful for determining key maps and protocols for unsupported (or incorrectly supported) keyboards.

(part 6)


At 3:02 AM, Anonymous Hrw said...

I have deviated so much from the original "Kbdd" code base that I'm going to rename this project to avoid confusion.

Maybe try to get all work accepted by upstream authors. There is no need for several programs doing same thing. Maybe some kind of separation of keyboard input (all those Ir, serial, BT keyboards) and keyboard output (clean or converted to Zaurus) can be managed via configuration?

And look into GPE - iirc they have application to configure connected keyobard type for kbdd.

At 8:39 AM, Blogger Superdave said...

As it stands now, the upstream maintainers would have no interest in merging this code -- it's too different and too Zaurus specific. However, if real world testing reveals that I'm on the right track with my design, I'll eventually re-architect the code yet again with a two stage scancode conversion process (keyboard -> intermediate -> target). At that point the keyboard drivers can be shared and only the backend final scancode conversion is target specific.

When (and if) that happens, the handhelds.org folks may wish to replace kbdd with this project. Note that since I'm keeping the command line interface "compatible" with kbdd, GUI apps to control it (like GPE) shouldn't care.

At 8:59 AM, Anonymous Anonymous said...

Have you actually talked to upstream (Nils and Paul) yet?


Post a Comment

<< Home