X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=README;h=3361c1f99baac44b87c0a8e9c96b5490bc0deed8;hb=47f5d8b545eec12ca74d8e7048bb5daa290d937e;hp=1dc82ae22ddad9468ae59048e05790b0e21c2381;hpb=2c453c726920f7ee113f28ddbc85d891b7ef1ba9;p=max%2Ftmk_keyboard.git diff --git a/README b/README index 1dc82ae2..3361c1f9 100644 --- a/README +++ b/README @@ -2,40 +2,108 @@ t.m.k. Keyboard Firmware ======================== http://github.com/tmk/tmk_keyboard -This is keyboard firmware for PFU HHKB style keyboard and teensy 2.0. -OS see this as composite device which has keyboard and mouse. +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 (hhkb or macway currently) +$ make + +The firmware will be compiled as a file tmk_.hex. -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. :<) - - -Target board ------------- -Teensy 2.0 -http://www.pjrc.com/teensy + +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 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 @@ -61,35 +129,4 @@ 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) - -support for HHKB pro matrix signal - exchange controller board with teensy -Trackpoint(PS/2) - receive PS/2 signal from TrackPoint - send USB HID report -Thinkpad keyboard support - turn keyboard to USB keyboard/mouse composite device -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 -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?) - - EOF