mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-22 16:37:58 +06:00
Open-source keyboard firmware for Atmel AVR and Arm USB families
adb_usb | ||
hhkb | ||
iwrap | ||
m0110_usb | ||
macway | ||
pjrc | ||
ps2_usb | ||
vusb | ||
.gitignore | ||
adb.c | ||
adb.h | ||
bootloader.c | ||
bootloader.h | ||
command.c | ||
command.h | ||
common.mk | ||
controller_teensy.h | ||
COPYING.GPLv2 | ||
COPYING.GPLv3 | ||
debug.h | ||
host_driver.h | ||
host.c | ||
host.h | ||
iwrap.mk | ||
keyboard.c | ||
keyboard.h | ||
keymap.h | ||
layer.c | ||
layer.h | ||
led.h | ||
LICENSE.txt | ||
m0110.c | ||
m0110.h | ||
matrix.h | ||
mousekey.c | ||
mousekey.h | ||
pjrc.mk | ||
POWER.txt | ||
print.c | ||
print.h | ||
ps2_mouse.c | ||
ps2_mouse.h | ||
ps2_usart.c | ||
ps2.c | ||
ps2.h | ||
README | ||
report.h | ||
rules.mk | ||
sendchar_null.c | ||
sendchar_uart.c | ||
sendchar.h | ||
timer.c | ||
timer.h | ||
uart.c | ||
uart.h | ||
usb_keycodes.h | ||
USB_NKRO.txt | ||
util.c | ||
util.h | ||
vusb.mk |
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