]> git.donarmstrong.com Git - tmk_firmware.git/blob - ps2_usb/README
integrate V-USB support into ps2_usb
[tmk_firmware.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 Keymap
78 ------
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.
85
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      * `-----------------------------------------------------------' `-----------' `---------------'
101      */
102     KEYMAP(
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
109     ),
110
111
112 EOF