Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tmk 0632618d29 added initial support of mousekeys to ps2_vusb 13 년 전
adb added note about external pull resistor on DATA line. 13 년 전
hhkb change keycodes and define keymap macro for AEK. 13 년 전
macway changed special mode key for macway: Left Shift + Right Shift 13 년 전
ps2_usb Exceptional handling for PS/2 scan code set 2 13 년 전
ps2_vusb added initial support of mousekeys to ps2_vusb 13 년 전
usbdrv added PS/2 to USB converter use V-USB as protocol stack 13 년 전
.gitignore add mouse function. 13 년 전
ADB.txt added description of ADB socket pintouts. 13 년 전
Makefile.common PS/2 to USB keyboard converter 13 년 전
Makefile.vusb added initial support of mousekeys to ps2_vusb 13 년 전
README PS/2 to USB keyboard converter 13 년 전
TODO added a file TODO. 13 년 전
USB_NKRO.txt Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
adb.c ADB keyboard LEDs support 13 년 전
adb.h ADB keyboard LEDs support 13 년 전
controller_teensy.h ADD: keymap macro for human to read easier 13 년 전
debug.h improve layer switching 13 년 전
jump_bootloader.c Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
jump_bootloader.h add jump_bootloader. 13 년 전
key_process.c PS/2 to USB keyboard converter 13 년 전
key_process.h hhkb: refactored 13 년 전
keymap_skel.h changed signature of keymap_fn_layer() in keymap_skel.h. 13 년 전
layer.c rewrite code of layer switching 13 년 전
layer.h rewrite code of layer switching 13 년 전
matrix_skel.h added config option: MATRIX_HAS_GHOST and fixed some on matrix.c 13 년 전
mousekey.c fixed mousekey delay to do double/triple click easily. 13 년 전
mousekey.h Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
print.c added PS/2 to USB converter use V-USB as protocol stack 13 년 전
print.h added PS/2 to USB converter use V-USB as protocol stack 13 년 전
ps2.c PS/2 to USB keyboard converter 13 년 전
ps2.h PS/2 to USB keyboard converter 13 년 전
ps2_mouse.c add error handling to ps2_mouse 13 년 전
ps2_mouse.h add error handling to ps2_mouse 13 년 전
sendchar.h added PS/2 to USB converter use V-USB as protocol stack 13 년 전
timer.c added PS/2 to USB converter use V-USB as protocol stack 13 년 전
timer.h added PS/2 to USB converter use V-USB as protocol stack 13 년 전
tmk.c Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
usb.c add a build option: USB_EXTRA_ENABLE 13 년 전
usb.h PS/2 to USB keyboard converter 13 년 전
usb_debug.c divide usb_keyboard_debug.[c|h] into usb_device, usb_keyboard, usb_debug. 13 년 전
usb_debug.h add mouse function. 13 년 전
usb_extra.c add system controls(power down/wake up) from generic desktop page(HID) 13 년 전
usb_extra.h add a build option: USB_EXTRA_ENABLE 13 년 전
usb_keyboard.c Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
usb_keyboard.h Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
usb_keycodes.h added some short keycode names for ISO and JIS keyboard. 13 년 전
usb_mouse.c Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
usb_mouse.h Add PS/2 mouse support to connect TrackPoint Unit. 13 년 전
util.c add build option: NKRO_ENABLE(remove: USB_12KRO) 13 년 전
util.h new build method for macway 13 년 전

README

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

This is keyboard firmware for AVR USB MCUs or Teensy/Teensy++.
http://www.pjrc.com/teensy

The project is heavily based on PJRC USB Keyboard/Mouse Example and
owes a debt to preceding keyboard firmware projects.

This firmware is used in following projects:
HHKB mod: http://geekhack.org/showwiki.php?title=Island:12047
Macway mod: http://geekhack.org/showwiki.php?title=Island:11930


Features
--------
Mouse key
control mouse cursor from keyboard.
System Control Key
Power Down, Sleep, Wake Up & USB Remote Wake up
Media Control Key
Volume Down/Up, Mute
USB NKRO
send 120 keys(+ 8 modifiers) at most simultaneously.
PS/2 mouse support
integrate PS/2 mouse(TrackPoint) into keyboard as composite device.


Limitations
-----------


Build
-----
To compile needs AVR GCC, AVR Libc and GNU make.
You can use WinAVR on Windows. http://winavr.sourceforge.net/

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

The firmware will be compiled as a file tmk_<target>.hex.


Build your own firmware
-----------------------
Copying exsistent target(macway) is easy way.
1. Copy contens of macway/ to your own target directory.
2. Edit Makefile. See next section.
3. Edit config.h. See next section.
4. Edit matrix.c. You will need to fix followings at least.
matrix_init()
matrix_scan()
read_col()
unselect_rows()
select_row()
5. Edit keymap.c. NOTE: It is not final design and a bit messy.
You will need to fix followings at least.
KEYMAP
fn_layer[]
fn_keycode[]
keymaps[]
6. Build.

If you have a build error like following, comment out "--relax" option in Makefile.common.
(.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12'


Build Options
-------------
<target>/Makefile:
1. Set target name for your firmware.
TARGET = tmk_<target>
2. Choose a MCU and its frequency.
MCU = atmega32u4 # Teensy 2.0
#MCU = at90usb1286 # Teensy++ 2.0
F_CPU = 16000000
3. Choose optional modules as needed. Comment out to disable optional modules.
MOUSEKEY_ENABLE = yes # Mouse keys
PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
USB_EXTRA_ENABLE = yes # Enhanced feature for Windows(Audio control and System control)
USB_NKRO_ENABLE = yes # USB Nkey Rollover

<target>/config.h:
1. USB vendor/product ID and device description
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xBEEF
/* device description */
#define MANUFACTURER t.m.k.
#define PRODUCT Macway mod
#define DESCRIPTION t.m.k. keyboard firmware for Macway mod
2. Keyboard matrix configuration
#define MATRIX_ROWS 8
#define MATRIX_COLS 8
#define MATRIX_HAS_GHOST
3. Mouse keys configuration if needed.
4. PS/2 mouse configuration if needed.


Debuging & Rescue
-----------------
Use PJRC's hid_listen.exe to see debug messages.
Press right Control + Shift + Alt + GUI + H to debug menu.

Pressing any 3 keys when connected enables debug output.
Pressing any 4 keys when connected makes bootloader comes up.


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/


EOF