keyboard controller firmware for Atmel AVR and ARM USB families
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
tmk 2ca3ab18a2 output previous key state on TP1684 when scaning matrix. 14 years ago
hhkb output previous key state on TP1684 when scaning matrix. 14 years ago
macway revise Fn key processing. 14 years ago
.gitignore add mouse function. 14 years ago
Makefile.common improve layer switching 14 years ago
README improve layer switching 14 years ago
controller_teensy.h ADD: keymap macro for human to read easier 14 years ago
debug.h improve layer switching 14 years ago
jump_bootloader.c some fixes. LED flush for debug. 14 years ago
jump_bootloader.h add jump_bootloader. 14 years ago
key_process.c revise Fn key processing. 14 years ago
key_process.h hhkb: refactored 14 years ago
keymap_skel.h improve layer switching 14 years ago
layer.c repeating Fn key: press twice quickly to repeat. 14 years ago
layer.h improve layer switching 14 years ago
matrix_skel.h improve layer switching 14 years ago
print.c switch debug on/off by pressing 4 keys on booting time 14 years ago
print.h switch debug on/off by pressing 4 keys on booting time 14 years ago
timer.c improve layer switching 14 years ago
timer.h improve layer switching 14 years ago
tmk.c improve layer switching 14 years ago
usb.c revise Fn key processing. 14 years ago
usb.h add mouse wheel function. 14 years ago
usb_debug.c divide usb_keyboard_debug.[c|h] into usb_device, usb_keyboard, usb_debug. 14 years ago
usb_debug.h add mouse function. 14 years ago
usb_keyboard.c revise Fn key processing. 14 years ago
usb_keyboard.h revise Fn key processing. 14 years ago
usb_keycodes.h ADD: keymap macro for human to read easier 14 years ago
usb_mouse.c ADD: keymap macro for human to read easier 14 years ago
usb_mouse.h ADD: keymap macro for human to read easier 14 years ago
util.c new build method for macway 14 years ago
util.h new build method for macway 14 years ago

README

t.m.k. Keyboard Firmware
========================
http://github.com/tmk/tmk_keyboard

This is keyboard firmware for PFU HHKB style keyboard and Teensy/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
        It works as normal keyboard.
        It is for modified Macway keyboard(TP-999KB-E).

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

1.1     2010/10/08
        Matrix wiring changed for casing.
        (and my Teensy PD3 seems to be latchuped and unusable. :<)

1.2     2010/10/13
        HHKB support
        horizontal mouse wheel support
        change keymaps

2.0     2010/10/27
        HHKB/Macway support merged


Build
-----
Compiling sources need AVR GCC, AVR Libc and GNU make.(You can use WinAVR on Windows.)

$ cd <target> (hhkb or macway)
$ make


Debuging
--------
Debug print is on if 4 keys are pressed during booting. 
Use PJRC's hid_listen.exe to see debug messages.


AVR Target board
----------------
Teensy/Teensy++
http://www.pjrc.com/teensy


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
c64key
    http://symlink.dk/projects/c64key/
rump
    http://mg8.org/rump/
    http://github.com/clee/rump
dulcimer
    http://www.schatenseite.de/dulcimer.html
humblehacker-keyboard
    http://github.com/humblehacker
    http://www.humblehacker.com/keyboard/
    http://geekhack.org/showwiki.php?title=Island:6292
ps2avr
    http://sourceforge.net/projects/ps2avr/


TODO & ideas
------------
licensing notes(GPL)
    I think GPL is not infringement of PJRC license.
souce code cleaning
sleep&wakeup
debouncing logic
    will be coded when bouncing occurs.
    bouncing doesnt occur on my ALPS switch so far.
    scan rate is too slow?(to be measure)

Trackpoint(PS/2)
    receive PS/2 signal from TrackPoint
    send USB HID report
Thinkpad keyboard support
    turn keyboard to USB keyboard/mouse composite device
setting menu(configure without changing firmware)
    console for display
    keymap/layer setting
    mouse speed/acceleration
    matrix display
PS/2 keyboard mode
    with USB to PS/2 dumb adapter(possible?)
AT90USBKEY support
    and other AVR USB boards

DONE:
support for HHKB pro matrix signal
    exchange controller board with teensy
    2010/10/11
keymap
    Matias half keyboard style
    2010/10/23
souce code cleaning
    2010/10/23
debug on/off
    debug off by default
    pressing keys during booting
    2010/10/23
mouse horizontal wheel
    http://www.microchip.com/forums/tm.aspx?high=&m=391435&mpage=1#391521
    http://www.keil.com/forum/15671/
    http://www.microsoft.com/whdc/device/input/wheel.mspx
    2010/10/13
debug on/off
    Fn key conbination during normal operation
    matrix print on/off
    key print on/off
    mouse print on/off
    2010/10/26
layer switching
    time before switching
    timeout when not used during specific time
    2010/10/30

EOF