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

pull/12/head
tmk 14 years ago
parent 6b0c939d72
commit 590235d4bc

@ -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
Functions Features
--------- --------
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
# mouse keys #MCU = at90usb1286 # Teensy++ 2.0
MOUSEKEY_ENABLE = yes F_CPU = 16000000
3. Choose optional modules as needed. Comment out to disable optional modules.
# PS/2 mouse support MOUSEKEY_ENABLE = yes # Mouse keys
PS2_MOUSE_ENABLE = yes PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
USB_EXTRA_ENABLE = yes # Enhanced feature for Windows(Audio control and System control)
config.h: USB_NKRO_ENABLE = yes # USB Nkey Rollover
/* USB ID */
<target>/config.h:
1. USB vendor/product ID and device description
#define VENDOR_ID 0xFEED #define VENDOR_ID 0xFEED
#define PRODUCT_ID 0xBEEF #define PRODUCT_ID 0xBEEF
/* device description */ /* device description */
#define MANUFACTURER t.m.k. #define MANUFACTURER t.m.k.
#define PRODUCT Macway mod #define PRODUCT Macway mod
#define DESCRIPTION t.m.k. keyboard firmware for Macway mod #define DESCRIPTION t.m.k. keyboard firmware for Macway mod
/* matrix size */ 2. Keyboard matrix configuration
#define MATRIX_ROWS 8 #define MATRIX_ROWS 8
#define MATRIX_COLS 8 #define MATRIX_COLS 8
/* mouse keys repeat delay */ #define MATRIX_HAS_GHOST
#define MOUSEKEY_DELAY_TIME 192 3. Mouse keys configuration if needed.
/* PS/2 lines */ 4. PS/2 mouse configuration if needed.
#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

Loading…
Cancel
Save