]> git.gir.st - tmk_keyboard.git/blob - ps2_usb/README
ADD: V-USB Circuit in README
[tmk_keyboard.git] / ps2_usb / README
1 PS/2 to USB keyboard converter
2 ==============================
3
4 This firmware converts PS/2 keyboard protocol to USB.
5
6
7 Demostration build
8 ------------------
9 In this demo build, you can try several layouts,
10 mouse keys and USB NKRO.
11
12 Special keys:
13 Magic+0: Qwerty with mouse keys(default)
14 Magic+1: Qwerty
15 Magic+2: Colemak
16 Magic+3: Dvorak
17 Magic+4: Workman
18 Magic+N: toggles NKRO/6KRO(6KRO by default)
19 Magic+Esc: sends Power Event
20 where Magic=(LShift+RShift) or (LControl+RShift)
21
22 Keybinds:
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)
30
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
36
37
38 Features
39 --------
40 Mouse keys
41 You can emulates mouse move and button click using keyboard.
42 System/Media control
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.)
46 Keymap customization
47 You can customize keymaps easily by editing source code.
48
49
50 Build for Teensy
51 ----------------
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:
54 PS2_DATA_PORT
55 PS2_DATA_PIN
56 PS2_DATA_DDR
57 PS2_DATA_BIT
58 PS2_CLOCK_PORT
59 PS2_CLOCK_PIN
60 PS2_CLOCK_DDR
61 PS2_CLOCK_BIT
62 2. Edit Makefile for build options and MCU setting.
63 2. make
64 3. program Teensy.
65 http://www.pjrc.com/teensy/loader.html
66
67
68 Build for V-USB
69 ---------------
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.
75
76
77 V-USB Circuit
78 -------------
79 +---+ +---------------+
80 USB GND | | ATmega168 |
81 === C3 | |
82 5V <-------+--------+---|Vcc,AVCC | PS/2
83 R1 | | ====
84 D- <----+--+-----R2-----|INT0 RXD|------->DATA
85 D+ <----|---+----R3-----|INT1 XCK|------->CLOCK
86 Z1 Z2 | | ->5V
87 GND<----+---+--+--+-----|GND | ->GND
88 | | | |
89 | C2-+--|XTAL1 |
90 | X1 | |
91 +--C3-+--|XTAL2 |
92 +---------------+
93 R1: 1.5K Ohm
94 R2,R3: 68 Ohm
95 Z1,Z2: Zenner 3.6V
96 C1,C2: 22pF
97 C3: 0.1uF
98 X1: Crystal 20MHz(16MHz/12MHz)
99
100
101 Keymap
102 ------
103 You can change a keymap by editing code of keymap.c like following.
104 How to define the keymap is probably obvious. You can find key
105 symbols in usb_keycodes.h.
106 If you want to define more than one keymap, see hhkb/keymap.c and
107 macway/keymap.c as examples. To define keymap(layer) switching may
108 needs a bit of your effort at this time.
109
110 /* Default Layer: plain keymap
111 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
112 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
113 * `---' `---------------' `---------------' `---------------' `-----------' `-----------'
114 * ,-----------------------------------------------------------. ,-----------. ,---------------.
115 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
116 * |-----------------------------------------------------------| |-----------| |---------------|
117 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
118 * |-----------------------------------------------------------| `-----------' |-----------| +|
119 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
120 * |-----------------------------------------------------------| ,---. |---------------|
121 * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
122 * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
123 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
124 * `-----------------------------------------------------------' `-----------' `---------------'
125 */
126 KEYMAP(
127 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK, PWR, F13, F14,
128 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
129 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
130 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
131 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
132 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
133 ),
134
135
136 EOF
Imprint / Impressum