Keyboard firmwares for Atmel AVR and Cortex-M
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.
tmk a88ad58342 core: Swap position of PEQL and PENT in unimap 7 years ago
..
binary ibm4707_usb: unimap 7 years ago
Makefile ibm4707_usb: unimap 7 years ago
Makefile.rev1 ibm4707_usb: unimap 7 years ago
Makefile.rev2 ibm4707_usb: unimap 7 years ago
Makefile.unimap.alps.rev1 ibm4707_usb: unimap 7 years ago
Makefile.unimap.alps.rev2 ibm4707_usb: unimap 7 years ago
Makefile.unimap.rev1 ibm4707_usb: unimap 7 years ago
Makefile.unimap.rev2 ibm4707_usb: unimap 7 years ago
README.md ibm4707_usb: unimap 7 years ago
config.h ibm4704_usb: Fix protocol handling 8 years ago
ibm4704.txt ibm4704_usb: Fix scan code range for Alps 102-key 8 years ago
keymap_50key.c Fix: Use action_t in keymap files 7 years ago
keymap_alps102key.c Fix: Use action_t in keymap files 7 years ago
keymap_common.h Remove keymap read code from project directories 7 years ago
keymap_hasu.c Fix: Use action_t in keymap files 7 years ago
keymap_plain.c Fix: Use action_t in keymap files 7 years ago
led.c Add Initial files of 4704_usb 10 years ago
matrix.c Fix matrix.c to use new default impl. 7 years ago
unimap_plain.c core: Swap position of PEQL and PENT in unimap 7 years ago
unimap_trans.h core: Swap position of PEQL and PENT in unimap 7 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. You may need to plug USB cable after hooking up your keyboard to the converter.

TMK Converter for IBM4704 is available here: https://geekhack.org/index.php?topic=72052.0

Update

  • 2016/09/30 Unimap editor support
  • 2015/09/07 Added keymap for Alps 102-key. Thanks, tai @ geekhack!
  • 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/U2

  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.

TMK Converter can supports IBM 4704. https://github.com/tmk/keyboard_converter

Build Firmware

Just run make:

$ make -f <makefile>

For TMK Converter rev.1 use Makefile.rev1 as makefile:

$ make -f Makefile.rev1

For TMK Converter rev.2 use Makefile.rev2 as makefile:

$ make -f Makefile.rev2

To select keymap:

$ make -f <makefile> KEYMAP=[plain|alsp102key|...]

To indentify your TMK Converter revision see this.

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.

Use KEYMAP_ALPS102() to define your keymap for Alps models.