@@ -41,7 +41,7 @@ | |||
# Target file name (without extension). | |||
TARGET = mykey | |||
TARGET = tmk | |||
# List C source files here. (C dependencies are automatically generated.) |
@@ -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 |
@@ -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; |
@@ -262,10 +262,10 @@ enum keycodes { | |||
KB_RGUI, /* 0x80 */ | |||
/* extensions for internal use */ | |||
FN_0 = 0xE8, | |||
FN_1, | |||
FN_1 = 0xE8, | |||
FN_2, | |||
FN_3, | |||
FN_4, | |||
MS_UP = 0xF0, | |||
MS_DOWN, | |||
MS_LEFT, |