version 1.0.

example_keyboards
tmk 14 years ago
parent df5b4ea7d9
commit 479af4bdcd

@ -41,7 +41,7 @@
# Target file name (without extension). # Target file name (without extension).
TARGET = mykey TARGET = tmk
# List C source files here. (C dependencies are automatically generated.) # List C source files here. (C dependencies are automatically generated.)

@ -1,40 +1,29 @@
Keyboard Firmware t.m.k. Keyboard Firmware
================= ========================
2010/08/23 noname 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 VERSION
------- -------
0.1 2010/08/23 0.1 2010/08/23
implemented for macway modified. It works as normal keyboard.
It works as normal keyboard now. It is for modified Macway keyboard(TP-999KB-E).
TODO 1.0 2010/10/02
---- keyboard has mouse key now.
modulization keyboard with layers.(see keymap.c)
clean source FN_1(right cmd):
debouncing vi style layer
will be coded when bouncing occurs. FN_2(next to right shift):
bouncing doesnt occur on my alps switch so far. HHKB style layer
scan rate is too slow?(to be measure) FN_3(left bottom):
anti-ghost h j k l: mouse move
2010/09/13 done a s d spc: mouse buttons
sleep&wakeup m ,: mouse wheel
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
target board target board
@ -43,10 +32,11 @@ Teensy 2.0
http://www.pjrc.com/teensy http://www.pjrc.com/teensy
projects based on/related to projects related
---------------------------- ----------------
PJRC USB Keyboard Example PJRC USB Keyboard/Mouse Example
http://www.pjrc.com/teensy/usb_keyboard.html http://www.pjrc.com/teensy/usb_keyboard.html
http://www.pjrc.com/teensy/usb_mouse.html
kbupgrade kbupgrade
http://github.com/rhomann/kbupgrade http://github.com/rhomann/kbupgrade
http://geekhack.org/showwiki.php?title=Island:8406 http://geekhack.org/showwiki.php?title=Island:8406
@ -65,4 +55,25 @@ ps2avr
http://sourceforge.net/projects/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 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_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_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_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_1, KB_C, KB_DOWN }, { 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_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_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_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 } { 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_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 }, { 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_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 } { 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_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 }, { 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_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 } { 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_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 }, { 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 row = 0; row < MATRIX_ROWS; row++) {
for (int col = 0; col < MATRIX_ROWS; col++) { for (int col = 0; col < MATRIX_ROWS; col++) {
if (matrix[row] & 1<<col) continue; 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 = 1;
if (get_keycode(0, row, col) == FN_1) layer = 2; if (get_keycode(0, row, col) == FN_2) layer = 2;
if (get_keycode(0, row, col) == FN_2) layer = 3; if (get_keycode(0, row, col) == FN_3) layer = 3;
} }
} }
current_layer = layer; current_layer = layer;

@ -262,10 +262,10 @@ enum keycodes {
KB_RGUI, /* 0x80 */ KB_RGUI, /* 0x80 */
/* extensions for internal use */ /* extensions for internal use */
FN_0 = 0xE8, FN_1 = 0xE8,
FN_1,
FN_2, FN_2,
FN_3, FN_3,
FN_4,
MS_UP = 0xF0, MS_UP = 0xF0,
MS_DOWN, MS_DOWN,
MS_LEFT, MS_LEFT,

Loading…
Cancel
Save