forked from mirrors/qmk_userspace
		
	version 1.0.
This commit is contained in:
		
					parent
					
						
							
								df5b4ea7d9
							
						
					
				
			
			
				commit
				
					
						479af4bdcd
					
				
			
		
					 5 changed files with 57 additions and 46 deletions
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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
									
										
									
									
									
								
							
							
						
						
									
										79
									
								
								README
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										18
									
								
								keymap.c
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								keymap.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue