PS/2 to USB keyboard converter
==============================
-This firmware converts PS/2 keyboard protocol to USB and supports only Scan Code Set 2.
-
-
-PS/2 signal handling implementations
-------------------------------------
-Following three methods are used to implement PS/2 signal handling.
-
-### Simple and stupid busy-wait(ps2_busywait.c)
- This is expected to implemented with portable C code for reference.
-### Interrupt driven(ps2_interrupt.c)
- Uses pin interrupt to detect falling edge of clock line.
-### USART hardware module(ps2_usart.c)
- Uses AVR USART engine to receive PS/2 signal.
-
-To select method edit Makefile.
+This firmware converts PS/2 keyboard protocol to USB.(It supports Scan Code Set 2.)
Connect Wires
-------------
-In case of Teensy2.0(ATMega32U4):
-
-1. Connect Vcc and GND.
-2. Connect Clock and Data line.
- - Busywait: Clock is on PD5 and Data on PD2.
- - Interrupt: Clock is on PD1 and Data on PD2.
- - USART: Clock is on PD5 and Data on PD2.
-3. Optionally you need pull-up register. 1K-10K Ohm is OK.
+1. Connect **Vcc** and **GND**.
+2. Connect **Clock** and **Data** line.
+ - **Interrupt**: **Clock** is on `PD1` and **Data** on `PD0`.(Recommended. Soarer's converter compatible)
+ - **Busywait**: **Clock** is on `PD1` and **Data** on `PD0`.
+ - **USART**: **Clock** is on `PD5` and **Data** on `PD2`.
+3. You need pull-up resistors. 1K-10K Ohm would be fine.
-To change pin configuration edit config.h.
+To change pin configuration edit **config.h** and **Makefile**.
Build Firmware
--------------
-Just run `make`:
+For **TMK converter Rev.2**:
+
+ $ make -f Makefile.rev2 clean
+ $ make -f Makefile.rev2 KEYMAP=plain
- $ make
+To program firmware push the button on converter and run:
-To select keymap:
+ $ make -f Makefile.rev2 KEYMAP=plain dfu
- $ make KEYMAP=[plain|jis|spacefn|...]
+
+- For **TMK converter Rev.1** use `make -f Makefile.rev1` instead.
+- To select keymap use `jis`, `spacefn` or your own in place of `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.
+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 README.md of top directory) and existent keymap files.
+
+
+PS/2 signal handling implementations
+------------------------------------
+Following three methods can be used to implement PS/2 signal handling.
+
+### Simple and stupid busy-wait(ps2_busywait.c)
+ This is expected to implemented with portable C code for reference.
+### Interrupt driven(ps2_interrupt.c)
+ Uses pin interrupt to detect falling edge of clock line.
+### USART hardware module(ps2_usart.c)
+ Uses AVR USART engine to receive PS/2 signal.
+
+To select method edit Makefile.
V-USB Support
-------------
-You can also use this converter on ATmega(168/328) with V-USB instead of Teensy.
-The converter on V-USB lacks some features for now: USB NKRO and System/Media control.
+With V-USB you can use this converter on ATmega(168/328) but it doesn't support NKRO at this time.
Circuit: