aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes93
-rw-r--r--doc/keymap.md29
-rw-r--r--keyboards/ergodox/infinity/infinity.c24
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo-Notes10
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo-layout.pdfbin0 -> 185426 bytes
-rw-r--r--keyboards/ergodox/keymaps/jafo/jafo_highres.pngbin0 -> 179460 bytes
-rw-r--r--keyboards/ergodox/keymaps/jafo/keymap.c183
-rw-r--r--keyboards/ergodox/keymaps/jafo/readme.md20
-rw-r--r--keyboards/ergodox/keymaps/ordinary/keymap.c347
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-base.pngbin99605 -> 98200 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-base.txt16
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-media.pngbin124144 -> 123435 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-media.txt36
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-special.pngbin63065 -> 68292 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-special.txt22
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-symbol.pngbin103735 -> 101255 bytes
-rw-r--r--keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt20
-rw-r--r--keyboards/ergodox/keymaps/ordinary/readme.md71
-rw-r--r--keyboards/ergodox/keymaps/xyverz/keymap.c404
-rw-r--r--keyboards/ergodox/keymaps/xyverz/readme.md16
-rw-r--r--keyboards/kitten_paw/Makefile77
-rw-r--r--keyboards/kitten_paw/config.h162
-rw-r--r--keyboards/kitten_paw/keymaps/default/keymap.c51
-rw-r--r--keyboards/kitten_paw/kitten_paw.c30
-rw-r--r--keyboards/kitten_paw/kitten_paw.h47
-rw-r--r--keyboards/kitten_paw/led.c47
-rw-r--r--keyboards/kitten_paw/matrix.c164
-rw-r--r--keyboards/kitten_paw/readme.md32
-rw-r--r--keyboards/planck/keymaps/experimental/Makefile1
-rw-r--r--keyboards/planck/keymaps/experimental/keymap.c8
-rw-r--r--keyboards/planck/planck.c10
-rw-r--r--keyboards/preonic/preonic.c11
-rw-r--r--keyboards/readme.md1
-rw-r--r--keyboards/tv44/keymaps/default/keymap.c2
-rw-r--r--keyboards/tv44/tv44.h2
-rw-r--r--quantum/process_keycode/process_unicode.c2
-rw-r--r--readme.md51
-rw-r--r--tmk_core/common.mk4
-rw-r--r--tmk_core/common/action.c82
-rw-r--r--tmk_core/common/action.h18
-rw-r--r--tmk_core/common/action_code.h28
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt2
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt2
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt90
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css106
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml26
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml36
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest66
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py76
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml192
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml68
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml228
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml1706
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml112
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml396
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml62
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml64
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml170
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml86
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml84
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml72
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml120
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml52
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml46
-rw-r--r--tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml86
-rwxr-xr-xtmk_core/protocol/midi/Config/LUFAConfig.h186
-rw-r--r--tmk_core/tool/chibios/ch-bootloader-jump.patch204
67 files changed, 3797 insertions, 2662 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..8fd1fd752
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,93 @@
1# auto for anything unspecified
2* text=auto
3
4# sources
5*.c text
6*.cc text
7*.cxx text
8*.cpp text
9*.c++ text
10*.hpp text
11*.h text
12*.h++ text
13*.hh text
14*.bat text
15*.coffee text
16*.css text
17*.htm text
18*.html text
19*.inc text
20*.ini text
21*.js text
22*.jsx text
23*.json text
24*.less text
25*.php text
26*.pl text
27*.py text
28*.rb text
29*.sass text
30*.scm text
31*.scss text
32*.sh text
33*.sql text
34*.styl text
35*.ts text
36*.xml text
37*.xhtml text
38
39# make files (need to always use lf for compatibility with Windows 10 bash)
40Makefile eol=lf
41*.mk eol=lf
42
43# make files (need to always use lf for compatibility with Windows 10 bash)
44*.sh eol=lf
45
46# documentation
47*.markdown text
48*.md text
49*.mdwn text
50*.mdown text
51*.mkd text
52*.mkdn text
53*.mdtxt text
54*.mdtext text
55*.txt text
56AUTHORS text
57CHANGELOG text
58CHANGES text
59CONTRIBUTING text
60COPYING text
61INSTALL text
62license text
63LICENSE text
64NEWS text
65readme text
66*README* text
67TODO text
68
69GRAPHICS
70*.ai binary
71*.bmp binary
72*.eps binary
73*.gif binary
74*.ico binary
75*.jng binary
76*.jp2 binary
77*.jpg binary
78*.jpeg binary
79*.jpx binary
80*.jxr binary
81*.pdf binary
82*.png binary
83*.psb binary
84*.psd binary
85*.svg text
86*.svgz binary
87*.tif binary
88*.tiff binary
89*.wbmp binary
90*.webp binary
91
92# hex files
93*.hex binary
diff --git a/doc/keymap.md b/doc/keymap.md
index d1985e567..6f2a663fc 100644
--- a/doc/keymap.md
+++ b/doc/keymap.md
@@ -455,6 +455,35 @@ Turn the backlight on and off without changing level.
455 455
456 456
457 457
458### 2.6 Swap-Hands Action
459The swap-hands action allows support for one-handed keyboards without requiring a separate layer. Set `ONEHAND_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd`
460
461### 2.6.1 Configuration
462The configuration table is a simple 2-dimensional array to map from column/row to new column/row. Example `hand_swap_config` for Planck:
463
464```
465const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
466 {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
467 {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
468 {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
469 {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
470};
471```
472
473Note that the array indices are reversed same as the matrix and the values are of type `keypos_t` which is `{col, row}` and all values are zero-based. In the example above, `hand_swap_config[2][4]` (third row, fifth column) would return {7, 2} (third row, eighth column).
474
475### 2.6.2 Advanced Swap Commands
476- **`ACTION_SWAP_HANDS()`** Swaps hands when pressed, returns to normal when released (momentary).
477- **`ACTION_SWAP_HANDS_TOGGLE()`** Toggles swap on and off with every keypress.
478- **`ACTION_SWAP_HANDS_TAP_TOGGLE()`** Toggles with a tap; momentary when held.
479- **`ACTION_SWAP_HANDS_TAP_KEY(key)`** Sends `key` with a tap; momentary swap when held.
480- **`ACTION_SWAP_HANDS_ON_OFF()`** Alias for `ACTION_SWAP_HANDS()`
481- **`ACTION_SWAP_HANDS_OFF_ON()`** Momentarily turns off swap.
482- **`ACTION_SWAP_HANDS_ON()`** Turns on swapping and leaves it on.
483- **`ACTION_SWAP_HANDS_OFF()`** Turn off swapping and leaves it off. Good for returning to a known state.
484
485
486
458## 3. Layer switching Example 487## 3. Layer switching Example
459There are some ways to switch layer with 'Layer' actions. 488There are some ways to switch layer with 'Layer' actions.
460 489
diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c
index f89e046d0..c5793385f 100644
--- a/keyboards/ergodox/infinity/infinity.c
+++ b/keyboards/ergodox/infinity/infinity.c
@@ -130,3 +130,27 @@ void ergodox_right_led_3_off(void){
130 130
131void ergodox_right_led_off(uint8_t led){ 131void ergodox_right_led_off(uint8_t led){
132} 132}
133
134#ifdef ONEHAND_ENABLE
135__attribute__ ((weak))
136const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
137 {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}},
138 {{0, 10}, {1, 10}, {2, 10}, {3, 10}, {4, 10}},
139 {{0, 11}, {1, 11}, {2, 11}, {3, 11}, {4, 11}},
140 {{0, 12}, {1, 12}, {2, 12}, {3, 12}, {4, 12}},
141 {{0, 13}, {1, 13}, {2, 13}, {3, 13}, {4, 13}},
142 {{0, 14}, {1, 14}, {2, 14}, {3, 14}, {4, 14}},
143 {{0, 15}, {1, 15}, {2, 15}, {3, 15}, {4, 15}},
144 {{0, 16}, {1, 16}, {2, 16}, {3, 16}, {4, 16}},
145 {{0, 17}, {1, 17}, {2, 17}, {3, 17}, {4, 17}},
146 {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}},
147 {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}},
148 {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}},
149 {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}},
150 {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}},
151 {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}},
152 {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}},
153 {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}},
154 {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}},
155};
156#endif
diff --git a/keyboards/ergodox/keymaps/jafo/jafo-Notes b/keyboards/ergodox/keymaps/jafo/jafo-Notes
new file mode 100644
index 000000000..9376125e9
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/jafo-Notes
@@ -0,0 +1,10 @@
1These are notes on how to build and deploy the firmware to Ez, but they are
2from before the qmk restructuring.
3
4cd qmk_firmware/keyboard/ergodox_ez
5make KEYMAP=jafo
6cp ergodox_ez.hex keymaps/jafo/
7/tmp/teensy.64bit
8Open hex keymap file
9Program
10Upload
diff --git a/keyboards/ergodox/keymaps/jafo/jafo-layout.pdf b/keyboards/ergodox/keymaps/jafo/jafo-layout.pdf
new file mode 100644
index 000000000..189b49b12
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/jafo-layout.pdf
Binary files differ
diff --git a/keyboards/ergodox/keymaps/jafo/jafo_highres.png b/keyboards/ergodox/keymaps/jafo/jafo_highres.png
new file mode 100644
index 000000000..e3d7cef85
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/jafo_highres.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/jafo/keymap.c b/keyboards/ergodox/keymaps/jafo/keymap.c
new file mode 100644
index 000000000..4f1428f2b
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/keymap.c
@@ -0,0 +1,183 @@
1#include "ergodox.h"
2#include "debug.h"
3#include "action_layer.h"
4#include "version.h"
5
6#define BASE 0 // default layer
7#define SYMB 1 // symbols
8#define MDIA 2 // media keys
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11/* Keymap 0: Basic layer
12 *
13 * ,--------------------------------------------------. ,--------------------------------------------------.
14 * | Grv | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
15 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
16 * | = | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
17 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
18 * | Esc/Cmd| A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
19 * |--------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------|
20 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
21 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
22 * |Grv/L1| '" | Del | Left | Right| | Up | Down | [ | ] | ~L1 |
23 * `----------------------------------' `----------------------------------'
24 * ,-------------. ,-------------.
25 * |Ctrl/Esc| Alt| | Alt |Ctrl/Esc|
26 * ,------|------|------| |------+--------+------.
27 * | | | Home | | PgUp | | |
28 * | Space|Backsp|------| |------| Tab |Enter |
29 * | |ace | End | | PgDn | | |
30 * `--------------------' `----------------------'
31 */
32// If it accepts an argument (i.e, is a function), it doesn't need KC_.
33// Otherwise, it needs KC_*
34[BASE] = KEYMAP( // layer 0 : default
35 // left hand
36 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
37 KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
38 GUI_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
39 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(MDIA),
40 LT(SYMB,KC_GRV),KC_QUOT, KC_DELT, KC_LEFT,KC_RGHT,
41 CTL_T(KC_ESC), KC_LALT,
42 KC_HOME,
43 KC_SPC,KC_BSPC,KC_END,
44 // right hand
45 KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
46 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
47 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
48 TG(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
49 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
50 KC_LALT, CTL_T(KC_ESC),
51 KC_PGUP,
52 KC_PGDN,KC_TAB, KC_ENT
53 ),
54/* Keymap 1: Symbol Layer
55 *
56 * ,--------------------------------------------------. ,--------------------------------------------------.
57 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
58 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
59 * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
60 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
61 * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
62 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
63 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
64 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
65 * | | | | | | | | . | 0 | = | |
66 * `----------------------------------' `----------------------------------'
67 * ,-------------. ,-------------.
68 * | | | | | |
69 * ,------|------|------| |------+------+------.
70 * | | | | | | | |
71 * | | |------| |------| | |
72 * | | | | | | | |
73 * `--------------------' `--------------------'
74 */
75// SYMBOLS
76[SYMB] = KEYMAP(
77 // left hand
78 KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
79 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
80 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
81 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
82 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
83 KC_TRNS,KC_TRNS,
84 KC_TRNS,
85 KC_TRNS,KC_TRNS,KC_TRNS,
86 // right hand
87 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
88 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
89 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
90 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
91 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
92 KC_TRNS, KC_TRNS,
93 KC_TRNS,
94 KC_TRNS, KC_TRNS, KC_TRNS
95),
96/* Keymap 2: Media and mouse keys
97 *
98 * ,--------------------------------------------------. ,--------------------------------------------------.
99 * | | | | | | | | | | | | | | | |
100 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
101 * | | | | MsUp | | | | | | | | | | | |
102 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
103 * | | |MsLeft|MsDown|MsRght| |------| |------| LEFT | DOWN | UP | RIGHT| | Play |
104 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
105 * | | | | | | | | | | | | Prev | Next | | |
106 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
107 * | | | Lclk | Mclk | Rclk | |VolUp |VolDn | Mute | | |
108 * `----------------------------------' `----------------------------------'
109 * ,-------------. ,-------------.
110 * | | | | | |
111 * ,------|------|------| |------+------+------.
112 * | | | | | | |Brwser|
113 * | | |------| |------| |Back |
114 * | | | | | | | |
115 * `--------------------' `--------------------'
116 */
117// MEDIA AND MOUSE
118[MDIA] = KEYMAP(
119 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
120 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
121 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
122 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
123 KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2,
124 KC_TRNS, KC_TRNS,
125 KC_TRNS,
126 KC_TRNS, KC_TRNS, KC_TRNS,
127 // right hand
128 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
129 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
130 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_MPLY,
131 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
132 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
133 KC_TRNS, KC_TRNS,
134 KC_TRNS,
135 KC_TRNS, KC_TRNS, KC_WBAK
136),
137};
138
139const uint16_t PROGMEM fn_actions[] = {
140 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
141};
142
143const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
144{
145 // MACRODOWN only works in this function
146 switch(id) {
147 case 0:
148 if (record->event.pressed) {
149 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
150 }
151 break;
152 }
153 return MACRO_NONE;
154};
155
156// Runs just one time when the keyboard initializes.
157void matrix_init_user(void) {
158
159};
160
161// Runs constantly in the background, in a loop.
162void matrix_scan_user(void) {
163
164 uint8_t layer = biton32(layer_state);
165
166 ergodox_board_led_off();
167 ergodox_right_led_1_off();
168 ergodox_right_led_2_off();
169 ergodox_right_led_3_off();
170 switch (layer) {
171 // TODO: Make this relevant to the ErgoDox EZ.
172 case 1:
173 ergodox_right_led_1_on();
174 break;
175 case 2:
176 ergodox_right_led_2_on();
177 break;
178 default:
179 // none
180 break;
181 }
182
183};
diff --git a/keyboards/ergodox/keymaps/jafo/readme.md b/keyboards/ergodox/keymaps/jafo/readme.md
new file mode 100644
index 000000000..c870dfd05
--- /dev/null
+++ b/keyboards/ergodox/keymaps/jafo/readme.md
@@ -0,0 +1,20 @@
1# ErgoDox EZ "jafo" Configuration
2
3This is a layout based on the ErgoDox Ez default layout, but with some
4customizations I made for my use-case. I use Linux, vi and the i3 window
5manager, so I made these changes:
6
7- Arrow keys laid out in vi positions in media layer.
8
9- Esc (tap) and Win (held) to the left of A. i3 uses Win key for navigation
10 and having that be symmetric on the left and right makes it easier.
11
12- Grave accent below equals, I was having a hard time using ~
13
14- Layer 2 switch below the L1 switch, so I can go into a mode where I get
15 arrow keys under my vi motion fingers.
16
17- Making the Ctrl (held) and Esc (tap) on my thumbs symmetric. Not sure I
18 need that with the Esc left of A and Ctrl on the Z and / keys when held...
19
20![Jafo](jafo_highres.png)
diff --git a/keyboards/ergodox/keymaps/ordinary/keymap.c b/keyboards/ergodox/keymaps/ordinary/keymap.c
index bf0574ea2..302c41cc8 100644
--- a/keyboards/ergodox/keymaps/ordinary/keymap.c
+++ b/keyboards/ergodox/keymaps/ordinary/keymap.c
@@ -3,21 +3,18 @@
3#include "debug.h" 3#include "debug.h"
4#include "action_layer.h" 4#include "action_layer.h"
5#include "action_util.h" 5#include "action_util.h"
6#include "mousekey.h"
7 6
8#define BASE 0 // default layer 7#define BASE 0 // default layer
9#define SYMB 1 // symbols layer 8#define SYMB 1 // symbols layer
10#define MDIA 2 // media layer 9#define MDIA 2 // media layer
11#define SPEC 3 // special layer 10#define SPEC 3 // special layer
12 11
13#define LCaps 10 // left caps-shift key 12#define LSymb 10 // left symbol-shift key
14#define LSymb 11 // left symbol-shift key 13#define LMdia 11 // left media-shift key
15#define LMdia 12 // left media-shift key 14#define LSpec 12 // left special-shift key
16#define LSpec 13 // left special-shift key 15#define RSymb 13 // right symbol-shift key
17#define RCaps 14 // right caps-shift key 16#define RMdia 14 // right media-shift key
18#define RSymb 15 // right symbol-shift key 17#define RSpec 15 // right special-shift key
19#define RMdia 16 // right media-shift key
20#define RSpec 17 // right special-shift key
21 18
22#define MUL 20 // mouse up left 19#define MUL 20 // mouse up left
23#define MUR 21 // mouse up right 20#define MUR 21 // mouse up right
@@ -25,123 +22,124 @@
25#define MDR 23 // mouse down right 22#define MDR 23 // mouse down right
26 23
27/* 24/*
28 * The Ordinary Layout for the Ergodox EZ keyboard, v4 25 * The Ordinary Layout for the Ergodox EZ keyboard, v4.20
29 * 26 *
30 * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com 27 * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
31 * 28 *
32 * No rights reserved. This software is in the public domain. 29 * No rights reserved. This software is in the public domain.
33 * Credit me if you are friendly but if you're a jerk don't bother. 30 * Credit me if you are friendly but if you're a jerk don't bother.
34 * 31 * If you use or modify this layout I would love to hear from you.
32 *
35 * Details: readme.md 33 * Details: readme.md
36 * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary 34 * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary
37 */ 35 */
38 36
39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40 38
41/******* Base Layer ******************************************************************************************************** 39/******* Base Layer ****************************************************************************************************
42 * 40 *
43 * ,------------------------------------------------------. ,------------------------------------------------------. 41 * ,------------------------------------------------------. ,------------------------------------------------------.
44 * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special | 42 * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special |
45 * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| 43 * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
46 * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | 44 * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
47 * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| 45 * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
48 * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | 46 * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol |
49 * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| 47 * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
50 * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | 48 * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
51 * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' 49 * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
52 * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | 50 * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
53 * `-----------------------------------' `-----------------------------------' 51 * `-----------------------------------' `-----------------------------------'
54 * ,-------------. ,-------------. 52 * ,-------------. ,-------------.
55 * | Home | End | | Left | Right| 53 * | Home | End | | Left | Right|
56 * ,------|------|------| |------+------+------. 54 * ,------|------|------| |------+------+------.
57 * | | | PgUp | | Up | | | 55 * | | | PgUp | | Up | | |
58 * |Backsp| Del |------| |------| Enter| Space| 56 * |Backsp| Del |------| |------| Enter| Space|
59 * | | | PgDn | | Down | | | 57 * | | | PgDn | | Down | | |
60 * `--------------------' `--------------------' 58 * `--------------------' `--------------------'
61 */ 59 */
62[BASE] = KEYMAP( 60[BASE] = KEYMAP(
63// left hand 61// left hand
64 F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC 62 F(LSpec) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC
65,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC 63,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
66,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G 64,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
67,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) 65,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
68,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI 66,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI
69 ,KC_HOME,KC_END 67 ,KC_HOME,KC_END
70 ,KC_PGUP 68 ,KC_PGUP
71 ,KC_BSPC,KC_DEL ,KC_PGDN 69 ,KC_BSPC,KC_DEL ,KC_PGDN
72 // right hand 70 // right hand
73 ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) 71 ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
74 ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) 72 ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia)
75 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) 73 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb)
76 ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) 74 ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT
77 ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL 75 ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL
78 ,KC_LEFT ,KC_RGHT 76 ,KC_LEFT ,KC_RGHT
79 ,KC_UP 77 ,KC_UP
80 ,KC_DOWN ,KC_ENT ,KC_SPC 78 ,KC_DOWN ,KC_ENT ,KC_SPC
81 ), 79 ),
82 80
83/******* Symbols Layer ***************************************************************************************************** 81/******* Symbols Layer *************************************************************************************************
84 * 82 *
85 * ,-----------------------------------------------------. ,-----------------------------------------------------. 83 * ,-----------------------------------------------------. ,-----------------------------------------------------.
86 * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | 84 * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | |
87 * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| 85 * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
88 * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | 86 * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
89 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| 87 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
90 * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | 88 * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
91 * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| 89 * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------|
92 * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | 90 * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | |
93 * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' 91 * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
94 * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| 92 * | LCtrl | Meh |Hyper | LAlt | LGui | | 0 | . | = | + | Ent |
95 * `-----------------------------------' `-------------------------------------' 93 * `-----------------------------------' `-----------------------------------'
96 * ,-------------. ,-------------. 94 * ,-------------. ,-------------.
97 * | Left | Right| | Home | End | 95 * | Left | Right| | Home | End |
98 * ,------|------|------| |------+------+------. 96 * ,------|------|------| |------+------+------.
99 * | | | Up | | PgUp | | | 97 * | | | Up | | PgUp | | |
100 * |Space |Enter |------| |------|BackSp| Del | 98 * |Space |Enter |------| |------|BackSp| Del |
101 * | | | Down | | PgDn | | | 99 * | | | Down | | PgDn | | |
102 * `--------------------' `--------------------' 100 * `--------------------' `--------------------'
103 */ 101 */
104[SYMB] = KEYMAP( 102[SYMB] = KEYMAP(
105// left hand 103// left hand
106 KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC 104 KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
107,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) 105,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
108,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV 106,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
109,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB 107,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB
110,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI 108,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI
111 ,KC_LEFT ,KC_RGHT 109 ,KC_LEFT ,KC_RGHT
112 ,KC_UP 110 ,KC_UP
113 ,KC_SPC ,KC_ENT ,KC_DOWN 111 ,KC_SPC ,KC_ENT ,KC_DOWN
114 // right hand 112 // right hand
115 ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS 113 ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
116 ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS 114 ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
117 ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS 115 ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
118 ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS 116 ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
119 ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) 117 ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT
120 ,KC_HOME ,KC_END 118 ,KC_HOME ,KC_END
121 ,KC_PGUP 119 ,KC_PGUP
122 ,KC_PGDN ,KC_BSPC ,KC_DEL 120 ,KC_PGDN ,KC_BSPC ,KC_DEL
123), 121),
124 122
125/******* Media Layer ******************************************************************************************************* 123/******* Media Layer *******************************************************************************************************
126 * 124 *
127 * ,---------------------------------------------------------------. ,---------------------------------------------------------------. 125 * ,---------------------------------------------------------------. ,---------------------------------------------------------------.
128 * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | 126 * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | |
129 * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| 127 * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
130 * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | | 128 * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | |
131 * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| 129 * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
132 * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | | 130 * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | |
133 * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| 131 * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
134 * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | 132 * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | |
135 * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' 133 * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
136 * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| 134 * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl|
137 * `---------------------------------------------' `---------------------------------------------' 135 * `---------------------------------------------' `---------------------------------------------'
138 * ,-------------. ,-------------. 136 * ,-------------. ,-------------.
139 * | Stop |Refrsh| | Prev | Next | 137 * | Stop |Refrsh| | Prev | Next |
140 * ,------|------|------| |------+------+------. 138 * ,------|------|------| |------+------+------.
141 * |Brwser|Brwser|Search| |VolUp | | | 139 * |Brwser|Brwser|Search| |VolUp | | |
142 * |Back | Fwd |------| |------| Stop | Play-| 140 * |Back | Fwd |------| |------| Stop | Play-|
143 * | | | Home | |VolDn | | Pause| 141 * | | | Home | |VolDn | | Pause|
144 * `--------------------' `--------------------' 142 * `--------------------' `--------------------'
145 */ 143 */
146[MDIA] = KEYMAP( 144[MDIA] = KEYMAP(
147// left hand 145// left hand
@@ -166,67 +164,63 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
166 164
167/******* Special Layer ***************************************************************************************************** 165/******* Special Layer *****************************************************************************************************
168 * 166 *
169 * ,-----------------------------------------------------. ,-----------------------------------------------------. 167 * ,-------------------------------------------------------. ,-------------------------------------------------------.
170 * | | Esc | | | | | | | | | | | | Bspc | | 168 * | | Esc | | | | | | | | | | | - | Bspc | |
171 * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| 169 * |-------------+------+------+------+------+-------------| |------+------+------+------+------+------+-------------|
172 * | | | | | | | | | | | | | | | | 170 * | Media Lock | | | | | | | | | | | | [ | ] | Media Lock |
173 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| 171 * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
174 * | | | | | | |------| |------| | | | | | | 172 * | Symbol Lock | | | | | |------| |------| | | | | | Symbol Lock |
175 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| 173 * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
176 * | | | | | | | | | | | | | | | RShift | 174 * | Caps Lock | | | | | | | | | | | | | | Caps Lock |
177 * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' 175 * `-------------+------+------+------+------+-------------' `-------------+------+------+------+------+-------------'
178 * | | | | | | | | | | | | 176 * | | | | | | | | | | | |
179 * `----------------------------------' `----------------------------------' 177 * `------------------------------------' `------------------------------------'
180 * ,-------------. ,-------------. 178 * ,-------------. ,-------------.
181 * | | | | | | 179 * | | | | | |
182 * ,------|------|------| |------+------+------. 180 * ,------|------|------| |------+------+------.
183 * | | | | | | | | 181 * | | | | | | | |
184 * | | |------| |------| | | 182 * | | |------| |------| | |
185 * | | | | | | | | 183 * | | | | | | | |
186 * `--------------------' `--------------------' 184 * `--------------------' `--------------------'
187 */ 185 */
188[SPEC] = KEYMAP( 186[SPEC] = KEYMAP(
189// left hand 187// left hand
190 KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 188 KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
191,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 189,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
192,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 190,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
193,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 191,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
194,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 192,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
195
196 ,KC_TRNS ,KC_TRNS 193 ,KC_TRNS ,KC_TRNS
197 ,KC_TRNS 194 ,KC_TRNS
198 ,KC_TRNS,KC_TRNS ,KC_TRNS 195 ,KC_TRNS,KC_TRNS ,KC_TRNS
199 // right hand 196 // right hand
200 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS 197 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_MINS ,KC_BSPC ,KC_TRNS
201 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 198 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_LBRC ,KC_RBRC ,KC_TRNS
202 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 199 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
203 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT 200 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS
204 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 201 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
205 202 ,KC_TRNS ,KC_TRNS
206 ,KC_TRNS ,KC_TRNS 203 ,KC_TRNS
207 ,KC_TRNS 204 ,KC_TRNS ,KC_TRNS ,KC_TRNS
208 ,KC_TRNS ,KC_TRNS ,KC_TRNS
209 ) 205 )
210}; 206};
211 207
212const uint16_t PROGMEM fn_actions[] = { 208const uint16_t PROGMEM fn_actions[] = {
213 // the faux shift keys are implemented as macro taps 209 // the faux shift keys are implemented as macro taps
214 [LCaps] = ACTION_MACRO_TAP(LCaps) 210 [LSymb] = ACTION_MACRO_TAP(LSymb)
215 ,[LSymb] = ACTION_MACRO_TAP(LSymb)
216 ,[LMdia] = ACTION_MACRO_TAP(LMdia) 211 ,[LMdia] = ACTION_MACRO_TAP(LMdia)
217 ,[LSpec] = ACTION_MACRO_TAP(LSpec) 212 ,[LSpec] = ACTION_MACRO_TAP(LSpec)
218 ,[RCaps] = ACTION_MACRO_TAP(RCaps)
219 ,[RSymb] = ACTION_MACRO_TAP(RSymb) 213 ,[RSymb] = ACTION_MACRO_TAP(RSymb)
220 ,[RMdia] = ACTION_MACRO_TAP(RMdia) 214 ,[RMdia] = ACTION_MACRO_TAP(RMdia)
221 ,[RSpec] = ACTION_MACRO_TAP(RSpec) 215 ,[RSpec] = ACTION_MACRO_TAP(RSpec)
222}; 216};
223 217
224uint16_t caps_shift = 0;
225uint16_t symb_shift = 0; 218uint16_t symb_shift = 0;
226uint16_t mdia_shift = 0; 219uint16_t mdia_shift = 0;
220uint16_t spec_shift = 0;
227 221
228bool symb_lock = false;
229bool mdia_lock = false; 222bool mdia_lock = false;
223bool symb_lock = false;
230 224
231const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 225const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
232{ 226{
@@ -237,50 +231,28 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
237 // only because sometimes rapid pressing led to irregular events; this way the states 231 // only because sometimes rapid pressing led to irregular events; this way the states
238 // are self healing during use. 232 // are self healing during use.
239 233
240 case LCaps: // both caps-shift keys trigger Left Shift 234 case LSymb: //
241 case RCaps: // so they don't interfere with the magic combo 235 if (record->event.pressed) { // when the LSymb button is pressed
242 if (record->event.pressed && !record->tap.count) { 236 if(++symb_shift > 2) mdia_shift = 2; // increment the symb shift count, max two
243 if(++caps_shift > 2) caps_shift = 2; 237 if(spec_shift) symb_lock = !symb_lock; // if the Special layer is on, toggle the shift lock
244 if(caps_shift == 2) { 238 layer_on(SYMB); // in any case, turn on the Symbols layer
245 register_code(KC_CAPS); 239 } else { // when the LSymb button is released
246 unregister_code(KC_CAPS); 240 if(--symb_shift < 0) symb_shift = 0; // decrement the shift count, minimum zero
247 } else if(caps_shift == 1) { 241 if((!symb_shift) && (!symb_lock)) layer_off(SYMB); // if both shifts are released and the lock is off, turn off the Symbols layer
248 register_code(KC_LSFT);
249 }
250 } else {
251 if(--caps_shift < 0) caps_shift = 0;
252 if(caps_shift == 0) unregister_code(KC_LSFT);
253 }
254 break;
255
256 case LSymb:
257 if (record->event.pressed) {
258 if(++symb_shift > 2) symb_shift = 2;
259 if(symb_shift == 2) {
260 symb_lock = !symb_lock;
261 } else if(symb_shift == 1) {
262 layer_on(SYMB);
263 }
264 } else {
265 if(--symb_shift < 0) symb_shift = 0;
266 if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB);
267 } 242 }
268 break; 243 break;
269 244
270 case LMdia: 245 case LMdia:
271 if (record->event.pressed) { 246 if (record->event.pressed) {
272 if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { 247 if (record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
273 register_code(KC_TAB); 248 register_code(KC_TAB);
274 } else { 249 } else {
250 if(spec_shift) mdia_lock = !mdia_lock;
275 if(++mdia_shift > 2) mdia_shift = 2; 251 if(++mdia_shift > 2) mdia_shift = 2;
276 if(mdia_shift == 2) { 252 layer_on(MDIA);
277 mdia_lock = !mdia_lock;
278 } else if(mdia_shift == 1) {
279 layer_on(MDIA);
280 }
281 } 253 }
282 } else { 254 } else {
283 if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { 255 if(record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
284 unregister_code(KC_TAB); 256 unregister_code(KC_TAB);
285 } else { 257 } else {
286 if(--mdia_shift < 0) mdia_shift = 0; 258 if(--mdia_shift < 0) mdia_shift = 0;
@@ -290,35 +262,36 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
290 break; 262 break;
291 263
292 case LSpec: 264 case LSpec:
293 if (record->event.pressed) { 265 if (record->event.pressed) { // when the LSpec button is pressed
294 if (record->tap.count && !record->tap.interrupted) { 266 if(symb_shift) symb_lock == !symb_lock; // if another layer button is engaged, then
295 register_code(KC_GRV); 267 else if(mdia_shift) mdia_lock = !mdia_lock; // lock that layer, be it caps or symb or mdia
268 else if (record->tap.count && !record->tap.interrupted && (!spec_shift)) {
269 register_code(KC_GRV); // otherwise, if it's an uninterrupted tap, emit a char
296 } else { 270 } else {
297 layer_on(SPEC); 271 if(++spec_shift > 2) spec_shift = 2;
272 layer_on(SPEC); // otherwise, turn on the Special layer
298 } 273 }
299 } else { 274 } else {
300 if(record->tap.count && !record->tap.interrupted) { 275 if(record->tap.count && !record->tap.interrupted && (!spec_shift)) {
301 unregister_code(KC_GRV); 276 unregister_code(KC_GRV);
302 } else { 277 } else {
303 layer_off(SPEC); 278 if(--spec_shift < 0) spec_shift = 0;
279 if(!spec_shift) layer_off(SPEC);
304 } 280 }
305 } 281 }
306 break; 282 break;
307 283
308 case RSymb: 284 case RSymb:
309 if (record->event.pressed) { 285 if (record->event.pressed) {
310 if (record->tap.count && (!symb_shift) && (!symb_lock)) { 286 if (record->tap.count && (!symb_shift) && (!symb_lock) && (!spec_shift)) {
311 register_code(KC_QUOT); 287 register_code(KC_QUOT);
312 } else { 288 } else {
313 if(++symb_shift > 2) symb_shift = 2; 289 if(++symb_shift > 2) symb_shift = 2;
314 if(symb_shift == 2) { 290 if(spec_shift) symb_lock = !symb_lock;
315 symb_lock = !symb_lock; 291 layer_on(SYMB);
316 } else if(symb_shift == 1) {
317 layer_on(SYMB);
318 }
319 } 292 }
320 } else { 293 } else {
321 if(record->tap.count && symb_shift == 0) { 294 if(record->tap.count && (!symb_shift) && (!symb_lock) && (!spec_shift)) {
322 unregister_code(KC_QUOT); 295 unregister_code(KC_QUOT);
323 } else { 296 } else {
324 if(--symb_shift < 0) symb_shift = 0; 297 if(--symb_shift < 0) symb_shift = 0;
@@ -329,18 +302,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
329 302
330 case RMdia: 303 case RMdia:
331 if (record->event.pressed) { 304 if (record->event.pressed) {
332 if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { 305 if (record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
333 register_code(KC_BSLS); 306 register_code(KC_BSLS);
334 } else { 307 } else {
335 if(++mdia_shift > 2) mdia_shift = 2; 308 if(++mdia_shift > 2) mdia_shift = 2;
336 if(mdia_shift == 2) { 309 if(spec_shift) mdia_lock = !mdia_lock;
337 mdia_lock = !mdia_lock; 310 layer_on(MDIA);
338 } else if(mdia_shift == 1) {
339 layer_on(MDIA);
340 }
341 } 311 }
342 } else { 312 } else {
343 if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { 313 if(record->tap.count && (!mdia_shift) && (!mdia_lock) && (!spec_shift)) {
344 unregister_code(KC_BSLS); 314 unregister_code(KC_BSLS);
345 } else { 315 } else {
346 if(--mdia_shift < 0) mdia_shift = 0; 316 if(--mdia_shift < 0) mdia_shift = 0;
@@ -351,16 +321,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
351 321
352 case RSpec: 322 case RSpec:
353 if (record->event.pressed) { 323 if (record->event.pressed) {
354 if (record->tap.count && !record->tap.interrupted) { 324 if(symb_shift) symb_lock = !symb_lock;
325 else if(mdia_shift) mdia_lock = !mdia_lock;
326 else if (record->tap.count && !record->tap.interrupted && (!spec_shift)) {
355 register_code(KC_EQL); 327 register_code(KC_EQL);
356 } else { 328 } else {
329 if(++spec_shift > 2) spec_shift = 2;
357 layer_on(SPEC); 330 layer_on(SPEC);
358 } 331 }
359 } else { 332 } else {
360 if(record->tap.count && !record->tap.interrupted) { 333 if(record->tap.count && !record->tap.interrupted && (!spec_shift)) {
361 unregister_code(KC_EQL); 334 unregister_code(KC_EQL);
362 } else { 335 } else {
363 layer_off(SPEC); 336 if(--spec_shift < 0) spec_shift = 0;
337 if(!spec_shift) layer_off(SPEC);
364 } 338 }
365 } 339 }
366 break; 340 break;
@@ -419,7 +393,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
419 // none 393 // none
420 break; 394 break;
421 } 395 }
422 396
423 return MACRO_NONE; 397 return MACRO_NONE;
424}; 398};
425 399
@@ -431,7 +405,9 @@ void matrix_init_user(void) {
431// Runs constantly in the background, in a loop. 405// Runs constantly in the background, in a loop.
432void matrix_scan_user(void) { 406void matrix_scan_user(void) {
433 // shift or caps lock turns on red light 407 // shift or caps lock turns on red light
434 if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) { 408 if((keyboard_report->mods & MOD_BIT(KC_LSFT))
409 || (keyboard_report->mods & MOD_BIT(KC_RSFT))
410 || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) {
435 ergodox_right_led_1_on(); 411 ergodox_right_led_1_on();
436 } else { 412 } else {
437 ergodox_right_led_1_off(); 413 ergodox_right_led_1_off();
@@ -451,4 +427,3 @@ void matrix_scan_user(void) {
451 ergodox_right_led_3_off(); 427 ergodox_right_led_3_off();
452 } 428 }
453}; 429};
454
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-base.png b/keyboards/ergodox/keymaps/ordinary/ordinary-base.png
index 9c561a10a..831db4f5d 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-base.png
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-base.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt
index 25731ea2e..7763c3d37 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-base.txt
@@ -1,24 +1,24 @@
1[{x:3.5},"#\n3",{x:10.5},"*\n8"], 1[{x:3.5},"#\n3",{x:10.5},"*\n8"],
2[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"], 2[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
3[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"], 3[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
4[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#2277ff",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"], 4[{y:-0.875,c:"#c6c600",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#c6c600",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"],
5[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"], 5[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"],
6[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"], 6[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
7[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"], 7[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
8[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc"},"Q",{x:14.5},"P",{c:"#2277ff",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"], 8[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Q",{x:14.5},"P",{c:"#c6c600",t:"#002299",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"],
9[{y:-0.375,x:3.5,c:"#cccccc"},"D",{x:10.5},"K"], 9[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000"},"D",{x:10.5},"K"],
10[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"], 10[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"],
11[{y:-0.875,x:5.5},"G",{x:6.5},"H"], 11[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
12[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc"},"A",{x:14.5},":\n;",{c:"#2277ff",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"], 12[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"A",{x:14.5},":\n;",{c:"#c6c600",t:"#007d00",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
13[{y:-0.625,x:6.5,c:"#54d6de",fa:[0,0,0,1],h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"], 13[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",fa:[0,0,0,1],h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
14[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], 14[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
15[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], 15[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
16[{y:-0.875,x:5.5},"B",{x:6.5},"N"], 16[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
17[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], 17[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Z",{x:14.5},"?\n/",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
18[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], 18[{y:-0.375,x:3.5,c:"#dddd77",t:"#000000"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
19[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], 19[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], 20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], 21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ff8500"},"Home","End"],
22[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], 22[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
23[{x:2},"Page\n\n\n\n\n\nDown"], 23[{x:2},"Page\n\n\n\n\n\nDown"],
24[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], 24[{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png
index 99e5ed80b..5ff3f5338 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-media.png
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt
index 4eccc9f35..e1467b22e 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt
@@ -1,27 +1,27 @@
1[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], 1[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"],
2[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], 2[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"],
3[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"], 3[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"],
4[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], 4[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
5[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], 5[{y:-0.375,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
6[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], 6[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#1e8fff"},"Home",{x:1},"Page\n\n\n\n\n\nUp"],
7[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], 7[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#1e8fff",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#9977ee"},"Print\n\n\n\n\n\nScreen"],
8[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], 8[{y:-0.875,c:"#000000",t:"#3f68ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#3f68ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
9[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], 9[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
10[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], 10[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"],
11[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], 11[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"],
12[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], 12[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#c6c600",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
13[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], 13[{y:-0.625,x:6.5,c:"#1e8fff",t:"#000000",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
14[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], 14[{y:-0.75,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
15[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], 15[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#1e8fff"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
16[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""], 16[{y:-0.875,x:5.5,c:"#9977ee"},"Mute",{x:6.5,c:"#737373",a:7},""],
17[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"], 17[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
18[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"], 18[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#1e8fff",fa:[0,0,0,1]},"Delete\n\n\nOption"],
19[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], 19[{y:-0.875,x:2.5,c:"#0066cc"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#1e8fff"},"Insert\n\n\nCmd",{x:1,c:"#dddd77"},"Hyper"],
20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], 20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"],
21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], 21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#6633ee"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
22[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], 22[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
23[{x:2},"Home\n\n\nBrowser"], 23[{x:2},"Home\n\n\nBrowser"],
24[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], 24[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],
25[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], 25[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#6633ee",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"],
26[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] 26[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nDown"]
27 27
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png
index 6eecf447e..4fb9d1d16 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-special.png
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt
index a08827c6d..97f40f9db 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt
@@ -1,21 +1,21 @@
1[{x:3.5,a:7},"",{x:10.5},""], 1[{x:3.5,a:7},"",{x:10.5},""],
2[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], 2[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"_\n\n\n\n\n\n-"],
3[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""], 3[{y:-0.875,x:5.5,a:7},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
4[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], 4[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#ff8500"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
5[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
6[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"{\n["],
7[{y:-0.875,x:5.5,a:7},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
8[{y:-0.875,c:"#c6c600",t:"#002299",a:4,w:1.5},"Media\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5,a:4},"\n\n}\n]",{c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nLock"],
5[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""], 9[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
6[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
7[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
8[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""],
9[{y:-0.375,x:3.5},"",{x:10.5},""],
10[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], 10[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
11[{y:-0.875,x:5.5},"",{x:6.5},""], 11[{y:-0.875,x:5.5},"",{x:6.5},""],
12[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], 12[{y:-0.875,c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock"],
13[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""], 13[{y:-0.625,x:6.5,c:"#cccccc",t:"#000000",a:7,h:1.5},"",{x:4.5,h:1.5},""],
14[{y:-0.75,x:3.5},"",{x:10.5},""], 14[{y:-0.75,x:3.5},"",{x:10.5},""],
15[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], 15[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
16[{y:-0.875,x:5.5},"",{x:6.5},""], 16[{y:-0.875,x:5.5},"",{x:6.5},""],
17[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"], 17[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock"],
18[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""], 18[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
19[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], 19[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
20[{y:-0.75,x:0.5},"","",{x:14.5},"",""], 20[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
21[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""], 21[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png
index e4de64a96..dd9086329 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt
index e199f5c59..001bf370d 100644
--- a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt
+++ b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt
@@ -1,24 +1,24 @@
1[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], 1[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"],
2[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], 2[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
3[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], 3[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"],
4[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], 4[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
5[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], 5[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"],
6[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], 6[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"],
7[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], 7[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
8[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], 8[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"!",{x:14.5,c:"#89b087"},"/",{c:"#c6c600",t:"#002299",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
9[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], 9[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"(",{x:10.5,c:"#89b087"},"5"],
10[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], 10[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"],
11[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], 11[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"],
12[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], 12[{y:-0.875,c:"#000000",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
13[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], 13[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"],
14[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], 14[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"],
15[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], 15[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
16[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], 16[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
17[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], 17[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"%",{x:14.5,c:"#89b087"},"-",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
18[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], 18[{y:-0.375,x:3.5,c:"#dddd77",t:"#000000"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},"."],
19[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], 19[{y:-0.875,x:2.5,c:"#dddd77"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0",{x:1},"="],
20[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], 20[{y:-0.75,x:0.5,c:"#dddd77"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+","Enter"],
21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], 21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ff8500"},"Left","Right"],
22[{h:2},"Space",{h:2},"Enter","Up"], 22[{h:2},"Space",{h:2},"Enter","Up"],
23[{x:2},"Down"], 23[{x:2},"Down"],
24[{r:-30,rx:13,y:-1,x:-3},"Home","End"], 24[{r:-30,rx:13,y:-1,x:-3},"Home","End"],
diff --git a/keyboards/ergodox/keymaps/ordinary/readme.md b/keyboards/ergodox/keymaps/ordinary/readme.md
index 6465cd79e..820b80b45 100644
--- a/keyboards/ergodox/keymaps/ordinary/readme.md
+++ b/keyboards/ergodox/keymaps/ordinary/readme.md
@@ -10,66 +10,51 @@ no rights reserved, use for any purposes, credit me if you are a nice person
10 10
11## The Base Layout ## 11## The Base Layout ##
12 12
13* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh 13* *White Keys* are all the normal characters and symbols in all the normal locations (except for the brackets).
14* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key 14* *Modifier Keys* are light yellow and in the traditional location: Control, Option, Command, plus Hyper and Meh.
15* Several dark blue keys double for entry of characters which would typically be in those locations 15* *Shift Keys* are dark yellow, found on the outsides of the keyboard. Capitals Shift (traditional shift) is found in the usual place and above that is found Symbol Shift, Media Shift, and Special Shift (Shift Lock).
16* The turquoise keys are text navigation and manipulation 16* Several of the shift keys double for entry of characters which would typically be in those locations.
17* The red keys is Escape and it is always found in that location no matter what 17* *Thumb Keys* shown in orange are for text navigation and manipulation.
18* *Escape* is red and it is always found in that location no matter what.
18 19
19![Ordinary base layout](ordinary-base.png) 20![Ordinary base layout](ordinary-base.png)
20 21
21This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. 22The four big orange keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another.
22
23Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence.
24
25The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another.
26 23
27The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. 24The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code.
28 25
29## The Symbols Layer ## 26## The Symbols Layer ##
30 27
31* The light green keys are the eponymous symbols 28* *Symbols* shown in light green. All kinds of brackets are available on this layer. Ampersand and Pipe justapose each other. Pipe, slash, and backslash are arranged in a column.
32* The bright green keys are F-Keys 29* *F-Keys* are bright green and overlay the row of numerals.
33* The dark green keys constitute a number pad 30* *Number pad* in dark green under the right hand includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads so that NumLock is not needed.
34* The turquoise keys are the *reverse* of the turquoise keys on the base layer 31* *Thumb keys* on this layer are the *reverse* of the orange keys on the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be.
35 32
36![Ordinary symbol layout](ordinary-symbol.png) 33![Ordinary symbol layout](ordinary-symbol.png)
37 34
38The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. 35The Symbols Layer is based on the Coder Layer from the default Ergodox EZ layout. I slightly rearranged the symbols, added some symbols, expanded the number pad, and straightened out the F-Keys. It's very handy to have the symbols directly underneath the normal typing keys.
39
40The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements:
41
42* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers.
43* The slash, backslash, and pipe characters are grouped together as a memory aid.
44* The & and | symbols are juxtaposed as a memory aid
45
46The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons.
47
48Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be.
49 36
50## The Media Layer ## 37## The Media Layer ##
51 38
52* The dark orange keys on the left move the mouse cursor 39* *Mouse Cursor Keys* are under the left hand, shown in dark blue. Diagonal keys won't automatically repeat unless combined with other keys. Buttons to left- middle- and right-click the mouse are also featured.
53* The dark orange keys on the right move the text cursor 40* *Text Cursor Keys* are under the right hand, shown in dark blue. They overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand.
54* The light orange keys are for scrolling and paging 41* *Scrolling and Paging* keys are shown in light blue and have some useful redundancy across the layout.
55* The bright green keys are more F-keys 42* Higher-order *F-Keys* are shown in bright green overylaying the numerals.
56* The dark yellow keys signal Web and Audio applications 43* *Application Keys* to control web browsers and audio players are dark purple but don't get too excited because these have weak support on operating systems I've looked at. Good luck.
57* The light yellow keys signal the operating system 44* The light purple keys are various operating system keys such as NumLock and Mute and a button to navigate to My Computer (usually your home dir).
58* The dark gray keys do nothing in case you bump them by accident 45* The dark gray keys do nothing in case you bump them by accident
59 46
60![Ordinary media layout](ordinary-media.png) 47![Ordinary media layout](ordinary-media.png)
61 48
62This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. 49This layer is a substantial extension of the Media layer on the Ergodox EZ default layout. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents.
63 50
64Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. 51Keys to directly interact with the operating system are also found on this layer, such as volume and shutdown.
65
66Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much.
67 52
68## Switching Between Layers ## 53## Switching Between Layers ##
69 54
70In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. 55In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active.
71 56
72Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way. 57Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. Lock the shift keys using the Shift Lock button, which is the same as the Special Shift button.
73 58
74Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols. 59Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols.
75 60
@@ -77,27 +62,29 @@ Multiple layers can be turned on at once. The Capitals layer will affect charact
77 62
78![Ordinary special layout](ordinary-special.png) 63![Ordinary special layout](ordinary-special.png)
79 64
65The Special Shift layer is mostly used to lock the shift keys but in order to make this layout more _ordinary_ there are a few special sequences which put some keys near their most common traditional locations.
66
80### Escape ### 67### Escape ###
81 68
82The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape. 69The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, which is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
83 70
84The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers. 71The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
85 72
86### Backspace ### 73### Backspace ###
87 74
88At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. 75At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence using the 0 key to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
89 76
90### RShift ### 77### Other Characters ###
91 78
92The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard. 79The Escape and Backspace special sequences are so useful why not have a few more? You can find dash under 9, left bracket under o, and right bracket under p. That's pretty much all the characters from the top right corner of the keyboard which moved to make room for the columnar layout.
93 80
94**** 81****
95 82
96The Ordinary Layout for the Ergodox EZ keyboard, v4 83The Ordinary Layout for the Ergodox EZ keyboard, v4.20
97 84
98Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com 85Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
99 86
100No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother. 87No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother.
101 88
102Details: readme.md 89Details: readme.md
103 https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary 90 https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary
diff --git a/keyboards/ergodox/keymaps/xyverz/keymap.c b/keyboards/ergodox/keymaps/xyverz/keymap.c
index 7a16367bf..08ee5aeda 100644
--- a/keyboards/ergodox/keymaps/xyverz/keymap.c
+++ b/keyboards/ergodox/keymaps/xyverz/keymap.c
@@ -1,8 +1,4 @@
1/* 1/*
2 * PLEASE NOTE: This keymap will NOT work with the Infinity ErgoDox due to the fact that the mappings are
3 * based on the Matrix Layout in the ez.h file. If you want to use this for the infinity, you'll need to
4 * figure out where the keys are in the matrix and redo the layout arrays below.
5 *
6 * About this keymap: 2 * About this keymap:
7 * 3 *
8 * The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak 4 * The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak
@@ -14,9 +10,6 @@
14 * 10 *
15 * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck 11 * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck
16 * layouts. 12 * layouts.
17 *
18 * For a better explanation of the layout matrices shown below, take a look at ../../ez/ez.h where the
19 * keymap is defined, beginning on line 81.
20 * 13 *
21 */ 14 */
22 15
@@ -38,213 +31,222 @@ extern keymap_config_t keymap_config;
38#define QWERTY M(_QW) 31#define QWERTY M(_QW)
39#define COLEMAK M(_CM) 32#define COLEMAK M(_CM)
40 33
34// Fillers to make layering more clear
35#define _______ KC_TRNS
36#define XXXXXXX KC_NO
37
38
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 40
43[_DV] = { // layer 0 : Dvorak 41/* Layer 0 : Dvorak
44/* 42 * ,--------------------------------------------------. ,--------------------------------------------------.
45 * ,--------------------------------------------------. ,--------------------------------------------------. 43 * | ] | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | [ |
46 * | ] | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | [ | 44 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
47 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 45 * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
48 * | Tab | ' | , | . | Y | Y | | | | F | G | C | R | L | \ | 46 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
49 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 47 * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
50 * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - | 48 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
51 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| 49 * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
52 * | LShift | Z | X | C | V | X | | | | B | M | W | V | Z | RShift | 50 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
53 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 51 * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
54 * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI | 52 * `----------------------------------' `----------------------------------'
55 * `----------------------------------' `----------------------------------' 53 * ,-------------. ,-------------.
56 * ,-------------. ,-------------. 54 * | LCTL | LALT | | RALT | RCTL |
57 * | LCtr | LAlt | | Ralt | RCtr | 55 * ,------|------|------| |------+------+------.
58 * ,------|------|------| |------+------+------. 56 * | | | Home | | PgUp | | |
59 * | | | Home | | PgUp | | | 57 * | BkSp | Del |------| |------| Enter| Space|
60 * | BkSp | Del |------| |------| Enter| Space| 58 * | | | End | | PgDn | | |
61 * | | | End | | PgDn | | | 59 * `--------------------' `--------------------'
62 * `--------------------' `--------------------'
63 * 60 *
64 */ 61 */
62[_DV] = KEYMAP(
65 // left hand 63 // left hand
66 {KC_RBRC, KC_TAB, KC_CAPS, KC_LSFT, KC_LGUI, KC_NO }, 64 KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
67 {KC_1, KC_QUOT, KC_A, KC_SCLN, KC_GRV, KC_END }, 65 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX,
68 {KC_2, KC_COMM, KC_O, KC_Q, KC_INS, KC_DEL }, 66 KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I,
69 {KC_3, KC_DOT, KC_E, KC_J, KC_LEFT, KC_BSPC}, 67 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(_MD),
70 {KC_4, KC_P, KC_U, KC_K, KC_RGHT, KC_HOME}, 68 KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
71 {KC_5, KC_Y, KC_I, KC_X, KC_NO, KC_LCTL}, 69 KC_LCTL, KC_LALT,
72 {KC_ESC, KC_NO, KC_NO, MO(_MD), KC_NO, KC_LALT}, 70 KC_HOME,
73 71 KC_BSPC, KC_DEL, KC_END,
74 // right hand 72 // right hand
75 {KC_ESC, KC_NO, KC_NO, MO(_KP), KC_NO, KC_RALT}, 73 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,
76 {KC_6, KC_F, KC_D, KC_B, KC_NO, KC_RCTL}, 74 XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
77 {KC_7, KC_G, KC_H, KC_M, KC_UP, KC_PGUP}, 75 KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
78 {KC_8, KC_C, KC_T, KC_W, KC_DOWN, KC_SPC }, 76 MO(_KP), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
79 {KC_9, KC_R, KC_N, KC_V, KC_SLSH, KC_ENT }, 77 KC_UP, KC_DOWN, KC_SLSH, KC_EQL, KC_RGUI,
80 {KC_0, KC_L, KC_S, KC_Z, KC_EQL, KC_PGDN}, 78 KC_RALT, KC_RCTL,
81 {KC_LBRC, KC_BSLS, KC_MINS, KC_RSFT, KC_RGUI, KC_NO } 79 KC_PGUP,
82}, 80 KC_PGDN, KC_ENT, KC_SPC
83 81 ),
84 82
85[_QW] = { // layer 1 : QWERTY 83
86/* 84/* Layer 1: QWERTY
87 * ,--------------------------------------------------. ,--------------------------------------------------. 85 * ,--------------------------------------------------. ,--------------------------------------------------.
88 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - | 86 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
89 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 87 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
90 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ | 88 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
91 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 89 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
92 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | 90 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
93 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| 91 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
94 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | 92 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
95 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 93 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
96 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 94 * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
97 * `----------------------------------' `----------------------------------' 95 * `----------------------------------' `----------------------------------'
98 * ,-------------. ,-------------. 96 * ,-------------. ,-------------.
99 * | LCtr | LAlt | | Ralt | RCtr | 97 * | LCTL | LALT | | RALT | RCTL |
100 * ,------|------|------| |------+------+------. 98 * ,------|------|------| |------+------+------.
101 * | | | Home | | PgUp | | | 99 * | | | Home | | PgUp | | |
102 * | BkSp | Del |------| |------| Enter| Space| 100 * | BkSp | Del |------| |------| Enter| Space|
103 * | | | End | | PgDn | | | 101 * | | | End | | PgDn | | |
104 * `--------------------' `--------------------' 102 * `--------------------' `--------------------'
105 */ 103 */
104[_QW] = KEYMAP(
106 // left hand 105 // left hand
107 {KC_EQL, KC_TAB, KC_CAPS, KC_LSFT, KC_LGUI, KC_NO }, 106 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
108 {KC_1, KC_Q, KC_A, KC_Z, KC_GRV, KC_END }, 107 KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX,
109 {KC_2, KC_W, KC_S, KC_X, KC_INS, KC_DEL }, 108 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
110 {KC_3, KC_E, KC_D, KC_C, KC_LEFT, KC_BSPC}, 109 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD),
111 {KC_4, KC_R, KC_F, KC_V, KC_RGHT, KC_HOME}, 110 KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
112 {KC_5, KC_T, KC_G, KC_B, KC_NO, KC_LCTL}, 111 KC_LCTL, KC_LALT,
113 {KC_ESC, KC_NO, KC_NO, MO(_MD), KC_NO, KC_LALT}, 112 KC_HOME,
114 113 KC_BSPC, KC_DEL, KC_END,
115 // right hand 114 // right hand
116 {KC_ESC, KC_NO, KC_NO, MO(_KP), KC_NO, KC_RALT}, 115 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
117 {KC_6, KC_Y, KC_H, KC_N, KC_NO, KC_RCTL}, 116 XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
118 {KC_7, KC_U, KC_J, KC_M, KC_UP, KC_PGUP}, 117 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
119 {KC_8, KC_I, KC_K, KC_COMM, KC_DOWN, KC_SPC }, 118 MO(_KP), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
120 {KC_9, KC_O, KC_L, KC_DOT, KC_LBRC, KC_ENT }, 119 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI,
121 {KC_0, KC_P, KC_SCLN, KC_SLSH, KC_RBRC, KC_PGDN}, 120 KC_LALT, KC_LCTL,
122 {KC_MINS, KC_BSLS, KC_QUOT, KC_RSFT, KC_RGUI, KC_NO } 121 KC_PGUP,
123 }, 122 KC_PGDN, KC_ENT, KC_SPC
124 123 ),
125 124
126[_CM] = { // layer 2 : Colemak 125
127/* 126/* Layer 2 : Colemak
128 * ,--------------------------------------------------. ,--------------------------------------------------. 127 * ,--------------------------------------------------. ,--------------------------------------------------.
129 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - | 128 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
130 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 129 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
131 * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ | 130 * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
132 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 131 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
133 * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | 132 * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
134 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| 133 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
135 * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift | 134 * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
136 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 135 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
137 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | 136 * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
138 * `----------------------------------' `----------------------------------' 137 * `----------------------------------' `----------------------------------'
139 * ,-------------. ,-------------. 138 * ,-------------. ,-------------.
140 * | LCtr | LAlt | | Ralt | RCtr | 139 * | LCTL | LALT | | RALT | RCTL |
141 * ,------|------|------| |------+------+------. 140 * ,------|------|------| |------+------+------.
142 * | | | Home | | PgUp | | | 141 * | | | Home | | PgUp | | |
143 * | BkSp | Del |------| |------| Enter| Space| 142 * | BkSp | Del |------| |------| Enter| Space|
144 * | | | End | | PgDn | | | 143 * | | | End | | PgDn | | |
145 * `--------------------' `--------------------' 144 * `--------------------' `--------------------'
146 */ 145 */
146[_CM] = KEYMAP(
147 // left hand 147 // left hand
148 {KC_EQL, KC_TAB, KC_BSPC, KC_LSFT, KC_LGUI, KC_NO }, 148 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
149 {KC_1, KC_Q, KC_A, KC_Z, KC_GRV, KC_END }, 149 KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX,
150 {KC_2, KC_W, KC_R, KC_X, KC_INS, KC_DEL }, 150 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
151 {KC_3, KC_F, KC_S, KC_C, KC_LEFT, KC_BSPC}, 151 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MD),
152 {KC_4, KC_P, KC_T, KC_V, KC_RGHT, KC_HOME}, 152 KC_LGUI, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
153 {KC_5, KC_G, KC_D, KC_B, KC_NO, KC_LCTL}, 153 KC_LCTL, KC_LALT,
154 {KC_ESC, KC_NO, KC_NO, MO(_MD), KC_NO, KC_LALT}, 154 KC_HOME,
155 155 KC_BSPC, KC_DEL, KC_END,
156 // right hand 156 // right hand
157 {KC_ESC, KC_NO, KC_NO, MO(_KP), KC_NO, KC_RALT}, 157 KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
158 {KC_6, KC_J, KC_H, KC_K, KC_NO, KC_RCTL}, 158 XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
159 {KC_7, KC_L, KC_N, KC_M, KC_UP, KC_PGUP}, 159 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
160 {KC_8, KC_U, KC_E, KC_COMM, KC_DOWN, KC_SPC }, 160 MO(_KP), KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
161 {KC_9, KC_Y, KC_I, KC_DOT, KC_LBRC, KC_ENT }, 161 KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI,
162 {KC_0, KC_SCLN, KC_O, KC_SLSH, KC_RBRC, KC_PGDN}, 162 KC_LALT, KC_LCTL,
163 {KC_MINS, KC_BSLS, KC_QUOT, KC_RSFT, KC_RGUI, KC_NO } 163 KC_PGUP,
164 }, 164 KC_PGDN, KC_ENT, KC_SPC
165 165 ),
166 166
167[_MD] = { // layer 3 : Media layer 167
168/* 168/* Layer 3 : Media layer
169 * ,--------------------------------------------------. ,--------------------------------------------------. 169 * ,--------------------------------------------------. ,--------------------------------------------------.
170 * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | 170 * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
171 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 171 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
172 * | | | PrSc | ScLk | Paus | | | | | | Mute | Vol- | Vol+ | | | 172 * | | | PrSc | ScLk | Paus | | | | | | Mute | Vol- | Vol+ | | |
173 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 173 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
174 * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | | 174 * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | |
175 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 175 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
176 * | | |Dvorak|Qwerty|Colemk| | | | | | | | | | | 176 * | | |Dvorak|Qwerty|Colemk| | | | | | | | | | |
177 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 177 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
178 * | | | | | | | | | | | | 178 * | | | | | | | | | | | |
179 * `----------------------------------' `----------------------------------' 179 * `----------------------------------' `----------------------------------'
180 * ,-------------. ,-------------. 180 * ,-------------. ,-------------.
181 * | | | | | | 181 * | | | | | |
182 * ,------|------|------| |------+------+------. 182 * ,------|------|------| |------+------+------.
183 * | | | | | | | | 183 * | | | | | | | |
184 * | | |------| |------| | | 184 * | | |------| |------| | |
185 * | | | | | | | | 185 * | | | | | | | |
186 * `--------------------' `--------------------' 186 * `--------------------' `--------------------'
187 */ 187 */
188[_MD] = KEYMAP(
188 // left hand 189 // left hand
189 {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO }, 190 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
190 {KC_F1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, 191 _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______,
191 {KC_F2, KC_PSCR, KC_TRNS, DVORAK, KC_TRNS, KC_TRNS}, 192 _______, _______, _______, _______, _______, _______,
192 {KC_F3, KC_SLCK, KC_TRNS, QWERTY, KC_TRNS, KC_TRNS}, 193 _______, _______, DVORAK, QWERTY, COLEMAK, _______, _______,
193 {KC_F4, KC_PAUS, KC_TRNS, COLEMAK, KC_TRNS, KC_TRNS}, 194 _______, _______, _______, _______, _______,
194 {KC_F5, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS}, 195 _______, _______,
195 {KC_F11, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS}, 196 _______,
196 197 _______, _______, _______,
197 // right hand 198 // right hand
198 {KC_F12, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS}, 199 KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
199 {KC_F6, KC_TRNS, KC_MSTP, KC_TRNS, KC_NO, KC_TRNS}, 200 _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
200 {KC_F7, KC_MUTE, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS}, 201 KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
201 {KC_F8, KC_VOLD, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS}, 202 _______, _______, _______, _______, _______, _______, _______,
202 {KC_F9, KC_VOLU, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS}, 203 _______, _______, _______, _______, _______,
203 {KC_F10, KC_TRNS, KC_MSEL, KC_TRNS, KC_TRNS, KC_TRNS}, 204 _______, _______,
204 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO } 205 _______,
205 }, 206 _______, _______, _______
206 207 ),
207 208
208[_KP] = { // layer 4 : Keypad layer 209
209/* 210/* Layer 4 : Keypad layer
210 * ,--------------------------------------------------. ,--------------------------------------------------. 211 * ,--------------------------------------------------. ,--------------------------------------------------.
211 * | Power | | | | | | | | | | NmLk | KP / | KP * | KP - | | 212 * | Power | | | | | | | | | | NmLk | KP = | KP / | KP * | |
212 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 213 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
213 * | Sleep | | | | | | | | | | KP 7 | KP 8 | KP 9 | KP + | | 214 * | Sleep | | | | | | | | | | KP 7 | KP 8 | KP 9 | KP - | |
214 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 215 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
215 * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | | 216 * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | |
216 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 217 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
217 * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| | 218 * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| |
218 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 219 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
219 * | | | | | | | KP 0 | | KP . |KP Ent| | 220 * | | | | | | | KP 0 | | KP . |KP Ent| |
220 * `----------------------------------' `----------------------------------' 221 * `----------------------------------' `----------------------------------'
221 * ,-------------. ,-------------. 222 * ,-------------. ,-------------.
222 * | | | | | | 223 * | | | | | |
223 * ,------|------|------| |------+------+------. 224 * ,------|------|------| |------+------+------.
224 * | | | | | | | | 225 * | | | | | | | |
225 * | | |------| |------| | | 226 * | | |------| |------| | |
226 * | | | | | | | | 227 * | | | | | | | |
227 * `--------------------' `--------------------' 228 * `--------------------' `--------------------'
228 */ 229 */
230[_KP] = KEYMAP(
229 // left hand 231 // left hand
230 {KC_PWR, KC_SLEP, KC_WAKE, KC_TRNS, KC_TRNS, KC_NO }, 232 KC_PWR, _______, _______, _______, _______, _______, _______,
231 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, 233 KC_SLEP, _______, _______, _______, _______, _______, _______,
232 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, 234 KC_WAKE, _______, _______, _______, _______, _______,
233 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, 235 _______, _______, _______, _______, _______, _______, _______,
234 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, 236 _______, _______, _______, _______, _______,
235 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS}, 237 _______, _______,
236 {KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS}, 238 _______,
237 239 _______, _______, _______,
238 // right hand 240 // right hand
239 {KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS}, 241 _______, _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
240 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS}, 242 _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
241 {KC_NLCK, KC_P7, KC_P4, KC_P1, KC_P0, KC_TRNS}, 243 _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
242 {KC_PSLS, KC_P8, KC_P5, KC_P2, KC_NO, KC_TRNS}, 244 _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
243 {KC_PAST, KC_P9, KC_P6, KC_P3, KC_PDOT, KC_TRNS}, 245 KC_P0, _______, KC_PDOT, KC_PENT, _______,
244 {KC_PMNS, KC_PPLS, KC_PPLS, KC_PENT, KC_PENT, KC_TRNS}, 246 _______, _______,
245 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO } 247 _______,
246 }, 248 _______, _______, _______
247 249 ),
248 250
249}; 251};
250 252
diff --git a/keyboards/ergodox/keymaps/xyverz/readme.md b/keyboards/ergodox/keymaps/xyverz/readme.md
index 255749323..6ecdabc9e 100644
--- a/keyboards/ergodox/keymaps/xyverz/readme.md
+++ b/keyboards/ergodox/keymaps/xyverz/readme.md
@@ -1,9 +1,5 @@
1# Xyverz's ErgoDox EZ Keymap 1# Xyverz's ErgoDox EZ Keymap
2 2
3## Please Note:
4
5This keymap will probably **not** work with the Infinity ErgoDox. It will need **substantial** modification in order to work on the Infinity. This is due to the fact that the mappings are based on the matrix positions in the keymap definition in the ez.h file. If you want to use this for the infinity, you'll need to figure out where the keys are in the matrix and redo the layout arrays below.
6
7## About this keymap: 3## About this keymap:
8 4
9The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my ErgoDox. 5The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my ErgoDox.
@@ -12,7 +8,11 @@ The QWERTY layout shown here is based entirely on the Kinesis Advantage layout,
12 8
13I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. 9I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
14 10
15For a better explanation of the layout matrices shown below, take a look at ../../ez/ez.h where the keymap is defined, beginning on line 81. 11## Still to do:
12
13 * Need to figure out a better position for the ESC key.
14 * Come up with a function for the empty keys shown in the alpha layers below.
15 * Fix the CapsLock, NumLock, and ScrLck LEDs.
16 16
17### Layer 0: Dvorak layer 17### Layer 0: Dvorak layer
18 18
@@ -103,9 +103,9 @@ For a better explanation of the layout matrices shown below, take a look at ../.
103### Keymap 4: Keypad layer 103### Keymap 4: Keypad layer
104 104
105 ,--------------------------------------------------.,--------------------------------------------------. 105 ,--------------------------------------------------.,--------------------------------------------------.
106 | Power | | | | | | || | | NmLk | KP / | KP * | KP - | | 106 | Power | | | | | | || | | NmLk | KP = | KP / | KP * | |
107 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| 107 |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------|
108 | Sleep | | | | | | || | | KP 7 | KP 8 | KP 9 | KP + | | 108 | Sleep | | | | | | || | | KP 7 | KP 8 | KP 9 | KP - | |
109 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 109 |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
110 | Wake | | | | | |------||------| | KP 4 | KP 5 | KP 6 | KP + | | 110 | Wake | | | | | |------||------| | KP 4 | KP 5 | KP 6 | KP + | |
111 |--------+------+------+------+------+------| || |------+------+------+------+------+--------| 111 |--------+------+------+------+------+------| || |------+------+------+------+------+--------|
@@ -119,4 +119,4 @@ For a better explanation of the layout matrices shown below, take a look at ../.
119 | | | || | | | 119 | | | || | | |
120 | | |------||------| | | 120 | | |------||------| | |
121 | | | || | | | 121 | | | || | | |
122 `--------------------'`--------------------' \ No newline at end of file 122 `--------------------'`--------------------'
diff --git a/keyboards/kitten_paw/Makefile b/keyboards/kitten_paw/Makefile
new file mode 100644
index 000000000..912292173
--- /dev/null
+++ b/keyboards/kitten_paw/Makefile
@@ -0,0 +1,77 @@
1
2
3# MCU name
4#MCU = at90usb1287
5MCU = atmega32u2
6
7# Processor frequency.
8# This will define a symbol, F_CPU, in all source code files equal to the
9# processor frequency in Hz. You can then use this symbol in your source code to
10# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
11# automatically to create a 32-bit value in your source code.
12#
13# This will be an integer division of F_USB below, as it is sourced by
14# F_USB after it has run through any CPU prescalers. Note that this value
15# does not *change* the processor frequency - it should merely be updated to
16# reflect the processor speed set externally so that the code can use accurate
17# software delays.
18F_CPU = 16000000
19
20
21#
22# LUFA specific
23#
24# Target architecture (see library "Board Types" documentation).
25ARCH = AVR8
26
27# Input clock frequency.
28# This will define a symbol, F_USB, in all source code files equal to the
29# input clock frequency (before any prescaling is performed) in Hz. This value may
30# differ from F_CPU if prescaling is used on the latter, and is required as the
31# raw input clock is fed directly to the PLL sections of the AVR for high speed
32# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
33# at the end, this will be done automatically to create a 32-bit value in your
34# source code.
35#
36# If no clock division is performed on the input clock inside the AVR (via the
37# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
38F_USB = $(F_CPU)
39
40# Interrupt driven control endpoint task(+60)
41OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
42
43
44# Boot Section Size in *bytes*
45# Teensy halfKay 512
46# Teensy++ halfKay 1024
47# Atmel DFU loader 4096
48# LUFA bootloader 4096
49# USBaspLoader 2048
50 OPT_DEFS += -DBOOTLOADER_SIZE=4096
51
52
53# Build Options
54# change yes to no to disable
55#
56BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
57MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
58EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
59CONSOLE_ENABLE ?= yes # Console for debug(+400)
60COMMAND_ENABLE ?= yes # Commands for debug and configuration
61# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
62SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
63# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
64NKRO_ENABLE ?= no # USB Nkey Rollover
65BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
66MIDI_ENABLE ?= no # MIDI controls
67UNICODE_ENABLE ?= no # Unicode
68BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
69AUDIO_ENABLE ?= no # Audio output on port C6
70
71CUSTOM_MATRIX = yes
72SRC += matrix.c led.c
73
74ifndef QUANTUM_DIR
75 include ../../Makefile
76endif
77
diff --git a/keyboards/kitten_paw/config.h b/keyboards/kitten_paw/config.h
new file mode 100644
index 000000000..d7089734a
--- /dev/null
+++ b/keyboards/kitten_paw/config.h
@@ -0,0 +1,162 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23
24/* USB Device descriptor parameter */
25#define VENDOR_ID 0xFEED
26#define PRODUCT_ID 0x6050
27#define DEVICE_VER 0x0104
28#define MANUFACTURER Costar
29#define PRODUCT Majestouch
30
31/* key matrix size */
32#define MATRIX_ROWS 8
33#define MATRIX_COLS 18
34
35/*
36 * Keyboard Matrix Assignments
37 *
38 * Change this to how you wired your keyboard
39 * COLS: AVR pins used for columns, left to right
40 * ROWS: AVR pins used for rows, top to bottom
41 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
42 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
43 *
44*/
45//#define MATRIX_ROW_PINS { D0, D5 }
46//#define MATRIX_COL_PINS { F1, F0, B0 }
47//#define UNUSED_PINS
48
49/* COL2ROW or ROW2COL */
50#define DIODE_DIRECTION COL2ROW
51
52// #define BACKLIGHT_PIN B7
53// #define BACKLIGHT_BREATHING
54// #define BACKLIGHT_LEVELS 3
55
56
57/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
58#define DEBOUNCING_DELAY 5
59
60/* define if matrix has ghost (lacks anti-ghosting diodes) */
61//#define MATRIX_HAS_GHOST
62
63/* number of backlight levels */
64
65/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
66#define LOCKING_SUPPORT_ENABLE
67/* Locking resynchronize hack */
68#define LOCKING_RESYNC_ENABLE
69
70/*
71 * Force NKRO
72 *
73 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
74 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
75 * makefile for this to work.)
76 *
77 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
78 * until the next keyboard reset.
79 *
80 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
81 * fully operational during normal computer usage.
82 *
83 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
84 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
85 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
86 * power-up.
87 *
88 */
89//#define FORCE_NKRO
90
91/*
92 * Magic Key Options
93 *
94 * Magic keys are hotkey commands that allow control over firmware functions of
95 * the keyboard. They are best used in combination with the HID Listen program,
96 * found here: https://www.pjrc.com/teensy/hid_listen.html
97 *
98 * The options below allow the magic key functionality to be changed. This is
99 * useful if your keyboard/keypad is missing keys and you want magic key support.
100 *
101 */
102
103/* key combination for magic key command */
104#define IS_COMMAND() ( \
105 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
106)
107
108/* control how magic key switches layers */
109//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
110//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
111//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
112
113/* override magic key keymap */
114//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
115//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
116//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
117//#define MAGIC_KEY_HELP1 H
118//#define MAGIC_KEY_HELP2 SLASH
119//#define MAGIC_KEY_DEBUG D
120//#define MAGIC_KEY_DEBUG_MATRIX X
121//#define MAGIC_KEY_DEBUG_KBD K
122//#define MAGIC_KEY_DEBUG_MOUSE M
123//#define MAGIC_KEY_VERSION V
124//#define MAGIC_KEY_STATUS S
125//#define MAGIC_KEY_CONSOLE C
126//#define MAGIC_KEY_LAYER0_ALT1 ESC
127//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
128//#define MAGIC_KEY_LAYER0 0
129//#define MAGIC_KEY_LAYER1 1
130//#define MAGIC_KEY_LAYER2 2
131//#define MAGIC_KEY_LAYER3 3
132//#define MAGIC_KEY_LAYER4 4
133//#define MAGIC_KEY_LAYER5 5
134//#define MAGIC_KEY_LAYER6 6
135//#define MAGIC_KEY_LAYER7 7
136//#define MAGIC_KEY_LAYER8 8
137//#define MAGIC_KEY_LAYER9 9
138//#define MAGIC_KEY_BOOTLOADER PAUSE
139//#define MAGIC_KEY_LOCK CAPS
140//#define MAGIC_KEY_EEPROM E
141//#define MAGIC_KEY_NKRO N
142//#define MAGIC_KEY_SLEEP_LED Z
143
144/*
145 * Feature disable options
146 * These options are also useful to firmware size reduction.
147 */
148
149/* disable debug print */
150//#define NO_DEBUG
151
152/* disable print */
153//#define NO_PRINT
154
155/* disable action features */
156//#define NO_ACTION_LAYER
157//#define NO_ACTION_TAPPING
158//#define NO_ACTION_ONESHOT
159//#define NO_ACTION_MACRO
160//#define NO_ACTION_FUNCTION
161
162#endif
diff --git a/keyboards/kitten_paw/keymaps/default/keymap.c b/keyboards/kitten_paw/keymaps/default/keymap.c
new file mode 100644
index 000000000..f67235745
--- /dev/null
+++ b/keyboards/kitten_paw/keymaps/default/keymap.c
@@ -0,0 +1,51 @@
1#include "kitten_paw.h"
2
3enum layers {
4 DEFAULT,
5};
6
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8 [DEFAULT] = KEYMAP(\
9 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
10 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
11 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
12 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, \
13 KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \
14 KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT)
15};
16
17const uint16_t PROGMEM fn_actions[] = {
18
19};
20
21const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
22{
23 // MACRODOWN only works in this function
24 switch(id) {
25 case 0:
26 if (record->event.pressed) {
27 register_code(KC_RSFT);
28 } else {
29 unregister_code(KC_RSFT);
30 }
31 break;
32 }
33 return MACRO_NONE;
34};
35
36
37void matrix_init_user(void) {
38
39}
40
41void matrix_scan_user(void) {
42
43}
44
45bool process_record_user(uint16_t keycode, keyrecord_t *record) {
46 return true;
47}
48
49void led_set_user(uint8_t usb_led) {
50
51} \ No newline at end of file
diff --git a/keyboards/kitten_paw/kitten_paw.c b/keyboards/kitten_paw/kitten_paw.c
new file mode 100644
index 000000000..8713baf43
--- /dev/null
+++ b/keyboards/kitten_paw/kitten_paw.c
@@ -0,0 +1,30 @@
1#include "kitten_paw.h"
2
3void matrix_init_kb(void) {
4 // put your keyboard start-up code here
5 // runs once when the firmware starts up
6
7 matrix_init_quantum();
8 matrix_init_user();
9}
10
11void matrix_scan_kb(void) {
12 // put your looping keyboard code here
13 // runs every cycle (a lot)
14
15 matrix_scan_quantum();
16 matrix_scan_user();
17}
18
19bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
20 // put your per-action keyboard code here
21 // runs for every action, just before processing by the firmware
22
23 return process_record_user(keycode, record);
24}
25
26void led_set_kb(uint8_t usb_led) {
27 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
28
29 led_set_user(usb_led);
30}
diff --git a/keyboards/kitten_paw/kitten_paw.h b/keyboards/kitten_paw/kitten_paw.h
new file mode 100644
index 000000000..a6c1d27de
--- /dev/null
+++ b/keyboards/kitten_paw/kitten_paw.h
@@ -0,0 +1,47 @@
1#ifndef KITTEN_PAW_H
2#define KITTEN_PAW_H
3
4#include "quantum.h"
5
6// This a shortcut to help you visually see your layout.
7// The first section contains all of the arguements
8// The second converts the arguments into a two-dimensional array
9/*
10 Matrix col/row mapping
11
12 ,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
13 | J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
14 `----' `-------------------' `-------------------' `-------------------' `--------------'
15 ,-------------------------------------------------------------------------. ,--------------. ,-------------------.
16 | J4 | J7 | I7 | H7 | G7 | G4 | F4 | F7 | E7 | D7 | R7 | R4 | E4 | B2 | | L4 | O4 | Q4 | | K1 | L1 | Q1 | Q0 |
17 |-------------------------------------------------------------------------| |--------------| |-------------------|
18 | J2 | J5 | I5 | H5 | G5 | G2 | F2 | F5 | E5 | D5 | R5 | R2 | E2 | B3 | | K4 | O7 | Q7 | | K5 | L5 | Q5 | O5 |
19 |-------------------------------------------------------------------------| '--------------' |-------------- |
20 | O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | |
21 |-------------------------------------------------------------------------| ,----. |-------------------|
22 | N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 |
23 |-------------------------------------------------------------------------| ,--------------. |-------------- |
24 | A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | |
25 `-------------------------------------------------------------------------' `--------------' `-------------------'
26*/
27
28#define KEYMAP( \
29 KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
30 KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
31 KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
32 KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, KK2, KL2, KQ2, \
33 KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, KK3, KL3, KQ3, KO3, \
34 KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0, KL6, KQ6 \
35) \
36{ \
37 {KC_NO, KB0, KC0, KD0,KC_NO, KF0, KG0,KC_NO,KC_NO,KC_NO, KK0, KL0,KC_NO,KC_NO, KO0,KC_NO, KQ0, KR0}, \
38 { KA1, KB1,KC_NO, KD1, KE1, KF1, KG1, KH1, KI1, KJ1, KK1, KL1,KC_NO,KC_NO,KC_NO,KC_NO, KQ1,KC_NO}, \
39 {KC_NO, KB2,KC_NO, KD2, KE2, KF2, KG2, KH2, KI2, KJ2, KK2, KL2,KC_NO, KN2,KC_NO, KP2, KQ2, KR2}, \
40 {KC_NO, KB3,KC_NO, KD3, KE3, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3,KC_NO, KQ3, KR3}, \
41 { KA4, KB4,KC_NO, KD4, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4,KC_NO,KC_NO, KO4,KC_NO, KQ4, KR4}, \
42 { KA5,KC_NO, KC5, KD5, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5,KC_NO,KC_NO, KO5,KC_NO, KQ5, KR5}, \
43 {KC_NO, KB6, KC6,KC_NO, KE6, KF6, KG6, KH6, KI6, KJ6, KK6, KL6,KC_NO,KC_NO, KO6,KC_NO, KQ6, KR6}, \
44 { KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
45}
46
47#endif
diff --git a/keyboards/kitten_paw/led.c b/keyboards/kitten_paw/led.c
new file mode 100644
index 000000000..a1bf057c4
--- /dev/null
+++ b/keyboards/kitten_paw/led.c
@@ -0,0 +1,47 @@
1/*
2 Copyright 2014 Ralf Schmitt <ralf@bunkertor.net>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include <avr/io.h>
19#include "stdint.h"
20#include "led.h"
21
22/* LED pin configuration
23 *
24 * Scroll Lock PC5
25 * Caps Lock PC6
26 * Num Lock PB7
27 *
28 */
29void led_set(uint8_t usb_led) {
30 DDRB |= (1<<7);
31 DDRC |= (1<<5) | (1<<6);
32
33 if (usb_led & (1<<USB_LED_CAPS_LOCK))
34 PORTC &= ~(1<<6);
35 else
36 PORTC |= (1<<6);
37
38 if (usb_led & (1<<USB_LED_NUM_LOCK))
39 PORTB &= ~(1<<7);
40 else
41 PORTB |= (1<<7);
42
43 if (usb_led & (1<<USB_LED_SCROLL_LOCK))
44 PORTC &= ~(1<<5);
45 else
46 PORTC |= (1<<5);
47}
diff --git a/keyboards/kitten_paw/matrix.c b/keyboards/kitten_paw/matrix.c
new file mode 100644
index 000000000..46875293f
--- /dev/null
+++ b/keyboards/kitten_paw/matrix.c
@@ -0,0 +1,164 @@
1/*
2 Copyright 2014 Ralf Schmitt <ralf@bunkertor.net>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include <stdint.h>
19#include <stdbool.h>
20#include <avr/io.h>
21#include <util/delay.h>
22#include "print.h"
23#include "debug.h"
24#include "util.h"
25#include "matrix.h"
26
27#ifndef DEBOUNCING_DELAY
28# define DEBOUNCING_DELAY 5
29#endif
30static uint8_t debouncing = DEBOUNCING_DELAY;
31
32static matrix_row_t matrix[MATRIX_ROWS];
33static matrix_row_t matrix_debouncing[MATRIX_ROWS];
34
35static uint8_t read_rows(void);
36static void select_col(uint8_t col);
37
38inline uint8_t matrix_rows(void) {
39 return MATRIX_ROWS;
40}
41
42inline uint8_t matrix_cols(void) {
43 return MATRIX_COLS;
44}
45
46/* Column pin configuration
47 *
48 * col: 0 1 2 3 4 5 6 7
49 * pin: PC7 PD5 PD3 PD1 PC2 PD6 PD4 PD2
50 *
51 * Rrr pin configuration
52 *
53 * These rrrs uses one 74HC154 4 to 16 bit demultiplexer (low
54 * active), together with 2 rrrs driven directly from the micro
55 * controller, to control the 18 rrrs. The rrrs are driven from
56 * pins B6,5,4,3,2,1,0.
57 */
58void matrix_init(void) {
59 DDRC &= ~0b10000100; // Row input pins
60 DDRD &= ~0b01111110;
61 PORTC |= 0b10000100;
62 PORTD |= 0b01111110;
63
64 DDRB |= 0b01111111; // Column output pins
65
66 for (uint8_t i=0; i < MATRIX_ROWS; i++) {
67 matrix[i] = 0;
68 matrix_debouncing[i] = 0;
69 }
70}
71
72uint8_t matrix_scan(void) {
73 for (uint8_t col = 0; col < MATRIX_COLS; col++) {
74 select_col(col);
75 _delay_us(3);
76 uint8_t rows = read_rows();
77 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
78 bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col);
79 bool curr_bit = rows & (1<<row);
80 if (prev_bit != curr_bit) {
81 matrix_debouncing[row] ^= ((matrix_row_t)1<<col);
82 debouncing = DEBOUNCING_DELAY;
83 }
84 }
85 }
86
87 if (debouncing) {
88 if (--debouncing) {
89 _delay_ms(1);
90 }
91 else {
92 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
93 matrix[i] = matrix_debouncing[i];
94 }
95 }
96 }
97
98 return 1;
99}
100
101bool matrix_is_modified(void) {
102 if (debouncing)
103 return false;
104 else
105 return true;
106}
107
108inline bool matrix_is_on(uint8_t row, uint8_t col) {
109 return (matrix[row] & ((matrix_row_t)1<<col));
110}
111
112inline matrix_row_t matrix_get_row(uint8_t row) {
113 return matrix[row];
114}
115
116void matrix_print(void) {
117 print("\nr/c 0123456789ABCDEF\n");
118 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
119 xprintf("%02X: %032lb\n", row, bitrev32(matrix_get_row(row)));
120 }
121}
122
123uint8_t matrix_key_count(void) {
124 uint8_t count = 0;
125 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
126 count += bitpop32(matrix[i]);
127 }
128 return count;
129}
130
131static uint8_t read_rows(void) {
132 return
133 (PINC&(1<<7) ? 0 : (1<<0)) |
134 (PIND&(1<<5) ? 0 : (1<<1)) |
135 (PIND&(1<<3) ? 0 : (1<<2)) |
136 (PIND&(1<<1) ? 0 : (1<<3)) |
137 (PINC&(1<<2) ? 0 : (1<<4)) |
138 (PIND&(1<<2) ? 0 : (1<<5)) |
139 (PIND&(1<<4) ? 0 : (1<<6)) |
140 (PIND&(1<<6) ? 0 : (1<<7));
141}
142
143static void select_col(uint8_t col) {
144 switch (col) {
145 case 0: PORTB = (PORTB & ~0b01111111) | 0b01100100; break;
146 case 1: PORTB = (PORTB & ~0b01111111) | 0b01101100; break;
147 case 2: PORTB = (PORTB & ~0b01111111) | 0b01100010; break;
148 case 3: PORTB = (PORTB & ~0b01111111) | 0b01111010; break;
149 case 4: PORTB = (PORTB & ~0b01111111) | 0b01100110; break;
150 case 5: PORTB = (PORTB & ~0b01111111) | 0b01110110; break;
151 case 6: PORTB = (PORTB & ~0b01111111) | 0b01101110; break;
152 case 7: PORTB = (PORTB & ~0b01111111) | 0b01111110; break;
153 case 8: PORTB = (PORTB & ~0b01111111) | 0b01000001; break;
154 case 9: PORTB = (PORTB & ~0b01111111) | 0b00100001; break;
155 case 10: PORTB = (PORTB & ~0b01111111) | 0b01101010; break;
156 case 11: PORTB = (PORTB & ~0b01111111) | 0b01110010; break;
157 case 12: PORTB = (PORTB & ~0b01111111) | 0b01111100; break;
158 case 13: PORTB = (PORTB & ~0b01111111) | 0b01110100; break;
159 case 14: PORTB = (PORTB & ~0b01111111) | 0b01111000; break;
160 case 15: PORTB = (PORTB & ~0b01111111) | 0b01110000; break;
161 case 16: PORTB = (PORTB & ~0b01111111) | 0b01100000; break;
162 case 17: PORTB = (PORTB & ~0b01111111) | 0b01101000; break;
163 }
164}
diff --git a/keyboards/kitten_paw/readme.md b/keyboards/kitten_paw/readme.md
new file mode 100644
index 000000000..a6ef2a067
--- /dev/null
+++ b/keyboards/kitten_paw/readme.md
@@ -0,0 +1,32 @@
1kitten_paw keyboard firmware
2======================
3This is the firmware for the 2016 revision of the Kitten Paw controller by Bathroom Epiphanies.
4Most of the boilerplate code is the work of [BathroomEpiphanies](https://github.com/BathroomEpiphanies).
5
6NKRO doesn't work at the moment, I don't know if I will take the time to find out how to fix this, so far 6KRO is enough for me.
7
8## Quantum MK Firmware
9
10For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
11
12## Building
13
14Download or clone the whole firmware and navigate to the keyboards/kitten_paw folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
15
16Depending on which keymap you would like to use, you will have to compile slightly differently.
17
18### Default
19
20To build with the default keymap, simply run `make`.
21
22### Other Keymaps
23
24Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
25
26To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
27
28```
29$ make keymap=[default|jack|<name>]
30```
31
32Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
diff --git a/keyboards/planck/keymaps/experimental/Makefile b/keyboards/planck/keymaps/experimental/Makefile
index 877c4aed0..3a8250a9b 100644
--- a/keyboards/planck/keymaps/experimental/Makefile
+++ b/keyboards/planck/keymaps/experimental/Makefile
@@ -16,6 +16,7 @@ AUDIO_ENABLE = no # Audio output on port C6
16UNICODE_ENABLE = no # Unicode 16UNICODE_ENABLE = no # Unicode
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 18RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
19ONEHAND_ENABLE = yes # Enable one-hand typing
19 20
20# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 21# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
21SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 22SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c
index 2c1270094..569dbcc8a 100644
--- a/keyboards/planck/keymaps/experimental/keymap.c
+++ b/keyboards/planck/keymaps/experimental/keymap.c
@@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
70 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 70 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
71 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, 71 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
72 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 72 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
73 {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 73 {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
74}, 74},
75 75
76/* Colemak 76/* Colemak
@@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
88 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, 88 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
89 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, 89 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
90 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, 90 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
91 {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 91 {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
92}, 92},
93 93
94/* Dvorak 94/* Dvorak
@@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
106 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, 106 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
107 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, 107 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
108 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, 108 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
109 {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} 109 {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_FN0, KC_FN0, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
110}, 110},
111 111
112/* Lower 112/* Lower
@@ -186,7 +186,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
186}; 186};
187 187
188const uint16_t PROGMEM fn_actions[] = { 188const uint16_t PROGMEM fn_actions[] = {
189 189 ACTION_SWAP_HANDS_TAP_KEY(KC_SPC),
190}; 190};
191 191
192#ifdef AUDIO_ENABLE 192#ifdef AUDIO_ENABLE
diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c
index 8d70bb4e5..645b450d1 100644
--- a/keyboards/planck/planck.c
+++ b/keyboards/planck/planck.c
@@ -1,5 +1,15 @@
1#include "planck.h" 1#include "planck.h"
2 2
3#ifdef ONEHAND_ENABLE
4__attribute__ ((weak))
5const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
6 {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
7 {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
8 {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
9 {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
10};
11#endif
12
3void matrix_init_kb(void) { 13void matrix_init_kb(void) {
4 // Turn status LED on 14 // Turn status LED on
5 DDRE |= (1<<6); 15 DDRE |= (1<<6);
diff --git a/keyboards/preonic/preonic.c b/keyboards/preonic/preonic.c
index 889c3fc8f..d9c119b8d 100644
--- a/keyboards/preonic/preonic.c
+++ b/keyboards/preonic/preonic.c
@@ -1,5 +1,16 @@
1#include "preonic.h" 1#include "preonic.h"
2 2
3#ifdef ONEHAND_ENABLE
4__attribute__ ((weak))
5const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
6 {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
7 {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
8 {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
9 {{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
10 {{11, 4}, {10, 4}, {9, 4}, {8, 4}, {7, 4}, {6, 4}, {5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
11};
12#endif
13
3void matrix_init_kb(void) { 14void matrix_init_kb(void) {
4 15
5 // Turn status LED on 16 // Turn status LED on
diff --git a/keyboards/readme.md b/keyboards/readme.md
index f6c90b1f6..4f1796219 100644
--- a/keyboards/readme.md
+++ b/keyboards/readme.md
@@ -39,6 +39,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not
39* [hhkb](/keyboards/hhkb) &mdash; The Happy Hacking keyboard can be hacked with a custom controller to run QMK. 39* [hhkb](/keyboards/hhkb) &mdash; The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
40* [jd45](/keyboards/jd45) &mdash; Another Geekhack community project, designed by jdcarpe. 40* [jd45](/keyboards/jd45) &mdash; Another Geekhack community project, designed by jdcarpe.
41* [kc60](/keyboards/kc60) &mdash; A programmable Chinese-made keyboard, lost in the mists of time. 41* [kc60](/keyboards/kc60) &mdash; A programmable Chinese-made keyboard, lost in the mists of time.
42* [kitten_paw](/keyboards/kitten_paw) &mdash; A replacement controller (2016 revision) for the Filco Majestouch by [Bathroom Epiphanies](https://github.com/BathroomEpiphanies)
42* [phantom](/keyboards/phantom) &mdash; A tenkeyless kit by Teel, also from Geekhack. 43* [phantom](/keyboards/phantom) &mdash; A tenkeyless kit by Teel, also from Geekhack.
43* [retro_refit](/keyboards/retro_refit) &mdash; Another creation by IBNobody. 44* [retro_refit](/keyboards/retro_refit) &mdash; Another creation by IBNobody.
44* [satan](/keyboards/satan) &mdash; A GH60 variant. 45* [satan](/keyboards/satan) &mdash; A GH60 variant.
diff --git a/keyboards/tv44/keymaps/default/keymap.c b/keyboards/tv44/keymaps/default/keymap.c
index 6a4fef3da..f3f989f2d 100644
--- a/keyboards/tv44/keymaps/default/keymap.c
+++ b/keyboards/tv44/keymaps/default/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } 34 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
35 }, 35 },
36 [_DV] = { /* Dvorak */ 36 [_DV] = { /* Dvorak */
37 {KC_TAB, KC_COMM, KC_DOT, KC_SLSH, KC_Q, KC_Q, KC_Q, KC_Q, KC_Q, KC_Q, KC_Q, KC_BSPC }, 37 {KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
38 {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1) }, 38 {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1) },
39 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2) }, 39 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2) },
40 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } 40 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
diff --git a/keyboards/tv44/tv44.h b/keyboards/tv44/tv44.h
index 4c30174ac..65c0b4593 100644
--- a/keyboards/tv44/tv44.h
+++ b/keyboards/tv44/tv44.h
@@ -11,7 +11,7 @@
11 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ 11 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
12 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ 12 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
13 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ 13 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
14 K30, K31, K32, K33, K37, K38, K39, K3B \ 14 K30, K31, K32, K33, K37, K38, K39, K3A, K3B \
15) \ 15) \
16{ \ 16{ \
17 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ 17 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c
index 72c809c30..a1be8d2fc 100644
--- a/quantum/process_keycode/process_unicode.c
+++ b/quantum/process_keycode/process_unicode.c
@@ -18,6 +18,7 @@ void set_unicode_input_mode(uint8_t os_target)
18 input_mode = os_target; 18 input_mode = os_target;
19} 19}
20 20
21__attribute__((weak))
21void unicode_input_start (void) { 22void unicode_input_start (void) {
22 switch(input_mode) { 23 switch(input_mode) {
23 case UC_OSX: 24 case UC_OSX:
@@ -40,6 +41,7 @@ void unicode_input_start (void) {
40 wait_ms(UNICODE_TYPE_DELAY); 41 wait_ms(UNICODE_TYPE_DELAY);
41} 42}
42 43
44__attribute__((weak))
43void unicode_input_finish (void) { 45void unicode_input_finish (void) {
44 switch(input_mode) { 46 switch(input_mode) {
45 case UC_OSX: 47 case UC_OSX:
diff --git a/readme.md b/readme.md
index c66efadca..f2c202e35 100644
--- a/readme.md
+++ b/readme.md
@@ -43,6 +43,29 @@ Before you are able to compile, you'll need to install an environment for AVR de
43 43
44## Build Environment Setup 44## Build Environment Setup
45 45
46### Windows 10
47
48It's still recommended to use the method for Vista and later below. The reason for this is that the Windows 10 Subsystem for Linux lacks [USB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it's not possible to flash the firmware to the keyboard. Please add your vote to the link!
49
50That said, it's still possible to use it for compilation. And recommended, if you need to compile much, since it's much faster than at least Cygwin (which is also supported, but currently lacking documentation). I haven't tried the method below, so I'm unable to tell.
51
52Here are the steps
53
541. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/).
552. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following
56 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first
57 2. From within the Git bash run ´git rm --cached -r .`
58 3. Followed by `git reset --hard`
593. Start the "Bash On Ubuntu On Windows" from the start menu
604. With the bash open, navigate to your git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive.
615. Run `sudo util/install_dependencies.sh`.
626. After a while the installation will finish, and you are good to go
63
64**Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working.
65
66**Warning:** If you edit Makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work.
67
68
46### Windows (Vista and later) 69### Windows (Vista and later)
471. If you have ever installed WinAVR, uninstall it. 701. If you have ever installed WinAVR, uninstall it.
482. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. 712. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
@@ -68,12 +91,36 @@ You can also try these instructions:
683. Install [DFU-Programmer][dfu-prog]. 913. Install [DFU-Programmer][dfu-prog].
69 92
70### Linux 93### Linux
71Install AVR GCC, AVR libc, and dfu-progammer with your favorite package manager. 94
95To ensure you are always up to date, you can just run `sudo utils/install_dependencies.sh`. That should always install all the dependencies needed.
96
97You can also install things manually, but this documentation might not be always up to date with all requirements.
98
99The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently.
100
101```
102build-essential
103gcc
104unzip
105wget
106zip
107gcc-avr
108binutils-avr
109avr-libc
110dfu-programmer
111dfu-util
112gcc-arm-none-eabi
113binutils-arm-none-eabi
114libnewlib-arm-none-eabi
115git
116```
117
118Install the dependencies with your favorite package manager.
72 119
73Debian/Ubuntu example: 120Debian/Ubuntu example:
74 121
75 sudo apt-get update 122 sudo apt-get update
76 sudo apt-get install gcc-avr avr-libc dfu-programmer 123 sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
77 124
78### Docker 125### Docker
79 126
diff --git a/tmk_core/common.mk b/tmk_core/common.mk
index 21b894e2b..0b767eb04 100644
--- a/tmk_core/common.mk
+++ b/tmk_core/common.mk
@@ -85,6 +85,10 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
85 OPT_DEFS += -DBLUETOOTH_ENABLE 85 OPT_DEFS += -DBLUETOOTH_ENABLE
86endif 86endif
87 87
88ifeq ($(strip $(ONEHAND_ENABLE)), yes)
89 OPT_DEFS += -DONEHAND_ENABLE
90endif
91
88ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) 92ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes)
89 OPT_DEFS += -DKEYMAP_SECTION_ENABLE 93 OPT_DEFS += -DKEYMAP_SECTION_ENABLE
90 94
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index be6dea2b7..08ef22eb9 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -41,6 +41,12 @@ void action_exec(keyevent_t event)
41 dprint("EVENT: "); debug_event(event); dprintln(); 41 dprint("EVENT: "); debug_event(event); dprintln();
42 } 42 }
43 43
44#ifdef ONEHAND_ENABLE
45 if (!IS_NOEVENT(event)) {
46 process_hand_swap(&event);
47 }
48#endif
49
44 keyrecord_t record = { .event = event }; 50 keyrecord_t record = { .event = event };
45 51
46#ifndef NO_ACTION_TAPPING 52#ifndef NO_ACTION_TAPPING
@@ -53,6 +59,26 @@ void action_exec(keyevent_t event)
53#endif 59#endif
54} 60}
55 61
62#ifdef ONEHAND_ENABLE
63bool swap_hands = false;
64
65void process_hand_swap(keyevent_t *event) {
66 static swap_state_row_t swap_state[MATRIX_ROWS];
67
68 keypos_t pos = event->key;
69 swap_state_row_t col_bit = (swap_state_row_t)1<<pos.col;
70 bool do_swap = event->pressed ? swap_hands :
71 swap_state[pos.row] & (col_bit);
72
73 if (do_swap) {
74 event->key = hand_swap_config[pos.row][pos.col];
75 swap_state[pos.row] |= col_bit;
76 } else {
77 swap_state[pos.row] &= ~(col_bit);
78 }
79}
80#endif
81
56#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 82#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
57bool disable_action_cache = false; 83bool disable_action_cache = false;
58 84
@@ -440,6 +466,54 @@ void process_action(keyrecord_t *record, action_t action)
440#endif 466#endif
441 case ACT_COMMAND: 467 case ACT_COMMAND:
442 break; 468 break;
469#ifdef ONEHAND_ENABLE
470 case ACT_SWAP_HANDS:
471 switch (action.swap.code) {
472 case OP_SH_TOGGLE:
473 if (event.pressed) {
474 swap_hands = !swap_hands;
475 }
476 break;
477 case OP_SH_ON_OFF:
478 swap_hands = event.pressed;
479 break;
480 case OP_SH_OFF_ON:
481 swap_hands = !event.pressed;
482 break;
483 case OP_SH_ON:
484 if (!event.pressed) {
485 swap_hands = true;
486 }
487 break;
488 case OP_SH_OFF:
489 if (!event.pressed) {
490 swap_hands = false;
491 }
492 break;
493 #ifndef NO_ACTION_TAPPING
494 case OP_SH_TAP_TOGGLE:
495 /* tap toggle */
496 if (tap_count > 0) {
497 if (!event.pressed) {
498 swap_hands = !swap_hands;
499 }
500 } else {
501 swap_hands = event.pressed;
502 }
503 break;
504 default:
505 if (tap_count > 0) {
506 if (event.pressed) {
507 register_code(action.swap.code);
508 } else {
509 unregister_code(action.swap.code);
510 }
511 } else {
512 swap_hands = event.pressed;
513 }
514 #endif
515 }
516#endif
443#ifndef NO_ACTION_FUNCTION 517#ifndef NO_ACTION_FUNCTION
444 case ACT_FUNCTION: 518 case ACT_FUNCTION:
445 action_function(record, action.func.id, action.func.opt); 519 action_function(record, action.func.id, action.func.opt);
@@ -652,6 +726,13 @@ bool is_tap_key(keypos_t key)
652 return true; 726 return true;
653 } 727 }
654 return false; 728 return false;
729 case ACT_SWAP_HANDS:
730 switch (action.swap.code) {
731 case 0x00 ... 0xdf:
732 case OP_SH_TAP_TOGGLE:
733 return true;
734 }
735 return false;
655 case ACT_MACRO: 736 case ACT_MACRO:
656 case ACT_FUNCTION: 737 case ACT_FUNCTION:
657 if (action.func.opt & FUNC_TAP) { return true; } 738 if (action.func.opt & FUNC_TAP) { return true; }
@@ -692,6 +773,7 @@ void debug_action(action_t action)
692 case ACT_MACRO: dprint("ACT_MACRO"); break; 773 case ACT_MACRO: dprint("ACT_MACRO"); break;
693 case ACT_COMMAND: dprint("ACT_COMMAND"); break; 774 case ACT_COMMAND: dprint("ACT_COMMAND"); break;
694 case ACT_FUNCTION: dprint("ACT_FUNCTION"); break; 775 case ACT_FUNCTION: dprint("ACT_FUNCTION"); break;
776 case ACT_SWAP_HANDS: dprint("ACT_SWAP_HANDS"); break;
695 default: dprint("UNKNOWN"); break; 777 default: dprint("UNKNOWN"); break;
696 } 778 }
697 dprintf("[%X:%02X]", action.kind.param>>8, action.kind.param&0xff); 779 dprintf("[%X:%02X]", action.kind.param>>8, action.kind.param&0xff);
diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h
index e8aa12a7c..b9bdfe642 100644
--- a/tmk_core/common/action.h
+++ b/tmk_core/common/action.h
@@ -65,6 +65,24 @@ bool process_record_quantum(keyrecord_t *record);
65#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 65#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
66extern bool disable_action_cache; 66extern bool disable_action_cache;
67#endif 67#endif
68
69/* Code for handling one-handed key modifiers. */
70#ifdef ONEHAND_ENABLE
71extern bool swap_hands;
72extern const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS];
73#if (MATRIX_COLS <= 8)
74typedef uint8_t swap_state_row_t;
75#elif (MATRIX_COLS <= 16)
76typedef uint16_t swap_state_row_t;
77#elif (MATRIX_COLS <= 32)
78typedef uint32_t swap_state_row_t;
79#else
80#error "MATRIX_COLS: invalid value"
81#endif
82
83void process_hand_swap(keyevent_t *record);
84#endif
85
68void process_record_nocache(keyrecord_t *record); 86void process_record_nocache(keyrecord_t *record);
69void process_record(keyrecord_t *record); 87void process_record(keyrecord_t *record);
70void process_action(keyrecord_t *record, action_t action); 88void process_action(keyrecord_t *record, action_t action);
diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h
index ca729aaec..33da35f35 100644
--- a/tmk_core/common/action_code.h
+++ b/tmk_core/common/action_code.h
@@ -108,6 +108,8 @@ enum action_kind_id {
108 /* Other Keys */ 108 /* Other Keys */
109 ACT_USAGE = 0b0100, 109 ACT_USAGE = 0b0100,
110 ACT_MOUSEKEY = 0b0101, 110 ACT_MOUSEKEY = 0b0101,
111 /* One-hand Support */
112 ACT_SWAP_HANDS = 0b0110,
111 /* Layer Actions */ 113 /* Layer Actions */
112 ACT_LAYER = 0b1000, 114 ACT_LAYER = 0b1000,
113 ACT_LAYER_TAP = 0b1010, /* Layer 0-15 */ 115 ACT_LAYER_TAP = 0b1010, /* Layer 0-15 */
@@ -178,6 +180,11 @@ typedef union {
178 uint8_t opt :4; 180 uint8_t opt :4;
179 uint8_t kind :4; 181 uint8_t kind :4;
180 } func; 182 } func;
183 struct action_swap {
184 uint8_t code :8;
185 uint8_t opt :4;
186 uint8_t kind :4;
187 } swap;
181} action_t; 188} action_t;
182 189
183 190
@@ -295,6 +302,7 @@ enum backlight_opt {
295 BACKLIGHT_STEP = 3, 302 BACKLIGHT_STEP = 3,
296 BACKLIGHT_LEVEL = 4, 303 BACKLIGHT_LEVEL = 4,
297}; 304};
305
298/* Macro */ 306/* Macro */
299#define ACTION_MACRO(id) ACTION(ACT_MACRO, (id)) 307#define ACTION_MACRO(id) ACTION(ACT_MACRO, (id))
300#define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP<<8 | (id)) 308#define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP<<8 | (id))
@@ -306,7 +314,7 @@ enum backlight_opt {
306#define ACTION_BACKLIGHT_STEP() ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8) 314#define ACTION_BACKLIGHT_STEP() ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8)
307#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | (level)) 315#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | (level))
308/* Command */ 316/* Command */
309#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (addr)) 317#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (id))
310/* Function */ 318/* Function */
311enum function_opts { 319enum function_opts {
312 FUNC_TAP = 0x8, /* indciates function is tappable */ 320 FUNC_TAP = 0x8, /* indciates function is tappable */
@@ -314,5 +322,23 @@ enum function_opts {
314#define ACTION_FUNCTION(id) ACTION(ACT_FUNCTION, (id)) 322#define ACTION_FUNCTION(id) ACTION(ACT_FUNCTION, (id))
315#define ACTION_FUNCTION_TAP(id) ACTION(ACT_FUNCTION, FUNC_TAP<<8 | (id)) 323#define ACTION_FUNCTION_TAP(id) ACTION(ACT_FUNCTION, FUNC_TAP<<8 | (id))
316#define ACTION_FUNCTION_OPT(id, opt) ACTION(ACT_FUNCTION, (opt)<<8 | (id)) 324#define ACTION_FUNCTION_OPT(id, opt) ACTION(ACT_FUNCTION, (opt)<<8 | (id))
325/* OneHand Support */
326enum swap_hands_pram_tap_op {
327 OP_SH_TOGGLE = 0xF0,
328 OP_SH_TAP_TOGGLE,
329 OP_SH_ON_OFF,
330 OP_SH_OFF_ON,
331 OP_SH_OFF,
332 OP_SH_ON,
333};
334
335#define ACTION_SWAP_HANDS() ACTION_SWAP_HANDS_ON_OFF()
336#define ACTION_SWAP_HANDS_TOGGLE() ACTION(ACT_SWAP_HANDS, OP_SH_TOGGLE)
337#define ACTION_SWAP_HANDS_TAP_TOGGLE() ACTION(ACT_SWAP_HANDS, OP_SH_TAP_TOGGLE)
338#define ACTION_SWAP_HANDS_TAP_KEY(key) ACTION(ACT_SWAP_HANDS, key)
339#define ACTION_SWAP_HANDS_ON_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_ON_OFF)
340#define ACTION_SWAP_HANDS_OFF_ON() ACTION(ACT_SWAP_HANDS, OP_SH_OFF_ON)
341#define ACTION_SWAP_HANDS_ON() ACTION(ACT_SWAP_HANDS, OP_SH_ON)
342#define ACTION_SWAP_HANDS_OFF() ACTION(ACT_SWAP_HANDS, OP_SH_OFF)
317 343
318#endif /* ACTION_CODE_H */ 344#endif /* ACTION_CODE_H */
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt
index 486e9a427..a34fd58df 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/mshelp/placeholder.txt
@@ -1 +1 @@
Copy the Microsoft HV1 Docbook transform contents into this directory (i.e. with the XSLT files in the current folder). The HV1 transform proposal can be found at http://sourceforge.net/tracker/?func=detail&aid=3610290&group_id=21935&atid=373750 . Copy the Microsoft HV1 Docbook transform contents into this directory (i.e. with the XSLT files in the current folder). The HV1 transform proposal can be found at http://sourceforge.net/tracker/?func=detail&aid=3610290&group_id=21935&atid=373750 .
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt
index c017acfd7..dd69b7e0b 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/Docbook/placeholder.txt
@@ -1 +1 @@
Copy the Docbook XSLT docbook-xsl-1.78.1 release contents into this directory (i.e. with the root Docbook files in the current folder). The Docbook releases can be found at http://sourceforge.net/projects/docbook/files/docbook-xsl/ . Copy the Docbook XSLT docbook-xsl-1.78.1 release contents into this directory (i.e. with the root Docbook files in the current folder). The Docbook releases can be found at http://sourceforge.net/projects/docbook/files/docbook-xsl/ .
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
index ee8a38340..8aa4a9413 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt
@@ -1,45 +1,45 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Docbook XML to Microsoft Help Viewer 1.0 transform file --> 9<!-- Docbook XML to Microsoft Help Viewer 1.0 transform file -->
10 10
11<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 11<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
12 12
13 <xsl:import href="../Docbook/mshelp/docbook.xsl"/> 13 <xsl:import href="../Docbook/mshelp/docbook.xsl"/>
14 14
15 <xsl:output method="xml" indent="no"/> 15 <xsl:output method="xml" indent="no"/>
16 16
17 <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']"> 17 <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']">
18 <span class="hl-keyword" style="color: #0079C1"> 18 <span class="hl-keyword" style="color: #0079C1">
19 <xsl:apply-templates/> 19 <xsl:apply-templates/>
20 </span> 20 </span>
21 </xsl:template> 21 </xsl:template>
22 22
23 <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']"> 23 <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']">
24 <span class="hl-string" style="color: #800000"> 24 <span class="hl-string" style="color: #800000">
25 <xsl:apply-templates/> 25 <xsl:apply-templates/>
26 </span> 26 </span>
27 </xsl:template> 27 </xsl:template>
28 28
29 <xsl:template match="emphasis[@role = 'comment']"> 29 <xsl:template match="emphasis[@role = 'comment']">
30 <em class="hl-comment" style="color: #008000"> 30 <em class="hl-comment" style="color: #008000">
31 <xsl:apply-templates/> 31 <xsl:apply-templates/>
32 </em> 32 </em>
33 </xsl:template> 33 </xsl:template>
34 34
35 <xsl:template match="emphasis[@role = 'preprocessor']"> 35 <xsl:template match="emphasis[@role = 'preprocessor']">
36 <span class="hl-preprocessor" style="color: #A000A0"> 36 <span class="hl-preprocessor" style="color: #A000A0">
37 <xsl:apply-templates/> 37 <xsl:apply-templates/>
38 </span> 38 </span>
39 </xsl:template> 39 </xsl:template>
40 40
41 <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]"> 41 <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]">
42 <xsl:apply-templates /> 42 <xsl:apply-templates />
43 </xsl:template> 43 </xsl:template>
44 44
45</xsl:stylesheet> 45</xsl:stylesheet>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css
index 49eb7e970..0b6ccbd8c 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css
@@ -1,53 +1,53 @@
1/* 1/*
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7*/ 7*/
8 8
9.programlisting { 9.programlisting {
10 display: block; 10 display: block;
11 margin-left: 15px; 11 margin-left: 15px;
12 padding: 10px; 12 padding: 10px;
13 background-color: #f4f4f4; 13 background-color: #f4f4f4;
14 border: 1px solid #aaaaaa; 14 border: 1px solid #aaaaaa;
15 font-family: "Consolas", "Courier New", sans-serif; 15 font-family: "Consolas", "Courier New", sans-serif;
16 } 16 }
17 17
18 code { 18 code {
19 background-color: #f4f4f4; 19 background-color: #f4f4f4;
20 font-family: "Consolas", "Courier New", sans-serif; 20 font-family: "Consolas", "Courier New", sans-serif;
21 } 21 }
22 22
23.note, .warning, .tip { 23.note, .warning, .tip {
24 display: block; 24 display: block;
25 margin-left: 15px; 25 margin-left: 15px;
26 padding-left: 10px; 26 padding-left: 10px;
27 padding-bottom: 5px; 27 padding-bottom: 5px;
28 background-color: #f4f4f4; 28 background-color: #f4f4f4;
29 border: 1px solid #aaaaaa; 29 border: 1px solid #aaaaaa;
30} 30}
31 31
32table { 32table {
33 border: 1px solid #aaaaaa; 33 border: 1px solid #aaaaaa;
34 border-collapse: collapse; 34 border-collapse: collapse;
35 margin-left: 15px; 35 margin-left: 15px;
36 font-size: 10pt; 36 font-size: 10pt;
37} 37}
38 38
39table thead { 39table thead {
40 background-color: #f4f4f4; 40 background-color: #f4f4f4;
41} 41}
42 42
43table thead th { 43table thead th {
44 padding: 5px; 44 padding: 5px;
45} 45}
46 46
47table tbody td { 47table tbody td {
48 padding: 5px; 48 padding: 5px;
49} 49}
50 50
51ul { 51ul {
52 padding-left: 20px; 52 padding-left: 20px;
53} 53}
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml
index 05ef8b6ba..112d16994 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/[Content_Types].xml
@@ -1,13 +1,13 @@
1<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> 1<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
2 <Default Extension="vsixmanifest" ContentType="text/xml"/> 2 <Default Extension="vsixmanifest" ContentType="text/xml"/>
3 <Default Extension="cache" ContentType="text/xml"/> 3 <Default Extension="cache" ContentType="text/xml"/>
4 <Default Extension="png" ContentType="application/octet-stream"/> 4 <Default Extension="png" ContentType="application/octet-stream"/>
5 <Default Extension="txt" ContentType="text/plain"/> 5 <Default Extension="txt" ContentType="text/plain"/>
6 <Default Extension="xml" ContentType="text/xml"/> 6 <Default Extension="xml" ContentType="text/xml"/>
7 <Default Extension="zip" ContentType="application/octet-stream"/> 7 <Default Extension="zip" ContentType="application/octet-stream"/>
8 <Default Extension="dll" ContentType="application/octet-stream" /> 8 <Default Extension="dll" ContentType="application/octet-stream" />
9 <Default Extension="pkgdef" ContentType="text/plain" /> 9 <Default Extension="pkgdef" ContentType="text/plain" />
10 <Default Extension="htm" ContentType="text/html" /> 10 <Default Extension="htm" ContentType="text/html" />
11 <Default Extension="msha" ContentType="text/html" /> 11 <Default Extension="msha" ContentType="text/html" />
12 <Default Extension="mshc" ContentType="application/octet-stream"/> 12 <Default Extension="mshc" ContentType="application/octet-stream"/>
13</Types> 13</Types>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml
index 794fd689e..bd969518a 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/asf-manifest.xml
@@ -1,18 +1,18 @@
1<AsfContentProvider Version="1.0.0"> 1<AsfContentProvider Version="1.0.0">
2 <Identifier Id="0e160d5c-e331-48d9-850b-e0387912171b"> 2 <Identifier Id="0e160d5c-e331-48d9-850b-e0387912171b">
3 <Org>FourWalledCubicle</Org> 3 <Org>FourWalledCubicle</Org>
4 <ShortName>LUFA</ShortName> 4 <ShortName>LUFA</ShortName>
5 <Author>Dean Camera</Author> 5 <Author>Dean Camera</Author>
6 <Description/> 6 <Description/>
7 <FollowFolderStructure>True</FollowFolderStructure> 7 <FollowFolderStructure>True</FollowFolderStructure>
8 </Identifier> 8 </Identifier>
9 <AsfContent Type="zip" Path="contents.zip"> 9 <AsfContent Type="zip" Path="contents.zip">
10 <Content> 10 <Content>
11 <Version>0</Version> 11 <Version>0</Version>
12 <HelpURL/> 12 <HelpURL/>
13 <Locator/> 13 <Locator/>
14 <DbXMLPath>content.xml.cache</DbXMLPath> 14 <DbXMLPath>content.xml.cache</DbXMLPath>
15 <Description/> 15 <Description/>
16 </Content> 16 </Content>
17 </AsfContent> 17 </AsfContent>
18</AsfContentProvider> 18</AsfContentProvider>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest
index ea6edeb25..847501744 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/extension.vsixmanifest
@@ -1,33 +1,33 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2 2
3<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> 3<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
4 <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b"> 4 <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b">
5 <Name>LUFA Library</Name> 5 <Name>LUFA Library</Name>
6 <Author>Dean Camera</Author> 6 <Author>Dean Camera</Author>
7 <Version>0</Version> 7 <Version>0</Version>
8 <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl> 8 <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl>
9 <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description> 9 <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description>
10 10
11 <License>License.txt</License> 11 <License>License.txt</License>
12 <Icon>LUFA_thumb.png</Icon> 12 <Icon>LUFA_thumb.png</Icon>
13 <PreviewImage>LUFA.png</PreviewImage> 13 <PreviewImage>LUFA.png</PreviewImage>
14 14
15 <SupportedProducts> 15 <SupportedProducts>
16 <IsolatedShell Version="6.1">AtmelStudio</IsolatedShell> 16 <IsolatedShell Version="6.1">AtmelStudio</IsolatedShell>
17 <IsolatedShell Version="6.2">AtmelStudio</IsolatedShell> 17 <IsolatedShell Version="6.2">AtmelStudio</IsolatedShell>
18 </SupportedProducts> 18 </SupportedProducts>
19 19
20 <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/> 20 <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/>
21 <Locale>1033</Locale> 21 <Locale>1033</Locale>
22 22
23 <AllUsers>false</AllUsers> 23 <AllUsers>false</AllUsers>
24 </Identifier> 24 </Identifier>
25 25
26 <References/> 26 <References/>
27 27
28 <Content> 28 <Content>
29 <VsPackage>LUFA.pkgdef</VsPackage> 29 <VsPackage>LUFA.pkgdef</VsPackage>
30 <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension> 30 <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension>
31 <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension> 31 <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension>
32 </Content> 32 </Content>
33</Vsix> 33</Vsix>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py
index c51cff400..eb4b71efd 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/VSIX/generate_caches.py
@@ -1,38 +1,38 @@
1""" 1"""
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7""" 7"""
8 8
9import sys 9import sys
10sys.path.append("ProjectGenerator") 10sys.path.append("ProjectGenerator")
11 11
12 12
13def show_message(message): 13def show_message(message):
14 print("[Project Generator] %s" % message) 14 print("[Project Generator] %s" % message)
15 sys.stdout.flush() 15 sys.stdout.flush()
16 16
17 17
18def main(lufa_root_path): 18def main(lufa_root_path):
19 try: 19 try:
20 from asf_avrstudio5_interface import PythonFacade 20 from asf_avrstudio5_interface import PythonFacade
21 except ImportError: 21 except ImportError:
22 print("Fatal Error: The ASF project generator is missing.") 22 print("Fatal Error: The ASF project generator is missing.")
23 return 1 23 return 1
24 24
25 p = PythonFacade(lufa_root_path) 25 p = PythonFacade(lufa_root_path)
26 26
27 show_message("Checking database sanity...") 27 show_message("Checking database sanity...")
28 p.check_extension_database_sanity(lufa_root_path) 28 p.check_extension_database_sanity(lufa_root_path)
29 29
30 show_message("Building cache files...") 30 show_message("Building cache files...")
31 p.generate_extension_cache_files(lufa_root_path) 31 p.generate_extension_cache_files(lufa_root_path)
32 32
33 show_message("Cache files created.") 33 show_message("Cache files created.")
34 return 0 34 return 0
35 35
36 36
37if __name__ == "__main__": 37if __name__ == "__main__":
38 sys.exit(main(sys.argv[1])) 38 sys.exit(main(sys.argv[1]))
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml
index 28afdda58..86cfc0409 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa.xml
@@ -1,96 +1,96 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <extension-container> 12 <extension-container>
13 <extension uuid="0e160d5c-e331-48d9-850b-e0387912171b" org="FourWalledCubicle" shortname="LUFA" version="" fullname="Lightweight USB Framework for AVRs (LUFA)"> 13 <extension uuid="0e160d5c-e331-48d9-850b-e0387912171b" org="FourWalledCubicle" shortname="LUFA" version="" fullname="Lightweight USB Framework for AVRs (LUFA)">
14 <author name="Dean Camera" website="http://www.lufa-lib.org/" email="dean@fourwalledcubicle.com"/> 14 <author name="Dean Camera" website="http://www.lufa-lib.org/" email="dean@fourwalledcubicle.com"/>
15 <description>Lightweight USB Framework for AVRs (LUFA), a USB software stack/framework.</description> 15 <description>Lightweight USB Framework for AVRs (LUFA), a USB software stack/framework.</description>
16 <icon-image path="LUFA/DoxygenPages/Images/LUFA_thumb.png"/> 16 <icon-image path="LUFA/DoxygenPages/Images/LUFA_thumb.png"/>
17 <preview-image path="LUFA/DoxygenPages/Images/LUFA.png"/> 17 <preview-image path="LUFA/DoxygenPages/Images/LUFA.png"/>
18 <license caption="LUFA License" path="LUFA/License.txt"/> 18 <license caption="LUFA License" path="LUFA/License.txt"/>
19 <release-notes caption="LUFA Information" url="http://www.lufa-lib.org"/> 19 <release-notes caption="LUFA Information" url="http://www.lufa-lib.org"/>
20 <online-help> 20 <online-help>
21 <index-page caption="LUFA Documentation" url="http://www.lufa-lib.org/documentation/"/> 21 <index-page caption="LUFA Documentation" url="http://www.lufa-lib.org/documentation/"/>
22 <module-help-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> 22 <module-help-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/>
23 <module-guide-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> 23 <module-guide-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/>
24 </online-help> 24 </online-help>
25 <dependencies/> 25 <dependencies/>
26 </extension> 26 </extension>
27 </extension-container> 27 </extension-container>
28 28
29 <asf> 29 <asf>
30 <device-alias-map name="lufa_avr8"> 30 <device-alias-map name="lufa_avr8">
31 <device-support value="at90usb82"/> 31 <device-support value="at90usb82"/>
32 <device-support value="atmega8u2"/> 32 <device-support value="atmega8u2"/>
33 <device-support value="at90usb162"/> 33 <device-support value="at90usb162"/>
34 <device-support value="atmega16u2"/> 34 <device-support value="atmega16u2"/>
35 <device-support value="atmega16u4"/> 35 <device-support value="atmega16u4"/>
36 <device-support value="atmega32u2"/> 36 <device-support value="atmega32u2"/>
37 <device-support value="atmega32u4"/> 37 <device-support value="atmega32u4"/>
38 <device-support value="at90usb646"/> 38 <device-support value="at90usb646"/>
39 <device-support value="at90usb647"/> 39 <device-support value="at90usb647"/>
40 <device-support value="at90usb1286"/> 40 <device-support value="at90usb1286"/>
41 <device-support value="at90usb1287"/> 41 <device-support value="at90usb1287"/>
42 </device-alias-map> 42 </device-alias-map>
43 43
44 <device-alias-map name="lufa_xmega"> 44 <device-alias-map name="lufa_xmega">
45 <device-support value="atxmega16a4u"/> 45 <device-support value="atxmega16a4u"/>
46 <device-support value="atxmega32a4u"/> 46 <device-support value="atxmega32a4u"/>
47 <device-support value="atxmega64a4u"/> 47 <device-support value="atxmega64a4u"/>
48 <device-support value="atxmega128a4u"/> 48 <device-support value="atxmega128a4u"/>
49 <device-support value="atxmega64a3u"/> 49 <device-support value="atxmega64a3u"/>
50 <device-support value="atxmega128a3u"/> 50 <device-support value="atxmega128a3u"/>
51 <device-support value="atxmega192a3u"/> 51 <device-support value="atxmega192a3u"/>
52 <device-support value="atxmega256a3u"/> 52 <device-support value="atxmega256a3u"/>
53 <device-support value="atxmega256a3bu"/> 53 <device-support value="atxmega256a3bu"/>
54 <device-support value="atxmega128a1u"/> 54 <device-support value="atxmega128a1u"/>
55 <device-support value="atxmega64b3"/> 55 <device-support value="atxmega64b3"/>
56 <device-support value="atxmega128b3"/> 56 <device-support value="atxmega128b3"/>
57 <device-support value="atxmega64b1"/> 57 <device-support value="atxmega64b1"/>
58 <device-support value="atxmega128b1"/> 58 <device-support value="atxmega128b1"/>
59 <device-support value="atxmega64c3"/> 59 <device-support value="atxmega64c3"/>
60 <device-support value="atxmega128c3"/> 60 <device-support value="atxmega128c3"/>
61 <!-- <device-support value="atxmega192c3"/> Wait for ASFP-3339 merge and release before enabling --> 61 <!-- <device-support value="atxmega192c3"/> Wait for ASFP-3339 merge and release before enabling -->
62 <device-support value="atxmega256c3"/> 62 <device-support value="atxmega256c3"/>
63 <device-support value="atxmega384c3"/> 63 <device-support value="atxmega384c3"/>
64 <device-support value="atxmega16c4"/> 64 <device-support value="atxmega16c4"/>
65 </device-alias-map> 65 </device-alias-map>
66 66
67 <device-alias-map name="lufa_uc3"> 67 <device-alias-map name="lufa_uc3">
68 <device-support value="at32uc3a364"/> 68 <device-support value="at32uc3a364"/>
69 <device-support value="at32uc3a364s"/> 69 <device-support value="at32uc3a364s"/>
70 <device-support value="at32uc3a464"/> 70 <device-support value="at32uc3a464"/>
71 <device-support value="at32uc3a464s"/> 71 <device-support value="at32uc3a464s"/>
72 <device-support value="at32uc3b064"/> 72 <device-support value="at32uc3b064"/>
73 <device-support value="at32uc3b164"/> 73 <device-support value="at32uc3b164"/>
74 <device-support value="at32uc3a0128"/> 74 <device-support value="at32uc3a0128"/>
75 <device-support value="at32uc3a1128"/> 75 <device-support value="at32uc3a1128"/>
76 <device-support value="at32uc3a3128"/> 76 <device-support value="at32uc3a3128"/>
77 <device-support value="at32uc3a3128s"/> 77 <device-support value="at32uc3a3128s"/>
78 <device-support value="at32uc3a4128"/> 78 <device-support value="at32uc3a4128"/>
79 <device-support value="at32uc3a4128s"/> 79 <device-support value="at32uc3a4128s"/>
80 <device-support value="at32uc3b0128"/> 80 <device-support value="at32uc3b0128"/>
81 <device-support value="at32uc3b1128"/> 81 <device-support value="at32uc3b1128"/>
82 <device-support value="at32uc3a0256"/> 82 <device-support value="at32uc3a0256"/>
83 <device-support value="at32uc3a1256"/> 83 <device-support value="at32uc3a1256"/>
84 <device-support value="at32uc3a3256"/> 84 <device-support value="at32uc3a3256"/>
85 <device-support value="at32uc3a3256s"/> 85 <device-support value="at32uc3a3256s"/>
86 <device-support value="at32uc3a4256"/> 86 <device-support value="at32uc3a4256"/>
87 <device-support value="at32uc3a4256s"/> 87 <device-support value="at32uc3a4256s"/>
88 <device-support value="at32uc3b0256"/> 88 <device-support value="at32uc3b0256"/>
89 <device-support value="at32uc3b1256"/> 89 <device-support value="at32uc3b1256"/>
90 <device-support value="at32uc3a0512"/> 90 <device-support value="at32uc3a0512"/>
91 <device-support value="at32uc3a1512"/> 91 <device-support value="at32uc3a1512"/>
92 <device-support value="at32uc3b0512"/> 92 <device-support value="at32uc3b0512"/>
93 <device-support value="at32uc3b1512"/> 93 <device-support value="at32uc3b1512"/>
94 </device-alias-map> 94 </device-alias-map>
95 </asf> 95 </asf>
96</lufa> 96</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml
index 9e17b188b..c2ef7af4c 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_common.xml
@@ -1,34 +1,34 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="service" id="lufa.common" caption="LUFA Common Infrastructure"> 13 <module type="service" id="lufa.common" caption="LUFA Common Infrastructure">
14 <device-support-alias value="lufa_avr8"/> 14 <device-support-alias value="lufa_avr8"/>
15 <device-support-alias value="lufa_xmega"/> 15 <device-support-alias value="lufa_xmega"/>
16 <device-support-alias value="lufa_uc3"/> 16 <device-support-alias value="lufa_uc3"/>
17 17
18 <info type="gui-flag" value="hidden"/> 18 <info type="gui-flag" value="hidden"/>
19 <build type="doxygen-entry-point" value="Group_Common"/> 19 <build type="doxygen-entry-point" value="Group_Common"/>
20 20
21 <build type="include-path" value=".."/> 21 <build type="include-path" value=".."/>
22 <build type="header-file" subtype="api" value="Version.h"/> 22 <build type="header-file" subtype="api" value="Version.h"/>
23 <build type="distribute" subtype="license" value="License.txt"/> 23 <build type="distribute" subtype="license" value="License.txt"/>
24 24
25 <build type="header-file" subtype="api" value="Common/Common.h"/> 25 <build type="header-file" subtype="api" value="Common/Common.h"/>
26 <build type="header-file" value="Common/Architectures.h"/> 26 <build type="header-file" value="Common/Architectures.h"/>
27 <build type="header-file" value="Common/ArchitectureSpecific.h"/> 27 <build type="header-file" value="Common/ArchitectureSpecific.h"/>
28 <build type="header-file" value="Common/Attributes.h"/> 28 <build type="header-file" value="Common/Attributes.h"/>
29 <build type="header-file" value="Common/BoardTypes.h"/> 29 <build type="header-file" value="Common/BoardTypes.h"/>
30 <build type="header-file" value="Common/CompilerSpecific.h"/> 30 <build type="header-file" value="Common/CompilerSpecific.h"/>
31 <build type="header-file" value="Common/Endianness.h"/> 31 <build type="header-file" value="Common/Endianness.h"/>
32 </module> 32 </module>
33 </asf> 33 </asf>
34</lufa> 34</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml
index 3677d2003..e150aa645 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board.xml
@@ -1,114 +1,114 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <board id="lufa.boards.dummy.avr8" vendor="LUFA" caption="AVR8 Architecture"> 13 <board id="lufa.boards.dummy.avr8" vendor="LUFA" caption="AVR8 Architecture">
14 <device-support value="mega"/> 14 <device-support value="mega"/>
15 15
16 <require idref="lufa.drivers.board"/> 16 <require idref="lufa.drivers.board"/>
17 <require idref="lufa.drivers.board.info"/> 17 <require idref="lufa.drivers.board.info"/>
18 </board> 18 </board>
19 19
20 <board id="lufa.boards.dummy.xmega" vendor="LUFA" caption="XMEGA Architecture"> 20 <board id="lufa.boards.dummy.xmega" vendor="LUFA" caption="XMEGA Architecture">
21 <device-support value="xmega"/> 21 <device-support value="xmega"/>
22 22
23 <require idref="lufa.drivers.board"/> 23 <require idref="lufa.drivers.board"/>
24 <require idref="lufa.drivers.board.info"/> 24 <require idref="lufa.drivers.board.info"/>
25 </board> 25 </board>
26 26
27 <board id="lufa.boards.dummy.uc3" vendor="LUFA" caption="UC3 Architecture"> 27 <board id="lufa.boards.dummy.uc3" vendor="LUFA" caption="UC3 Architecture">
28 <device-support value="uc3"/> 28 <device-support value="uc3"/>
29 29
30 <require idref="lufa.drivers.board"/> 30 <require idref="lufa.drivers.board"/>
31 <require idref="lufa.drivers.board.info"/> 31 <require idref="lufa.drivers.board.info"/>
32 </board> 32 </board>
33 33
34 <module type="driver" id="lufa.drivers.board.info" caption="LUFA Board Hardware Information Driver"> 34 <module type="driver" id="lufa.drivers.board.info" caption="LUFA Board Hardware Information Driver">
35 <device-support-alias value="lufa_avr8"/> 35 <device-support-alias value="lufa_avr8"/>
36 <device-support-alias value="lufa_xmega"/> 36 <device-support-alias value="lufa_xmega"/>
37 <device-support-alias value="lufa_uc3"/> 37 <device-support-alias value="lufa_uc3"/>
38 38
39 <build type="doxygen-entry-point" value="Group_BoardInfo"/> 39 <build type="doxygen-entry-point" value="Group_BoardInfo"/>
40 40
41 <require idref="lufa.common"/> 41 <require idref="lufa.common"/>
42 42
43 <build type="include-path" value=".."/> 43 <build type="include-path" value=".."/>
44 <build type="header-file" subtype="api" value="Drivers/Board/Board.h"/> 44 <build type="header-file" subtype="api" value="Drivers/Board/Board.h"/>
45 </module> 45 </module>
46 46
47 <module type="driver" id="lufa.drivers.board.leds" caption="LUFA Board LED Driver"> 47 <module type="driver" id="lufa.drivers.board.leds" caption="LUFA Board LED Driver">
48 <device-support-alias value="lufa_avr8"/> 48 <device-support-alias value="lufa_avr8"/>
49 <device-support-alias value="lufa_xmega"/> 49 <device-support-alias value="lufa_xmega"/>
50 <device-support-alias value="lufa_uc3"/> 50 <device-support-alias value="lufa_uc3"/>
51 51
52 <build type="doxygen-entry-point" value="Group_LEDs"/> 52 <build type="doxygen-entry-point" value="Group_LEDs"/>
53 53
54 <require idref="lufa.common"/> 54 <require idref="lufa.common"/>
55 55
56 <build type="include-path" value=".."/> 56 <build type="include-path" value=".."/>
57 <build type="header-file" subtype="api" value="Drivers/Board/LEDs.h"/> 57 <build type="header-file" subtype="api" value="Drivers/Board/LEDs.h"/>
58 </module> 58 </module>
59 59
60 <module type="driver" id="lufa.drivers.board.buttons" caption="LUFA Board Buttons Driver"> 60 <module type="driver" id="lufa.drivers.board.buttons" caption="LUFA Board Buttons Driver">
61 <device-support-alias value="lufa_avr8"/> 61 <device-support-alias value="lufa_avr8"/>
62 <device-support-alias value="lufa_xmega"/> 62 <device-support-alias value="lufa_xmega"/>
63 <device-support-alias value="lufa_uc3"/> 63 <device-support-alias value="lufa_uc3"/>
64 64
65 <build type="doxygen-entry-point" value="Group_Buttons"/> 65 <build type="doxygen-entry-point" value="Group_Buttons"/>
66 66
67 <require idref="lufa.common"/> 67 <require idref="lufa.common"/>
68 68
69 <build type="include-path" value=".."/> 69 <build type="include-path" value=".."/>
70 <build type="header-file" subtype="api" value="Drivers/Board/Buttons.h"/> 70 <build type="header-file" subtype="api" value="Drivers/Board/Buttons.h"/>
71 </module> 71 </module>
72 72
73 <module type="driver" id="lufa.drivers.board.dataflash" caption="LUFA Board Dataflash Driver"> 73 <module type="driver" id="lufa.drivers.board.dataflash" caption="LUFA Board Dataflash Driver">
74 <device-support-alias value="lufa_avr8"/> 74 <device-support-alias value="lufa_avr8"/>
75 <device-support-alias value="lufa_xmega"/> 75 <device-support-alias value="lufa_xmega"/>
76 <device-support-alias value="lufa_uc3"/> 76 <device-support-alias value="lufa_uc3"/>
77 77
78 <build type="doxygen-entry-point" value="Group_Dataflash"/> 78 <build type="doxygen-entry-point" value="Group_Dataflash"/>
79 79
80 <require idref="lufa.common"/> 80 <require idref="lufa.common"/>
81 81
82 <build type="include-path" value=".."/> 82 <build type="include-path" value=".."/>
83 <build type="header-file" subtype="api" value="Drivers/Board/Dataflash.h"/> 83 <build type="header-file" subtype="api" value="Drivers/Board/Dataflash.h"/>
84 </module> 84 </module>
85 85
86 <module type="driver" id="lufa.drivers.board.joystick" caption="LUFA Board Joystick Driver"> 86 <module type="driver" id="lufa.drivers.board.joystick" caption="LUFA Board Joystick Driver">
87 <device-support-alias value="lufa_avr8"/> 87 <device-support-alias value="lufa_avr8"/>
88 <device-support-alias value="lufa_xmega"/> 88 <device-support-alias value="lufa_xmega"/>
89 <device-support-alias value="lufa_uc3"/> 89 <device-support-alias value="lufa_uc3"/>
90 90
91 <build type="doxygen-entry-point" value="Group_Joystick"/> 91 <build type="doxygen-entry-point" value="Group_Joystick"/>
92 92
93 <require idref="lufa.common"/> 93 <require idref="lufa.common"/>
94 94
95 <build type="include-path" value=".."/> 95 <build type="include-path" value=".."/>
96 <build type="header-file" subtype="api" value="Drivers/Board/Joystick.h"/> 96 <build type="header-file" subtype="api" value="Drivers/Board/Joystick.h"/>
97 </module> 97 </module>
98 98
99 <module type="driver" id="lufa.drivers.board.temperature" caption="LUFA Board Temperature Sensor Driver"> 99 <module type="driver" id="lufa.drivers.board.temperature" caption="LUFA Board Temperature Sensor Driver">
100 <device-support-alias value="lufa_avr8"/> 100 <device-support-alias value="lufa_avr8"/>
101 <device-support-alias value="lufa_xmega"/> 101 <device-support-alias value="lufa_xmega"/>
102 <device-support-alias value="lufa_uc3"/> 102 <device-support-alias value="lufa_uc3"/>
103 103
104 <build type="doxygen-entry-point" value="Group_Temperature"/> 104 <build type="doxygen-entry-point" value="Group_Temperature"/>
105 105
106 <require idref="lufa.common"/> 106 <require idref="lufa.common"/>
107 <require idref="lufa.drivers.peripheral.adc"/> 107 <require idref="lufa.drivers.peripheral.adc"/>
108 108
109 <build type="c-source" value="Drivers/Board/Temperature.c"/> 109 <build type="c-source" value="Drivers/Board/Temperature.c"/>
110 <build type="include-path" value=".."/> 110 <build type="include-path" value=".."/>
111 <build type="header-file" subtype="api" value="Drivers/Board/Temperature.h"/> 111 <build type="header-file" subtype="api" value="Drivers/Board/Temperature.h"/>
112 </module> 112 </module>
113 </asf> 113 </asf>
114</lufa> 114</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml
index 4b099920b..ab7e03e4e 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_board_names.xml
@@ -1,853 +1,853 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <select-by-config id="lufa.drivers.board" name="lufa.drivers.board.name" default="none" caption="LUFA Board Support"> 13 <select-by-config id="lufa.drivers.board" name="lufa.drivers.board.name" default="none" caption="LUFA Board Support">
14 <info type="description" value="summary"> 14 <info type="description" value="summary">
15 Board hardware (LEDs, Buttons, etc.) drivers for the preconfigured LUFA boards. Note that only the boards 15 Board hardware (LEDs, Buttons, etc.) drivers for the preconfigured LUFA boards. Note that only the boards
16 compatible with the currently selected device will be shown. 16 compatible with the currently selected device will be shown.
17 17
18 To disable all hardware drivers silently, use NONE. To supply customer drivers, use USER (see manual). 18 To disable all hardware drivers silently, use NONE. To supply customer drivers, use USER (see manual).
19 </info> 19 </info>
20 20
21 <module type="driver" id="lufa.drivers.board#none" caption="Board Support - None"> 21 <module type="driver" id="lufa.drivers.board#none" caption="Board Support - None">
22 <device-support value="avr"/> 22 <device-support value="avr"/>
23 <build type="define" name="BOARD" value="BOARD_NONE"/> 23 <build type="define" name="BOARD" value="BOARD_NONE"/>
24 </module> 24 </module>
25 25
26 <module type="driver" id="lufa.drivers.board#user" caption="Board Support - User Supplied"> 26 <module type="driver" id="lufa.drivers.board#user" caption="Board Support - User Supplied">
27 <device-support value="avr"/> 27 <device-support value="avr"/>
28 <build type="define" name="BOARD" value="BOARD_USER"/> 28 <build type="define" name="BOARD" value="BOARD_USER"/>
29 </module> 29 </module>
30 30
31 <module type="driver" id="lufa.drivers.board#adafruit_u4" caption="Board Support - ADAFRUITU4"> 31 <module type="driver" id="lufa.drivers.board#adafruit_u4" caption="Board Support - ADAFRUITU4">
32 <build type="doxygen-entry-point" value="Group_BoardInfo_ADAFRUITU4"/> 32 <build type="doxygen-entry-point" value="Group_BoardInfo_ADAFRUITU4"/>
33 33
34 <device-support value="atmega32u4"/> 34 <device-support value="atmega32u4"/>
35 <build type="define" name="BOARD" value="BOARD_ADAFRUITU4"/> 35 <build type="define" name="BOARD" value="BOARD_ADAFRUITU4"/>
36 36
37 <require idref="lufa.drivers.board.leds"/> 37 <require idref="lufa.drivers.board.leds"/>
38 38
39 <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/Board.h"/> 39 <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/Board.h"/>
40 <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/LEDs.h"/> 40 <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/LEDs.h"/>
41 </module> 41 </module>
42 42
43 <module type="driver" id="lufa.drivers.board#atavrusbrf01" caption="Board Support - ATAVRUSBRF01"> 43 <module type="driver" id="lufa.drivers.board#atavrusbrf01" caption="Board Support - ATAVRUSBRF01">
44 <build type="doxygen-entry-point" value="Group_BoardInfo_ATAVRUSBRF01"/> 44 <build type="doxygen-entry-point" value="Group_BoardInfo_ATAVRUSBRF01"/>
45 45
46 <device-support value="at90usb1287"/> 46 <device-support value="at90usb1287"/>
47 <build type="define" name="BOARD" value="BOARD_ATAVRUSBRF01"/> 47 <build type="define" name="BOARD" value="BOARD_ATAVRUSBRF01"/>
48 48
49 <require idref="lufa.drivers.board.buttons"/> 49 <require idref="lufa.drivers.board.buttons"/>
50 <require idref="lufa.drivers.board.leds"/> 50 <require idref="lufa.drivers.board.leds"/>
51 51
52 <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Board.h"/> 52 <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Board.h"/>
53 <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h"/> 53 <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h"/>
54 <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h"/> 54 <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h"/>
55 </module> 55 </module>
56 56
57 <module type="driver" id="lufa.drivers.board#benito" caption="Board Support - BENITO"> 57 <module type="driver" id="lufa.drivers.board#benito" caption="Board Support - BENITO">
58 <build type="doxygen-entry-point" value="Group_BoardInfo_BENITO"/> 58 <build type="doxygen-entry-point" value="Group_BoardInfo_BENITO"/>
59 59
60 <device-support value="at90usb162"/> 60 <device-support value="at90usb162"/>
61 <build type="define" name="BOARD" value="BOARD_BENITO"/> 61 <build type="define" name="BOARD" value="BOARD_BENITO"/>
62 62
63 <require idref="lufa.drivers.board.buttons"/> 63 <require idref="lufa.drivers.board.buttons"/>
64 <require idref="lufa.drivers.board.leds"/> 64 <require idref="lufa.drivers.board.leds"/>
65 65
66 <build type="header-file" value="Drivers/Board/AVR8/BENITO/Board.h"/> 66 <build type="header-file" value="Drivers/Board/AVR8/BENITO/Board.h"/>
67 <build type="header-file" value="Drivers/Board/AVR8/BENITO/Buttons.h"/> 67 <build type="header-file" value="Drivers/Board/AVR8/BENITO/Buttons.h"/>
68 <build type="header-file" value="Drivers/Board/AVR8/BENITO/LEDs.h"/> 68 <build type="header-file" value="Drivers/Board/AVR8/BENITO/LEDs.h"/>
69 </module> 69 </module>
70 70
71 <module type="driver" id="lufa.drivers.board#big_multio" caption="Board Support - BIGMULTIO"> 71 <module type="driver" id="lufa.drivers.board#big_multio" caption="Board Support - BIGMULTIO">
72 <build type="doxygen-entry-point" value="Group_BoardInfo_BIGMULTIO"/> 72 <build type="doxygen-entry-point" value="Group_BoardInfo_BIGMULTIO"/>
73 73
74 <device-support value="atmega32u4"/> 74 <device-support value="atmega32u4"/>
75 <build type="define" name="BOARD" value="BOARD_BIGMULTIO"/> 75 <build type="define" name="BOARD" value="BOARD_BIGMULTIO"/>
76 76
77 <require idref="lufa.drivers.board.leds"/> 77 <require idref="lufa.drivers.board.leds"/>
78 78
79 <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/Board.h"/> 79 <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/Board.h"/>
80 <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/LEDs.h"/> 80 <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/LEDs.h"/>
81 </module> 81 </module>
82 82
83 <module type="driver" id="lufa.drivers.board#blackcat" caption="Board Support - BLACKCAT"> 83 <module type="driver" id="lufa.drivers.board#blackcat" caption="Board Support - BLACKCAT">
84 <build type="doxygen-entry-point" value="Group_BoardInfo_BLACKCAT"/> 84 <build type="doxygen-entry-point" value="Group_BoardInfo_BLACKCAT"/>
85 85
86 <device-support value="at90usb162"/> 86 <device-support value="at90usb162"/>
87 <build type="define" name="BOARD" value="BOARD_BLACKCAT"/> 87 <build type="define" name="BOARD" value="BOARD_BLACKCAT"/>
88 88
89 <require idref="lufa.drivers.board.leds"/> 89 <require idref="lufa.drivers.board.leds"/>
90 90
91 <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/Board.h"/> 91 <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/Board.h"/>
92 <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/LEDs.h"/> 92 <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/LEDs.h"/>
93 </module> 93 </module>
94 94
95 <module type="driver" id="lufa.drivers.board#bui" caption="Board Support - BUI"> 95 <module type="driver" id="lufa.drivers.board#bui" caption="Board Support - BUI">
96 <build type="doxygen-entry-point" value="Group_BoardInfo_BUI"/> 96 <build type="doxygen-entry-point" value="Group_BoardInfo_BUI"/>
97 97
98 <device-support value="at90usb646"/> 98 <device-support value="at90usb646"/>
99 <build type="define" name="BOARD" value="BOARD_BUI"/> 99 <build type="define" name="BOARD" value="BOARD_BUI"/>
100 100
101 <require idref="lufa.drivers.board.leds"/> 101 <require idref="lufa.drivers.board.leds"/>
102 102
103 <build type="header-file" value="Drivers/Board/AVR8/BUI/Board.h"/> 103 <build type="header-file" value="Drivers/Board/AVR8/BUI/Board.h"/>
104 <build type="header-file" value="Drivers/Board/AVR8/BUI/LEDs.h"/> 104 <build type="header-file" value="Drivers/Board/AVR8/BUI/LEDs.h"/>
105 </module> 105 </module>
106 106
107 <module type="driver" id="lufa.drivers.board#bumbleb" caption="Board Support - BUMBLEB"> 107 <module type="driver" id="lufa.drivers.board#bumbleb" caption="Board Support - BUMBLEB">
108 <build type="doxygen-entry-point" value="Group_BoardInfo_BUMBLEB"/> 108 <build type="doxygen-entry-point" value="Group_BoardInfo_BUMBLEB"/>
109 109
110 <device-support value="at90usb162"/> 110 <device-support value="at90usb162"/>
111 <build type="define" name="BOARD" value="BOARD_BUMBLEB"/> 111 <build type="define" name="BOARD" value="BOARD_BUMBLEB"/>
112 112
113 <require idref="lufa.drivers.board.buttons"/> 113 <require idref="lufa.drivers.board.buttons"/>
114 <require idref="lufa.drivers.board.leds"/> 114 <require idref="lufa.drivers.board.leds"/>
115 <require idref="lufa.drivers.board.joystick"/> 115 <require idref="lufa.drivers.board.joystick"/>
116 116
117 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Board.h"/> 117 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Board.h"/>
118 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Buttons.h"/> 118 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Buttons.h"/>
119 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Joystick.h"/> 119 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Joystick.h"/>
120 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/LEDs.h"/> 120 <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/LEDs.h"/>
121 </module> 121 </module>
122 122
123 <module type="driver" id="lufa.drivers.board#culv3" caption="Board Support - CULV3"> 123 <module type="driver" id="lufa.drivers.board#culv3" caption="Board Support - CULV3">
124 <build type="doxygen-entry-point" value="Group_BoardInfo_CULV3"/> 124 <build type="doxygen-entry-point" value="Group_BoardInfo_CULV3"/>
125 125
126 <device-support value="atmega32u4"/> 126 <device-support value="atmega32u4"/>
127 <build type="define" name="BOARD" value="BOARD_CULV3"/> 127 <build type="define" name="BOARD" value="BOARD_CULV3"/>
128 128
129 <require idref="lufa.drivers.board.buttons"/> 129 <require idref="lufa.drivers.board.buttons"/>
130 <require idref="lufa.drivers.board.leds"/> 130 <require idref="lufa.drivers.board.leds"/>
131 131
132 <build type="header-file" value="Drivers/Board/AVR8/CULV3/Board.h"/> 132 <build type="header-file" value="Drivers/Board/AVR8/CULV3/Board.h"/>
133 <build type="header-file" value="Drivers/Board/AVR8/CULV3/Buttons.h"/> 133 <build type="header-file" value="Drivers/Board/AVR8/CULV3/Buttons.h"/>
134 <build type="header-file" value="Drivers/Board/AVR8/CULV3/LEDs.h"/> 134 <build type="header-file" value="Drivers/Board/AVR8/CULV3/LEDs.h"/>
135 </module> 135 </module>
136 136
137 <module type="driver" id="lufa.drivers.board#duce" caption="Board Support - DUCE"> 137 <module type="driver" id="lufa.drivers.board#duce" caption="Board Support - DUCE">
138 <build type="doxygen-entry-point" value="Group_BoardInfo_DUCE"/> 138 <build type="doxygen-entry-point" value="Group_BoardInfo_DUCE"/>
139 139
140 <device-support value="atmega32u2"/> 140 <device-support value="atmega32u2"/>
141 <build type="define" name="BOARD" value="BOARD_DUCE"/> 141 <build type="define" name="BOARD" value="BOARD_DUCE"/>
142 142
143 <require idref="lufa.drivers.board.leds"/> 143 <require idref="lufa.drivers.board.leds"/>
144 144
145 <build type="header-file" value="Drivers/Board/AVR8/DUCE/Board.h"/> 145 <build type="header-file" value="Drivers/Board/AVR8/DUCE/Board.h"/>
146 <build type="header-file" value="Drivers/Board/AVR8/DUCE/LEDs.h"/> 146 <build type="header-file" value="Drivers/Board/AVR8/DUCE/LEDs.h"/>
147 </module> 147 </module>
148 148
149 <module type="driver" id="lufa.drivers.board#evk527" caption="Board Support - EVK527"> 149 <module type="driver" id="lufa.drivers.board#evk527" caption="Board Support - EVK527">
150 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK527"/> 150 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK527"/>
151 151
152 <device-support value="atmega32u4"/> 152 <device-support value="atmega32u4"/>
153 <build type="define" name="BOARD" value="BOARD_EVK527"/> 153 <build type="define" name="BOARD" value="BOARD_EVK527"/>
154 154
155 <require idref="lufa.drivers.misc.at45db321c"/> 155 <require idref="lufa.drivers.misc.at45db321c"/>
156 <require idref="lufa.drivers.peripheral.spi"/> 156 <require idref="lufa.drivers.peripheral.spi"/>
157 <require idref="lufa.drivers.board.buttons"/> 157 <require idref="lufa.drivers.board.buttons"/>
158 <require idref="lufa.drivers.board.dataflash"/> 158 <require idref="lufa.drivers.board.dataflash"/>
159 <require idref="lufa.drivers.board.joystick"/> 159 <require idref="lufa.drivers.board.joystick"/>
160 <require idref="lufa.drivers.board.leds"/> 160 <require idref="lufa.drivers.board.leds"/>
161 161
162 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Board.h"/> 162 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Board.h"/>
163 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Buttons.h"/> 163 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Buttons.h"/>
164 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Dataflash.h"/> 164 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Dataflash.h"/>
165 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Joystick.h"/> 165 <build type="header-file" value="Drivers/Board/AVR8/EVK527/Joystick.h"/>
166 <build type="header-file" value="Drivers/Board/AVR8/EVK527/LEDs.h"/> 166 <build type="header-file" value="Drivers/Board/AVR8/EVK527/LEDs.h"/>
167 </module> 167 </module>
168 168
169 <module type="driver" id="lufa.drivers.board#jm_db_u2" caption="Board Support - JMDBU2"> 169 <module type="driver" id="lufa.drivers.board#jm_db_u2" caption="Board Support - JMDBU2">
170 <build type="doxygen-entry-point" value="Group_BoardInfo_JMDBU2"/> 170 <build type="doxygen-entry-point" value="Group_BoardInfo_JMDBU2"/>
171 171
172 <device-support value="atmega32u2"/> 172 <device-support value="atmega32u2"/>
173 <build type="define" name="BOARD" value="BOARD_JMDBU2"/> 173 <build type="define" name="BOARD" value="BOARD_JMDBU2"/>
174 174
175 <require idref="lufa.drivers.board.buttons"/> 175 <require idref="lufa.drivers.board.buttons"/>
176 <require idref="lufa.drivers.board.leds"/> 176 <require idref="lufa.drivers.board.leds"/>
177 177
178 <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Board.h"/> 178 <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Board.h"/>
179 <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Buttons.h"/> 179 <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Buttons.h"/>
180 <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/LEDs.h"/> 180 <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/LEDs.h"/>
181 </module> 181 </module>
182 182
183 <module type="driver" id="lufa.drivers.board#leonardo" caption="Board Support - LEONARDO"> 183 <module type="driver" id="lufa.drivers.board#leonardo" caption="Board Support - LEONARDO">
184 <build type="doxygen-entry-point" value="Group_BoardInfo_LEONARDO"/> 184 <build type="doxygen-entry-point" value="Group_BoardInfo_LEONARDO"/>
185 185
186 <device-support value="atmega32u4"/> 186 <device-support value="atmega32u4"/>
187 <build type="define" name="BOARD" value="BOARD_LEONARDO"/> 187 <build type="define" name="BOARD" value="BOARD_LEONARDO"/>
188 188
189 <require idref="lufa.drivers.board.leds"/> 189 <require idref="lufa.drivers.board.leds"/>
190 190
191 <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/Board.h"/> 191 <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/Board.h"/>
192 <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/LEDs.h"/> 192 <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/LEDs.h"/>
193 </module> 193 </module>
194 194
195 <module type="driver" id="lufa.drivers.board#maximus" caption="Board Support - MAXIMUS"> 195 <module type="driver" id="lufa.drivers.board#maximus" caption="Board Support - MAXIMUS">
196 <build type="doxygen-entry-point" value="Group_BoardInfo_MAXIMUS"/> 196 <build type="doxygen-entry-point" value="Group_BoardInfo_MAXIMUS"/>
197 197
198 <device-support value="at90usb162"/> 198 <device-support value="at90usb162"/>
199 <build type="define" name="BOARD" value="BOARD_MAXIMUS"/> 199 <build type="define" name="BOARD" value="BOARD_MAXIMUS"/>
200 200
201 <require idref="lufa.drivers.board.leds"/> 201 <require idref="lufa.drivers.board.leds"/>
202 202
203 <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/Board.h"/> 203 <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/Board.h"/>
204 <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/LEDs.h"/> 204 <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/LEDs.h"/>
205 </module> 205 </module>
206 206
207 <module type="driver" id="lufa.drivers.board#micropendous_32u2" caption="Board Support - MICROPENDOUS_32U2"> 207 <module type="driver" id="lufa.drivers.board#micropendous_32u2" caption="Board Support - MICROPENDOUS_32U2">
208 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_32U2"/> 208 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_32U2"/>
209 209
210 <device-support value="atmega32u2"/> 210 <device-support value="atmega32u2"/>
211 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_32U2"/> 211 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_32U2"/>
212 212
213 <require idref="lufa.drivers.board.leds"/> 213 <require idref="lufa.drivers.board.leds"/>
214 <require idref="lufa.drivers.board.buttons"/> 214 <require idref="lufa.drivers.board.buttons"/>
215 215
216 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 216 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
217 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> 217 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/>
218 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 218 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
219 </module> 219 </module>
220 220
221 <module type="driver" id="lufa.drivers.board#micropendous_a" caption="Board Support - MICROPENDOUS_A"> 221 <module type="driver" id="lufa.drivers.board#micropendous_a" caption="Board Support - MICROPENDOUS_A">
222 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_A"/> 222 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_A"/>
223 223
224 <device-support value="at90usb1287"/> 224 <device-support value="at90usb1287"/>
225 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_A"/> 225 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_A"/>
226 226
227 <require idref="lufa.drivers.board.buttons"/> 227 <require idref="lufa.drivers.board.buttons"/>
228 228
229 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 229 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
230 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 230 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
231 </module> 231 </module>
232 232
233 <module type="driver" id="lufa.drivers.board#micropendous_1" caption="Board Support - MICROPENDOUS_1"> 233 <module type="driver" id="lufa.drivers.board#micropendous_1" caption="Board Support - MICROPENDOUS_1">
234 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_1"/> 234 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_1"/>
235 235
236 <device-support value="at90usb162"/> 236 <device-support value="at90usb162"/>
237 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_1"/> 237 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_1"/>
238 238
239 <require idref="lufa.drivers.board.buttons"/> 239 <require idref="lufa.drivers.board.buttons"/>
240 240
241 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 241 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
242 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 242 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
243 </module> 243 </module>
244 244
245 <module type="driver" id="lufa.drivers.board#micropendous_2" caption="Board Support - MICROPENDOUS_2"> 245 <module type="driver" id="lufa.drivers.board#micropendous_2" caption="Board Support - MICROPENDOUS_2">
246 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_2"/> 246 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_2"/>
247 247
248 <device-support value="atmega32u4"/> 248 <device-support value="atmega32u4"/>
249 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_2"/> 249 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_2"/>
250 250
251 <require idref="lufa.drivers.board.buttons"/> 251 <require idref="lufa.drivers.board.buttons"/>
252 252
253 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 253 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
254 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 254 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
255 </module> 255 </module>
256 256
257 <module type="driver" id="lufa.drivers.board#micropendous_3" caption="Board Support - MICROPENDOUS_3"> 257 <module type="driver" id="lufa.drivers.board#micropendous_3" caption="Board Support - MICROPENDOUS_3">
258 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_3"/> 258 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_3"/>
259 259
260 <device-support value="at90usb1287"/> 260 <device-support value="at90usb1287"/>
261 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_3"/> 261 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_3"/>
262 262
263 <require idref="lufa.drivers.board.buttons"/> 263 <require idref="lufa.drivers.board.buttons"/>
264 264
265 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 265 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
266 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 266 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
267 </module> 267 </module>
268 268
269 <module type="driver" id="lufa.drivers.board#micropendous_4" caption="Board Support - MICROPENDOUS_4"> 269 <module type="driver" id="lufa.drivers.board#micropendous_4" caption="Board Support - MICROPENDOUS_4">
270 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_4"/> 270 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_4"/>
271 271
272 <device-support value="at90usb1287"/> 272 <device-support value="at90usb1287"/>
273 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_4"/> 273 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_4"/>
274 274
275 <require idref="lufa.drivers.board.buttons"/> 275 <require idref="lufa.drivers.board.buttons"/>
276 276
277 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 277 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
278 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 278 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
279 </module> 279 </module>
280 280
281 <module type="driver" id="lufa.drivers.board#micropendous_dip" caption="Board Support - MICROPENDOUS_DIP"> 281 <module type="driver" id="lufa.drivers.board#micropendous_dip" caption="Board Support - MICROPENDOUS_DIP">
282 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_DIP"/> 282 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_DIP"/>
283 283
284 <device-support value="at90usb1287"/> 284 <device-support value="at90usb1287"/>
285 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_DIP"/> 285 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_DIP"/>
286 286
287 <require idref="lufa.drivers.board.buttons"/> 287 <require idref="lufa.drivers.board.buttons"/>
288 288
289 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 289 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
290 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 290 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
291 </module> 291 </module>
292 292
293 <module type="driver" id="lufa.drivers.board#micropendous_rev1" caption="Board Support - MICROPENDOUS_REV1"> 293 <module type="driver" id="lufa.drivers.board#micropendous_rev1" caption="Board Support - MICROPENDOUS_REV1">
294 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV1"/> 294 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV1"/>
295 295
296 <device-support value="at90usb1287"/> 296 <device-support value="at90usb1287"/>
297 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV1"/> 297 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV1"/>
298 298
299 <require idref="lufa.drivers.board.leds"/> 299 <require idref="lufa.drivers.board.leds"/>
300 <require idref="lufa.drivers.board.buttons"/> 300 <require idref="lufa.drivers.board.buttons"/>
301 301
302 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 302 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
303 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> 303 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/>
304 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 304 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
305 </module> 305 </module>
306 306
307 <module type="driver" id="lufa.drivers.board#micropendous_rev2" caption="Board Support - MICROPENDOUS_REV2"> 307 <module type="driver" id="lufa.drivers.board#micropendous_rev2" caption="Board Support - MICROPENDOUS_REV2">
308 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV2"/> 308 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV2"/>
309 309
310 <device-support value="at90usb1287"/> 310 <device-support value="at90usb1287"/>
311 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV2"/> 311 <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV2"/>
312 312
313 <require idref="lufa.drivers.board.leds"/> 313 <require idref="lufa.drivers.board.leds"/>
314 <require idref="lufa.drivers.board.buttons"/> 314 <require idref="lufa.drivers.board.buttons"/>
315 315
316 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> 316 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/>
317 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> 317 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/>
318 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> 318 <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/>
319 </module> 319 </module>
320 320
321 <module type="driver" id="lufa.drivers.board#microsin_162" caption="Board Support - MICROSIN162"> 321 <module type="driver" id="lufa.drivers.board#microsin_162" caption="Board Support - MICROSIN162">
322 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROSIN162"/> 322 <build type="doxygen-entry-point" value="Group_BoardInfo_MICROSIN162"/>
323 323
324 <device-support value="atmega162"/> 324 <device-support value="atmega162"/>
325 <build type="define" name="BOARD" value="BOARD_MICROSIN162"/> 325 <build type="define" name="BOARD" value="BOARD_MICROSIN162"/>
326 326
327 <require idref="lufa.drivers.board.leds"/> 327 <require idref="lufa.drivers.board.leds"/>
328 <require idref="lufa.drivers.board.buttons"/> 328 <require idref="lufa.drivers.board.buttons"/>
329 329
330 <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Board.h"/> 330 <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Board.h"/>
331 <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/LEDs.h"/> 331 <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/LEDs.h"/>
332 <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Buttons.h"/> 332 <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Buttons.h"/>
333 </module> 333 </module>
334 334
335 <module type="driver" id="lufa.drivers.board#minimus" caption="Board Support - MINIMUS"> 335 <module type="driver" id="lufa.drivers.board#minimus" caption="Board Support - MINIMUS">
336 <build type="doxygen-entry-point" value="Group_BoardInfo_MINIMUS"/> 336 <build type="doxygen-entry-point" value="Group_BoardInfo_MINIMUS"/>
337 337
338 <device-support value="atmega32u2"/> 338 <device-support value="atmega32u2"/>
339 <build type="define" name="BOARD" value="BOARD_MINIMUS"/> 339 <build type="define" name="BOARD" value="BOARD_MINIMUS"/>
340 340
341 <require idref="lufa.drivers.board.leds"/> 341 <require idref="lufa.drivers.board.leds"/>
342 <require idref="lufa.drivers.board.buttons"/> 342 <require idref="lufa.drivers.board.buttons"/>
343 343
344 <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Board.h"/> 344 <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Board.h"/>
345 <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/LEDs.h"/> 345 <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/LEDs.h"/>
346 <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Buttons.h"/> 346 <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Buttons.h"/>
347 </module> 347 </module>
348 348
349 <module type="driver" id="lufa.drivers.board#multio" caption="Board Support - MULTIO"> 349 <module type="driver" id="lufa.drivers.board#multio" caption="Board Support - MULTIO">
350 <build type="doxygen-entry-point" value="Group_BoardInfo_MULTIO"/> 350 <build type="doxygen-entry-point" value="Group_BoardInfo_MULTIO"/>
351 351
352 <device-support value="at90usb162"/> 352 <device-support value="at90usb162"/>
353 <build type="define" name="BOARD" value="BOARD_MULTIO"/> 353 <build type="define" name="BOARD" value="BOARD_MULTIO"/>
354 354
355 <require idref="lufa.drivers.board.leds"/> 355 <require idref="lufa.drivers.board.leds"/>
356 356
357 <build type="header-file" value="Drivers/Board/AVR8/MULTIO/Board.h"/> 357 <build type="header-file" value="Drivers/Board/AVR8/MULTIO/Board.h"/>
358 <build type="header-file" value="Drivers/Board/AVR8/MULTIO/LEDs.h"/> 358 <build type="header-file" value="Drivers/Board/AVR8/MULTIO/LEDs.h"/>
359 </module> 359 </module>
360 360
361 <module type="driver" id="lufa.drivers.board#olimex_162" caption="Board Support - OLIMEX162"> 361 <module type="driver" id="lufa.drivers.board#olimex_162" caption="Board Support - OLIMEX162">
362 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX162"/> 362 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX162"/>
363 363
364 <device-support value="at90usb162"/> 364 <device-support value="at90usb162"/>
365 <build type="define" name="BOARD" value="BOARD_OLIMEX162"/> 365 <build type="define" name="BOARD" value="BOARD_OLIMEX162"/>
366 366
367 <require idref="lufa.drivers.board.leds"/> 367 <require idref="lufa.drivers.board.leds"/>
368 <require idref="lufa.drivers.board.buttons"/> 368 <require idref="lufa.drivers.board.buttons"/>
369 369
370 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Board.h"/> 370 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Board.h"/>
371 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/LEDs.h"/> 371 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/LEDs.h"/>
372 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Buttons.h"/> 372 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Buttons.h"/>
373 </module> 373 </module>
374 374
375 <module type="driver" id="lufa.drivers.board#olimex_32u4" caption="Board Support - OLIMEX32U4"> 375 <module type="driver" id="lufa.drivers.board#olimex_32u4" caption="Board Support - OLIMEX32U4">
376 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX32U4"/> 376 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX32U4"/>
377 377
378 <device-support value="atmega32u4"/> 378 <device-support value="atmega32u4"/>
379 <build type="define" name="BOARD" value="BOARD_OLIMEX32U4"/> 379 <build type="define" name="BOARD" value="BOARD_OLIMEX32U4"/>
380 380
381 <require idref="lufa.drivers.board.leds"/> 381 <require idref="lufa.drivers.board.leds"/>
382 <require idref="lufa.drivers.board.buttons"/> 382 <require idref="lufa.drivers.board.buttons"/>
383 383
384 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Board.h"/> 384 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Board.h"/>
385 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/LEDs.h"/> 385 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/LEDs.h"/>
386 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Buttons.h"/> 386 <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Buttons.h"/>
387 </module> 387 </module>
388 388
389 <module type="driver" id="lufa.drivers.board#olimex_isp_mkii" caption="Board Support - OLIMEXISPMK2"> 389 <module type="driver" id="lufa.drivers.board#olimex_isp_mkii" caption="Board Support - OLIMEXISPMK2">
390 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXISPMK2"/> 390 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXISPMK2"/>
391 391
392 <device-support value="at90usb162"/> 392 <device-support value="at90usb162"/>
393 <build type="define" name="BOARD" value="BOARD_OLIMEXISPMK2"/> 393 <build type="define" name="BOARD" value="BOARD_OLIMEXISPMK2"/>
394 394
395 <require idref="lufa.drivers.board.leds"/> 395 <require idref="lufa.drivers.board.leds"/>
396 <require idref="lufa.drivers.board.buttons"/> 396 <require idref="lufa.drivers.board.buttons"/>
397 397
398 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Board.h"/> 398 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Board.h"/>
399 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h"/> 399 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h"/>
400 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h"/> 400 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h"/>
401 </module> 401 </module>
402 402
403 <module type="driver" id="lufa.drivers.board#olimex_t32u4" caption="Board Support - OLIMEX_T32U4"> 403 <module type="driver" id="lufa.drivers.board#olimex_t32u4" caption="Board Support - OLIMEX_T32U4">
404 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXT32U4"/> 404 <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXT32U4"/>
405 405
406 <device-support value="atmega32u4"/> 406 <device-support value="atmega32u4"/>
407 <build type="define" name="BOARD" value="BOARD_OLIMEXT32U4"/> 407 <build type="define" name="BOARD" value="BOARD_OLIMEXT32U4"/>
408 408
409 <require idref="lufa.drivers.board.leds"/> 409 <require idref="lufa.drivers.board.leds"/>
410 <require idref="lufa.drivers.board.buttons"/> 410 <require idref="lufa.drivers.board.buttons"/>
411 411
412 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Board.h"/> 412 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Board.h"/>
413 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h"/> 413 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h"/>
414 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h"/> 414 <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h"/>
415 </module> 415 </module>
416 416
417 <module type="driver" id="lufa.drivers.board#rzusbstick" caption="Board Support - RZUSBSTICK"> 417 <module type="driver" id="lufa.drivers.board#rzusbstick" caption="Board Support - RZUSBSTICK">
418 <build type="doxygen-entry-point" value="Group_BoardInfo_RZUSBSTICK"/> 418 <build type="doxygen-entry-point" value="Group_BoardInfo_RZUSBSTICK"/>
419 419
420 <device-support value="at90usb1287"/> 420 <device-support value="at90usb1287"/>
421 <build type="define" name="BOARD" value="BOARD_RZUSBSTICK"/> 421 <build type="define" name="BOARD" value="BOARD_RZUSBSTICK"/>
422 422
423 <require idref="lufa.drivers.board.leds"/> 423 <require idref="lufa.drivers.board.leds"/>
424 424
425 <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/Board.h"/> 425 <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/Board.h"/>
426 <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/LEDs.h"/> 426 <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/LEDs.h"/>
427 </module> 427 </module>
428 428
429 <module type="driver" id="lufa.drivers.board#sparkfun_8u2" caption="Board Support - SPARKFUN8U2"> 429 <module type="driver" id="lufa.drivers.board#sparkfun_8u2" caption="Board Support - SPARKFUN8U2">
430 <build type="doxygen-entry-point" value="Group_BoardInfo_SPARKFUN8U2"/> 430 <build type="doxygen-entry-point" value="Group_BoardInfo_SPARKFUN8U2"/>
431 431
432 <device-support value="atmega8u2"/> 432 <device-support value="atmega8u2"/>
433 <build type="define" name="BOARD" value="BOARD_SPARKFUN8U2"/> 433 <build type="define" name="BOARD" value="BOARD_SPARKFUN8U2"/>
434 434
435 <require idref="lufa.drivers.board.leds"/> 435 <require idref="lufa.drivers.board.leds"/>
436 436
437 <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/Board.h"/> 437 <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/Board.h"/>
438 <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h"/> 438 <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h"/>
439 </module> 439 </module>
440 440
441 <module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525"> 441 <module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525">
442 <build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/> 442 <build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/>
443 443
444 <device-support value="at90usb1287"/> 444 <device-support value="at90usb1287"/>
445 <device-support value="at90usb1286"/> 445 <device-support value="at90usb1286"/>
446 <device-support value="at90usb647"/> 446 <device-support value="at90usb647"/>
447 <device-support value="at90usb646"/> 447 <device-support value="at90usb646"/>
448 <build type="define" name="BOARD" value="BOARD_STK525"/> 448 <build type="define" name="BOARD" value="BOARD_STK525"/>
449 449
450 <require idref="lufa.drivers.misc.at45db321c"/> 450 <require idref="lufa.drivers.misc.at45db321c"/>
451 <require idref="lufa.drivers.peripheral.spi"/> 451 <require idref="lufa.drivers.peripheral.spi"/>
452 <require idref="lufa.drivers.board.buttons"/> 452 <require idref="lufa.drivers.board.buttons"/>
453 <require idref="lufa.drivers.board.dataflash"/> 453 <require idref="lufa.drivers.board.dataflash"/>
454 <require idref="lufa.drivers.board.joystick"/> 454 <require idref="lufa.drivers.board.joystick"/>
455 <require idref="lufa.drivers.board.leds"/> 455 <require idref="lufa.drivers.board.leds"/>
456 456
457 <build type="header-file" value="Drivers/Board/AVR8/STK525/Board.h"/> 457 <build type="header-file" value="Drivers/Board/AVR8/STK525/Board.h"/>
458 <build type="header-file" value="Drivers/Board/AVR8/STK525/Buttons.h"/> 458 <build type="header-file" value="Drivers/Board/AVR8/STK525/Buttons.h"/>
459 <build type="header-file" value="Drivers/Board/AVR8/STK525/Dataflash.h"/> 459 <build type="header-file" value="Drivers/Board/AVR8/STK525/Dataflash.h"/>
460 <build type="header-file" value="Drivers/Board/AVR8/STK525/Joystick.h"/> 460 <build type="header-file" value="Drivers/Board/AVR8/STK525/Joystick.h"/>
461 <build type="header-file" value="Drivers/Board/AVR8/STK525/LEDs.h"/> 461 <build type="header-file" value="Drivers/Board/AVR8/STK525/LEDs.h"/>
462 </module> 462 </module>
463 463
464 <module type="driver" id="lufa.drivers.board#stk526" caption="Board Support - STK526"> 464 <module type="driver" id="lufa.drivers.board#stk526" caption="Board Support - STK526">
465 <build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/> 465 <build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/>
466 466
467 <device-support value="at90usb162"/> 467 <device-support value="at90usb162"/>
468 <device-support value="at90usb82"/> 468 <device-support value="at90usb82"/>
469 <device-support value="atmega32u2"/> 469 <device-support value="atmega32u2"/>
470 <device-support value="atmega16u2"/> 470 <device-support value="atmega16u2"/>
471 <device-support value="atmega8u2"/> 471 <device-support value="atmega8u2"/>
472 <build type="define" name="BOARD" value="BOARD_STK526"/> 472 <build type="define" name="BOARD" value="BOARD_STK526"/>
473 473
474 <require idref="lufa.drivers.misc.at45db642d"/> 474 <require idref="lufa.drivers.misc.at45db642d"/>
475 <require idref="lufa.drivers.peripheral.spi"/> 475 <require idref="lufa.drivers.peripheral.spi"/>
476 <require idref="lufa.drivers.board.buttons"/> 476 <require idref="lufa.drivers.board.buttons"/>
477 <require idref="lufa.drivers.board.dataflash"/> 477 <require idref="lufa.drivers.board.dataflash"/>
478 <require idref="lufa.drivers.board.joystick"/> 478 <require idref="lufa.drivers.board.joystick"/>
479 <require idref="lufa.drivers.board.leds"/> 479 <require idref="lufa.drivers.board.leds"/>
480 480
481 <build type="header-file" value="Drivers/Board/AVR8/STK526/Board.h"/> 481 <build type="header-file" value="Drivers/Board/AVR8/STK526/Board.h"/>
482 <build type="header-file" value="Drivers/Board/AVR8/STK526/Buttons.h"/> 482 <build type="header-file" value="Drivers/Board/AVR8/STK526/Buttons.h"/>
483 <build type="header-file" value="Drivers/Board/AVR8/STK526/Dataflash.h"/> 483 <build type="header-file" value="Drivers/Board/AVR8/STK526/Dataflash.h"/>
484 <build type="header-file" value="Drivers/Board/AVR8/STK526/Joystick.h"/> 484 <build type="header-file" value="Drivers/Board/AVR8/STK526/Joystick.h"/>
485 <build type="header-file" value="Drivers/Board/AVR8/STK526/LEDs.h"/> 485 <build type="header-file" value="Drivers/Board/AVR8/STK526/LEDs.h"/>
486 </module> 486 </module>
487 487
488 <module type="driver" id="lufa.drivers.board#teensy" caption="Board Support - TEENSY"> 488 <module type="driver" id="lufa.drivers.board#teensy" caption="Board Support - TEENSY">
489 <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY"/> 489 <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY"/>
490 490
491 <device-support value="at90usb162"/> 491 <device-support value="at90usb162"/>
492 <build type="define" name="BOARD" value="BOARD_TEENSY"/> 492 <build type="define" name="BOARD" value="BOARD_TEENSY"/>
493 493
494 <require idref="lufa.drivers.board.leds"/> 494 <require idref="lufa.drivers.board.leds"/>
495 495
496 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> 496 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/>
497 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> 497 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/>
498 </module> 498 </module>
499 499
500 <module type="driver" id="lufa.drivers.board#teensy2" caption="Board Support - TEENSY2"> 500 <module type="driver" id="lufa.drivers.board#teensy2" caption="Board Support - TEENSY2">
501 <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY2"/> 501 <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY2"/>
502 502
503 <device-support value="at90usb646"/> 503 <device-support value="at90usb646"/>
504 <build type="define" name="BOARD" value="BOARD_TEENSY2"/> 504 <build type="define" name="BOARD" value="BOARD_TEENSY2"/>
505 505
506 <require idref="lufa.drivers.board.leds"/> 506 <require idref="lufa.drivers.board.leds"/>
507 507
508 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> 508 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/>
509 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> 509 <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/>
510 </module> 510 </module>
511 511
512 <module type="driver" id="lufa.drivers.board#tul" caption="Board Support - TUL"> 512 <module type="driver" id="lufa.drivers.board#tul" caption="Board Support - TUL">
513 <build type="doxygen-entry-point" value="Group_BoardInfo_TUL"/> 513 <build type="doxygen-entry-point" value="Group_BoardInfo_TUL"/>
514 514
515 <device-support value="atmega32u4"/> 515 <device-support value="atmega32u4"/>
516 <build type="define" name="BOARD" value="BOARD_TUL"/> 516 <build type="define" name="BOARD" value="BOARD_TUL"/>
517 517
518 <require idref="lufa.drivers.board.buttons"/> 518 <require idref="lufa.drivers.board.buttons"/>
519 <require idref="lufa.drivers.board.leds"/> 519 <require idref="lufa.drivers.board.leds"/>
520 520
521 <build type="header-file" value="Drivers/Board/AVR8/TUL/Board.h"/> 521 <build type="header-file" value="Drivers/Board/AVR8/TUL/Board.h"/>
522 <build type="header-file" value="Drivers/Board/AVR8/TUL/Buttons.h"/> 522 <build type="header-file" value="Drivers/Board/AVR8/TUL/Buttons.h"/>
523 <build type="header-file" value="Drivers/Board/AVR8/TUL/LEDs.h"/> 523 <build type="header-file" value="Drivers/Board/AVR8/TUL/LEDs.h"/>
524 </module> 524 </module>
525 525
526 <module type="driver" id="lufa.drivers.board#udip" caption="Board Support - UDIP"> 526 <module type="driver" id="lufa.drivers.board#udip" caption="Board Support - UDIP">
527 <build type="doxygen-entry-point" value="Group_BoardInfo_UDIP"/> 527 <build type="doxygen-entry-point" value="Group_BoardInfo_UDIP"/>
528 528
529 <device-support value="atmega32u2"/> 529 <device-support value="atmega32u2"/>
530 <build type="define" name="BOARD" value="BOARD_UDIP"/> 530 <build type="define" name="BOARD" value="BOARD_UDIP"/>
531 531
532 <require idref="lufa.drivers.board.buttons"/> 532 <require idref="lufa.drivers.board.buttons"/>
533 <require idref="lufa.drivers.board.leds"/> 533 <require idref="lufa.drivers.board.leds"/>
534 534
535 <build type="header-file" value="Drivers/Board/AVR8/UDIP/Board.h"/> 535 <build type="header-file" value="Drivers/Board/AVR8/UDIP/Board.h"/>
536 <build type="header-file" value="Drivers/Board/AVR8/UDIP/Buttons.h"/> 536 <build type="header-file" value="Drivers/Board/AVR8/UDIP/Buttons.h"/>
537 <build type="header-file" value="Drivers/Board/AVR8/UDIP/LEDs.h"/> 537 <build type="header-file" value="Drivers/Board/AVR8/UDIP/LEDs.h"/>
538 </module> 538 </module>
539 539
540 <module type="driver" id="lufa.drivers.board#uno" caption="Board Support - UNO"> 540 <module type="driver" id="lufa.drivers.board#uno" caption="Board Support - UNO">
541 <build type="doxygen-entry-point" value="Group_BoardInfo_UNO"/> 541 <build type="doxygen-entry-point" value="Group_BoardInfo_UNO"/>
542 542
543 <device-support value="atmega8u2"/> 543 <device-support value="atmega8u2"/>
544 <device-support value="atmega16u2"/> 544 <device-support value="atmega16u2"/>
545 <build type="define" name="BOARD" value="BOARD_UNO"/> 545 <build type="define" name="BOARD" value="BOARD_UNO"/>
546 546
547 <require idref="lufa.drivers.board.leds"/> 547 <require idref="lufa.drivers.board.leds"/>
548 548
549 <build type="header-file" value="Drivers/Board/AVR8/UNO/Board.h"/> 549 <build type="header-file" value="Drivers/Board/AVR8/UNO/Board.h"/>
550 <build type="header-file" value="Drivers/Board/AVR8/UNO/LEDs.h"/> 550 <build type="header-file" value="Drivers/Board/AVR8/UNO/LEDs.h"/>
551 </module> 551 </module>
552 552
553 <module type="driver" id="lufa.drivers.board#usb2ax" caption="Board Support - USB2AX"> 553 <module type="driver" id="lufa.drivers.board#usb2ax" caption="Board Support - USB2AX">
554 <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX"/> 554 <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX"/>
555 555
556 <device-support value="atmega32u2"/> 556 <device-support value="atmega32u2"/>
557 <build type="define" name="BOARD" value="BOARD_USB2AX"/> 557 <build type="define" name="BOARD" value="BOARD_USB2AX"/>
558 558
559 <require idref="lufa.drivers.board.buttons"/> 559 <require idref="lufa.drivers.board.buttons"/>
560 <require idref="lufa.drivers.board.leds"/> 560 <require idref="lufa.drivers.board.leds"/>
561 561
562 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> 562 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/>
563 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> 563 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/>
564 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> 564 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/>
565 </module> 565 </module>
566 566
567 <module type="driver" id="lufa.drivers.board#usb2ax_v3" caption="Board Support - USB2AX_V3"> 567 <module type="driver" id="lufa.drivers.board#usb2ax_v3" caption="Board Support - USB2AX_V3">
568 <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V3"/> 568 <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V3"/>
569 569
570 <device-support value="atmega32u2"/> 570 <device-support value="atmega32u2"/>
571 <build type="define" name="BOARD" value="BOARD_USB2AX_V3"/> 571 <build type="define" name="BOARD" value="BOARD_USB2AX_V3"/>
572 572
573 <require idref="lufa.drivers.board.buttons"/> 573 <require idref="lufa.drivers.board.buttons"/>
574 <require idref="lufa.drivers.board.leds"/> 574 <require idref="lufa.drivers.board.leds"/>
575 575
576 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> 576 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/>
577 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> 577 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/>
578 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> 578 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/>
579 </module> 579 </module>
580 580
581 <module type="driver" id="lufa.drivers.board#usb2ax_v3_1" caption="Board Support - USB2AX_V31"> 581 <module type="driver" id="lufa.drivers.board#usb2ax_v3_1" caption="Board Support - USB2AX_V31">
582 <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V31"/> 582 <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V31"/>
583 583
584 <device-support value="atmega32u2"/> 584 <device-support value="atmega32u2"/>
585 <build type="define" name="BOARD" value="BOARD_USB2AX_V31"/> 585 <build type="define" name="BOARD" value="BOARD_USB2AX_V31"/>
586 586
587 <require idref="lufa.drivers.board.buttons"/> 587 <require idref="lufa.drivers.board.buttons"/>
588 <require idref="lufa.drivers.board.leds"/> 588 <require idref="lufa.drivers.board.leds"/>
589 589
590 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> 590 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/>
591 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> 591 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/>
592 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> 592 <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/>
593 </module> 593 </module>
594 594
595 <module type="driver" id="lufa.drivers.board#usbfoo" caption="Board Support - USBFOO"> 595 <module type="driver" id="lufa.drivers.board#usbfoo" caption="Board Support - USBFOO">
596 <build type="doxygen-entry-point" value="Group_BoardInfo_USBFOO"/> 596 <build type="doxygen-entry-point" value="Group_BoardInfo_USBFOO"/>
597 597
598 <device-support value="atmega162"/> 598 <device-support value="atmega162"/>
599 <build type="define" name="BOARD" value="BOARD_USBFOO"/> 599 <build type="define" name="BOARD" value="BOARD_USBFOO"/>
600 600
601 <require idref="lufa.drivers.board.buttons"/> 601 <require idref="lufa.drivers.board.buttons"/>
602 <require idref="lufa.drivers.board.leds"/> 602 <require idref="lufa.drivers.board.leds"/>
603 603
604 <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Board.h"/> 604 <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Board.h"/>
605 <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Buttons.h"/> 605 <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Buttons.h"/>
606 <build type="header-file" value="Drivers/Board/AVR8/USBFOO/LEDs.h"/> 606 <build type="header-file" value="Drivers/Board/AVR8/USBFOO/LEDs.h"/>
607 </module> 607 </module>
608 608
609 <module type="driver" id="lufa.drivers.board#usbkey" caption="Board Support - USBKEY"> 609 <module type="driver" id="lufa.drivers.board#usbkey" caption="Board Support - USBKEY">
610 <build type="doxygen-entry-point" value="Group_BoardInfo_USBKEY"/> 610 <build type="doxygen-entry-point" value="Group_BoardInfo_USBKEY"/>
611 611
612 <device-support value="at90usb1287"/> 612 <device-support value="at90usb1287"/>
613 <build type="define" name="BOARD" value="BOARD_USBKEY"/> 613 <build type="define" name="BOARD" value="BOARD_USBKEY"/>
614 614
615 <require idref="lufa.drivers.misc.at45db642d"/> 615 <require idref="lufa.drivers.misc.at45db642d"/>
616 <require idref="lufa.drivers.peripheral.spi"/> 616 <require idref="lufa.drivers.peripheral.spi"/>
617 617
618 <require idref="lufa.drivers.board.buttons"/> 618 <require idref="lufa.drivers.board.buttons"/>
619 <require idref="lufa.drivers.board.dataflash"/> 619 <require idref="lufa.drivers.board.dataflash"/>
620 <require idref="lufa.drivers.board.joystick"/> 620 <require idref="lufa.drivers.board.joystick"/>
621 <require idref="lufa.drivers.board.leds"/> 621 <require idref="lufa.drivers.board.leds"/>
622 622
623 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Board.h"/> 623 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Board.h"/>
624 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Buttons.h"/> 624 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Buttons.h"/>
625 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Dataflash.h"/> 625 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Dataflash.h"/>
626 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Joystick.h"/> 626 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Joystick.h"/>
627 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/LEDs.h"/> 627 <build type="header-file" value="Drivers/Board/AVR8/USBKEY/LEDs.h"/>
628 </module> 628 </module>
629 629
630 <module type="driver" id="lufa.drivers.board#usbtiny_mkii" caption="Board Support - USBTINYMKII"> 630 <module type="driver" id="lufa.drivers.board#usbtiny_mkii" caption="Board Support - USBTINYMKII">
631 <build type="doxygen-entry-point" value="Group_BoardInfo_USBTINYMKII"/> 631 <build type="doxygen-entry-point" value="Group_BoardInfo_USBTINYMKII"/>
632 632
633 <device-support value="at90usb162"/> 633 <device-support value="at90usb162"/>
634 <build type="define" name="BOARD" value="BOARD_USBTINYMKII"/> 634 <build type="define" name="BOARD" value="BOARD_USBTINYMKII"/>
635 635
636 <require idref="lufa.drivers.board.buttons"/> 636 <require idref="lufa.drivers.board.buttons"/>
637 <require idref="lufa.drivers.board.leds"/> 637 <require idref="lufa.drivers.board.leds"/>
638 638
639 <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Board.h"/> 639 <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Board.h"/>
640 <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Buttons.h"/> 640 <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Buttons.h"/>
641 <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/LEDs.h"/> 641 <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/LEDs.h"/>
642 </module> 642 </module>
643 643
644 <module type="driver" id="lufa.drivers.board#xplain_rev1" caption="Board Support - XPLAIN (HW Rev 1)"> 644 <module type="driver" id="lufa.drivers.board#xplain_rev1" caption="Board Support - XPLAIN (HW Rev 1)">
645 <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN_REV1"/> 645 <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN_REV1"/>
646 646
647 <device-support value="at90usb1287"/> 647 <device-support value="at90usb1287"/>
648 648
649 <require idref="lufa.drivers.misc.at45db642d"/> 649 <require idref="lufa.drivers.misc.at45db642d"/>
650 <require idref="lufa.drivers.peripheral.spi"/> 650 <require idref="lufa.drivers.peripheral.spi"/>
651 <require idref="lufa.drivers.board.dataflash"/> 651 <require idref="lufa.drivers.board.dataflash"/>
652 <require idref="lufa.drivers.board.leds"/> 652 <require idref="lufa.drivers.board.leds"/>
653 653
654 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> 654 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/>
655 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> 655 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/>
656 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> 656 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/>
657 657
658 <build type="define" name="BOARD" value="BOARD_XPLAIN_REV1"/> 658 <build type="define" name="BOARD" value="BOARD_XPLAIN_REV1"/>
659 </module> 659 </module>
660 660
661 <module type="driver" id="lufa.drivers.board#xplain" caption="Board Support - XPLAIN (HW Rev 2+)"> 661 <module type="driver" id="lufa.drivers.board#xplain" caption="Board Support - XPLAIN (HW Rev 2+)">
662 <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN"/> 662 <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN"/>
663 663
664 <device-support value="at90usb1287"/> 664 <device-support value="at90usb1287"/>
665 665
666 <require idref="lufa.drivers.misc.at45db642d"/> 666 <require idref="lufa.drivers.misc.at45db642d"/>
667 <require idref="lufa.drivers.peripheral.spi"/> 667 <require idref="lufa.drivers.peripheral.spi"/>
668 <require idref="lufa.drivers.board.dataflash"/> 668 <require idref="lufa.drivers.board.dataflash"/>
669 <require idref="lufa.drivers.board.leds"/> 669 <require idref="lufa.drivers.board.leds"/>
670 670
671 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> 671 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/>
672 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> 672 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/>
673 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> 673 <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/>
674 674
675 <build type="define" name="BOARD" value="BOARD_XPLAIN"/> 675 <build type="define" name="BOARD" value="BOARD_XPLAIN"/>
676 </module> 676 </module>
677 677
678 <module type="driver" id="lufa.drivers.board#a3bu_xplained" caption="Board Support - A3BU_XPLAINED"> 678 <module type="driver" id="lufa.drivers.board#a3bu_xplained" caption="Board Support - A3BU_XPLAINED">
679 <build type="doxygen-entry-point" value="Group_BoardInfo_A3BU_XPLAINED"/> 679 <build type="doxygen-entry-point" value="Group_BoardInfo_A3BU_XPLAINED"/>
680 680
681 <device-support value="atxmega256a3bu"/> 681 <device-support value="atxmega256a3bu"/>
682 682
683 <require idref="lufa.drivers.misc.at45db642d"/> 683 <require idref="lufa.drivers.misc.at45db642d"/>
684 <require idref="lufa.drivers.peripheral.usart_spi"/> 684 <require idref="lufa.drivers.peripheral.usart_spi"/>
685 685
686 <require idref="lufa.drivers.board.buttons"/> 686 <require idref="lufa.drivers.board.buttons"/>
687 <require idref="lufa.drivers.board.dataflash"/> 687 <require idref="lufa.drivers.board.dataflash"/>
688 <require idref="lufa.drivers.board.leds"/> 688 <require idref="lufa.drivers.board.leds"/>
689 689
690 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h"/> 690 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h"/>
691 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h"/> 691 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h"/>
692 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h"/> 692 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h"/>
693 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h"/> 693 <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h"/>
694 694
695 <build type="define" name="BOARD" value="BOARD_A3BU_XPLAINED"/> 695 <build type="define" name="BOARD" value="BOARD_A3BU_XPLAINED"/>
696 </module> 696 </module>
697 697
698 <module type="driver" id="lufa.drivers.board#b1_xplained" caption="Board Support - B1_XPLAINED"> 698 <module type="driver" id="lufa.drivers.board#b1_xplained" caption="Board Support - B1_XPLAINED">
699 <build type="doxygen-entry-point" value="Group_BoardInfo_B1_XPLAINED"/> 699 <build type="doxygen-entry-point" value="Group_BoardInfo_B1_XPLAINED"/>
700 700
701 <device-support value="atxmega128b1"/> 701 <device-support value="atxmega128b1"/>
702 702
703 <require idref="lufa.drivers.misc.at45db642d"/> 703 <require idref="lufa.drivers.misc.at45db642d"/>
704 <require idref="lufa.drivers.peripheral.usart_spi"/> 704 <require idref="lufa.drivers.peripheral.usart_spi"/>
705 <require idref="lufa.drivers.board.buttons"/> 705 <require idref="lufa.drivers.board.buttons"/>
706 <require idref="lufa.drivers.board.dataflash"/> 706 <require idref="lufa.drivers.board.dataflash"/>
707 <require idref="lufa.drivers.board.leds"/> 707 <require idref="lufa.drivers.board.leds"/>
708 708
709 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Board.h"/> 709 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Board.h"/>
710 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h"/> 710 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h"/>
711 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h"/> 711 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h"/>
712 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h"/> 712 <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h"/>
713 713
714 <build type="define" name="BOARD" value="BOARD_B1_XPLAINED"/> 714 <build type="define" name="BOARD" value="BOARD_B1_XPLAINED"/>
715 </module> 715 </module>
716 716
717 <module type="driver" id="lufa.drivers.board#evk1100" caption="Board Support - EVK1100"> 717 <module type="driver" id="lufa.drivers.board#evk1100" caption="Board Support - EVK1100">
718 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1100"/> 718 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1100"/>
719 719
720 <device-support value="at32uc3a0512"/> 720 <device-support value="at32uc3a0512"/>
721 721
722 <require idref="lufa.drivers.board.buttons"/> 722 <require idref="lufa.drivers.board.buttons"/>
723 <require idref="lufa.drivers.board.joystick"/> 723 <require idref="lufa.drivers.board.joystick"/>
724 <require idref="lufa.drivers.board.leds"/> 724 <require idref="lufa.drivers.board.leds"/>
725 725
726 <build type="header-file" value="Drivers/Board/UC3/EVK1100/Board.h"/> 726 <build type="header-file" value="Drivers/Board/UC3/EVK1100/Board.h"/>
727 <build type="header-file" value="Drivers/Board/UC3/EVK1100/Buttons.h"/> 727 <build type="header-file" value="Drivers/Board/UC3/EVK1100/Buttons.h"/>
728 <build type="header-file" value="Drivers/Board/UC3/EVK1100/Joystick.h"/> 728 <build type="header-file" value="Drivers/Board/UC3/EVK1100/Joystick.h"/>
729 <build type="header-file" value="Drivers/Board/UC3/EVK1100/LEDs.h"/> 729 <build type="header-file" value="Drivers/Board/UC3/EVK1100/LEDs.h"/>
730 730
731 <build type="define" name="BOARD" value="BOARD_EVK1100"/> 731 <build type="define" name="BOARD" value="BOARD_EVK1100"/>
732 </module> 732 </module>
733 733
734 <module type="driver" id="lufa.drivers.board#evk1101" caption="Board Support - EVK1101"> 734 <module type="driver" id="lufa.drivers.board#evk1101" caption="Board Support - EVK1101">
735 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1101"/> 735 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1101"/>
736 736
737 <device-support value="at32uc3b0256"/> 737 <device-support value="at32uc3b0256"/>
738 738
739 <require idref="lufa.drivers.board.buttons"/> 739 <require idref="lufa.drivers.board.buttons"/>
740 <require idref="lufa.drivers.board.joystick"/> 740 <require idref="lufa.drivers.board.joystick"/>
741 <require idref="lufa.drivers.board.leds"/> 741 <require idref="lufa.drivers.board.leds"/>
742 742
743 <build type="header-file" value="Drivers/Board/UC3/EVK1101/Board.h"/> 743 <build type="header-file" value="Drivers/Board/UC3/EVK1101/Board.h"/>
744 <build type="header-file" value="Drivers/Board/UC3/EVK1101/Buttons.h"/> 744 <build type="header-file" value="Drivers/Board/UC3/EVK1101/Buttons.h"/>
745 <build type="header-file" value="Drivers/Board/UC3/EVK1101/Joystick.h"/> 745 <build type="header-file" value="Drivers/Board/UC3/EVK1101/Joystick.h"/>
746 <build type="header-file" value="Drivers/Board/UC3/EVK1101/LEDs.h"/> 746 <build type="header-file" value="Drivers/Board/UC3/EVK1101/LEDs.h"/>
747 747
748 <build type="define" name="BOARD" value="BOARD_EVK1101"/> 748 <build type="define" name="BOARD" value="BOARD_EVK1101"/>
749 </module> 749 </module>
750 750
751 <module type="driver" id="lufa.drivers.board#evk1104" caption="Board Support - EVK1104"> 751 <module type="driver" id="lufa.drivers.board#evk1104" caption="Board Support - EVK1104">
752 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1104"/> 752 <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1104"/>
753 753
754 <device-support value="at32uc3a3256"/> 754 <device-support value="at32uc3a3256"/>
755 755
756 <require idref="lufa.drivers.board.buttons"/> 756 <require idref="lufa.drivers.board.buttons"/>
757 <require idref="lufa.drivers.board.leds"/> 757 <require idref="lufa.drivers.board.leds"/>
758 758
759 <build type="header-file" value="Drivers/Board/UC3/EVK1104/Board.h"/> 759 <build type="header-file" value="Drivers/Board/UC3/EVK1104/Board.h"/>
760 <build type="header-file" value="Drivers/Board/UC3/EVK1104/Buttons.h"/> 760 <build type="header-file" value="Drivers/Board/UC3/EVK1104/Buttons.h"/>
761 <build type="header-file" value="Drivers/Board/UC3/EVK1104/LEDs.h"/> 761 <build type="header-file" value="Drivers/Board/UC3/EVK1104/LEDs.h"/>
762 762
763 <build type="define" name="BOARD" value="BOARD_EVK1104"/> 763 <build type="define" name="BOARD" value="BOARD_EVK1104"/>
764 </module> 764 </module>
765 765
766 <module type="driver" id="lufa.drivers.board#uc3a3_xplained" caption="Board Support - UC3A3_XPLAINED"> 766 <module type="driver" id="lufa.drivers.board#uc3a3_xplained" caption="Board Support - UC3A3_XPLAINED">
767 <build type="doxygen-entry-point" value="Group_BoardInfo_UC3_A3_XPLAINED"/> 767 <build type="doxygen-entry-point" value="Group_BoardInfo_UC3_A3_XPLAINED"/>
768 768
769 <device-support value="at32uc3a3256"/> 769 <device-support value="at32uc3a3256"/>
770 770
771 <require idref="lufa.drivers.board.buttons"/> 771 <require idref="lufa.drivers.board.buttons"/>
772 <require idref="lufa.drivers.board.leds"/> 772 <require idref="lufa.drivers.board.leds"/>
773 773
774 <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Board.h"/> 774 <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Board.h"/>
775 <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h"/> 775 <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h"/>
776 <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h"/> 776 <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h"/>
777 777
778 <build type="define" name="BOARD" value="BOARD_UC3A3_XPLAINED"/> 778 <build type="define" name="BOARD" value="BOARD_UC3A3_XPLAINED"/>
779 </module> 779 </module>
780 780
781 <module type="driver" id="lufa.drivers.board#stange_isp" caption="Board Support - STANGE_ISP"> 781 <module type="driver" id="lufa.drivers.board#stange_isp" caption="Board Support - STANGE_ISP">
782 <build type="doxygen-entry-point" value="Group_BoardInfo_STANGE_ISP"/> 782 <build type="doxygen-entry-point" value="Group_BoardInfo_STANGE_ISP"/>
783 783
784 <device-support value="at90usb162"/> 784 <device-support value="at90usb162"/>
785 785
786 <require idref="lufa.drivers.board.buttons"/> 786 <require idref="lufa.drivers.board.buttons"/>
787 <require idref="lufa.drivers.board.leds"/> 787 <require idref="lufa.drivers.board.leds"/>
788 788
789 <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Board.h"/> 789 <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Board.h"/>
790 <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Buttons.h"/> 790 <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Buttons.h"/>
791 <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/LEDs.h"/> 791 <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/LEDs.h"/>
792 792
793 <build type="define" name="BOARD" value="BOARD_STANGE_ISP"/> 793 <build type="define" name="BOARD" value="BOARD_STANGE_ISP"/>
794 </module> 794 </module>
795 795
796 <module type="driver" id="lufa.drivers.board#c3_xplained" caption="Board Support - C3_XPLAINED"> 796 <module type="driver" id="lufa.drivers.board#c3_xplained" caption="Board Support - C3_XPLAINED">
797 <build type="doxygen-entry-point" value="Group_BoardInfo_C3_XPLAINED"/> 797 <build type="doxygen-entry-point" value="Group_BoardInfo_C3_XPLAINED"/>
798 798
799 <device-support value="atxmega384c3"/> 799 <device-support value="atxmega384c3"/>
800 800
801 <require idref="lufa.drivers.board.buttons"/> 801 <require idref="lufa.drivers.board.buttons"/>
802 <require idref="lufa.drivers.board.leds"/> 802 <require idref="lufa.drivers.board.leds"/>
803 803
804 <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Board.h"/> 804 <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Board.h"/>
805 <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h"/> 805 <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h"/>
806 <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h"/> 806 <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h"/>
807 807
808 <build type="define" name="BOARD" value="BOARD_C3_XPLAINED"/> 808 <build type="define" name="BOARD" value="BOARD_C3_XPLAINED"/>
809 </module> 809 </module>
810 810
811 <module type="driver" id="lufa.drivers.board#u2s" caption="Board Support - U2S"> 811 <module type="driver" id="lufa.drivers.board#u2s" caption="Board Support - U2S">
812 <build type="doxygen-entry-point" value="Group_BoardInfo_U2S"/> 812 <build type="doxygen-entry-point" value="Group_BoardInfo_U2S"/>
813 813
814 <device-support value="atmega32u2"/> 814 <device-support value="atmega32u2"/>
815 815
816 <require idref="lufa.drivers.board.buttons"/> 816 <require idref="lufa.drivers.board.buttons"/>
817 <require idref="lufa.drivers.board.leds"/> 817 <require idref="lufa.drivers.board.leds"/>
818 818
819 <build type="header-file" value="Drivers/Board/AVR8/U2S/Board.h"/> 819 <build type="header-file" value="Drivers/Board/AVR8/U2S/Board.h"/>
820 <build type="header-file" value="Drivers/Board/AVR8/U2S/Buttons.h"/> 820 <build type="header-file" value="Drivers/Board/AVR8/U2S/Buttons.h"/>
821 <build type="header-file" value="Drivers/Board/AVR8/U2S/LEDs.h"/> 821 <build type="header-file" value="Drivers/Board/AVR8/U2S/LEDs.h"/>
822 822
823 <build type="define" name="BOARD" value="BOARD_U2S"/> 823 <build type="define" name="BOARD" value="BOARD_U2S"/>
824 </module> 824 </module>
825 825
826 <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - YUN"> 826 <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - YUN">
827 <build type="doxygen-entry-point" value="Group_BoardInfo_YUN"/> 827 <build type="doxygen-entry-point" value="Group_BoardInfo_YUN"/>
828 828
829 <device-support value="atmega32u4"/> 829 <device-support value="atmega32u4"/>
830 830
831 <require idref="lufa.drivers.board.leds"/> 831 <require idref="lufa.drivers.board.leds"/>
832 832
833 <build type="header-file" value="Drivers/Board/AVR8/YUN/Board.h"/> 833 <build type="header-file" value="Drivers/Board/AVR8/YUN/Board.h"/>
834 <build type="header-file" value="Drivers/Board/AVR8/YUN/LEDs.h"/> 834 <build type="header-file" value="Drivers/Board/AVR8/YUN/LEDs.h"/>
835 835
836 <build type="define" name="BOARD" value="BOARD_YUN"/> 836 <build type="define" name="BOARD" value="BOARD_YUN"/>
837 </module> 837 </module>
838 838
839 <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - MICRO"> 839 <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - MICRO">
840 <build type="doxygen-entry-point" value="Group_BoardInfo_MICRO"/> 840 <build type="doxygen-entry-point" value="Group_BoardInfo_MICRO"/>
841 841
842 <device-support value="atmega32u4"/> 842 <device-support value="atmega32u4"/>
843 843
844 <require idref="lufa.drivers.board.leds"/> 844 <require idref="lufa.drivers.board.leds"/>
845 845
846 <build type="header-file" value="Drivers/Board/AVR8/MICRO/Board.h"/> 846 <build type="header-file" value="Drivers/Board/AVR8/MICRO/Board.h"/>
847 <build type="header-file" value="Drivers/Board/AVR8/MICRO/LEDs.h"/> 847 <build type="header-file" value="Drivers/Board/AVR8/MICRO/LEDs.h"/>
848 848
849 <build type="define" name="BOARD" value="BOARD_MICRO"/> 849 <build type="define" name="BOARD" value="BOARD_MICRO"/>
850 </module> 850 </module>
851 </select-by-config> 851 </select-by-config>
852 </asf> 852 </asf>
853</lufa> 853</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml
index 8680ca2df..4311ae87b 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_misc.xml
@@ -1,57 +1,57 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="component" id="lufa.drivers.misc.at45db321c" caption="LUFA AT45DB321C Dataflash Commands"> 13 <module type="component" id="lufa.drivers.misc.at45db321c" caption="LUFA AT45DB321C Dataflash Commands">
14 <device-support-alias value="lufa_avr8"/> 14 <device-support-alias value="lufa_avr8"/>
15 <device-support-alias value="lufa_xmega"/> 15 <device-support-alias value="lufa_xmega"/>
16 <device-support-alias value="lufa_uc3"/> 16 <device-support-alias value="lufa_uc3"/>
17 17
18 <build type="doxygen-entry-point" value="Group_AT45DB321C"/> 18 <build type="doxygen-entry-point" value="Group_AT45DB321C"/>
19 19
20 <build type="include-path" value=".."/> 20 <build type="include-path" value=".."/>
21 <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB321C.h"/> 21 <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB321C.h"/>
22 </module> 22 </module>
23 23
24 <module type="component" id="lufa.drivers.misc.at45db642d" caption="LUFA AT45DB642D Dataflash Commands"> 24 <module type="component" id="lufa.drivers.misc.at45db642d" caption="LUFA AT45DB642D Dataflash Commands">
25 <device-support-alias value="lufa_avr8"/> 25 <device-support-alias value="lufa_avr8"/>
26 <device-support-alias value="lufa_xmega"/> 26 <device-support-alias value="lufa_xmega"/>
27 <device-support-alias value="lufa_uc3"/> 27 <device-support-alias value="lufa_uc3"/>
28 28
29 <build type="doxygen-entry-point" value="Group_AT45DB321C"/> 29 <build type="doxygen-entry-point" value="Group_AT45DB321C"/>
30 30
31 <build type="include-path" value=".."/> 31 <build type="include-path" value=".."/>
32 <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB642D.h"/> 32 <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB642D.h"/>
33 </module> 33 </module>
34 34
35 <module type="service" id="lufa.drivers.misc.ringbuffer" caption="LUFA Ring Buffer"> 35 <module type="service" id="lufa.drivers.misc.ringbuffer" caption="LUFA Ring Buffer">
36 <device-support-alias value="lufa_avr8"/> 36 <device-support-alias value="lufa_avr8"/>
37 <device-support-alias value="lufa_xmega"/> 37 <device-support-alias value="lufa_xmega"/>
38 <device-support-alias value="lufa_uc3"/> 38 <device-support-alias value="lufa_uc3"/>
39 39
40 <build type="doxygen-entry-point" value="Group_RingBuff"/> 40 <build type="doxygen-entry-point" value="Group_RingBuff"/>
41 41
42 <build type="include-path" value=".."/> 42 <build type="include-path" value=".."/>
43 <build type="header-file" subtype="api" value="Drivers/Misc/RingBuffer.h"/> 43 <build type="header-file" subtype="api" value="Drivers/Misc/RingBuffer.h"/>
44 </module> 44 </module>
45 45
46 <module type="service" id="lufa.drivers.misc.ansi" caption="LUFA ANSI Terminal Commands"> 46 <module type="service" id="lufa.drivers.misc.ansi" caption="LUFA ANSI Terminal Commands">
47 <device-support-alias value="lufa_avr8"/> 47 <device-support-alias value="lufa_avr8"/>
48 <device-support-alias value="lufa_xmega"/> 48 <device-support-alias value="lufa_xmega"/>
49 <device-support-alias value="lufa_uc3"/> 49 <device-support-alias value="lufa_uc3"/>
50 50
51 <build type="doxygen-entry-point" value="Group_Terminal"/> 51 <build type="doxygen-entry-point" value="Group_Terminal"/>
52 52
53 <build type="include-path" value=".."/> 53 <build type="include-path" value=".."/>
54 <build type="header-file" subtype="api" value="Drivers/Misc/TerminalCodes.h"/> 54 <build type="header-file" subtype="api" value="Drivers/Misc/TerminalCodes.h"/>
55 </module> 55 </module>
56 </asf> 56 </asf>
57</lufa> \ No newline at end of file 57</lufa> \ No newline at end of file
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml
index 3a982e565..76ea516db 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_peripheral.xml
@@ -1,198 +1,198 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <select-by-device id="lufa.drivers.peripheral.usart" caption="LUFA USART Driver"> 13 <select-by-device id="lufa.drivers.peripheral.usart" caption="LUFA USART Driver">
14 <module type="driver" id="lufa.drivers.peripheral.usart#avr8" caption="LUFA USART Driver - AVR8"> 14 <module type="driver" id="lufa.drivers.peripheral.usart#avr8" caption="LUFA USART Driver - AVR8">
15 <device-support-alias value="lufa_avr8"/> 15 <device-support-alias value="lufa_avr8"/>
16 16
17 <build type="doxygen-entry-point" value="Group_Serial"/> 17 <build type="doxygen-entry-point" value="Group_Serial"/>
18 18
19 <require idref="lufa.common"/> 19 <require idref="lufa.common"/>
20 <require idref="lufa.drivers.misc.ansi"/> 20 <require idref="lufa.drivers.misc.ansi"/>
21 21
22 <build type="c-source" value="Drivers/Peripheral/AVR8/Serial_AVR8.c"/> 22 <build type="c-source" value="Drivers/Peripheral/AVR8/Serial_AVR8.c"/>
23 <build type="header-file" value="Drivers/Peripheral/AVR8/Serial_AVR8.h"/> 23 <build type="header-file" value="Drivers/Peripheral/AVR8/Serial_AVR8.h"/>
24 <build type="include-path" value=".."/> 24 <build type="include-path" value=".."/>
25 <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> 25 <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/>
26 </module> 26 </module>
27 27
28 <module type="driver" id="lufa.drivers.peripheral.usart#xmega" caption="LUFA USART Driver - AVR8"> 28 <module type="driver" id="lufa.drivers.peripheral.usart#xmega" caption="LUFA USART Driver - AVR8">
29 <device-support-alias value="lufa_xmega"/> 29 <device-support-alias value="lufa_xmega"/>
30 30
31 <build type="doxygen-entry-point" value="Group_Serial"/> 31 <build type="doxygen-entry-point" value="Group_Serial"/>
32 32
33 <require idref="lufa.common"/> 33 <require idref="lufa.common"/>
34 <require idref="lufa.drivers.misc.ansi"/> 34 <require idref="lufa.drivers.misc.ansi"/>
35 35
36 <build type="c-source" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.c"/> 36 <build type="c-source" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.c"/>
37 <build type="header-file" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.h"/> 37 <build type="header-file" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.h"/>
38 <build type="include-path" value=".."/> 38 <build type="include-path" value=".."/>
39 <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> 39 <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/>
40 </module> 40 </module>
41 41
42 <module type="driver" id="lufa.drivers.peripheral.usart#uc3" caption="LUFA USART Driver - UC3"> 42 <module type="driver" id="lufa.drivers.peripheral.usart#uc3" caption="LUFA USART Driver - UC3">
43 <device-support-alias value="lufa_uc3"/> 43 <device-support-alias value="lufa_uc3"/>
44 44
45 <build type="doxygen-entry-point" value="Group_Serial"/> 45 <build type="doxygen-entry-point" value="Group_Serial"/>
46 46
47 <require idref="lufa.common"/> 47 <require idref="lufa.common"/>
48 <require idref="lufa.drivers.misc.ansi"/> 48 <require idref="lufa.drivers.misc.ansi"/>
49 49
50 <info type="gui-flag" value="hidden"/> 50 <info type="gui-flag" value="hidden"/>
51 </module> 51 </module>
52 </select-by-device> 52 </select-by-device>
53 53
54 <select-by-device id="lufa.drivers.peripheral.spi" caption="LUFA SPI Driver"> 54 <select-by-device id="lufa.drivers.peripheral.spi" caption="LUFA SPI Driver">
55 <module type="driver" id="lufa.drivers.peripheral.spi#avr8" caption="LUFA SPI Driver - AVR8"> 55 <module type="driver" id="lufa.drivers.peripheral.spi#avr8" caption="LUFA SPI Driver - AVR8">
56 <device-support-alias value="lufa_avr8"/> 56 <device-support-alias value="lufa_avr8"/>
57 57
58 <build type="doxygen-entry-point" value="Group_SPI"/> 58 <build type="doxygen-entry-point" value="Group_SPI"/>
59 59
60 <require idref="lufa.common"/> 60 <require idref="lufa.common"/>
61 61
62 <build type="header-file" value="Drivers/Peripheral/AVR8/SPI_AVR8.h"/> 62 <build type="header-file" value="Drivers/Peripheral/AVR8/SPI_AVR8.h"/>
63 <build type="include-path" value=".."/> 63 <build type="include-path" value=".."/>
64 <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> 64 <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/>
65 </module> 65 </module>
66 66
67 <module type="driver" id="lufa.drivers.peripheral.spi#xmega" caption="LUFA SPI Driver - XMEGA"> 67 <module type="driver" id="lufa.drivers.peripheral.spi#xmega" caption="LUFA SPI Driver - XMEGA">
68 <device-support-alias value="lufa_xmega"/> 68 <device-support-alias value="lufa_xmega"/>
69 69
70 <build type="doxygen-entry-point" value="Group_SPI"/> 70 <build type="doxygen-entry-point" value="Group_SPI"/>
71 71
72 <require idref="lufa.common"/> 72 <require idref="lufa.common"/>
73 73
74 <build type="header-file" value="Drivers/Peripheral/XMEGA/SPI_XMEGA.h"/> 74 <build type="header-file" value="Drivers/Peripheral/XMEGA/SPI_XMEGA.h"/>
75 <build type="include-path" value=".."/> 75 <build type="include-path" value=".."/>
76 <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> 76 <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/>
77 </module> 77 </module>
78 78
79 <module type="driver" id="lufa.drivers.peripheral.spi#uc3" caption="LUFA SPI Driver - UC3"> 79 <module type="driver" id="lufa.drivers.peripheral.spi#uc3" caption="LUFA SPI Driver - UC3">
80 <device-support-alias value="lufa_uc3"/> 80 <device-support-alias value="lufa_uc3"/>
81 81
82 <build type="doxygen-entry-point" value="Group_SPI"/> 82 <build type="doxygen-entry-point" value="Group_SPI"/>
83 83
84 <require idref="lufa.common"/> 84 <require idref="lufa.common"/>
85 85
86 <info type="gui-flag" value="hidden"/> 86 <info type="gui-flag" value="hidden"/>
87 </module> 87 </module>
88 </select-by-device> 88 </select-by-device>
89 89
90 <select-by-device id="lufa.drivers.peripheral.usart_spi" caption="LUFA USART SPI Driver"> 90 <select-by-device id="lufa.drivers.peripheral.usart_spi" caption="LUFA USART SPI Driver">
91 <module type="driver" id="lufa.drivers.peripheral.usart_spi#avr8" caption="LUFA USART SPI Driver - AVR8"> 91 <module type="driver" id="lufa.drivers.peripheral.usart_spi#avr8" caption="LUFA USART SPI Driver - AVR8">
92 <device-support-alias value="lufa_avr8"/> 92 <device-support-alias value="lufa_avr8"/>
93 93
94 <build type="doxygen-entry-point" value="Group_SerialSPI"/> 94 <build type="doxygen-entry-point" value="Group_SerialSPI"/>
95 95
96 <require idref="lufa.common"/> 96 <require idref="lufa.common"/>
97 97
98 <build type="header-file" value="Drivers/Peripheral/AVR8/SerialSPI_AVR8.h"/> 98 <build type="header-file" value="Drivers/Peripheral/AVR8/SerialSPI_AVR8.h"/>
99 <build type="include-path" value=".."/> 99 <build type="include-path" value=".."/>
100 <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> 100 <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/>
101 </module> 101 </module>
102 102
103 <module type="driver" id="lufa.drivers.peripheral.usart_spi#xmega" caption="LUFA USART SPI Driver - XMEGA"> 103 <module type="driver" id="lufa.drivers.peripheral.usart_spi#xmega" caption="LUFA USART SPI Driver - XMEGA">
104 <device-support-alias value="lufa_xmega"/> 104 <device-support-alias value="lufa_xmega"/>
105 105
106 <build type="doxygen-entry-point" value="Group_SerialSPI"/> 106 <build type="doxygen-entry-point" value="Group_SerialSPI"/>
107 107
108 <require idref="lufa.common"/> 108 <require idref="lufa.common"/>
109 109
110 <build type="header-file" value="Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h"/> 110 <build type="header-file" value="Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h"/>
111 <build type="include-path" value=".."/> 111 <build type="include-path" value=".."/>
112 <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> 112 <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/>
113 </module> 113 </module>
114 114
115 <module type="driver" id="lufa.drivers.peripheral.usart_spi#uc3" caption="LUFA USART SPI Driver - UC3"> 115 <module type="driver" id="lufa.drivers.peripheral.usart_spi#uc3" caption="LUFA USART SPI Driver - UC3">
116 <device-support-alias value="lufa_uc3"/> 116 <device-support-alias value="lufa_uc3"/>
117 117
118 <build type="doxygen-entry-point" value="Group_SerialSPI"/> 118 <build type="doxygen-entry-point" value="Group_SerialSPI"/>
119 119
120 <require idref="lufa.common"/> 120 <require idref="lufa.common"/>
121 121
122 <info type="gui-flag" value="hidden"/> 122 <info type="gui-flag" value="hidden"/>
123 </module> 123 </module>
124 </select-by-device> 124 </select-by-device>
125 125
126 <select-by-device id="lufa.drivers.peripheral.twi" caption="LUFA TWI Master Driver"> 126 <select-by-device id="lufa.drivers.peripheral.twi" caption="LUFA TWI Master Driver">
127 <module type="driver" id="lufa.drivers.peripheral.twi#avr8" caption="LUFA TWI Master Driver - AVR8"> 127 <module type="driver" id="lufa.drivers.peripheral.twi#avr8" caption="LUFA TWI Master Driver - AVR8">
128 <device-support-alias value="lufa_avr8"/> 128 <device-support-alias value="lufa_avr8"/>
129 129
130 <build type="doxygen-entry-point" value="Group_TWI"/> 130 <build type="doxygen-entry-point" value="Group_TWI"/>
131 131
132 <require idref="lufa.common"/> 132 <require idref="lufa.common"/>
133 133
134 <build type="c-source" value="Drivers/Peripheral/AVR8/TWI_AVR8.c"/> 134 <build type="c-source" value="Drivers/Peripheral/AVR8/TWI_AVR8.c"/>
135 <build type="header-file" value="Drivers/Peripheral/AVR8/TWI_AVR8.h"/> 135 <build type="header-file" value="Drivers/Peripheral/AVR8/TWI_AVR8.h"/>
136 <build type="include-path" value=".."/> 136 <build type="include-path" value=".."/>
137 <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> 137 <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/>
138 </module> 138 </module>
139 139
140 <module type="driver" id="lufa.drivers.peripheral.twi#xmega" caption="LUFA TWI Master Driver - XMEGA"> 140 <module type="driver" id="lufa.drivers.peripheral.twi#xmega" caption="LUFA TWI Master Driver - XMEGA">
141 <device-support-alias value="lufa_xmega"/> 141 <device-support-alias value="lufa_xmega"/>
142 142
143 <build type="doxygen-entry-point" value="Group_TWI"/> 143 <build type="doxygen-entry-point" value="Group_TWI"/>
144 144
145 <require idref="lufa.common"/> 145 <require idref="lufa.common"/>
146 146
147 <build type="c-source" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.c"/> 147 <build type="c-source" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.c"/>
148 <build type="header-file" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.h"/> 148 <build type="header-file" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.h"/>
149 <build type="include-path" value=".."/> 149 <build type="include-path" value=".."/>
150 <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> 150 <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/>
151 </module> 151 </module>
152 152
153 <module type="driver" id="lufa.drivers.peripheral.twi#uc3" caption="LUFA TWI Master Driver - UC3"> 153 <module type="driver" id="lufa.drivers.peripheral.twi#uc3" caption="LUFA TWI Master Driver - UC3">
154 <device-support-alias value="lufa_uc3"/> 154 <device-support-alias value="lufa_uc3"/>
155 155
156 <build type="doxygen-entry-point" value="Group_TWI"/> 156 <build type="doxygen-entry-point" value="Group_TWI"/>
157 157
158 <require idref="lufa.common"/> 158 <require idref="lufa.common"/>
159 159
160 <info type="gui-flag" value="hidden"/> 160 <info type="gui-flag" value="hidden"/>
161 </module> 161 </module>
162 </select-by-device> 162 </select-by-device>
163 163
164 <select-by-device id="lufa.drivers.peripheral.adc" caption="LUFA ADC Driver"> 164 <select-by-device id="lufa.drivers.peripheral.adc" caption="LUFA ADC Driver">
165 <module type="driver" id="lufa.drivers.peripheral.adc#avr8" caption="LUFA ADC Driver - AVR8"> 165 <module type="driver" id="lufa.drivers.peripheral.adc#avr8" caption="LUFA ADC Driver - AVR8">
166 <device-support-alias value="lufa_avr8"/> 166 <device-support-alias value="lufa_avr8"/>
167 167
168 <build type="doxygen-entry-point" value="Group_ADC"/> 168 <build type="doxygen-entry-point" value="Group_ADC"/>
169 169
170 <require idref="lufa.common"/> 170 <require idref="lufa.common"/>
171 171
172 <build type="header-file" value="Drivers/Peripheral/AVR8/ADC_AVR8.h"/> 172 <build type="header-file" value="Drivers/Peripheral/AVR8/ADC_AVR8.h"/>
173 <build type="include-path" value=".."/> 173 <build type="include-path" value=".."/>
174 <build type="header-file" subtype="api" value="Drivers/Peripheral/ADC.h"/> 174 <build type="header-file" subtype="api" value="Drivers/Peripheral/ADC.h"/>
175 </module> 175 </module>
176 176
177 <module type="driver" id="lufa.drivers.peripheral.adc#xmega" caption="LUFA ADC Driver - XMEGA"> 177 <module type="driver" id="lufa.drivers.peripheral.adc#xmega" caption="LUFA ADC Driver - XMEGA">
178 <device-support-alias value="lufa_xmega"/> 178 <device-support-alias value="lufa_xmega"/>
179 179
180 <build type="doxygen-entry-point" value="Group_ADC"/> 180 <build type="doxygen-entry-point" value="Group_ADC"/>
181 181
182 <require idref="lufa.common"/> 182 <require idref="lufa.common"/>
183 183
184 <info type="gui-flag" value="hidden"/> 184 <info type="gui-flag" value="hidden"/>
185 </module> 185 </module>
186 186
187 <module type="driver" id="lufa.drivers.peripheral.adc#uc3" caption="LUFA ADC Driver - UC3"> 187 <module type="driver" id="lufa.drivers.peripheral.adc#uc3" caption="LUFA ADC Driver - UC3">
188 <device-support-alias value="lufa_uc3"/> 188 <device-support-alias value="lufa_uc3"/>
189 189
190 <build type="doxygen-entry-point" value="Group_ADC"/> 190 <build type="doxygen-entry-point" value="Group_ADC"/>
191 191
192 <require idref="lufa.common"/> 192 <require idref="lufa.common"/>
193 193
194 <info type="gui-flag" value="hidden"/> 194 <info type="gui-flag" value="hidden"/>
195 </module> 195 </module>
196 </select-by-device> 196 </select-by-device>
197 </asf> 197 </asf>
198</lufa> 198</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml
index 7ff4b3949..263c411df 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb.xml
@@ -1,32 +1,32 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="driver" id="lufa.drivers.usb" caption="LUFA USB Driver"> 13 <module type="driver" id="lufa.drivers.usb" caption="LUFA USB Driver">
14 <device-support-alias value="lufa_avr8"/> 14 <device-support-alias value="lufa_avr8"/>
15 <device-support-alias value="lufa_xmega"/> 15 <device-support-alias value="lufa_xmega"/>
16 <device-support-alias value="lufa_uc3"/> 16 <device-support-alias value="lufa_uc3"/>
17 17
18 <build type="doxygen-entry-point" value="Group_USB"/> 18 <build type="doxygen-entry-point" value="Group_USB"/>
19 19
20 <build type="define" name="USE_LUFA_CONFIG_HEADER" value=""/> 20 <build type="define" name="USE_LUFA_CONFIG_HEADER" value=""/>
21 <build type="module-config" subtype="path" value="CodeTemplates"/> 21 <build type="module-config" subtype="path" value="CodeTemplates"/>
22 <build type="module-config" subtype="required-header-file" value="LUFAConfig.h"/> 22 <build type="module-config" subtype="required-header-file" value="LUFAConfig.h"/>
23 23
24 <build type="include-path" value=".."/> 24 <build type="include-path" value=".."/>
25 <build type="header-file" subtype="api" value="Drivers/USB/USB.h"/> 25 <build type="header-file" subtype="api" value="Drivers/USB/USB.h"/>
26 26
27 <require idref="lufa.common"/> 27 <require idref="lufa.common"/>
28 <require idref="lufa.drivers.usb.class"/> 28 <require idref="lufa.drivers.usb.class"/>
29 <require idref="lufa.drivers.usb.core"/> 29 <require idref="lufa.drivers.usb.core"/>
30 </module> 30 </module>
31 </asf> 31 </asf>
32</lufa> \ No newline at end of file 32</lufa> \ No newline at end of file
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml
index cd18bf10e..67ab760d3 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_class.xml
@@ -1,32 +1,32 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="service" id="lufa.drivers.usb.class" caption="LUFA USB Class Drivers"> 13 <module type="service" id="lufa.drivers.usb.class" caption="LUFA USB Class Drivers">
14 <device-support-alias value="lufa_avr8"/> 14 <device-support-alias value="lufa_avr8"/>
15 <device-support-alias value="lufa_xmega"/> 15 <device-support-alias value="lufa_xmega"/>
16 <device-support-alias value="lufa_uc3"/> 16 <device-support-alias value="lufa_uc3"/>
17 17
18 <info type="gui-flag" value="hidden"/> 18 <info type="gui-flag" value="hidden"/>
19 <build type="doxygen-entry-point" value="Group_USBClassDrivers"/> 19 <build type="doxygen-entry-point" value="Group_USBClassDrivers"/>
20 20
21 <require idref="lufa.drivers.usb.class.android"/> 21 <require idref="lufa.drivers.usb.class.android"/>
22 <require idref="lufa.drivers.usb.class.audio"/> 22 <require idref="lufa.drivers.usb.class.audio"/>
23 <require idref="lufa.drivers.usb.class.cdc"/> 23 <require idref="lufa.drivers.usb.class.cdc"/>
24 <require idref="lufa.drivers.usb.class.hid"/> 24 <require idref="lufa.drivers.usb.class.hid"/>
25 <require idref="lufa.drivers.usb.class.ms"/> 25 <require idref="lufa.drivers.usb.class.ms"/>
26 <require idref="lufa.drivers.usb.class.midi"/> 26 <require idref="lufa.drivers.usb.class.midi"/>
27 <require idref="lufa.drivers.usb.class.printer"/> 27 <require idref="lufa.drivers.usb.class.printer"/>
28 <require idref="lufa.drivers.usb.class.rndis"/> 28 <require idref="lufa.drivers.usb.class.rndis"/>
29 <require idref="lufa.drivers.usb.class.si"/> 29 <require idref="lufa.drivers.usb.class.si"/>
30 </module> 30 </module>
31 </asf> 31 </asf>
32</lufa> 32</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml
index 58f8917ef..58a0b388f 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core.xml
@@ -1,85 +1,85 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="driver" id="lufa.drivers.usb.core.common" caption="LUFA USB Core Driver - Common"> 13 <module type="driver" id="lufa.drivers.usb.core.common" caption="LUFA USB Core Driver - Common">
14 <device-support-alias value="lufa_avr8"/> 14 <device-support-alias value="lufa_avr8"/>
15 <device-support-alias value="lufa_xmega"/> 15 <device-support-alias value="lufa_xmega"/>
16 <device-support-alias value="lufa_uc3"/> 16 <device-support-alias value="lufa_uc3"/>
17 17
18 <build type="doxygen-entry-point" value="Group_USBManagement"/> 18 <build type="doxygen-entry-point" value="Group_USBManagement"/>
19 19
20 <info type="gui-flag" value="hidden"/> 20 <info type="gui-flag" value="hidden"/>
21 21
22 <build type="header-file" value="Drivers/USB/Core/Device.h"/> 22 <build type="header-file" value="Drivers/USB/Core/Device.h"/>
23 <build type="header-file" value="Drivers/USB/Core/Endpoint.h"/> 23 <build type="header-file" value="Drivers/USB/Core/Endpoint.h"/>
24 <build type="header-file" value="Drivers/USB/Core/Host.h"/> 24 <build type="header-file" value="Drivers/USB/Core/Host.h"/>
25 <build type="header-file" value="Drivers/USB/Core/Pipe.h"/> 25 <build type="header-file" value="Drivers/USB/Core/Pipe.h"/>
26 <build type="header-file" value="Drivers/USB/Core/OTG.h"/> 26 <build type="header-file" value="Drivers/USB/Core/OTG.h"/>
27 <build type="header-file" value="Drivers/USB/Core/USBController.h"/> 27 <build type="header-file" value="Drivers/USB/Core/USBController.h"/>
28 <build type="header-file" value="Drivers/USB/Core/USBInterrupt.h"/> 28 <build type="header-file" value="Drivers/USB/Core/USBInterrupt.h"/>
29 <build type="header-file" value="Drivers/USB/Core/EndpointStream.h"/> 29 <build type="header-file" value="Drivers/USB/Core/EndpointStream.h"/>
30 <build type="header-file" value="Drivers/USB/Core/PipeStream.h"/> 30 <build type="header-file" value="Drivers/USB/Core/PipeStream.h"/>
31 <build type="c-source" value="Drivers/USB/Core/ConfigDescriptors.c"/> 31 <build type="c-source" value="Drivers/USB/Core/ConfigDescriptors.c"/>
32 <build type="header-file" value="Drivers/USB/Core/ConfigDescriptors.h"/> 32 <build type="header-file" value="Drivers/USB/Core/ConfigDescriptors.h"/>
33 <build type="c-source" value="Drivers/USB/Core/DeviceStandardReq.c"/> 33 <build type="c-source" value="Drivers/USB/Core/DeviceStandardReq.c"/>
34 <build type="header-file" value="Drivers/USB/Core/DeviceStandardReq.h"/> 34 <build type="header-file" value="Drivers/USB/Core/DeviceStandardReq.h"/>
35 <build type="c-source" value="Drivers/USB/Core/Events.c"/> 35 <build type="c-source" value="Drivers/USB/Core/Events.c"/>
36 <build type="header-file" value="Drivers/USB/Core/Events.h"/> 36 <build type="header-file" value="Drivers/USB/Core/Events.h"/>
37 <build type="c-source" value="Drivers/USB/Core/HostStandardReq.c"/> 37 <build type="c-source" value="Drivers/USB/Core/HostStandardReq.c"/>
38 <build type="header-file" value="Drivers/USB/Core/HostStandardReq.h"/> 38 <build type="header-file" value="Drivers/USB/Core/HostStandardReq.h"/>
39 <build type="c-source" value="Drivers/USB/Core/USBTask.c"/> 39 <build type="c-source" value="Drivers/USB/Core/USBTask.c"/>
40 <build type="header-file" value="Drivers/USB/Core/USBTask.h"/> 40 <build type="header-file" value="Drivers/USB/Core/USBTask.h"/>
41 <build type="header-file" value="Drivers/USB/Core/USBMode.h"/> 41 <build type="header-file" value="Drivers/USB/Core/USBMode.h"/>
42 <build type="header-file" value="Drivers/USB/Core/StdDescriptors.h"/> 42 <build type="header-file" value="Drivers/USB/Core/StdDescriptors.h"/>
43 <build type="header-file" value="Drivers/USB/Core/StdRequestType.h"/> 43 <build type="header-file" value="Drivers/USB/Core/StdRequestType.h"/>
44 44
45 <build type="c-source" value="Drivers/USB/Class/Common/HIDParser.c"/> 45 <build type="c-source" value="Drivers/USB/Class/Common/HIDParser.c"/>
46 <build type="header-file" value="Drivers/USB/Class/Common/HIDParser.h"/> 46 <build type="header-file" value="Drivers/USB/Class/Common/HIDParser.h"/>
47 <build type="header-file" value="Drivers/USB/Class/Common/HIDReportData.h"/> 47 <build type="header-file" value="Drivers/USB/Class/Common/HIDReportData.h"/>
48 </module> 48 </module>
49 49
50 <select-by-device id="lufa.drivers.usb.core" caption="LUFA USB Core Driver"> 50 <select-by-device id="lufa.drivers.usb.core" caption="LUFA USB Core Driver">
51 <module type="driver" id="lufa.drivers.usb.core#avr8" caption="LUFA USB Core Driver - AVR8"> 51 <module type="driver" id="lufa.drivers.usb.core#avr8" caption="LUFA USB Core Driver - AVR8">
52 <device-support-alias value="lufa_avr8"/> 52 <device-support-alias value="lufa_avr8"/>
53 53
54 <info type="gui-flag" value="hidden"/> 54 <info type="gui-flag" value="hidden"/>
55 55
56 <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> 56 <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/>
57 57
58 <require idref="lufa.drivers.usb.core.common"/> 58 <require idref="lufa.drivers.usb.core.common"/>
59 <require idref="lufa.drivers.usb.core.avr8"/> 59 <require idref="lufa.drivers.usb.core.avr8"/>
60 </module> 60 </module>
61 61
62 <module type="driver" id="lufa.drivers.usb.core#xmega" caption="LUFA USB Core Driver - XMEGA"> 62 <module type="driver" id="lufa.drivers.usb.core#xmega" caption="LUFA USB Core Driver - XMEGA">
63 <device-support-alias value="lufa_xmega"/> 63 <device-support-alias value="lufa_xmega"/>
64 64
65 <info type="gui-flag" value="hidden"/> 65 <info type="gui-flag" value="hidden"/>
66 66
67 <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> 67 <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/>
68 68
69 <require idref="lufa.drivers.usb.core.common"/> 69 <require idref="lufa.drivers.usb.core.common"/>
70 <require idref="lufa.drivers.usb.core.xmega"/> 70 <require idref="lufa.drivers.usb.core.xmega"/>
71 </module> 71 </module>
72 72
73 <module type="driver" id="lufa.drivers.usb.core#uc3" caption="LUFA USB Core Driver - UC3"> 73 <module type="driver" id="lufa.drivers.usb.core#uc3" caption="LUFA USB Core Driver - UC3">
74 <device-support-alias value="lufa_uc3"/> 74 <device-support-alias value="lufa_uc3"/>
75 75
76 <info type="gui-flag" value="hidden"/> 76 <info type="gui-flag" value="hidden"/>
77 77
78 <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> 78 <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/>
79 79
80 <require idref="lufa.drivers.usb.core.common"/> 80 <require idref="lufa.drivers.usb.core.common"/>
81 <require idref="lufa.drivers.usb.core.uc3"/> 81 <require idref="lufa.drivers.usb.core.uc3"/>
82 </module> 82 </module>
83 </select-by-device> 83 </select-by-device>
84 </asf> 84 </asf>
85</lufa> 85</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml
index 166b9257a..4688f05f9 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml
@@ -1,43 +1,43 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="driver" id="lufa.drivers.usb.core.avr8" caption="LUFA USB Core Driver for AVR8"> 13 <module type="driver" id="lufa.drivers.usb.core.avr8" caption="LUFA USB Core Driver for AVR8">
14 <device-support-alias value="lufa_avr8"/> 14 <device-support-alias value="lufa_avr8"/>
15 15
16 <info type="gui-flag" value="hidden"/> 16 <info type="gui-flag" value="hidden"/>
17 17
18 <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> 18 <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/>
19 19
20 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c"/> 20 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c"/>
21 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c"/> 21 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c"/>
22 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c"/> 22 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c"/>
23 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c"/> 23 <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c"/>
24 <build type="c-source" value="Drivers/USB/Core/AVR8/Device_AVR8.c"/> 24 <build type="c-source" value="Drivers/USB/Core/AVR8/Device_AVR8.c"/>
25 <build type="header-file" value="Drivers/USB/Core/AVR8/Device_AVR8.h"/> 25 <build type="header-file" value="Drivers/USB/Core/AVR8/Device_AVR8.h"/>
26 <build type="c-source" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.c"/> 26 <build type="c-source" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.c"/>
27 <build type="header-file" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.h"/> 27 <build type="header-file" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.h"/>
28 <build type="c-source" value="Drivers/USB/Core/AVR8/Host_AVR8.c"/> 28 <build type="c-source" value="Drivers/USB/Core/AVR8/Host_AVR8.c"/>
29 <build type="header-file" value="Drivers/USB/Core/AVR8/Host_AVR8.h"/> 29 <build type="header-file" value="Drivers/USB/Core/AVR8/Host_AVR8.h"/>
30 <build type="c-source" value="Drivers/USB/Core/AVR8/Pipe_AVR8.c"/> 30 <build type="c-source" value="Drivers/USB/Core/AVR8/Pipe_AVR8.c"/>
31 <build type="header-file" value="Drivers/USB/Core/AVR8/Pipe_AVR8.h"/> 31 <build type="header-file" value="Drivers/USB/Core/AVR8/Pipe_AVR8.h"/>
32 <build type="header-file" value="Drivers/USB/Core/AVR8/OTG_AVR8.h"/> 32 <build type="header-file" value="Drivers/USB/Core/AVR8/OTG_AVR8.h"/>
33 <build type="c-source" value="Drivers/USB/Core/AVR8/USBController_AVR8.c"/> 33 <build type="c-source" value="Drivers/USB/Core/AVR8/USBController_AVR8.c"/>
34 <build type="header-file" value="Drivers/USB/Core/AVR8/USBController_AVR8.h"/> 34 <build type="header-file" value="Drivers/USB/Core/AVR8/USBController_AVR8.h"/>
35 <build type="c-source" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c"/> 35 <build type="c-source" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c"/>
36 <build type="header-file" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h"/> 36 <build type="header-file" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h"/>
37 <build type="c-source" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.c"/> 37 <build type="c-source" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.c"/>
38 <build type="header-file" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.h"/> 38 <build type="header-file" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.h"/>
39 <build type="c-source" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.c"/> 39 <build type="c-source" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.c"/>
40 <build type="header-file" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.h"/> 40 <build type="header-file" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.h"/>
41 </module> 41 </module>
42 </asf> 42 </asf>
43</lufa> 43</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml
index 7e0540cda..2e7185f24 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml
@@ -1,42 +1,42 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="driver" id="lufa.drivers.usb.core.uc3" caption="LUFA USB Core Driver for UC3"> 13 <module type="driver" id="lufa.drivers.usb.core.uc3" caption="LUFA USB Core Driver for UC3">
14 <device-support-alias value="lufa_uc3"/> 14 <device-support-alias value="lufa_uc3"/>
15 15
16 <info type="gui-flag" value="hidden"/> 16 <info type="gui-flag" value="hidden"/>
17 17
18 <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> 18 <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/>
19 19
20 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c"/> 20 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c"/>
21 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c"/> 21 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c"/>
22 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c"/> 22 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c"/>
23 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c"/> 23 <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c"/>
24 <build type="c-source" value="Drivers/USB/Core/UC3/Device_UC3.c"/> 24 <build type="c-source" value="Drivers/USB/Core/UC3/Device_UC3.c"/>
25 <build type="header-file" value="Drivers/USB/Core/UC3/Device_UC3.h"/> 25 <build type="header-file" value="Drivers/USB/Core/UC3/Device_UC3.h"/>
26 <build type="c-source" value="Drivers/USB/Core/UC3/Endpoint_UC3.c"/> 26 <build type="c-source" value="Drivers/USB/Core/UC3/Endpoint_UC3.c"/>
27 <build type="header-file" value="Drivers/USB/Core/UC3/Endpoint_UC3.h"/> 27 <build type="header-file" value="Drivers/USB/Core/UC3/Endpoint_UC3.h"/>
28 <build type="c-source" value="Drivers/USB/Core/UC3/Host_UC3.c"/> 28 <build type="c-source" value="Drivers/USB/Core/UC3/Host_UC3.c"/>
29 <build type="header-file" value="Drivers/USB/Core/UC3/Host_UC3.h"/> 29 <build type="header-file" value="Drivers/USB/Core/UC3/Host_UC3.h"/>
30 <build type="c-source" value="Drivers/USB/Core/UC3/Pipe_UC3.c"/> 30 <build type="c-source" value="Drivers/USB/Core/UC3/Pipe_UC3.c"/>
31 <build type="header-file" value="Drivers/USB/Core/UC3/Pipe_UC3.h"/> 31 <build type="header-file" value="Drivers/USB/Core/UC3/Pipe_UC3.h"/>
32 <build type="c-source" value="Drivers/USB/Core/UC3/USBController_UC3.c"/> 32 <build type="c-source" value="Drivers/USB/Core/UC3/USBController_UC3.c"/>
33 <build type="header-file" value="Drivers/USB/Core/UC3/USBController_UC3.h"/> 33 <build type="header-file" value="Drivers/USB/Core/UC3/USBController_UC3.h"/>
34 <build type="c-source" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.c"/> 34 <build type="c-source" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.c"/>
35 <build type="header-file" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.h"/> 35 <build type="header-file" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.h"/>
36 <build type="c-source" value="Drivers/USB/Core/UC3/EndpointStream_UC3.c"/> 36 <build type="c-source" value="Drivers/USB/Core/UC3/EndpointStream_UC3.c"/>
37 <build type="header-file" value="Drivers/USB/Core/UC3/EndpointStream_UC3.h"/> 37 <build type="header-file" value="Drivers/USB/Core/UC3/EndpointStream_UC3.h"/>
38 <build type="c-source" value="Drivers/USB/Core/UC3/PipeStream_UC3.c"/> 38 <build type="c-source" value="Drivers/USB/Core/UC3/PipeStream_UC3.c"/>
39 <build type="header-file" value="Drivers/USB/Core/UC3/PipeStream_UC3.h"/> 39 <build type="header-file" value="Drivers/USB/Core/UC3/PipeStream_UC3.h"/>
40 </module> 40 </module>
41 </asf> 41 </asf>
42</lufa> 42</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml
index 9e9f4f6a1..c79a0f5b5 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml
@@ -1,36 +1,36 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="driver" id="lufa.drivers.usb.core.xmega" caption="LUFA USB Core Driver for XMEGA"> 13 <module type="driver" id="lufa.drivers.usb.core.xmega" caption="LUFA USB Core Driver for XMEGA">
14 <device-support-alias value="lufa_xmega"/> 14 <device-support-alias value="lufa_xmega"/>
15 15
16 <info type="gui-flag" value="hidden"/> 16 <info type="gui-flag" value="hidden"/>
17 17
18 <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> 18 <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/>
19 19
20 <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c"/> 20 <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c"/>
21 <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c"/> 21 <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c"/>
22 <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c"/> 22 <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c"/>
23 <build type="c-source" value="Drivers/USB/Core/XMEGA/Device_XMEGA.c"/> 23 <build type="c-source" value="Drivers/USB/Core/XMEGA/Device_XMEGA.c"/>
24 <build type="header-file" value="Drivers/USB/Core/XMEGA/Device_XMEGA.h"/> 24 <build type="header-file" value="Drivers/USB/Core/XMEGA/Device_XMEGA.h"/>
25 <build type="c-source" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c"/> 25 <build type="c-source" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c"/>
26 <build type="header-file" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h"/> 26 <build type="header-file" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h"/>
27 <build type="c-source" value="Drivers/USB/Core/XMEGA/Pipe_XMEGA.c"/> 27 <build type="c-source" value="Drivers/USB/Core/XMEGA/Pipe_XMEGA.c"/>
28 <build type="c-source" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.c"/> 28 <build type="c-source" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.c"/>
29 <build type="header-file" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.h"/> 29 <build type="header-file" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.h"/>
30 <build type="c-source" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c"/> 30 <build type="c-source" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c"/>
31 <build type="header-file" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h"/> 31 <build type="header-file" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h"/>
32 <build type="c-source" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c"/> 32 <build type="c-source" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c"/>
33 <build type="header-file" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h"/> 33 <build type="header-file" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h"/>
34 </module> 34 </module>
35 </asf> 35 </asf>
36</lufa> 36</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml
index 02c7463ee..4ee51f6ee 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform.xml
@@ -1,60 +1,60 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <select-by-device id="lufa.platform" caption="LUFA Platform Specific Support"> 13 <select-by-device id="lufa.platform" caption="LUFA Platform Specific Support">
14 <module type="service" id="lufa.platform#avr8" caption="LUFA Platform Specific Support - AVR8"> 14 <module type="service" id="lufa.platform#avr8" caption="LUFA Platform Specific Support - AVR8">
15 <device-support-alias value="lufa_avr8"/> 15 <device-support-alias value="lufa_avr8"/>
16 16
17 <build type="define" name="ARCH" value="ARCH_AVR8"/> 17 <build type="define" name="ARCH" value="ARCH_AVR8"/>
18 18
19 <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> 19 <build type="doxygen-entry-point" value="Group_PlatformDrivers"/>
20 20
21 <build type="include-path" value=".."/> 21 <build type="include-path" value=".."/>
22 <build type="header-file" subtype="api" value="Platform/Platform.h"/> 22 <build type="header-file" subtype="api" value="Platform/Platform.h"/>
23 23
24 <require idref="lufa.common"/> 24 <require idref="lufa.common"/>
25 </module> 25 </module>
26 26
27 <module type="service" id="lufa.platform#xmega" caption="LUFA Platform Specific Support - XMEGA"> 27 <module type="service" id="lufa.platform#xmega" caption="LUFA Platform Specific Support - XMEGA">
28 <device-support-alias value="lufa_xmega"/> 28 <device-support-alias value="lufa_xmega"/>
29 29
30 <build type="define" name="ARCH" value="ARCH_XMEGA"/> 30 <build type="define" name="ARCH" value="ARCH_XMEGA"/>
31 31
32 <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> 32 <build type="doxygen-entry-point" value="Group_PlatformDrivers"/>
33 33
34 <build type="include-path" value=".."/> 34 <build type="include-path" value=".."/>
35 <build type="header-file" subtype="api" value="Platform/Platform.h"/> 35 <build type="header-file" subtype="api" value="Platform/Platform.h"/>
36 36
37 <build type="distribute" value="Platform/XMEGA/XMEGAExperimentalInfo.txt" subtype="license"/> 37 <build type="distribute" value="Platform/XMEGA/XMEGAExperimentalInfo.txt" subtype="license"/>
38 38
39 <require idref="lufa.platform.xmega"/> 39 <require idref="lufa.platform.xmega"/>
40 <require idref="lufa.common"/> 40 <require idref="lufa.common"/>
41 </module> 41 </module>
42 42
43 <module type="service" id="lufa.platform#uc3" caption="LUFA Platform Specific Support - UC3"> 43 <module type="service" id="lufa.platform#uc3" caption="LUFA Platform Specific Support - UC3">
44 <device-support-alias value="lufa_uc3"/> 44 <device-support-alias value="lufa_uc3"/>
45 45
46 <build type="define" name="ARCH" value="ARCH_UC3"/> 46 <build type="define" name="ARCH" value="ARCH_UC3"/>
47 47
48 <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> 48 <build type="doxygen-entry-point" value="Group_PlatformDrivers"/>
49 49
50 <build type="include-path" value=".."/> 50 <build type="include-path" value=".."/>
51 <build type="header-file" subtype="api" value="Platform/Platform.h"/> 51 <build type="header-file" subtype="api" value="Platform/Platform.h"/>
52 52
53 <build type="distribute" value="Platform/UC3/UC3ExperimentalInfo.txt" subtype="license"/> 53 <build type="distribute" value="Platform/UC3/UC3ExperimentalInfo.txt" subtype="license"/>
54 54
55 <require idref="lufa.platform.uc3"/> 55 <require idref="lufa.platform.uc3"/>
56 <require idref="lufa.common"/> 56 <require idref="lufa.common"/>
57 </module> 57 </module>
58 </select-by-device> 58 </select-by-device>
59 </asf> 59 </asf>
60</lufa> 60</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml
index a488c4b83..98017b08a 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_uc3.xml
@@ -1,26 +1,26 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <module type="driver" id="lufa.platform.uc3" caption="LUFA UC3 Platform Drivers"> 13 <module type="driver" id="lufa.platform.uc3" caption="LUFA UC3 Platform Drivers">
14 <device-support-alias value="lufa_uc3"/> 14 <device-support-alias value="lufa_uc3"/>
15 15
16 <info type="gui-flag" value="hidden"/> 16 <info type="gui-flag" value="hidden"/>
17 17
18 <build type="doxygen-entry-point" value="Group_PlatformDrivers_UC3"/> 18 <build type="doxygen-entry-point" value="Group_PlatformDrivers_UC3"/>
19 19
20 <build type="header-file" value="Platform/UC3/ClockManagement.h"/> 20 <build type="header-file" value="Platform/UC3/ClockManagement.h"/>
21 <build type="header-file" value="Platform/UC3/InterruptManagement.h"/> 21 <build type="header-file" value="Platform/UC3/InterruptManagement.h"/>
22 <build type="c-source" value="Platform/UC3/InterruptManagement.c"/> 22 <build type="c-source" value="Platform/UC3/InterruptManagement.c"/>
23 <build type="asm-source" value="Platform/UC3/Exception.S"/> 23 <build type="asm-source" value="Platform/UC3/Exception.S"/>
24 </module> 24 </module>
25 </asf> 25 </asf>
26</lufa> 26</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml
index 1674a77b0..e613fe520 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_platform_xmega.xml
@@ -1,23 +1,23 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf xmlversion="1.0"> 12 <asf xmlversion="1.0">
13 <module type="driver" id="lufa.platform.xmega" caption="LUFA XMEGA Platform Drivers"> 13 <module type="driver" id="lufa.platform.xmega" caption="LUFA XMEGA Platform Drivers">
14 <device-support-alias value="lufa_xmega"/> 14 <device-support-alias value="lufa_xmega"/>
15 15
16 <info type="gui-flag" value="hidden"/> 16 <info type="gui-flag" value="hidden"/>
17 17
18 <build type="doxygen-entry-point" value="Group_PlatformDrivers_XMEGA"/> 18 <build type="doxygen-entry-point" value="Group_PlatformDrivers_XMEGA"/>
19 19
20 <build type="header-file" value="Platform/XMEGA/ClockManagement.h"/> 20 <build type="header-file" value="Platform/XMEGA/ClockManagement.h"/>
21 </module> 21 </module>
22 </asf> 22 </asf>
23</lufa> 23</lufa>
diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml
index 031c8a2be..a76b6d0d3 100644
--- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml
+++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/lufa_toolchain.xml
@@ -1,43 +1,43 @@
1<!-- 1<!--
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2013. 3 Copyright (C) Dean Camera, 2013.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7--> 7-->
8 8
9<!-- Atmel Studio framework integration file --> 9<!-- Atmel Studio framework integration file -->
10 10
11<lufa> 11<lufa>
12 <asf> 12 <asf>
13 <select-by-device id="common.utils.toolchain_config" caption="Toolchain configuration defaults"> 13 <select-by-device id="common.utils.toolchain_config" caption="Toolchain configuration defaults">
14 <module type="build-specific" id="common.utils.toolchain_config#avr" caption="Toolchain configuration defaults for 8-bit AVR"> 14 <module type="build-specific" id="common.utils.toolchain_config#avr" caption="Toolchain configuration defaults for 8-bit AVR">
15 <info type="gui-flag" value="hidden"/> 15 <info type="gui-flag" value="hidden"/>
16 <device-support value="avr"/> 16 <device-support value="avr"/>
17 17
18 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avrgcc"/> 18 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avrgcc"/>
19 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avrgcc"/> 19 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avrgcc"/>
20 <toolchain-config name="avrgcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avrgcc"/> 20 <toolchain-config name="avrgcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avrgcc"/>
21 <toolchain-config name="avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avrgcc"/> 21 <toolchain-config name="avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avrgcc"/>
22 <toolchain-config name="avrgcc.compiler.warnings.AllWarnings" value="True" toolchain="avrgcc"/> 22 <toolchain-config name="avrgcc.compiler.warnings.AllWarnings" value="True" toolchain="avrgcc"/>
23 <toolchain-config name="avrgcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -fno-jump-tables" toolchain="avrgcc"/> 23 <toolchain-config name="avrgcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -fno-jump-tables" toolchain="avrgcc"/>
24 <toolchain-config name="avrgcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avrgcc"/> 24 <toolchain-config name="avrgcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avrgcc"/>
25 <toolchain-config name="avrgcc.linker.optimization.RelaxBranches" value="True" toolchain="avrgcc"/> 25 <toolchain-config name="avrgcc.linker.optimization.RelaxBranches" value="True" toolchain="avrgcc"/>
26 </module> 26 </module>
27 </select-by-device> 27 </select-by-device>
28 28
29 <module type="build-specific" id="common.utils.toolchain_config#uc3" caption="Toolchain configuration defaults for 32-bit AVR"> 29 <module type="build-specific" id="common.utils.toolchain_config#uc3" caption="Toolchain configuration defaults for 32-bit AVR">
30 <info type="gui-flag" value="hidden"/> 30 <info type="gui-flag" value="hidden"/>
31 <device-support value="uc3"/> 31 <device-support value="uc3"/>
32 32
33 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avr32gcc"/> 33 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avr32gcc"/>
34 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avr32gcc"/> 34 <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avr32gcc"/>
35 <toolchain-config name="avr32gcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avr32gcc"/> 35 <toolchain-config name="avr32gcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avr32gcc"/>
36 <toolchain-config name="avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avr32gcc"/> 36 <toolchain-config name="avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avr32gcc"/>
37 <toolchain-config name="avr32gcc.compiler.warnings.AllWarnings" value="True" toolchain="avr32gcc"/> 37 <toolchain-config name="avr32gcc.compiler.warnings.AllWarnings" value="True" toolchain="avr32gcc"/>
38 <toolchain-config name="avr32gcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -mno-cond-exec-before-reload" toolchain="avr32gcc"/> 38 <toolchain-config name="avr32gcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -mno-cond-exec-before-reload" toolchain="avr32gcc"/>
39 <toolchain-config name="avr32gcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avr32gcc"/> 39 <toolchain-config name="avr32gcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avr32gcc"/>
40 <toolchain-config name="avr32gcc.linker.optimization.RelaxBranches" value="True" toolchain="avr32gcc"/> 40 <toolchain-config name="avr32gcc.linker.optimization.RelaxBranches" value="True" toolchain="avr32gcc"/>
41 </module> 41 </module>
42 </asf> 42 </asf>
43</lufa> 43</lufa>
diff --git a/tmk_core/protocol/midi/Config/LUFAConfig.h b/tmk_core/protocol/midi/Config/LUFAConfig.h
index fa9404498..a1d748267 100755
--- a/tmk_core/protocol/midi/Config/LUFAConfig.h
+++ b/tmk_core/protocol/midi/Config/LUFAConfig.h
@@ -1,93 +1,93 @@
1/* 1/*
2 LUFA Library 2 LUFA Library
3 Copyright (C) Dean Camera, 2012. 3 Copyright (C) Dean Camera, 2012.
4 4
5 dean [at] fourwalledcubicle [dot] com 5 dean [at] fourwalledcubicle [dot] com
6 www.lufa-lib.org 6 www.lufa-lib.org
7*/ 7*/
8 8
9/* 9/*
10 Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) 10 Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
11 11
12 Permission to use, copy, modify, distribute, and sell this 12 Permission to use, copy, modify, distribute, and sell this
13 software and its documentation for any purpose is hereby granted 13 software and its documentation for any purpose is hereby granted
14 without fee, provided that the above copyright notice appear in 14 without fee, provided that the above copyright notice appear in
15 all copies and that both that the copyright notice and this 15 all copies and that both that the copyright notice and this
16 permission notice and warranty disclaimer appear in supporting 16 permission notice and warranty disclaimer appear in supporting
17 documentation, and that the name of the author not be used in 17 documentation, and that the name of the author not be used in
18 advertising or publicity pertaining to distribution of the 18 advertising or publicity pertaining to distribution of the
19 software without specific, written prior permission. 19 software without specific, written prior permission.
20 20
21 The author disclaim all warranties with regard to this 21 The author disclaim all warranties with regard to this
22 software, including all implied warranties of merchantability 22 software, including all implied warranties of merchantability
23 and fitness. In no event shall the author be liable for any 23 and fitness. In no event shall the author be liable for any
24 special, indirect or consequential damages or any damages 24 special, indirect or consequential damages or any damages
25 whatsoever resulting from loss of use, data or profits, whether 25 whatsoever resulting from loss of use, data or profits, whether
26 in an action of contract, negligence or other tortious action, 26 in an action of contract, negligence or other tortious action,
27 arising out of or in connection with the use or performance of 27 arising out of or in connection with the use or performance of
28 this software. 28 this software.
29*/ 29*/
30 30
31/** \file 31/** \file
32 * \brief LUFA Library Configuration Header File 32 * \brief LUFA Library Configuration Header File
33 * 33 *
34 * This header file is used to configure LUFA's compile time options, 34 * This header file is used to configure LUFA's compile time options,
35 * as an alternative to the compile time constants supplied through 35 * as an alternative to the compile time constants supplied through
36 * a makefile. 36 * a makefile.
37 * 37 *
38 * For information on what each token does, refer to the LUFA 38 * For information on what each token does, refer to the LUFA
39 * manual section "Summary of Compile Tokens". 39 * manual section "Summary of Compile Tokens".
40 */ 40 */
41 41
42#ifndef _LUFA_CONFIG_H_ 42#ifndef _LUFA_CONFIG_H_
43#define _LUFA_CONFIG_H_ 43#define _LUFA_CONFIG_H_
44 44
45 #if (ARCH == ARCH_AVR8) 45 #if (ARCH == ARCH_AVR8)
46 46
47 /* Non-USB Related Configuration Tokens: */ 47 /* Non-USB Related Configuration Tokens: */
48// #define DISABLE_TERMINAL_CODES 48// #define DISABLE_TERMINAL_CODES
49 49
50 /* USB Class Driver Related Tokens: */ 50 /* USB Class Driver Related Tokens: */
51// #define HID_HOST_BOOT_PROTOCOL_ONLY 51// #define HID_HOST_BOOT_PROTOCOL_ONLY
52// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} 52// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here}
53// #define HID_USAGE_STACK_DEPTH {Insert Value Here} 53// #define HID_USAGE_STACK_DEPTH {Insert Value Here}
54// #define HID_MAX_COLLECTIONS {Insert Value Here} 54// #define HID_MAX_COLLECTIONS {Insert Value Here}
55// #define HID_MAX_REPORTITEMS {Insert Value Here} 55// #define HID_MAX_REPORTITEMS {Insert Value Here}
56// #define HID_MAX_REPORT_IDS {Insert Value Here} 56// #define HID_MAX_REPORT_IDS {Insert Value Here}
57// #define NO_CLASS_DRIVER_AUTOFLUSH 57// #define NO_CLASS_DRIVER_AUTOFLUSH
58 58
59 /* General USB Driver Related Tokens: */ 59 /* General USB Driver Related Tokens: */
60// #define ORDERED_EP_CONFIG 60// #define ORDERED_EP_CONFIG
61 #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL) 61 #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
62 #define USB_DEVICE_ONLY 62 #define USB_DEVICE_ONLY
63// #define USB_HOST_ONLY 63// #define USB_HOST_ONLY
64// #define USB_STREAM_TIMEOUT_MS {Insert Value Here} 64// #define USB_STREAM_TIMEOUT_MS {Insert Value Here}
65// #define NO_LIMITED_CONTROLLER_CONNECT 65// #define NO_LIMITED_CONTROLLER_CONNECT
66// #define NO_SOF_EVENTS 66// #define NO_SOF_EVENTS
67 67
68 /* USB Device Mode Driver Related Tokens: */ 68 /* USB Device Mode Driver Related Tokens: */
69// #define USE_RAM_DESCRIPTORS 69// #define USE_RAM_DESCRIPTORS
70 #define USE_FLASH_DESCRIPTORS 70 #define USE_FLASH_DESCRIPTORS
71// #define USE_EEPROM_DESCRIPTORS 71// #define USE_EEPROM_DESCRIPTORS
72// #define NO_INTERNAL_SERIAL 72// #define NO_INTERNAL_SERIAL
73 #define FIXED_CONTROL_ENDPOINT_SIZE 8 73 #define FIXED_CONTROL_ENDPOINT_SIZE 8
74// #define DEVICE_STATE_AS_GPIOR {Insert Value Here} 74// #define DEVICE_STATE_AS_GPIOR {Insert Value Here}
75 #define FIXED_NUM_CONFIGURATIONS 1 75 #define FIXED_NUM_CONFIGURATIONS 1
76// #define CONTROL_ONLY_DEVICE 76// #define CONTROL_ONLY_DEVICE
77// #define INTERRUPT_CONTROL_ENDPOINT 77// #define INTERRUPT_CONTROL_ENDPOINT
78// #define NO_DEVICE_REMOTE_WAKEUP 78// #define NO_DEVICE_REMOTE_WAKEUP
79// #define NO_DEVICE_SELF_POWER 79// #define NO_DEVICE_SELF_POWER
80 80
81 /* USB Host Mode Driver Related Tokens: */ 81 /* USB Host Mode Driver Related Tokens: */
82// #define HOST_STATE_AS_GPIOR {Insert Value Here} 82// #define HOST_STATE_AS_GPIOR {Insert Value Here}
83// #define USB_HOST_TIMEOUT_MS {Insert Value Here} 83// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
84// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here} 84// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
85// #define NO_AUTO_VBUS_MANAGEMENT 85// #define NO_AUTO_VBUS_MANAGEMENT
86// #define INVERTED_VBUS_ENABLE_LINE 86// #define INVERTED_VBUS_ENABLE_LINE
87 87
88 #else 88 #else
89 89
90 #error Unsupported architecture for this LUFA configuration file. 90 #error Unsupported architecture for this LUFA configuration file.
91 91
92 #endif 92 #endif
93#endif 93#endif
diff --git a/tmk_core/tool/chibios/ch-bootloader-jump.patch b/tmk_core/tool/chibios/ch-bootloader-jump.patch
index d88657621..c6eb2405c 100644
--- a/tmk_core/tool/chibios/ch-bootloader-jump.patch
+++ b/tmk_core/tool/chibios/ch-bootloader-jump.patch
@@ -3,114 +3,114 @@ index 51a79bb..42d07bd 100644
3--- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s 3--- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s
4+++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s 4+++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s
5@@ -105,6 +105,13 @@ 5@@ -105,6 +105,13 @@
6 #define CRT0_CALL_DESTRUCTORS TRUE 6 #define CRT0_CALL_DESTRUCTORS TRUE
7 #endif 7 #endif
8 8
9+/** 9+/**
10+ * @brief Magic number for jumping to bootloader. 10+ * @brief Magic number for jumping to bootloader.
11+ */ 11+ */
12+#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__) 12+#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__)
13+#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF 13+#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF
14+#endif 14+#endif
15+ 15+
16 /*===========================================================================*/ 16 /*===========================================================================*/
17 /* Code section. */ 17 /* Code section. */
18 /*===========================================================================*/ 18 /*===========================================================================*/
19@@ -124,6 +131,17 @@ 19@@ -124,6 +131,17 @@
20 .thumb_func 20 .thumb_func
21 .global Reset_Handler 21 .global Reset_Handler
22 Reset_Handler: 22 Reset_Handler:
23+ 23+
24+#ifdef STM32_BOOTLOADER_ADDRESS 24+#ifdef STM32_BOOTLOADER_ADDRESS
25+ /* jump to bootloader code */ 25+ /* jump to bootloader code */
26+ ldr r0, =__ram0_end__-4 26+ ldr r0, =__ram0_end__-4
27+ ldr r1, =MAGIC_BOOTLOADER_NUMBER 27+ ldr r1, =MAGIC_BOOTLOADER_NUMBER
28+ ldr r2, [r0, #0] 28+ ldr r2, [r0, #0]
29+ str r0, [r0, #0] /* erase stored magic */ 29+ str r0, [r0, #0] /* erase stored magic */
30+ cmp r2, r1 30+ cmp r2, r1
31+ beq Bootloader_Jump 31+ beq Bootloader_Jump
32+#endif /* STM32_BOOTLOADER_ADDRESS */ 32+#endif /* STM32_BOOTLOADER_ADDRESS */
33+ 33+
34 /* Interrupts are globally masked initially.*/ 34 /* Interrupts are globally masked initially.*/
35 cpsid i 35 cpsid i
36 36
37@@ -242,6 +260,21 @@ endfiniloop: 37@@ -242,6 +260,21 @@ endfiniloop:
38 ldr r1, =__default_exit 38 ldr r1, =__default_exit
39 bx r1 39 bx r1
40 40
41+#ifdef STM32_BOOTLOADER_ADDRESS 41+#ifdef STM32_BOOTLOADER_ADDRESS
42+/* 42+/*
43+ * Jump-to-bootloader function. 43+ * Jump-to-bootloader function.
44+ */ 44+ */
45+ 45+
46+ .align 2 46+ .align 2
47+ .thumb_func 47+ .thumb_func
48+Bootloader_Jump: 48+Bootloader_Jump:
49+ ldr r0, =STM32_BOOTLOADER_ADDRESS 49+ ldr r0, =STM32_BOOTLOADER_ADDRESS
50+ ldr r1, [r0, #0] 50+ ldr r1, [r0, #0]
51+ mov sp, r1 51+ mov sp, r1
52+ ldr r0, [r0, #4] 52+ ldr r0, [r0, #4]
53+ bx r0 53+ bx r0
54+#endif /* STM32_BOOTLOADER_ADDRESS */ 54+#endif /* STM32_BOOTLOADER_ADDRESS */
55+ 55+
56 #endif 56 #endif
57 57
58 /** @} */ 58 /** @} */
59diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s 59diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s
60index 4812a29..dca9f88 100644 60index 4812a29..dca9f88 100644
61--- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s 61--- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s
62+++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s 62+++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s
63@@ -140,6 +140,13 @@ 63@@ -140,6 +140,13 @@
64 #define CRT0_CPACR_INIT 0x00F00000 64 #define CRT0_CPACR_INIT 0x00F00000
65 #endif 65 #endif
66 66
67+/** 67+/**
68+ * @brief Magic number for jumping to bootloader. 68+ * @brief Magic number for jumping to bootloader.
69+ */ 69+ */
70+#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__) 70+#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__)
71+#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF 71+#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF
72+#endif 72+#endif
73+ 73+
74 /*===========================================================================*/ 74 /*===========================================================================*/
75 /* Code section. */ 75 /* Code section. */
76 /*===========================================================================*/ 76 /*===========================================================================*/
77@@ -164,6 +171,17 @@ 77@@ -164,6 +171,17 @@
78 .thumb_func 78 .thumb_func
79 .global Reset_Handler 79 .global Reset_Handler
80 Reset_Handler: 80 Reset_Handler:
81+ 81+
82+#ifdef STM32_BOOTLOADER_ADDRESS 82+#ifdef STM32_BOOTLOADER_ADDRESS
83+ /* jump to bootloader code */ 83+ /* jump to bootloader code */
84+ ldr r0, =__ram0_end__-4 84+ ldr r0, =__ram0_end__-4
85+ ldr r1, =MAGIC_BOOTLOADER_NUMBER 85+ ldr r1, =MAGIC_BOOTLOADER_NUMBER
86+ ldr r2, [r0, #0] 86+ ldr r2, [r0, #0]
87+ str r0, [r0, #0] /* erase stored magic */ 87+ str r0, [r0, #0] /* erase stored magic */
88+ cmp r2, r1 88+ cmp r2, r1
89+ beq Bootloader_Jump 89+ beq Bootloader_Jump
90+#endif /* STM32_BOOTLOADER_ADDRESS */ 90+#endif /* STM32_BOOTLOADER_ADDRESS */
91+ 91+
92 /* Interrupts are globally masked initially.*/ 92 /* Interrupts are globally masked initially.*/
93 cpsid i 93 cpsid i
94 94
95@@ -305,6 +323,21 @@ endfiniloop: 95@@ -305,6 +323,21 @@ endfiniloop:
96 /* Branching to the defined exit handler.*/ 96 /* Branching to the defined exit handler.*/
97 b __default_exit 97 b __default_exit
98 98
99+#ifdef STM32_BOOTLOADER_ADDRESS 99+#ifdef STM32_BOOTLOADER_ADDRESS
100+/* 100+/*
101+ * Jump-to-bootloader function. 101+ * Jump-to-bootloader function.
102+ */ 102+ */
103+ 103+
104+ .align 2 104+ .align 2
105+ .thumb_func 105+ .thumb_func
106+Bootloader_Jump: 106+Bootloader_Jump:
107+ ldr r0, =STM32_BOOTLOADER_ADDRESS 107+ ldr r0, =STM32_BOOTLOADER_ADDRESS
108+ ldr r1, [r0, #0] 108+ ldr r1, [r0, #0]
109+ mov sp, r1 109+ mov sp, r1
110+ ldr r0, [r0, #4] 110+ ldr r0, [r0, #4]
111+ bx r0 111+ bx r0
112+#endif /* STM32_BOOTLOADER_ADDRESS */ 112+#endif /* STM32_BOOTLOADER_ADDRESS */
113+ 113+
114 #endif /* !defined(__DOXYGEN__) */ 114 #endif /* !defined(__DOXYGEN__) */
115 115
116 /** @} */ 116 /** @} */