aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hhkb/Makefile.vusb4
-rw-r--r--m0110_usb/Makefile3
-rw-r--r--m0110_usb/README.md14
-rw-r--r--m0110_usb/keymap.c49
-rw-r--r--vusb/vusb.c9
5 files changed, 50 insertions, 29 deletions
diff --git a/hhkb/Makefile.vusb b/hhkb/Makefile.vusb
index 5bfc233df..371b36690 100644
--- a/hhkb/Makefile.vusb
+++ b/hhkb/Makefile.vusb
@@ -28,9 +28,9 @@ OPT_DEFS = -DDEBUG_LEVEL=0
28 28
29# MCU name, you MUST set this to match the board you are using 29# MCU name, you MUST set this to match the board you are using
30# type "make clean" after changing this, so all files will be rebuilt 30# type "make clean" after changing this, so all files will be rebuilt
31MCU = atmega168p 31MCU = atmega328p
32# avrdude doesn't know atmega168p 32# avrdude doesn't know atmega168p
33AVRDUDE_MCU = atmega168 33AVRDUDE_MCU = $(MCU)
34 34
35 35
36# Processor frequency. 36# Processor frequency.
diff --git a/m0110_usb/Makefile b/m0110_usb/Makefile
index 819d7fff3..fccfaa521 100644
--- a/m0110_usb/Makefile
+++ b/m0110_usb/Makefile
@@ -50,3 +50,6 @@ PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
50 50
51include $(COMMON_DIR)/pjrc.mk 51include $(COMMON_DIR)/pjrc.mk
52include $(COMMON_DIR)/common.mk 52include $(COMMON_DIR)/common.mk
53
54hasu: EXTRAFLAGS += -DHASU
55hasu: all
diff --git a/m0110_usb/README.md b/m0110_usb/README.md
index 92b58f684..0ad3631f7 100644
--- a/m0110_usb/README.md
+++ b/m0110_usb/README.md
@@ -50,7 +50,7 @@ Building Frimware
50To compile firmware you need AVR GCC. You can use [WinAVR](http://winavr.sourceforge.net/) on Windows. 50To compile firmware you need AVR GCC. You can use [WinAVR](http://winavr.sourceforge.net/) on Windows.
51You can edit *Makefile* and *config.h* to change compile options and pin configuration. 51You can edit *Makefile* and *config.h* to change compile options and pin configuration.
52 52
53 $ git clone ... (or download source) 53 $ git clone git://github.com/tmk/tmk_keyboard.git (or download source)
54 $ cd m0110_usb 54 $ cd m0110_usb
55 $ make 55 $ make
56 56
@@ -75,13 +75,11 @@ You can change keymaps by editing *keymap.c*.
75 `---------------------------------------------------------' 75 `---------------------------------------------------------'
76 |Ctr|Alt | Space |Gui |Ctr| 76 |Ctr|Alt | Space |Gui |Ctr|
77 `-----------------------------------------------' 77 `-----------------------------------------------'
78 You can register Esc by hitting(press&release) Fn0 quickly. 78#### *HHKB/WASD Layer*
79
80#### *HHKB/WASD cursor Layer(Fn0)*
81 ,---------------------------------------------------------. 79 ,---------------------------------------------------------.
82 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| 80 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet|
83 |---------------------------------------------------------| 81 |---------------------------------------------------------|
84 |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |Ins| \| 82 |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up | |Ins|
85 |---------------------------------------------------------| 83 |---------------------------------------------------------|
86 |Fn0 |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| 84 |Fn0 |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return|
87 |---------------------------------------------------------| 85 |---------------------------------------------------------|
@@ -103,17 +101,17 @@ You can change keymaps by editing *keymap.c*.
103 |---------------------------------------------------------| |-----------|Ent| 101 |---------------------------------------------------------| |-----------|Ent|
104 |Ctrl |Alt | Space | \|Lft|Rgt|Dn | | 0| .| | 102 |Ctrl |Alt | Space | \|Lft|Rgt|Dn | | 0| .| |
105 `---------------------------------------------------------' `---------------' 103 `---------------------------------------------------------' `---------------'
106#### *HHKB/WASD cursor Layer(Fn0)* 104#### *HHKB/WASD/mousekey Layer*
107 ,---------------------------------------------------------. ,---------------. 105 ,---------------------------------------------------------. ,---------------.
108 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk|Mb1|Mb3|Mb2| 106 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk|Mb1|Mb3|Mb2|
109 |---------------------------------------------------------| |---------------| 107 |---------------------------------------------------------| |---------------|
110 |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |Ins| | |MwD|McU|MwU|MwU| 108 |Caps |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up | | | |MwD|McU|MwU|MwU|
111 |-----------------------------------------------------' | |---------------| 109 |-----------------------------------------------------' | |---------------|
112 |Fn0 |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| |McL|McD|McR|MwD| 110 |Fn0 |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| |McL|McD|McR|MwD|
113 |---------------------------------------------------------| |---------------| 111 |---------------------------------------------------------| |---------------|
114 |Shift |End| |PgD| |VoD|VoU|Mut|End|PgD|Dow|Shif|Up | |MwL|McD|MwR| | 112 |Shift |End| |PgD| |VoD|VoU|Mut|End|PgD|Dow|Shif|Up | |MwL|McD|MwR| |
115 |---------------------------------------------------------| |-----------|Mb2| 113 |---------------------------------------------------------| |-----------|Mb2|
116 |Ctrl |Alt | Space |Gui | \|Lft|Rgt|Dn | | Mb1|Mb3| | 114 |Ctrl |Alt | Space |Ins|Lft|Rgt|Dn | | Mb1|Mb3| |
117 `---------------------------------------------------------' `---------------' 115 `---------------------------------------------------------' `---------------'
118 116
119 117
diff --git a/m0110_usb/keymap.c b/m0110_usb/keymap.c
index 939010c6d..b5cdd300b 100644
--- a/m0110_usb/keymap.c
+++ b/m0110_usb/keymap.c
@@ -55,34 +55,49 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
55 55
56// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. 56// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
57static const uint8_t PROGMEM fn_layer[] = { 57static const uint8_t PROGMEM fn_layer[] = {
58#ifndef HASU
59 1, // Fn0
60 0, // Fn1
61 0, // Fn2
62 0, // Fn3
63 0, // Fn4
64 0, // Fn5
65 0, // Fn6
66 0 // Fn7
67#else
58 1, // Fn0 68 1, // Fn0
59 2, // Fn1 69 2, // Fn1
60 3, // Fn2 70 3, // Fn2
61 1, // Fn3 71 1, // Fn3
62 0, // Fn4 72 2, // Fn4
63 0, // Fn5 73 0, // Fn5
64 0, // Fn6 74 0, // Fn6
65 0 // Fn7 75 0 // Fn7
76#endif
66}; 77};
67 78
68// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. 79// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
69// See layer.c for details. 80// See layer.c for details.
70static const uint8_t PROGMEM fn_keycode[] = { 81static const uint8_t PROGMEM fn_keycode[] = {
71#ifndef HASU 82#ifndef HASU
72 KB_ESC, // Fn0 83 KB_NO, // Fn0
73 KB_NO, // Fn1 84 KB_NO, // Fn1
74 KB_NO, // Fn2 85 KB_NO, // Fn2
75 KB_NO, // Fn3 86 KB_NO, // Fn3
87 KB_NO, // Fn4
88 KB_NO, // Fn5
89 KB_NO, // Fn6
90 KB_NO // Fn7
76#else 91#else
77 KB_NO, // Fn0 92 KB_ENTER, // Fn0
78 KB_SCOLON, // Fn1 93 KB_SCOLON, // Fn1
79 KB_SLASH, // Fn2 94 KB_SLASH, // Fn2
80 KB_UP, // Fn3 95 KB_UP, // Fn3
81#endif
82 KB_NO, // Fn4 96 KB_NO, // Fn4
83 KB_NO, // Fn5 97 KB_NO, // Fn5
84 KB_NO, // Fn6 98 KB_NO, // Fn6
85 KB_NO // Fn7 99 KB_NO // Fn7
100#endif
86}; 101};
87 102
88static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 103static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -124,7 +139,8 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 * `---------------------------------------------------------' `---------------' 139 * `---------------------------------------------------------' `---------------'
125 * Mb: Mouse Button / Mc: Mouse Cursor / Mw: Mouse Wheel 140 * Mb: Mouse Button / Mc: Mouse Cursor / Mw: Mouse Wheel
126 * 141 *
127 * NOTE: You can register Esc by hitting(press&release) Fn0 quickly. 142 * NOTE: M0110 has no arrow and keypad keys.
143 * NOTE: \ is located next to ] on M0110.
128 * NOTE: Gui between Space and \ is Enter on M0110 not exists on M0110A. 144 * NOTE: Gui between Space and \ is Enter on M0110 not exists on M0110A.
129 * NOTE: LShift and RShift are logically same key. (M0110, M0110A) 145 * NOTE: LShift and RShift are logically same key. (M0110, M0110A)
130 * NOTE: LOption and ROption are logically same key. (M0110) 146 * NOTE: LOption and ROption are logically same key. (M0110)
@@ -140,28 +156,27 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
140 // HHKB & WASD 156 // HHKB & WASD
141 KEYMAP( 157 KEYMAP(
142 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,BTN1,BTN3,BTN2, 158 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,BTN1,BTN3,BTN2,
143 CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,BRK, UP, INS, WH_D,MS_U,WH_U,WH_U, 159 CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, WH_D,MS_U,WH_U,WH_U,
144 FN0, LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, ENT, MS_L,MS_D,MS_R,WH_D, 160 FN0, LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, ENT, MS_L,MS_D,MS_R,WH_D,
145 LSFT,END, NO, PGDN,NO, VOLD,VOLU,MUTE,END, PGDN,DOWN, UP, WH_L,MS_D,WH_R,BTN2, 161 LSFT,END, NO, PGDN,NO, VOLD,VOLU,MUTE,END, PGDN,DOWN, UP, WH_L,MS_D,WH_R,BTN2,
146 LCTL,LALT, SPC, LGUI,BSLS,LEFT,RGHT,DOWN, BTN1, BTN3 162 LCTL,LALT, SPC, LGUI,INS, LEFT,RGHT,DOWN, BTN1, BTN3
147 ), 163 ),
148#else 164#else
149 // hasu's keymap 165 // hasu's keymap(To enable this use 'make hasu' to add option flag: EXTRAFLAGS=-DHASU)
150 // To enable use this 'make' option: make EXTRAFLAGS=-DHASU
151 KEYMAP( 166 KEYMAP(
152 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, LGUI,EQL, PSLS,PAST, 167 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, LGUI,EQL, PSLS,PAST,
153 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, P7, P8, P9, PMNS, 168 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, P7, P8, P9, PMNS,
154 LCTL,A, S, D, F, G, H, J, K, L, FN1, QUOT, ENT, P4, P5, P6, PPLS, 169 LCTL,A, S, D, F, G, H, J, K, L, FN1, QUOT, FN0, P4, P5, P6, PPLS,
155 LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, FN3, P1, P2, P3, PENT, 170 LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, FN3, P1, P2, P3, PENT,
156 LCTL,LALT, SPC, LGUI,BSLS,LEFT,RGHT,DOWN, LGUI, PDOT 171 FN4, LALT, SPC, LGUI,BSLS,LEFT,RGHT,DOWN, LGUI, PDOT
157 ), 172 ),
158 // HHKB & WASD 173 // HHKB & WASD
159 KEYMAP( 174 KEYMAP(
160 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST, 175 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
161 CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,BRK, UP, INS, P7, P8, P9, PMNS, 176 CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, P7, P8, P9, PMNS,
162 LCTL,LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, ENT, P4, P5, P6, PPLS, 177 LCTL,LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, FN0, P4, P5, P6, PPLS,
163 LSFT,END, NO, PGDN,NO, VOLD,VOLU,MUTE,END, PGDN,DOWN, FN3, P1, P2, P3, PENT, 178 LSFT,END, NO, PGDN,NO, VOLD,VOLU,MUTE,END, PGDN,DOWN, FN3, P1, P2, P3, PENT,
164 LCTL,LALT, SPC, LGUI,BSLS,LEFT,RGHT,DOWN, P0, PDOT 179 LCTL,LALT, SPC, LGUI,INS, LEFT,RGHT,DOWN, P0, PDOT
165 ), 180 ),
166 // vi mousekeys 181 // vi mousekeys
167 KEYMAP( 182 KEYMAP(
@@ -169,15 +184,15 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
169 CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, P7, P8, P9, PMNS, 184 CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, P7, P8, P9, PMNS,
170 NO, VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN1, NO, ENT, P4, P5, P6, PPLS, 185 NO, VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN1, NO, ENT, P4, P5, P6, PPLS,
171 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, UP, P1, P2, P3, PENT, 186 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, UP, P1, P2, P3, PENT,
172 LCTL,LALT, BTN1, LGUI,BSLS,LEFT,RGHT,DOWN, P0, PDOT 187 FN4, LALT, BTN1, LGUI,NO, LEFT,RGHT,DOWN, P0, PDOT
173 ), 188 ),
174 // vi cusorkeys 189 // vi cusorkeys
175 KEYMAP( 190 KEYMAP(
176 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST, 191 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, NLCK,EQL, PSLS,PAST,
177 CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, P7, P8, P9, PMNS, 192 CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, PSCR,SLCK,PAUS, P7, P8, P9, PMNS,
178 NO, NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS, 193 NO, NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
179 LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, UP, P1, P2, P3, PENT, 194 LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, UP, P1, P2, P3, PENT,
180 LCTL,LALT, SPC, LGUI,BSLS,LEFT,RGHT,DOWN, P0, PDOT 195 LCTL,LALT, SPC, LGUI,INS, LEFT,RGHT,DOWN, P0, PDOT
181 ), 196 ),
182#endif 197#endif
183}; 198};
diff --git a/vusb/vusb.c b/vusb/vusb.c
index 638611f32..0bfe21e92 100644
--- a/vusb/vusb.c
+++ b/vusb/vusb.c
@@ -40,10 +40,15 @@ static uint8_t kbuf_tail = 0;
40void vusb_transfer_keyboard(void) 40void vusb_transfer_keyboard(void)
41{ 41{
42 if (usbInterruptIsReady()) { 42 if (usbInterruptIsReady()) {
43 if (kbuf_head != kbuf_tail) { 43 if (kbuf_head != kbuf_tail) {
44 usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t)); 44 usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t));
45 if (!debug_keyboard) {
46 print("keys: ");
47 for (int i = 0; i < REPORT_KEYS; i++) { phex(kbuf[kbuf_tail].keys[i]); print(" "); }
48 print(" mods: "); phex((kbuf[kbuf_tail]).mods); print("\n");
49 }
45 kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE; 50 kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE;
46 } 51 }
47 } 52 }
48} 53}
49 54