1 PS/2 to USB keyboard converter
2 ==============================
4 This firmware converts PS/2 keyboard protocol to USB.
9 In this demo build, you can try several layouts,
10 mouse keys and USB NKRO.
13 Magic+0: Qwerty with mouse keys(default)
18 Magic+N: toggles NKRO/6KRO(6KRO by default)
19 Magic+Esc: sends Power Event
20 where Magic=(LShift+RShift) or (LControl+RShift)
23 Fn0+(hjkl): Mouse key move(vi cursor)
24 Fn0+(yuio): Mouse wheel(left,down,up,right)
25 Fn0+space: Mouse button1
26 Fn0+(mnb): Mouse buttons(1,2,3)
27 Fn0+(zxc): Media control(Volup, Voldown, Mute)
28 Fn1+(hjkl): Cursor move(vi cursor)
29 Fn1+(nm,.): Cursor move(Home,PageDown,PageUp,End)
31 Fn2+(esdf): Mouse key move(invert T cursor)
32 Fn2+(qwrt): Mouse wheel(left,down,up,right)
33 Fn2+space: Mouse button1
34 Fn2+(,./): Media control(Volup, Voldown, Mute)
35 where Fn0=;, Fn1=/, Fn2=a
41 You can emulates mouse move and button click using keyboard.
43 You can sends Power event, Volume down/up and Mute.
44 USB NKRO(actually 120KRO+8Modifiers)
45 You can tolggles NKRO/6KRO.(Not tested on Mac.)
47 You can customize keymaps easily by editing source code.
52 0. Connect PS/2 keyboard to Teensy by 4 lines(Vcc, GND, Data, Clock).
53 1. Define following macros for PS/2 connection in config_pjrc.h:
62 2. Edit Makefile for build options and MCU setting.
65 http://www.pjrc.com/teensy/loader.html
70 0. Build V-USB controller board and connect PS/2 keyboard.
71 1. Define macros in config_vusb.h if needed.
72 2. Edit Makefile.vusb for build options and MCU setting.
73 3. make -f Makefile.vusb
74 4. program your V-USB controller.
79 You can change a keymap by editing code of keymap.c like following.
80 How to define the keymap is probably obvious. You can find key
81 symbols in usb_keycodes.h.
82 If you want to define more than one keymap, see hhkb/keymap.c and
83 macway/keymap.c as examples. To define keymap(layer) switching may
84 needs a bit of your effort at this time.
86 /* Default Layer: plain keymap
87 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
88 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
89 * `---' `---------------' `---------------' `---------------' `-----------' `-----------'
90 * ,-----------------------------------------------------------. ,-----------. ,---------------.
91 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
92 * |-----------------------------------------------------------| |-----------| |---------------|
93 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
94 * |-----------------------------------------------------------| `-----------' |-----------| +|
95 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
96 * |-----------------------------------------------------------| ,---. |---------------|
97 * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
98 * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
99 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
100 * `-----------------------------------------------------------' `-----------' `---------------'
103 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, PWR, F13, F14,
104 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
105 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
106 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
107 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
108 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT