version 1.0.
5 files changed, 57 insertions(+), 46 deletions(-) M Makefile M README M keymap.c R {mykey => tmk}.c M usb_keycodes.h
M Makefile => Makefile +1 -1
@@ 41,7 41,7 @@ # Target file name (without extension). TARGET = mykey TARGET = tmk # List C source files here. (C dependencies are automatically generated.)
M README => README +45 -34
@@ 1,40 1,29 @@ Keyboard Firmware ================= 2010/08/23 noname t.m.k. Keyboard Firmware ======================== This is keyboard firmware for PFU HHKB style keyboard and teensy 2.0. OS see this as composite device which has keyboard and mouse. The project is heavily based on PJRC USB Keyboard/Mouse Example and owes a debt to preceding keyboard firmware projects. VERSION ------- 0.1 2010/08/23 implemented for macway modified. It works as normal keyboard now. It works as normal keyboard. It is for modified Macway keyboard(TP-999KB-E). TODO ---- modulization clean source debouncing will be coded when bouncing occurs. bouncing doesnt occur on my alps switch so far. scan rate is too slow?(to be measure) anti-ghost 2010/09/13 done sleep&wakeup boot keyboard support mouse key keymap layer 2010/09/16 simple layer(HHKB/vi cursor) key combination switch toggle siwtch setting menu(wizard) debug console keymap setting matrix display PS/2 keyboard mode HHKB support Trackpoint(PS/2) support Thinkpad keyboard support 1.0 2010/10/02 keyboard has mouse key now. keyboard with layers.(see keymap.c) FN_1(right cmd): vi style layer FN_2(next to right shift): HHKB style layer FN_3(left bottom): h j k l: mouse move a s d spc: mouse buttons m ,: mouse wheel @@ target board 43,10 32,11 @@ Teensy 2.0 http://www.pjrc.com/teensy projects based on/related to ---------------------------- PJRC USB Keyboard Example projects related ---------------- PJRC USB Keyboard/Mouse Example http://www.pjrc.com/teensy/usb_keyboard.html http://www.pjrc.com/teensy/usb_mouse.html kbupgrade http://github.com/rhomann/kbupgrade @@ http://geekhack.org/showwiki.php?title=Island:8406 65,4 55,25 @@ ps2avr http://sourceforge.net/projects/ps2avr/ TODO ---- licensing notes(GPL) I think GPL is not infringement of PJRC license. souce code cleaning sleep&wakeup debouncing will be coded when bouncing occurs. bouncing doesnt occur on my ALPS switch so far. scan rate is too slow?(to be measure) setting menu(wizard) debug console keymap setting matrix display PS/2 keyboard mode support for HHKB pro matrix signal Trackpoint(PS/2) support Thinkpad keyboard support mouse horizontal wheel EOF
M keymap.c => keymap.c +9 -9
@@ 12,15 12,15 @@ static const uint8_t PROGMEM Keymap[][MATRIX_ROWS][MATRIX_COLS] = { { { KB_LALT, KB_NO, KB_BSPACE, KB_NO, KB_LEFT, KB_NO, KB_ENTER, KB_SPACE }, { KB_1, KB_ESCAPE, KB_TAB, KB_Q, KB_A, KB_LCTRL, KB_Z, KB_RIGHT }, { KB_2, FN_0, KB_LGUI, KB_W, KB_S, KB_NO, KB_X, KB_UP }, { KB_3, KB_NO, KB_RSHIFT, KB_E, KB_D, FN_1, KB_C, KB_DOWN }, { KB_2, FN_1, KB_LGUI, KB_W, KB_S, KB_NO, KB_X, KB_UP }, { KB_3, KB_NO, KB_RSHIFT, KB_E, KB_D, FN_2, KB_C, KB_DOWN }, { KB_4, KB_5, KB_T, KB_R, KB_F, KB_G, KB_V, KB_B }, { KB_7, KB_6, KB_Y, KB_U, KB_J, KB_H, KB_M, KB_N }, { KB_8, KB_EQUAL, KB_RBRACKET,KB_I, KB_K, KB_NO, KB_COMMA, KB_LSHIFT }, { KB_9, KB_NO, KB_NO, KB_O, KB_L, FN_2, KB_DOT, KB_NO }, { KB_9, KB_NO, KB_NO, KB_O, KB_L, FN_3, KB_DOT, KB_NO }, { KB_0, KB_MINUS, KB_LBRACKET,KB_P, KB_SCOLON, KB_QUOTE, KB_NO, KB_SLASH } }, // 1: FN_0(RIGHT ALT) // 1: FN_1(RIGHT ALT) { { KB_LALT, KB_NO, KB_DELETE, KB_NO, KB_NO, KB_NO, KB_BSLASH,KB_NO }, @@ { KB_F1, KB_GRAVE, KB_BSLASH, KB_NO, KB_NO, KB_LCTRL, KB_NO, KB_NO }, 32,7 32,7 @@ static const uint8_t PROGMEM Keymap[][MATRIX_ROWS][MATRIX_COLS] = { { KB_F9, KB_NO, KB_NO, KB_NO, KB_RIGHT, KB_NO, KB_END, KB_NO }, { KB_F10, KB_F11, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO, KB_NO } }, // 2: FN_1(HHKB Fn) // 2: FN_2(HHKB Fn) { { KB_LALT, KB_NO, KB_DELETE, KB_NO, KB_NO, KB_NO, KB_BSLASH,KB_NO }, @@ { KB_F1, KB_GRAVE, KB_BSLASH, KB_NO, KB_VOLDOWN,KB_LCTRL, KB_NO, KB_NO }, 44,7 44,7 @@ static const uint8_t PROGMEM Keymap[][MATRIX_ROWS][MATRIX_COLS] = { { KB_F9, KB_NO, KB_NO, KB_NO, KB_PGUP, KB_NO, KB_PGDOWN,KB_NO }, { KB_F10, KB_F11, KB_UP, KB_NO, KB_LEFT, KB_RIGHT, KB_NO, KB_DOWN } }, // 3: FN_2(LEFT Bottom) // 3: FN_3(LEFT Bottom) { { KB_LALT, KB_NO, KB_DELETE, KB_NO, MS_LEFT, KB_NO, KB_BSLASH, MS_BTN1 }, @@ { KB_F1, KB_GRAVE, KB_BSLASH, KB_NO, MS_BTN1, KB_LCTRL, KB_NO, MS_RIGHT }, 73,9 73,9 @@ int get_layer(void) { for (int row = 0; row < MATRIX_ROWS; row++) { for (int col = 0; col < MATRIX_ROWS; col++) { if (matrix[row] & 1<<col) continue; if (get_keycode(0, row, col) == FN_0) layer = 1; if (get_keycode(0, row, col) == FN_1) layer = 2; if (get_keycode(0, row, col) == FN_2) layer = 3; if (get_keycode(0, row, col) == FN_1) layer = 1; if (get_keycode(0, row, col) == FN_2) layer = 2; if (get_keycode(0, row, col) == FN_3) layer = 3; } } current_layer = layer;
R mykey.c => tmk.c +0 -0
M usb_keycodes.h => usb_keycodes.h +2 -2