Mick’s Integrated Chordic Keyboard – initial design
First up. Why?
Well, the answer is that I'm getting tired of using the standard qwerty keyboard. Even though I can type fairly fast, I am not a touch typist, and only use 6 fingers anyway. With those 6 fingers I can get to 100wpm, but I have to look at the keyboard for finger placement.
What would be nice is to have a keyboard that I could take with me anywhere. Something I can put in my pocket, can connect to my Nokia phone via Bluetooth, or my iPAQ via the same. Then there's my 12 odd PCs at home, and not to mention work. Something with a small screen would be nice so as to easily learn the new finger placement. Something that can last at least a week on batteries. Mmmm.
Requirements:
To that end here’s a list of requirements I’ve gathered:
- Small, lightweight and cheap.
- Low power drain – Should minimize the use of batteries as much as possible.
- Minimize component count.
- 8 dot Braille based – although flexible enough to sup
port other ‘standards. Like 6 dot Braille, or GKOS - Two handed operation – After scouting around the net it would seem that the best performance comes from two handed operation. Being able to open a door while I type isn’t a priority for me.
- Portable – Will have to use RF or IR for that.
- Flexible – Should support USB, PS/2, or RS232 without device drivers.
- Mouse support – Joystick is probably the best for that. Although I’m also thinking of trackpoint, touchpad, scroll wheels,
and accelerometers for future releases. - Needs a small display – for those times I need to attach to a serial console, and also for learning the new keys.
- Needs a PS/2 passthrough – for those people at work who can’t use it. This is imperative for computer rooms.
- Quick development – I’ll need a self-programming micro that can be re-programmed via serial. Of course the #1 micro produc
er is Microchip. - Recharging – Hassle free re-charging. I don’t want to have to take batteries out to re-charge. Even better would be connec
tionless charging, (like those electric toothbrushes).
Design:
I’ve decided to the best way to tackle this is to modularize things. I’m a big fan of write once use many. So the idea here is to
break down the conponents of the design into modules. This will also allow me to gradually develop and lead onto bigger things. The do
wnside to this is that it’s slightly more expensive. I could make the whole keyboard by using one chip, but it’s not as flexible. This
way I can use these modules in other projects later on.
In the end I decided to use the recently released 16F88 for the modules. This’ll mean that this design will be around for a long ti
me. They also cost as much as the 16F84 and 16F628A chips, but have a whole swag of features. Big code space, lot’s of I/O options, se
lf-programming, UART, I2C. All for $4! Really nice! Also no need for a crystal, (like all PICs).
- Basic keyer – will have the eight braille keybord buttons, a MODE button, and a joystick, (easiest to implement). This wil
l be the basic keyboard, and can be plugged into either the PS/2 port or a serial port, (or serial to USB adapter). Also support I2C b
us, so that it can be attached to other modules. - PS/2 bridge – Can either provide a connection point for the Basic keyer via cable, or be connected to the Wireless module.
This allows a normal keyboard and mouse to be connected to the PS/2 ports, and provides a passthrough for those. As an aside it could
also provide translation for those of us who are bent on Dvorak or other layouts. - Wireless – Will provide the Basic keyer with RF and IR transmission. The PS/2 bridge will have an identical unit as well.<
/li> - Display – When the basic keyer is attached to this module, it will extend it’s capabilities by providing: 1) charging cont
rol, 2) LCD display, 3) USB and PS/2 connections. Able to re-program other modules either serially or via RF. Additionally, if the Wir
eless module is connected, then it’ll use that.
Basic keyer module:
Excuse the ASCII art, but this is the rough design of the pinouts of the 16F88 and their function. Note the mysterious lack of cry
stal! These chips are bloody good eh?!
16F88-KYB
+-------------+
| |
key L2 1 -+ RA2 RA1 +- 18 - key L1
| |
key L3 2 -+ RA3 RA0 +- 17 - key L0
| |
key R0 3 s+ RA4 RA6 +s 16 - key R2
| |
key R1 4 s+ RA5 RA7 +s 15 - key R3
| |
GND 5 -+ Vss Vdd +- 14 - Vcc
| |
key MODE 6 s+ INT AN6 +- 13 - Y-axis joystick
| |
I2C data/LED A 7 -+ SDA AN5 +- 12 - X-axis joystick
| |
UART Rx 8 -+ RX TX +- 11 - UART Tx
| |
INT 9 -+ RB3 SCL +- 10 - I2C clock/LED B
| |
+-------------+
So the idea here is to keep the I2C and UART bus useable for either standalone use or attached to the Wireless or Display modules.
It’s all pretty basic stuff, the only thing of note is that I am using the MODE key, (provides pullup to pin 6), to also supply power
to the joystick resistors. This is an attempt to minimize current drain. If I didn’t do this I’d have the joystick pots constantly dra
ining batteries. This also means that I only sample the joystick ports when the MODE button is pressed, (no accidentally banging the j
oystick). It also means that I can switch the R1, R2, and R3 keys into ‘mouse mode’ in which they become the left, middle and right bu
ttons. This is a natural fit for me since I’m a right handed mouse type person.
Just a plug here for a great prototyping place I found. Have a look at www.sparkfun.com. Th
ey are gadget made, and have a lot of cool gadgets. Fairly reasonable prices too.
I’ve ordered all the bits and while I’m waiting I started fooling around with boxes.
The bits arrived, and I managed to get to the penultimate milestone. I grabbed a copy of the Tiny PIC bootloader, and got to the boot prompt. Woohoo!
PS/2 bridge module:
Wireless module:
Display module:
No related posts.