version 1.0.

master
tmk 2010-10-02 11:51:42 +09:00
parent df5b4ea7d9
commit 479af4bdcd
5 changed files with 57 additions and 46 deletions

View File

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

79
README
View File

@ -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

View File

@ -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;

View File

View File

@ -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,