You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
tmk 80fd3b0b24 ibm4704_usb: Fix protocol handling 9 years ago
..
Makefile Change TMK_DIR setting 9 years ago
README.md ibm4704_usb: Fix protocol handling 9 years ago
config.h ibm4704_usb: Fix protocol handling 9 years ago
ibm4704.txt ibm4704_usb: Fix protocol handling 9 years ago
keymap_50key.c ibm4704_usb: Add keymaps for 107 and 50-key 9 years ago
keymap_common.c Change key_t to keypos_t 9 years ago
keymap_common.h ibm4704_usb: Add keymaps for 107 and 50-key 9 years ago
keymap_hasu.c ibm4704_usb: Add keymaps for 107 and 50-key 9 years ago
keymap_plain.c ibm4704_usb: Add keymaps for 107 and 50-key 9 years ago
led.c Add Initial files of 4704_usb 10 years ago
matrix.c ibm4704_usb: Fix protocol handling 9 years ago

README.md

IBM 4704 to USB keyboard converter

This firmware converts IBM 4704 keyboard protocol to USB HID.

Keyboard initialization process takes a few seconds at start up. During that you will hear buzzer from the keyboard. You need to plug USB cable after hooking up your keyboard to the converter.

Update

2015/05/05 Added keymaps for 107-key, 77-key and 50-key. Thanks, orihalcon @ geekhack! 2015/05/19 Fixed a protocol handling bug.

Supported Keyboard

IBM capacitive switch models:

Alps switch(vintage Green) models:

Connector

Keyboard Plug from front:

DSUB-9
-------------
\ N 2 3 4 5 /
 \ N N N N /
  ---------
2   GND
3   VCC 5V
4   DATA
5   CLOCK
N   No connection/No pin.

Connection

In case of using ATMega32U4(Teensy2.0):

  1. Supply power with VCC and GND.
  2. Connect CLOCK to PD1 and DATA to PD0. You can change pin with config.h.
  3. Optionally you may need pull-up register. 1KOhm probably work.

Build Firmware

Just run make:

$ make

To select keymap:

$ make KEYMAP=[plain|...]

Keymap

Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named keymap_<name>.c and see keymap document(you can find in top README.md) and existent keymap files.