logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

readme.md (4664B)


  1. TMK Keyboard Firmware Core Library
  2. ==================================
  3. This is a keyboard firmware library with some useful features for Atmel AVR and Cortex-M.
  4. Source code is available here: <https://github.com/tmk/tmk_keyboard/tree/master/tmk_core>
  5. Updates
  6. -------
  7. #### 2016/02/10
  8. flabbergast's Chibios protocol was merged from <https://github.com/flabbergast/tmk_keyboard/tree/chibios>. See [protocol/chibios/README.md](protocol/chibios/README.md). Chibios protocol supports Cortex-M such as STM32 and Kinetis.
  9. #### 2015/04/22
  10. separated with TMK Keyboard Firmware Collection
  11. Features
  12. --------
  13. These features can be used in your keyboard.
  14. * Multi-layer Keymap - Multiple keyboard layouts with layer switching
  15. * Mouse key - Mouse control with keyboard
  16. * System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up
  17. * Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc
  18. * USB NKRO - 248 keys(+ 8 modifiers) simultaneously
  19. * PS/2 mouse support - PS/2 mouse(TrackPoint) as composite device
  20. * User Function - Customizable function of key with writing code
  21. * Macro - Very primitive at this time
  22. * Keyboard Tricks - Oneshot modifier and modifier with tapping feature
  23. * Debug Console - Messages for debug and interaction with firmware
  24. * Virtual DIP Switch - Configurations stored EEPROM(Boot Magic)
  25. * Locking CapsLock - Mechanical switch support for CapsLock
  26. * Breathing Sleep LED - Sleep indicator with charm during USB suspend
  27. * Backlight - Control backlight levels
  28. TMK Keyboard Firmware Collection
  29. --------------------------------
  30. Complete firmwares for various keyboards and protocol converters.
  31. <https://github.com/tmk/tmk_keyboard>
  32. License
  33. -------
  34. **GPLv2** or later. Some protocol files are under **Modified BSD License**.
  35. ChibiOS, LUFA and V-USB stack have their own license respectively.
  36. Build Firmware and Program Controller
  37. -------------------------------------
  38. See [doc/build.md](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/build.md).
  39. Start Your Own Project
  40. -----------------------
  41. **TBD**
  42. ### Config.h Options
  43. #### 1. USB vendor/product ID and device description
  44. #define VENDOR_ID 0xFEED
  45. #define PRODUCT_ID 0xBEEF
  46. #define MANUFACTURER t.m.k.
  47. #define PRODUCT Macway mod
  48. #### 2. Keyboard matrix configuration
  49. #define MATRIX_ROWS 8
  50. #define MATRIX_COLS 8
  51. #define MATRIX_HAS_GHOST
  52. Architecture
  53. ------------
  54. Architecture Diagram
  55. +---------------+---------------+-------------+
  56. | Host | Keyboard | Matrix, LED |
  57. ___________ |-----------+-+ +-------------+ | +-----------|
  58. / /| Keys/Mouse | Protocol |d| | Action | | | Protocol |
  59. /__________/ |<-----------| LUFA |r| | Layer, Tap | | | Matrix |
  60. |.--------.| | LED | V-USB |i| |-------------| | | PS/2,IBM | __________________
  61. || || |----------->| UART |v| | Keymap | | | | Keys / /_/_/_/_/_/_/_/ /|
  62. || Host || | Console | |e| | Mousekey | | | |<----------/ /_/_/_/_/_/_/_/ / /
  63. ||________||/.<-----------| |r| | Report | | | | Control / /_/_/_/_/_/_/_/ / /
  64. `_========_'/| |---------------------------------------------|-------->/___ /_______/ ___/ /
  65. |_o______o_|/ | Sendchar, Print, Debug, Command, ... | |_________________|/
  66. +---------------------------------------------+ Keyboard
  67. Debugging
  68. --------
  69. Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack.
  70. You can use xprintf() to display debug info on `hid_listen`, see `common/xprintf.h`.
  71. Files and Directories
  72. -------------------
  73. ### Top
  74. * common/ - common codes
  75. * protocol/ - keyboard protocol support
  76. * doc/ - documents
  77. * common.mk - Makefile for common
  78. * protocol.mk - Makefile for protocol
  79. * rules.mk - Makefile for build rules
  80. ### Common
  81. * host.h
  82. * host_driver.h
  83. * keyboard.h
  84. * command.h
  85. * keymap.h
  86. * action.h
  87. * keycode.h
  88. * matrix.h
  89. * led.h
  90. * mousekey.h
  91. * report.h
  92. * debug.h
  93. * print.h
  94. * bootloader.h
  95. * sendchar.h
  96. * timer.h
  97. * util.h
  98. ### Keyboard Protocols
  99. * lufa/ - LUFA USB stack
  100. * vusb/ - Objective Development V-USB
  101. * ps2.c - PS/2 protocol
  102. * serial_soft.c - Asynchronous Serial protocol implemented by software
  103. Coding Style
  104. -------------
  105. - Doesn't use Tab to indent, use 4-spaces instead.