]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - README.md
Merge commit '5a0132f1c1c9a14fd2941f0a5e29bbf5e31da20c' into master-core-pull
[max/tmk_keyboard.git] / README.md
index 6596dc33256e4802db3c582f8199ab8c19d21029..f03c9165ea272fdd3b719fced853ffa2416b24f9 100644 (file)
--- a/README.md
+++ b/README.md
@@ -5,6 +5,20 @@ This is a keyboard firmware with some useful features for Atmel AVR controller.
 Source code is available here: <http://github.com/tmk/tmk_keyboard>
 
 
 Source code is available here: <http://github.com/tmk/tmk_keyboard>
 
 
+Updates
+-------
+#### 2016/02/10
+core: flabbergast's Chibios protocol was merged from <https://github.com/flabbergast/tmk_keyboard/tree/chibios> (@72b1668). See [tmk_core/protocol/chibios/README.md](tmk_core/protocol/chibios/README.md). Chibios protocol supports Cortex-M such as STM32 and Kinetis.
+
+#### 2015/04/22
+Core library was separated to other branch `core`. <https://github.com/tmk/tmk_keyboard/tree/core>
+
+In `Makefile` you need to set `TMK_DIR` to indicate core library location now.
+
+    TMK_DIR = ../../tmk_core
+
+
+
 Features
 --------
 These features can be used in your keyboard.
 Features
 --------
 These features can be used in your keyboard.
@@ -26,6 +40,7 @@ These features can be used in your keyboard.
 * Backlight           - Control backlight levels
 
 
 * Backlight           - Control backlight levels
 
 
+
 Projects
 --------
 You can find some keyboard specific projects under `converter` and `keyboard` directory.
 Projects
 --------
 You can find some keyboard specific projects under `converter` and `keyboard` directory.
@@ -53,6 +68,16 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
 * [macway](keyboard/macway/)                - [Compact keyboard mod][GH_macway] [retired]
 * [KMAC](keyboard/kmac/)                    - Korean custom keyboard
 * [Lightsaber](keyboard/lightsaber/)        - Korean custom keyboard
 * [macway](keyboard/macway/)                - [Compact keyboard mod][GH_macway] [retired]
 * [KMAC](keyboard/kmac/)                    - Korean custom keyboard
 * [Lightsaber](keyboard/lightsaber/)        - Korean custom keyboard
+* [Infinity](keyboard/infinity/)            - Massdrop [Infinity keyboard][Infinity]
+* [NerD](keyboard/nerd/)                    - Korean custom keyboard
+* [KittenPaw](keyboard/kitten_paw)          - Custom Majestouch controller
+* [Lightpad](keyboard/lightpad)             - Korean custom keypad
+* [ghost_squid](keyboard/ghost_squid/)      - [The Ghost Squid][ghost_squid] controller for [Cooler Master QuickFire XT][cmxt]
+
+### Extenal projects using tmk_keyboard
+* [ErgoDox_cub-uanic][cub-uanic]            - Split Ergonomic Keyboard [ErgoDox][ergodox_org]
+* [mcdox][mcdox_tmk]                        - [mcdox][mcdox]
+
 
 [GH_macway]:    http://geekhack.org/showwiki.php?title=Island:11930
 [GH_hhkb]:      http://geekhack.org/showwiki.php?title=Island:12047
 
 [GH_macway]:    http://geekhack.org/showwiki.php?title=Island:11930
 [GH_hhkb]:      http://geekhack.org/showwiki.php?title=Island:12047
@@ -72,25 +97,33 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
 [PC98]:         http://en.wikipedia.org/wiki/NEC_PC-9801
 [Sun]:          http://en.wikipedia.org/wiki/Sun-3
 [IIGS]:         http://en.wikipedia.org/wiki/Apple_IIGS
 [PC98]:         http://en.wikipedia.org/wiki/NEC_PC-9801
 [Sun]:          http://en.wikipedia.org/wiki/Sun-3
 [IIGS]:         http://en.wikipedia.org/wiki/Apple_IIGS
+[Infinity]:     https://www.massdrop.com/buy/infinity-keyboard-kit
+[ghost_squid]:  http://deskthority.net/wiki/Costar_replacement_controllers#The_Ghost_Squid
+[cmxt]:         http://gaming.coolermaster.com/en/products/keyboards/quickfirext/
+[ergodox_org]:  http://ergodox.org/
+[cub-uanic]:    https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox
+[mcdox]:        https://github.com/DavidMcEwan/mcdox
+[mcdox_tmk]:    https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox
 
 
 
 License
 -------
 **GPLv2** or later. Some protocol files are under **Modified BSD License**.
 
 
 
 License
 -------
 **GPLv2** or later. Some protocol files are under **Modified BSD License**.
-LUFA, PJRC and V-USB stack have their own license respectively.
+
+Third party libraries like LUFA, PJRC and V-USB have their own license respectively.
 
 
 
 Build Firmware and Program Controller
 -------------------------------------
 
 
 
 Build Firmware and Program Controller
 -------------------------------------
-See [doc/build.md](doc/build.md).
+See [tmk_core/doc/build.md](tmk_core/doc/build.md).
 
 
 
 Change your keymap
 ------------------
 
 
 
 Change your keymap
 ------------------
-See [doc/keymap.md](doc/keymap.md).
+See [tmk_core/doc/keymap.md](tmk_core/doc/keymap.md).
 
 
 
 
 
 
@@ -98,7 +131,8 @@ Magic Commands
 --------------
 To see help press `Magic` + `H`.
 
 --------------
 To see help press `Magic` + `H`.
 
- `Magic` key bind may be `LShift` + `RShift` in many project, but `Power` key on ADB converter. `Magic` keybind can be vary on each project, check `config.h` in project directory.
+`Magic` key combination is `LShift` + `RShift` in many project, but `Power` key on ADB converter. 
+`Magic` keybind can be vary on each project, check `config.h` in project directory.
 
 Following commands can be also executed with `Magic` + key. In console mode `Magic` keybind is not needed.
 
 
 Following commands can be also executed with `Magic` + key. In console mode `Magic` keybind is not needed.
 
@@ -122,13 +156,14 @@ Following commands can be also executed with `Magic` + key. In console mode `Mag
     Caps:   Lock Keyboard(Child Proof)
     Paus:   jump to bootloader
 
     Caps:   Lock Keyboard(Child Proof)
     Paus:   jump to bootloader
 
-**TBD**
 
 
-### Boot Magic Configuration - Virtual DIP Switch
+
+Boot Magic Configuration - Virtual DIP Switch
+---------------------------------------------
 Boot Magic are executed during boot up time. Press Magic key below then plug in keyboard cable.
 Note that you must use keys of **Layer 0** as Magic keys. These settings are stored in EEPROM so that retain your configure over power cycles.
 
 Boot Magic are executed during boot up time. Press Magic key below then plug in keyboard cable.
 Note that you must use keys of **Layer 0** as Magic keys. These settings are stored in EEPROM so that retain your configure over power cycles.
 
-To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be pressed along with the following configuration keys. The salt key is configurable in `config.h`. See [common/bootmagic.h](common/bootmagic.h).
+To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be pressed along with the following configuration keys. The salt key is configurable in `config.h`. See [tmk_core/common/bootmagic.h](tmk_core/common/bootmagic.h).
 
 #### General
 - Skip reading EEPROM to start with default configuration(`ESC`)
 
 #### General
 - Skip reading EEPROM to start with default configuration(`ESC`)
@@ -151,6 +186,7 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be
 - Disable Gui(`Left Gui`)
 - Swap Grave and Escape(`Grave`)
 - Swap BackSlash and BackSpace(`Back Slash`)
 - Disable Gui(`Left Gui`)
 - Swap Grave and Escape(`Grave`)
 - Swap BackSlash and BackSpace(`Back Slash`)
+- Enable NKRO on boot(`N`)
 
 #### Default Layer
 - Set Default Layer to 0(`0`)
 
 #### Default Layer
 - Set Default Layer to 0(`0`)
@@ -162,55 +198,23 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be
 - Set Default Layer to 6(`6`)
 - Set Default Layer to 7(`7`)
 
 - Set Default Layer to 6(`6`)
 - Set Default Layer to 7(`7`)
 
-#### Caution
-Unintentional use of this feature will cause user confusion.
-
-TODO: Magic key combination to avoid unintentional press during plug in
-
-**TBD**
 
 
 Mechanical Locking support
 --------------------------
 
 
 Mechanical Locking support
 --------------------------
-This feature makes it possible for you to use mechanical switch for `CapsLock`, `NumLock` or `ScrollLock`. To enable this feature define these macros in `config.h` and use `KC_LCAP`, `KC_LNUM` or `KC_LSCR` in keymap for locking key instead of normal `KC_CAPS`, `KC_NLCK` or `KC_SLCK`. Resync option tries to keep lock switch state consistent with keyboard LED state.
+This feature makes it possible for you to use mechanical locking switch for `CapsLock`, `NumLock` 
+or `ScrollLock`. To enable this feature define these macros in `config.h` and use `KC_LCAP`, `KC_LN
+UM` or `KC_LSCR` in keymap for locking key instead of normal `KC_CAPS`, `KC_NLCK` or `KC_SLCK`. Res
+ync option tries to keep switch state consistent with keyboard LED state.
  
     #define LOCKING_SUPPORT_ENABLE
     #define LOCKING_RESYNC_ENABLE
 
 
  
     #define LOCKING_SUPPORT_ENABLE
     #define LOCKING_RESYNC_ENABLE
 
 
+
 Start Your Own Project
 -----------------------
 **TBD**
 Start Your Own Project
 -----------------------
 **TBD**
-### Config.h Options
-#### 1. USB vendor/product ID and device description
-    #define VENDOR_ID       0xFEED
-    #define PRODUCT_ID      0xBEEF
-    #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
-
-
-
-Architecture
-------------
-    Architecture Diagram
-                               +---------------+---------------+-------------+
-                               |    Host       |   Keyboard    | Matrix, LED |
-       ___________             |-----------+-+ +-------------+ | +-----------|
-      /          /| Keys/Mouse | Protocol  |d| | Action      | | | Protocol  |
-     /__________/ |<-----------|  LUFA     |r| |  Layer, Tap | | |  Matrix   |
-     |.--------.| |   LED      |  V-USB    |i| |-------------| | |  PS/2,IBM |             __________________
-     ||        || |----------->|  PJRC     |v| | Keymap      | | |  ADB,M0110|  Keys      / /_/_/_/_/_/_/_/ /|
-     ||  Host  || |  Console   |  iWRAP(BT)|e| | Mousekey    | | |  SUN/NEWS |<----------/ /_/_/_/_/_/_/_/ / /
-     ||________||/.<-----------|  UART     |r| | Report      | | |  X68K/PC98| Control  / /_/_/_/_/_/_/_/ / /
-     `_========_'/|            |---------------------------------------------|-------->/___ /_______/ ___/ /
-     |_o______o_|/             | Sendchar, Print, Debug, Command, ...        |         |_________________|/
-                               +---------------------------------------------+              Keyboard
 
 
 
 
 
 
@@ -218,52 +222,17 @@ Debugging
 --------
 Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack.
 
 --------
 Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack.
 
-You can use xprintf() to display debug info on `hid_listen`, see `common/xprintf.h`.
+You can use xprintf() to display debug info on `hid_listen`, see `tmk_core/common/xprintf.h`.
 
 
 
 Files and Directories
 -------------------
 ### Top
 
 
 
 Files and Directories
 -------------------
 ### Top
-* common/       - common codes
-* protocol/     - keyboard protocol support
 * keyboard/     - keyboard projects
 * converter/    - protocol converter projects
 * keyboard/     - keyboard projects
 * converter/    - protocol converter projects
-* doc/          - documents
-* common.mk     - Makefile for common
-* protocol.mk    - Makefile for protocol
-* rules.mk      - Makefile for build rules
-
-### Common
-* host.h
-* host_driver.h
-* keyboard.h
-* command.h
-* keymap.h
-* action.h
-* keycode.h
-* matrix.h
-* led.h
-* mousekey.h
-* report.h
-* debug.h
-* print.h
-* bootloader.h
-* sendchar.h
-* timer.h
-* util.h
-
-### Keyboard Protocols
-* lufa/     - LUFA USB stack
-* pjrc/     - PJRC USB stack
-* vusb/     - Objective Development V-USB
-* iwrap/    - Bluetooth HID for Bluegiga iWRAP
-* ps2.c     - PS/2 protocol
-* adb.c     - Apple Desktop Bus protocol
-* m0110.c   - Macintosh 128K/512K/Plus keyboard protocol
-* news.c    - Sony NEWS keyboard protocol
-* x68k.c    - Sharp X68000 keyboard protocol
-* serial_soft.c - Asynchronous Serial protocol implemented by software
+* tmk_core/     - core library
+* tmk_core/doc/ - documents
 
 
 
 
 
 
@@ -275,4 +244,4 @@ Coding Style
 
 Other Keyboard Firmware Projects
 ------------------
 
 Other Keyboard Firmware Projects
 ------------------
-See [doc/other_projects.md](doc/other_projects.md).
+You can learn a lot about keyboard firmware from these. See [Other Projects](https://github.com/tmk/tmk_keyboard/wiki/Other-Protjects) other than TMK.