JEDIMatt USB Keyboard interface ASSEMBLED
JEDIMatt USB Keyboard interface ASSEMBLED
I will build these when ordered so there may be a small delay while I assemble it before shipping it out.
This is an assembled board that will need to be connected to the TI keyboard per this instruction:
https://photos.google.com/share/AF1QipNBCeBHUqFHEI...
Also works great with our replacement keyboard cable connector..
This was designed by Jedimatt and was inspired by Tursi's PS/2 keyboard adapter, the key mapping available in Classic99, and the Rave99 XT keyboard adapter he had as a youth.
The project has been discussed in this thread on Atariage.
All of the necessary Arduino SDK source and circuit board design are available at Github jedimatt42/TI-99-usb-keys.
Here are some of the prototype pictures
He has tested the board with Logitech Nano Receiver wireless USB keyboard model K750. Also, he has tested with a cheap USB wired keyboard from Insignia.
This supports the 101-key keyboards in USB 'boot' protocol. That does place a restriction, preventing it from supporting special media keys and internet shortcut keys available on many 'multimedia' keyboards.
In general, it works like a TI keyboard, press ALT-P will produce a doublequote character. But so will pressing the now standard shift-quote key sequence. The mapping is copied from Tursi where the 'boot' protocol supports reading the key.
The internal keyboard remains operational.
Mapping:
- Caps-lock & Num-lock on at power up.
- Scroll-lock off at power up.
- Alt -> Fctn
- F1-F9 -> Fctn 1-9
- F10 -> Fctn 0
- F11 -> Ctrl 1
- F12 -> Ctrl 2
- Esc -> Fctn 9
- Arrow keys -> Fctn S,D,E,X
- with scroll-lock on, arrow keys are just S,D,E,X without Fctn
- Backspace -> Fctn S
- Home -> Ctrl U
- End -> Ctrl V
- Del -> Fctn 1
- Ins -> Fctn 2
- Pgup -> Fctn 6
- Pgdn -> Fctn 4
- Break -> Fctn 4
- Tab -> Fctn 7
- Num-lock does the logical thing to the number pad.
- Ctrl-Alt-Delete will reboot/reset the keyboard adapter.
Notes
While you can hold modifiers down, during power up, the adapter board may not be ready yet, and the TI may miss them.
Fctn-Equals has special release handling. I think the TI polls for Fctn-Equals too fast 'boot looping' if you will, interrupting the teensy too frequently for it to process the key release.
It works quite well with Micro-Pinball which is known to have trouble holding the flippers on the Rave99 adapter. I have however observed that sometimes it has issues with the tight polling loop in this game. Pressing Ctrl-Alt-Delete
( I swear this doesn't run windows ) has proven to sync things up (my Teensy software is very interrupt driven), making gameplay reliable afterwards. I haven't seen the same issue in any other software.
G1,G2,G3
There are 3 GPIO pins on the adapter board, that can be used to control other circuits. The latest firmware has them each mapped to Ctrl-Alt sequences:
- G1 -> Ctrl-Alt-F10
- G2 -> Ctrl-Alt-F11
- G3 -> Ctrl-Alt-F12
The firmware is configured so that when the key sequence is released, the pin is connected to ground for 25 milliseconds. At other times, they are 'floating'. This is handy for connecting the to TMS9900 CPU pin 6 to create a hard reset button. It should also work for the load-interrupt on the CPU pin 4, although the duration may need to be adjusted for the load-interrupt. The reset has been tested, but the interrupt has not as of yet.
And if you have an imaginative use for the 3rd GPIO pin, please share.
http://ti994a.cwfk.net/TiUsbKeys.html for more info
installation in pictures: https://jedimatt42.com/4a/ti99usbkeys-pictures