]> git.friedersdorff.com Git - max/tmk_keyboard.git/blob - ps2_usb/README
Added ISO/JIS keyboard support.
[max/tmk_keyboard.git] / ps2_usb / README
1 PS/2 to USB keyboard converter
2 ==============================
3 This firmware converts PS/2 keyboard protocol to USB and for now supports only Scan Code Set 2.
4
5
6 Features
7 --------
8 Mouse keys
9     You can emulates mouse move and button click using keyboard.
10
11 System/Media control
12     You can sends Power event, Volume down/up and Mute.
13
14 USB NKRO(actually 120KRO+8Modifiers)
15     You can tolggles NKRO feature.
16
17 Keymap customization
18     You can customize keymaps easily by editing source code. See keymap.c.
19
20
21 Build Converter
22 ---------------
23 0. Connect PS/2 keyboard into Teensy with 4 lines(Vcc, GND, Data, Clock).
24    By default Clock is on PF0 and Data on PF1.
25    You can change this pin configuration by editing config_pjrc.h.
26    In this photo Vcc is yellow, GND is green, Data is red and Clock is black.
27    http://img17.imageshack.us/img17/7243/201101181933.jpg
28
29
30 Build Frimware
31 --------------
32 1. Edit Makefile for build options and MCU setting.
33    Use 'atmega32u4' for Teensy 2.0 or 'at90usb1286' for Teensy++ 2.0.
34 2. make
35    Just type 'make' in a terminal.
36 3. program with Teensy Loader.
37    http://www.pjrc.com/teensy/loader.html
38
39
40 Demonstration of Features
41 -------------------------
42 In default configuration, you can try several keymaps, mousekeys and USB NKRO.
43 Use following magic key combinations to enable some features.
44
45 keymaps and NKRO:
46     Magic+0:    Qwerty with mousekeys(default)
47     Magic+1:    Qwerty without mousekeys
48     Magic+2:    Colemak
49     Magic+3:    Dvorak
50     Magic+4:    Workman
51     Magic+N:    toggles NKRO/6KRO(6KRO by default)
52     Magic+Esc:  sends Power Event(Power button)
53
54     where Magic=(LShift+RShift) or (LControl+RShift)
55
56 Fn layer function:
57     Fn0+(hjkl): Mousekey move(vi cursor like)
58     Fn0+(yuio): Mouse wheel(left,down,up,right)
59     Fn0+space:  Mouse left button
60     Fn0+(mnb):  Mouse buttons(m=left, n=right, b=middle)
61     Fn0+(zxc):  Media control(Volup, Voldown, Mute)
62     Fn1+(hjkl): Cursor move(vi cursor like)
63     Fn1+(nm,.): Cursor move(Home,PageDown,PageUp,End)
64
65     where Fn0=;, Fn1=/
66
67
68 Keymap
69 ------
70 You can change a keymap by editing code of keymap.c like following.
71 How to define the keymap is probably obvious. You can find  key symbols in usb_keycodes.h.
72 To define keymap layer switching may needs a bit of your effort at this time.
73
74     /* Default Layer: plain keymap
75      * ,---.   ,---------------. ,---------------. ,---------------. ,-----------.     ,-----------.
76      * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|     |Pwr|Slp|Wak|
77      * `---'   `---------------' `---------------' `---------------' `-----------'     `-----------'
78      * ,-----------------------------------------------------------. ,-----------. ,---------------.
79      * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backspa| |Ins|Hom|PgU| |NmL|  /|  *|  -|
80      * |-----------------------------------------------------------| |-----------| |---------------|
81      * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \| |Del|End|PgD| |  7|  8|  9|   |
82      * |-----------------------------------------------------------| `-----------' |-----------|  +|
83      * |CapsLo|  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return  |               |  4|  5|  6|   |
84      * |-----------------------------------------------------------|     ,---.     |---------------|
85      * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|   |
86      * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
87      * |Ctrl |Gui |Alt |         Space         |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| |      0|  .|   |
88      * `-----------------------------------------------------------' `-----------' `---------------'
89      */
90     KEYMAP(
91     ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,          PWR, F13, F14,
92     GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
93     TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
94     CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,                         P4,  P5,  P6,  PPLS,
95     LSFT,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,          RSFT,          UP,           P1,  P2,  P3,
96     LCTL,LGUI,LALT,          SPC,                     RALT,RGUI,APP, RCTL,     LEFT,DOWN,RGHT,    P0,       PDOT,PENT
97     ),
98
99
100 Multimedia keys
101 ---------------
102 Following lists PS/2 special keys supported by Windows.
103 http://msdn.microsoft.com/en-us/windows/hardware/gg463372.aspx
104
105 Key                         PS/2(Set2)      HID
106 ---------------------------------------------------
107 System Power                E0 37           01 0081
108 System Sleep                E0 3F           01 0082
109 System Wake                 E0 5E           01 0083
110 System Mute                 E0 23           0C 00E2
111 Volume Up                   E0 32           0C 00E9
112 Volume Down                 E0 21           0C 00EA
113 Scan Next Track             E0 4D           0C 00B5
114 Scan Previous Track         E0 15           0C 00B6
115 Stop                        E0 3B           0C 00B7
116 Play/Pause                  E0 34           0C 00CD
117 Media Select                E0 50           0C 0183
118 Mail                        E0 48           0C 018A
119 Calculator                  E0 2B           0C 0192
120 My Computer                 E0 40           0C 0194
121 WWW Search                  E0 10           0C 0221
122 WWW Home                    E0 3A           0C 0223
123 WWW Back                    E0 38           0C 0224
124 WWW Forward                 E0 30           0C 0225
125 WWW Stop                    E0 28           0C 0226
126 WWW Refresh                 E0 20           0C 0227
127 WWW Favorites               E0 18           0C 022A
128
129
130 EOF