Made directories for keyboard and converter projects.
This commit is contained in:
1 parent
63d82fcaeb
commit
afb0846208
99 files changed
+191
-165
No files matched your search
@@ -1,151 +0,0 @@
|
||||
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 <target>
|
||||
$ 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
|
||||
EXTRAKEY_ENABLE = yes # Enhanced feature for Windows(Audio control and System control)
|
||||
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 <COMMAND> + H to debug menu.
|
||||
(see config.h for <COMMAND> 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
|
||||
@@ -0,0 +1,175 @@
|
||||
t.m.k. Keyboard Firmware Collection
|
||||
====================================
|
||||
This is a keyboard firmware with some features for Atmel AVR controller.
|
||||
|
||||
Source code is available here: <http://github.com/tmk/tmk_keyboard>
|
||||
|
||||
|
||||
Features
|
||||
--------
|
||||
* Mouse key - Mouse control by keyboard
|
||||
* System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up
|
||||
* Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc.
|
||||
* USB NKRO - Can send 120 keys(+ 8 modifiers) simultaneously.
|
||||
* PS/2 mouse support - integrate PS/2 mouse(TrackPoint) into keyboard as composite device.
|
||||
|
||||
|
||||
Projects
|
||||
--------
|
||||
### converter
|
||||
* ps2_usb - PS/2 keyboard to USB
|
||||
* adb_usb - ADB keyboard to USB
|
||||
* m0110_usb - Machintosh 128K/512K/Plus keyboard to USB
|
||||
* terminal_usb - IBM Model M terminal keyboard(PS/2 scancode set3) to USB
|
||||
* sony_usb - Sony NEWS keyboard to USB
|
||||
* x68k_usb - Sharp X68000 keyboard to USB
|
||||
|
||||
### keyboard
|
||||
* hhkb - Happy Hacking Keyboard professional
|
||||
* macway - Compact keyboard mod
|
||||
* hbk - Happy Buckling sprint keyboard(IBM Model M mod)
|
||||
|
||||
[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930
|
||||
[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047
|
||||
[GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618
|
||||
[GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290
|
||||
[GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851
|
||||
[GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965
|
||||
[GH_sony]: http://geekhack.org/showwiki.php?title=Island:25759
|
||||
[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272
|
||||
[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060
|
||||
[GH_hbk]: http://geekhack.org/showwiki.php?title=Island:29483
|
||||
|
||||
|
||||
|
||||
Files & Directories
|
||||
-------------------
|
||||
### Top
|
||||
* common/ common codes
|
||||
* protocol/ keyboard protocol support
|
||||
* keyboard/ keyboard projects
|
||||
* converter/ protocol converter projects
|
||||
* doc/ documents
|
||||
|
||||
### Keyboard Protocols
|
||||
* pjrc/ PJRC USB stack
|
||||
* vusb/ Objective Development V-USB
|
||||
* iwrap/ Bluetooth HID for Bluegiga iWRAP
|
||||
* ps2 PS/2 protocol
|
||||
* adb Apple Desktop Bus protocol
|
||||
* m0110 Macintosh 128K/512K/Plus keyboard protocol
|
||||
* news Sony NEWS keyboard protocol
|
||||
* x68k Sharp X68000 keyboard protocol
|
||||
|
||||
|
||||
Build & Program
|
||||
---------------
|
||||
### Build firmware
|
||||
To compile you need `AVR GCC`, `AVR Libc` and `GNU make`.
|
||||
You can use [WinAVR][1] on Windows and [CrossPack][2] on Mac.
|
||||
|
||||
$ cd <project>
|
||||
$ make
|
||||
|
||||
The firmware will be compiled as a file tmk_<project>.hex.
|
||||
|
||||
[1]: http://winavr.sourceforge.net/
|
||||
[2]: http://www.obdev.at/products/crosspack/index.html
|
||||
|
||||
### Program Controller
|
||||
If you have proper program command in Makefile just type this.
|
||||
|
||||
$ make program
|
||||
|
||||
As for `Teensy` you can use `PJRC's loader` to program hex file. <http://www.pjrc.com/teensy/loader.html>
|
||||
|
||||
|
||||
|
||||
Build Options
|
||||
-------------
|
||||
### `Makefile`
|
||||
#### 1. MCU and Frequency.
|
||||
MCU = atmega32u4 # Teensy 2.0
|
||||
#MCU = at90usb1286 # Teensy++ 2.0
|
||||
F_CPU = 16000000
|
||||
|
||||
#### 2. Features
|
||||
Note that ***comment out*** to disable them.
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
|
||||
EXTRAKEY_ENABLE = yes # Enhanced feature for Windows(Audio control and System control)
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
|
||||
#### 3. Programmer
|
||||
Set proper command for your controller, bootloader and programmer.
|
||||
# for PJRC Teensy
|
||||
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
|
||||
|
||||
# for Atmel AT90USBKEY
|
||||
PROGRAM_CMD = dfu-programmer $(MCU) flash $(TARGET).hex
|
||||
|
||||
# avrdude
|
||||
PROGRAM_CMD = avrdude -p $(MCU) -c avrispmkII -P USB -U flash:w:$(TARGET).hex
|
||||
PROGRAM_CMD = avrdude -p $(MCU) -c usbasp -U flash:w:$(TARGET).hex
|
||||
PROGRAM_CMD = avrdude -p $(MCU) -c arduino -P COM1 -b 57600 -U flash:w:$(TARGET).hex
|
||||
|
||||
### `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
|
||||
|
||||
### 4. PS/2 mouse configuration
|
||||
|
||||
|
||||
Keymap
|
||||
------
|
||||
|
||||
|
||||
Build your own firmware
|
||||
-----------------------
|
||||
|
||||
|
||||
Debuging
|
||||
--------
|
||||
Use PJRC's `hid_listen` to see debug messages and press `<COMMAND> + H` to debug menu.
|
||||
See `config.h` for definition of `<COMMAND>` key combination.
|
||||
|
||||
|
||||
Other Keyboard Projects
|
||||
-----------------------
|
||||
### 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/>
|
||||
@@ -2,7 +2,7 @@
|
||||
TARGET = adb_usb
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -2,7 +2,7 @@
|
||||
TARGET = m0110
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,7 +7,7 @@
|
||||
TARGET = ps2_usb_pjrc
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
@@ -7,7 +7,7 @@
|
||||
TARGET = ps2_usb_pjrc_usart
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
@@ -7,7 +7,7 @@
|
||||
TARGET = ps2_usb_vusb
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,7 +7,7 @@
|
||||
TARGET = news_usb_pjrc
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,7 +7,7 @@
|
||||
TARGET = terminal_usb_102_pjrc
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
@@ -7,7 +7,7 @@
|
||||
TARGET = terminal_usb_122_pjrc
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,7 +7,7 @@
|
||||
TARGET = x68k_usb_pjrc
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -2,7 +2,7 @@
|
||||
TARGET = hbk
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,7 +7,7 @@
|
||||
TARGET = hhkb_iwrap
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
@@ -7,7 +7,7 @@
|
||||
TARGET = hhkb_pjrc
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
@@ -7,7 +7,7 @@
|
||||
TARGET = hhkb_vusb
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -2,7 +2,7 @@
|
||||
TARGET = macway
|
||||
|
||||
# Directory common source filess exist
|
||||
TOP_DIR = ..
|
||||
TOP_DIR = ../..
|
||||
|
||||
# Directory keyboard dependent files exist
|
||||
TARGET_DIR = .
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,2 @@
|
||||
# Search Path
|
||||
VPATH += $(TOP_DIR)/protocol
|
||||
Reference in new issue
Block a user