No Description

Travis Burtrum d831eb699b Updated README to reflect what this fork specifically accomplishes. 6 years ago
adb_usb af85b6bba6 added HHKB/README and clean some codes. 6 years ago
hhkb af85b6bba6 added HHKB/README and clean some codes. 6 years ago
macway af85b6bba6 added HHKB/README and clean some codes. 6 years ago
pjrc 6d45e05ede Added PS/2 multimeda key support. 6 years ago
ps2_usb d831eb699b Updated README to reflect what this fork specifically accomplishes. 6 years ago
vusb 6d45e05ede Added PS/2 multimeda key support. 6 years ago
.gitignore d3b1af9572 add mouse function. 7 years ago
Makefile.common 9a938eecbd host interface for pjrc 7 years ago
Makefile.pjrc 9a938eecbd host interface for pjrc 7 years ago
Makefile.rules fb8d23c60c integrate V-USB support into ps2_usb 7 years ago
Makefile.vusb 61e12a3157 move files: main_vusb.c ps2_usart.c sendchar_usart.c from ps2_usb to common dir 6 years ago
README 00350c180d v3.0 cleanse files 7 years ago
USB_NKRO.txt 2a562a4191 Add PS/2 mouse support to connect TrackPoint Unit. 7 years ago
adb.c af85b6bba6 added HHKB/README and clean some codes. 6 years ago
adb.h 06db39583f ADB keyboard LEDs support 7 years ago
command.c 98edc2fcbc First commit. Added dvorak-qwerty switching with scroll lock led indicator, and ctrl button switches back to qwerty for shortcuts. Also added dvorak layout with layer switching. 6 years ago
command.h 98edc2fcbc First commit. Added dvorak-qwerty switching with scroll lock led indicator, and ctrl button switches back to qwerty for shortcuts. Also added dvorak layout with layer switching. 6 years ago
controller_teensy.h 98edc2fcbc First commit. Added dvorak-qwerty switching with scroll lock led indicator, and ctrl button switches back to qwerty for shortcuts. Also added dvorak layout with layer switching. 6 years ago
debug.h 45d4a7a898 improve layer switching 7 years ago
host.h 6d45e05ede Added PS/2 multimeda key support. 6 years ago
keyboard.c a77a1d2289 Merge remote branch 'upstream/master' 6 years ago
keyboard.h 9a938eecbd host interface for pjrc 7 years ago
keymap.h fb8d23c60c integrate V-USB support into ps2_usb 7 years ago
layer.c 98edc2fcbc First commit. Added dvorak-qwerty switching with scroll lock led indicator, and ctrl button switches back to qwerty for shortcuts. Also added dvorak layout with layer switching. 6 years ago
layer.h 2b8cd88ab1 refactor keyboard.h, host.h 7 years ago
led.h acc974c64b added protocol stack: pjrc, vusb 7 years ago
main_pjrc.c fb8d23c60c integrate V-USB support into ps2_usb 7 years ago
main_vusb.c 61e12a3157 move files: main_vusb.c ps2_usart.c sendchar_usart.c from ps2_usb to common dir 6 years ago
matrix.h fb8d23c60c integrate V-USB support into ps2_usb 7 years ago
mousekey.c 9a938eecbd host interface for pjrc 7 years ago
mousekey.c.bak 2b8cd88ab1 refactor keyboard.h, host.h 7 years ago
mousekey.h 2b8cd88ab1 refactor keyboard.h, host.h 7 years ago
mousekey.h.bak 2b8cd88ab1 refactor keyboard.h, host.h 7 years ago
print.c 47da6bf7d4 Added keymap support for volume control, and a function to print ints in decimal format. 6 years ago
print.h 47da6bf7d4 Added keymap support for volume control, and a function to print ints in decimal format. 6 years ago
ps2.c 068c31a7ba added initial V-USB support for HHKB 6 years ago
ps2.h 47f5d8b545 Synchronous USART support for PS/2 on V-USB stack 7 years ago
ps2_mouse.c 2b8cd88ab1 refactor keyboard.h, host.h 7 years ago
ps2_mouse.h 7272c65d3d add error handling to ps2_mouse 7 years ago
ps2_usart.c 61e12a3157 move files: main_vusb.c ps2_usart.c sendchar_usart.c from ps2_usb to common dir 6 years ago
sendchar.h 4f5f1a53d4 added PS/2 to USB converter use V-USB as protocol stack 7 years ago
timer.c 4f5f1a53d4 added PS/2 to USB converter use V-USB as protocol stack 7 years ago
timer.h 4f5f1a53d4 added PS/2 to USB converter use V-USB as protocol stack 7 years ago
usb_keycodes.h a77a1d2289 Merge remote branch 'upstream/master' 6 years ago
util.c 51f17f0231 add build option: NKRO_ENABLE(remove: USB_12KRO) 7 years ago
util.h 2f80e790c6 new build method for macway 7 years ago

README

t.m.k. Keyboard Firmware
========================
This is keyboard firmware for Teensy(AVR USB MCU) and V-USB board.

source code repository:
http://github.com/tmk/tmk_keyboard

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
PS2 to USB: http://geekhack.org/showwiki.php?title=Island:14618
ADB to USB: http://geekhack.org/showwiki.php?title=Island:14290

The project is heavily based on PJRC USB Keyboard/Mouse Example and
owes a debt to preceding keyboard firmware projects.
http://www.pjrc.com/teensy


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


Files & Directories
-------------------
Target:
hhkb/ keyboard controller for PFU HHKB pro
macway/ keyboard controller for Macway mod
ps2_usb/ PS2 to USB keyboard converter
adb_usb/ ADB to USB keyboard converter

USB Protocol Stack:
pjrc/ PJRC USB stack
vusb/ V-USB USB stack
ps2.[ch] PS/2 protocol
adb.[ch] ADB protocol


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

$ cd
$ make

The firmware will be compiled as a file tmk_.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
-------------
/Makefile:
1. Set target name for your firmware.
TARGET = tmk_
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

/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 + H to debug menu.
(see config.h for key combination.)

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