Open-source keyboard firmware for Atmel AVR and Arm USB families https://qmk.fm
Go to file
2010-11-24 22:17:35 +09:00
hhkb add system controls(power down/wake up) from generic desktop page(HID) 2010-11-18 22:35:49 +09:00
macway revise Fn key processing. 2010-11-03 17:33:20 +09:00
.gitignore add mouse function. 2010-09-30 14:50:23 +09:00
controller_teensy.h ADD: keymap macro for human to read easier 2010-10-26 21:32:45 +09:00
debug.h improve layer switching 2010-10-30 01:16:47 +09:00
jump_bootloader.c some fixes. LED flush for debug. 2010-09-27 10:24:33 +09:00
jump_bootloader.h add jump_bootloader. 2010-09-24 15:16:23 +09:00
key_process.c support 12KRO 2010-11-24 22:17:35 +09:00
key_process.h hhkb: refactored 2010-10-24 01:17:26 +09:00
keymap_skel.h improve layer switching 2010-10-30 01:16:47 +09:00
layer.c repeating Fn key: press twice quickly to repeat. 2010-11-04 01:08:24 +09:00
layer.h improve layer switching 2010-10-30 01:16:47 +09:00
Makefile.common add audio controls from consumer page(HID) 2010-11-17 16:06:20 +09:00
matrix_skel.h improve layer switching 2010-10-30 01:16:47 +09:00
print.c switch debug on/off by pressing 4 keys on booting time 2010-10-24 03:33:08 +09:00
print.h switch debug on/off by pressing 4 keys on booting time 2010-10-24 03:33:08 +09:00
README improve layer switching 2010-10-30 01:16:47 +09:00
timer.c improve layer switching 2010-10-30 01:16:47 +09:00
timer.h improve layer switching 2010-10-30 01:16:47 +09:00
tmk.c add system controls(power down/wake up) from generic desktop page(HID) 2010-11-18 22:35:49 +09:00
usb_debug.c divide usb_keyboard_debug.[c|h] into usb_device, usb_keyboard, usb_debug. 2010-09-23 20:23:50 +09:00
usb_debug.h add mouse function. 2010-09-30 14:50:23 +09:00
usb_extra.c add system controls(power down/wake up) from generic desktop page(HID) 2010-11-18 22:35:49 +09:00
usb_extra.h add system controls(power down/wake up) from generic desktop page(HID) 2010-11-18 22:35:49 +09:00
usb_keyboard.c support 12KRO 2010-11-24 22:17:35 +09:00
usb_keyboard.c.bak support 12KRO 2010-11-24 22:17:35 +09:00
usb_keyboard.h support 12KRO 2010-11-24 22:17:35 +09:00
usb_keycodes.h add audio controls from consumer page(HID) 2010-11-17 16:06:20 +09:00
usb_mouse.c ADD: keymap macro for human to read easier 2010-10-26 21:32:45 +09:00
usb_mouse.h ADD: keymap macro for human to read easier 2010-10-26 21:32:45 +09:00
usb.c support 12KRO 2010-11-24 22:17:35 +09:00
usb.h add system controls(power down/wake up) from generic desktop page(HID) 2010-11-18 22:35:49 +09:00
util.c new build method for macway 2010-10-27 22:56:01 +09:00
util.h new build method for macway 2010-10-27 22:56:01 +09:00

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