add "Build your own firmware" and "Features" section to README.

This commit is contained in:
tmk 2011-01-06 15:11:37 +09:00
parent 6b0c939d72
commit 590235d4bc

110
README
View file

@ -2,74 +2,96 @@ t.m.k. Keyboard Firmware
======================== ========================
http://github.com/tmk/tmk_keyboard http://github.com/tmk/tmk_keyboard
This is keyboard firmware for AVR USB MCUs or Teensy/Teensy++ 2.0. 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 The project is heavily based on PJRC USB Keyboard/Mouse Example and
owes a debt to preceding keyboard firmware projects. owes a debt to preceding keyboard firmware projects.
http://www.pjrc.com/teensy 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
Functions --------
---------
Mouse key Mouse key
control mouse cursor from keyboard.
System Control Key System Control Key
Power Down, Sleep, Wake Up & USB Remote Wake up Power Down, Sleep, Wake Up & USB Remote Wake up
Media Control Key Media Control Key
Volume Down/Up, Mute Volume Down/Up, Mute
USB NKRO 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 Build
----- -----
Compiling sources need AVR GCC, AVR Libc and GNU make.(You can use WinAVR on Windows.) 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) $ cd <target> (hhkb or macway currently)
$ make $ make
http://winavr.sourceforge.net/ 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.
Build Options Build Options
------------- -------------
Makefile: <target>/Makefile:
Comment out to disable the option 1. Set target name for your firmware.
# USB NKey Rollover TARGET = tmk_<target>
USB_NKRO_ENABLE = yes 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
# mouse keys <target>/config.h:
MOUSEKEY_ENABLE = yes 1. USB vendor/product ID and device description
#define VENDOR_ID 0xFEED
# PS/2 mouse support #define PRODUCT_ID 0xBEEF
PS2_MOUSE_ENABLE = yes /* device description */
#define MANUFACTURER t.m.k.
config.h: #define PRODUCT Macway mod
/* USB ID */ #define DESCRIPTION t.m.k. keyboard firmware for Macway mod
#define VENDOR_ID 0xFEED 2. Keyboard matrix configuration
#define PRODUCT_ID 0xBEEF #define MATRIX_ROWS 8
/* device description */ #define MATRIX_COLS 8
#define MANUFACTURER t.m.k. #define MATRIX_HAS_GHOST
#define PRODUCT Macway mod 3. Mouse keys configuration if needed.
#define DESCRIPTION t.m.k. keyboard firmware for Macway mod 4. PS/2 mouse configuration if needed.
/* matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 8
/* mouse keys repeat delay */
#define MOUSEKEY_DELAY_TIME 192
/* PS/2 lines */
#define PS2_CLOCK_PORT PORTF
#define PS2_CLOCK_PIN PINF
#define PS2_CLOCK_DDR DDRF
#define PS2_CLOCK_BIT 0
#define PS2_DATA_PORT PORTF
#define PS2_DATA_PIN PINF
#define PS2_DATA_DDR DDRF
#define PS2_DATA_BIT 1
Configuration
-------------
Debuging & Rescue Debuging & Rescue