aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskullydazed <skullydazed@users.noreply.github.com>2019-01-23 09:25:32 -0800
committerGitHub <noreply@github.com>2019-01-23 09:25:32 -0800
commitd1f735b6d2739295faf932dbb61e3c8b4c0b2898 (patch)
treeb1fd49248ef518b0252571d1812cd060860a1248
parent9667c10477fb9bc91b9355dc4969ba8a5769871e (diff)
downloadqmk_firmware-d1f735b6d2739295faf932dbb61e3c8b4c0b2898.tar.gz
qmk_firmware-d1f735b6d2739295faf932dbb61e3c8b4c0b2898.zip
Clueboard refresh (#4902)
* Cluecard: refactor - renamed layout macro KEYMAP to LAYOUT - reformatted layout macro to more closely resemble physical device layout - keymaps now use #include QMK_KEYBOARD_H - config.h files updated to use #pragma once method - deleted outdated QUANTUM_DIR code blocks from rules.mk files - white space changes on rules.mk files (alignment/readability) * Cluecard: Configurator support * Cluecard: readme update - added image - updated Docs links * Clueboard 66% HotSwap: corrected matrix and Configurator data - removed k31 and k84 from LAYOUT - both appear to be unsupported for this PCB according to images on clueboard.co - updated block comment mock-ups to match changes - rebuilt info.json file - delete removed keys from default keymap.c * Clueboard 66% HotSwap: readme update - fix make example - updated Docs links * Clueboard 66% HotSwap: 66_ansi keymap update Updated to use #include QMK_KEYBOARD_H * Clueboard 60% refactor - renamed layout macro KEYMAP to LAYOUT_all - renamed layout macro KEYMAP_AEK to LAYOUT_aek - removed redundant KC_TRNS definitions from keymaps - all keymaps now use #include QMK_KEYBOARD_H * Clueboard 17%: refactor * Clueboard 17%: Configurator support * Clueboard 17%: update Docs links in readme * Cleanup the 2x1800 files * Update Clueboard 60% to standard matrix * Update the clueboard default keymaps * Refresh and update clueboard 17 * Add the 66% hotswap to Clueboard's readme * Clarify the 66% hotswap's readme * change the image to imgur * Update the clueboard 66 to follow modern standards * update clueboard 66_hotswap to follow modern practices * Move the logo to imgur * update clueboard/card to follow modern practices * remove clueboard/66 as a valid make target * Address comments in #4902 * fix user keymaps after the changes
-rw-r--r--keyboards/clueboard/17/17.c9
-rw-r--r--keyboards/clueboard/17/17.h23
-rw-r--r--keyboards/clueboard/17/info.json31
-rw-r--r--keyboards/clueboard/17/keymaps/default/keymap.c31
-rw-r--r--keyboards/clueboard/17/readme.md4
-rw-r--r--keyboards/clueboard/17/rules.mk25
-rw-r--r--keyboards/clueboard/2x1800/2x1800.c15
-rw-r--r--keyboards/clueboard/2x1800/2x1800.h4
-rw-r--r--keyboards/clueboard/2x1800/config.h1
-rw-r--r--keyboards/clueboard/2x1800/info.json392
-rw-r--r--keyboards/clueboard/2x1800/keymaps/default/config.h5
-rw-r--r--keyboards/clueboard/2x1800/keymaps/default_4u/config.h5
-rw-r--r--keyboards/clueboard/2x1800/keymaps/default_7u/config.h5
-rw-r--r--keyboards/clueboard/2x1800/keymaps/macroboard/config.h5
-rw-r--r--keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h5
-rw-r--r--keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk1
-rw-r--r--keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h5
-rw-r--r--keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk1
-rw-r--r--keyboards/clueboard/2x1800/readme.md8
-rw-r--r--keyboards/clueboard/2x1800/rules.mk60
-rw-r--r--keyboards/clueboard/60/60.h13
-rw-r--r--keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.c126
-rw-r--r--keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.h1187
-rw-r--r--keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.mk5
-rw-r--r--keyboards/clueboard/60/bootloader_defs.h7
-rw-r--r--keyboards/clueboard/60/config.h27
-rw-r--r--keyboards/clueboard/60/info.json1653
-rw-r--r--keyboards/clueboard/60/keymaps/default/keymap.c8
-rw-r--r--keyboards/clueboard/60/keymaps/default_aek/keymap.c8
-rw-r--r--keyboards/clueboard/60/keymaps/yanfali/keymap.c10
-rw-r--r--keyboards/clueboard/60/matrix.c175
-rw-r--r--keyboards/clueboard/60/rules.mk21
-rw-r--r--keyboards/clueboard/66/66.c1
-rw-r--r--keyboards/clueboard/66/66.h16
-rw-r--r--keyboards/clueboard/66/config.h63
-rw-r--r--keyboards/clueboard/66/info.json29
-rw-r--r--keyboards/clueboard/66/keymaps/66_ansi/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/66_ansi/readme.md4
-rw-r--r--keyboards/clueboard/66/keymaps/66_iso/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/66_iso/readme.md4
-rw-r--r--keyboards/clueboard/66/keymaps/bloodlvst/config.h6
-rw-r--r--keyboards/clueboard/66/keymaps/bloodlvst/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/caps_fn/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/caps_fn/readme.md2
-rw-r--r--keyboards/clueboard/66/keymaps/colemak/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/default/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/default/readme.md4
-rw-r--r--keyboards/clueboard/66/keymaps/jokrik/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/mac_optimized/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/mac_optimized/readme.md2
-rw-r--r--keyboards/clueboard/66/keymaps/magicmonty/config.h7
-rw-r--r--keyboards/clueboard/66/keymaps/magicmonty/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/magicmonty/rules.mk1
-rw-r--r--keyboards/clueboard/66/keymaps/manofinterests/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/maximised/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/maximised/readme.md2
-rw-r--r--keyboards/clueboard/66/keymaps/mouse_keys/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/mouse_keys/readme.md2
-rw-r--r--keyboards/clueboard/66/keymaps/mrscooty/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/serubin/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/shift_fn/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/shift_fn/readme.md2
-rw-r--r--keyboards/clueboard/66/keymaps/smt/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/tetris/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/unix_optimized/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/unix_optimized/readme.md4
-rw-r--r--keyboards/clueboard/66/keymaps/win_optimized/keymap.c2
-rw-r--r--keyboards/clueboard/66/keymaps/win_optimized/readme.md4
-rw-r--r--keyboards/clueboard/66/keymaps/xyverz/config.h4
-rw-r--r--keyboards/clueboard/66/keymaps/xyverz/keymap.c2
-rw-r--r--keyboards/clueboard/66/readme.md4
-rw-r--r--keyboards/clueboard/66/rev1/config.h59
-rw-r--r--keyboards/clueboard/66/rev1/rev1.h8
-rw-r--r--keyboards/clueboard/66/rev1/rules.mk24
-rw-r--r--keyboards/clueboard/66/rev2/config.h53
-rw-r--r--keyboards/clueboard/66/rev2/rev2.h8
-rw-r--r--keyboards/clueboard/66/rev2/rules.mk23
-rw-r--r--keyboards/clueboard/66/rev3/config.h53
-rw-r--r--keyboards/clueboard/66/rev3/rev3.c4
-rw-r--r--keyboards/clueboard/66/rev3/rev3.h8
-rw-r--r--keyboards/clueboard/66/rev3/rules.mk24
-rw-r--r--keyboards/clueboard/66/rules.mk25
-rw-r--r--keyboards/clueboard/66_hotswap/config.h1
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/config.h11
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/gen1.h80
-rw-r--r--keyboards/clueboard/66_hotswap/info.json17
-rw-r--r--keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c2
-rw-r--r--keyboards/clueboard/66_hotswap/keymaps/default/keymap.c8
-rw-r--r--keyboards/clueboard/66_hotswap/readme.md8
-rw-r--r--keyboards/clueboard/card/card.h17
-rw-r--r--keyboards/clueboard/card/config.h15
-rw-r--r--keyboards/clueboard/card/info.json20
-rw-r--r--keyboards/clueboard/card/keymaps/default/config.h7
-rw-r--r--keyboards/clueboard/card/keymaps/default/keymap.c7
-rw-r--r--keyboards/clueboard/card/keymaps/default/rules.mk13
-rw-r--r--keyboards/clueboard/card/keymaps/rgb_effects/config.h7
-rw-r--r--keyboards/clueboard/card/keymaps/rgb_effects/keymap.c6
-rw-r--r--keyboards/clueboard/card/keymaps/rgb_effects/rules.mk11
-rw-r--r--keyboards/clueboard/card/readme.md4
-rw-r--r--keyboards/clueboard/card/rules.mk71
-rw-r--r--keyboards/clueboard/readme.md7
101 files changed, 583 insertions, 4094 deletions
diff --git a/keyboards/clueboard/17/17.c b/keyboards/clueboard/17/17.c
index f84e3253e..627aa236d 100644
--- a/keyboards/clueboard/17/17.c
+++ b/keyboards/clueboard/17/17.c
@@ -12,13 +12,11 @@ void matrix_init_kb(void) {
12 MCUCR |= (1<<JTD); 12 MCUCR |= (1<<JTD);
13}; 13};
14 14
15void led_set_kb(uint8_t usb_led) 15void led_set_kb(uint8_t usb_led) {
16{
17 print("led_set\n"); 16 print("led_set\n");
18} 17}
19 18
20void backlight_init_ports(void) 19void backlight_init_ports(void) {
21{
22 // Set C7 to output 20 // Set C7 to output
23 DDRC |= (1<<7); 21 DDRC |= (1<<7);
24 22
@@ -29,8 +27,7 @@ void backlight_init_ports(void)
29 TCCR4B = 0b00000001; 27 TCCR4B = 0b00000001;
30} 28}
31 29
32void backlight_set(uint8_t level) 30void backlight_set(uint8_t level) {
33{
34 // Determine the PWM level 31 // Determine the PWM level
35 switch (level) 32 switch (level)
36 { 33 {
diff --git a/keyboards/clueboard/17/17.h b/keyboards/clueboard/17/17.h
index 5e4a5999e..af3be4f5a 100644
--- a/keyboards/clueboard/17/17.h
+++ b/keyboards/clueboard/17/17.h
@@ -19,18 +19,21 @@
19 */ 19 */
20// The first section contains all of the arguments 20// The first section contains all of the arguments
21// The second converts the arguments into a two-dimensional array 21// The second converts the arguments into a two-dimensional array
22#define KEYMAP( \ 22#define LAYOUT_numpad_5x4( \
23 k00, k01, k02, k03, \ 23 k00, k01, k02, k03, \
24 k10, k11, k12, k13, \ 24 k10, k11, k12, \
25 k20, k21, k22, \ 25 k20, k21, k22, k13, \
26 k30, k31, k32, k33, \ 26 k30, k31, k32, \
27 k40, k42 \ 27 k40, k42, k33 \
28) { \ 28) { \
29 { k00, k01, k02, k03, }, \ 29 { k00, k01, k02, k03 }, \
30 { k10, k11, k12, k13, }, \ 30 { k10, k11, k12, k13 }, \
31 { k20, k21, k22, KC_NO, }, \ 31 { k20, k21, k22, KC_NO }, \
32 { k30, k31, k32, k33, }, \ 32 { k30, k31, k32, k33 }, \
33 { k40, KC_NO, k42, KC_NO } \ 33 { k40, KC_NO, k42, KC_NO } \
34} 34}
35 35
36#define LAYOUT LAYOUT_numpad_5x4
37#define KEYMAP LAYOUT_numpad_5x4
38
36#endif 39#endif
diff --git a/keyboards/clueboard/17/info.json b/keyboards/clueboard/17/info.json
new file mode 100644
index 000000000..12338ae1d
--- /dev/null
+++ b/keyboards/clueboard/17/info.json
@@ -0,0 +1,31 @@
1{
2 "keyboard_name": "Clueboard 17% (Cluepad)",
3 "keyboard_folder": "clueboard/17",
4 "url": "",
5 "maintainer": "qmk",
6 "width": 4,
7 "height": 5,
8 "layouts": {
9 "LAYOUT_numpad_5x4": {
10 "layout": [
11 {"label":"Num Lock", "x":0, "y":0},
12 {"label":"/", "x":1, "y":0},
13 {"label":"*", "x":2, "y":0},
14 {"label":"-", "x":3, "y":0},
15 {"label":"7", "x":0, "y":1},
16 {"label":"8", "x":1, "y":1},
17 {"label":"9", "x":2, "y":1},
18 {"label":"4", "x":0, "y":2},
19 {"label":"5", "x":1, "y":2},
20 {"label":"6", "x":2, "y":2},
21 {"label":"+", "x":3, "y":1, "h":2},
22 {"label":"1", "x":0, "y":3},
23 {"label":"2", "x":1, "y":3},
24 {"label":"3", "x":2, "y":3},
25 {"label":"0", "x":0, "y":4, "w":2},
26 {"label":".", "x":2, "y":4},
27 {"label":"Enter", "x":3, "y":3, "h":2}
28 ]
29 }
30 }
31}
diff --git a/keyboards/clueboard/17/keymaps/default/keymap.c b/keyboards/clueboard/17/keymaps/default/keymap.c
index 53bbbaa9d..65c64e43c 100644
--- a/keyboards/clueboard/17/keymaps/default/keymap.c
+++ b/keyboards/clueboard/17/keymaps/default/keymap.c
@@ -1,6 +1,4 @@
1#include "17.h" 1#include QMK_KEYBOARD_H
2
3#include "backlight.h"
4 2
5// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -8,7 +6,6 @@
8// entirely and just use numbers. 6// entirely and just use numbers.
9#define _BL 0 7#define _BL 0
10#define _FL 1 8#define _FL 1
11#define _RS 2
12 9
13const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
14 /* Keymap _BL: (Base Layer) Default Layer 11 /* Keymap _BL: (Base Layer) Default Layer
@@ -24,12 +21,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 * | 0| .| Ent| 21 * | 0| .| Ent|
25 * '-------------------' 22 * '-------------------'
26 */ 23 */
27[_BL] = KEYMAP( 24 [_BL] = LAYOUT_numpad_5x4(
28 LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \ 25 LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \
29 KC_P7, KC_P8, KC_P9, KC_PPLS, \ 26 KC_P7, KC_P8, KC_P9, \
30 KC_P4, KC_P5, KC_P6, \ 27 KC_P4, KC_P5, KC_P6, KC_PPLS, \
31 KC_P1, KC_P2, KC_P3, KC_PENT, \ 28 KC_P1, KC_P2, KC_P3, \
32 KC_P0, KC_PDOT), 29 KC_P0, KC_PDOT, KC_PENT \
30 ),
33 31
34 /* Keymap _FL: Function Layer 32 /* Keymap _FL: Function Layer
35 * .-------------------. 33 * .-------------------.
@@ -44,10 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 * | Fn1| | Fn7| 42 * | Fn1| | Fn7|
45 * '-------------------' 43 * '-------------------'
46 */ 44 */
47[_FL] = KEYMAP( 45 [_FL] = LAYOUT_numpad_5x4(
48 LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, RGB_TOG, \ 46 LT(_FL, KC_NLCK), _______, _______, RGB_TOG, \
49 KC_TRNS, RGB_SAI, KC_TRNS, RGB_VAI, \ 47 _______, RGB_SAI, _______, \
50 RGB_HUD, BL_STEP, RGB_HUI, \ 48 RGB_HUD, BL_STEP, RGB_HUI, RGB_VAI, \
51 KC_TRNS, RGB_SAD, KC_TRNS, RGB_VAD, \ 49 _______, RGB_SAD, _______, \
52 RGB_MOD, KC_TRNS) 50 RGB_MOD, _______, RGB_VAD \
51 )
53}; 52};
diff --git a/keyboards/clueboard/17/readme.md b/keyboards/clueboard/17/readme.md
index 8b449be3f..c183657f9 100644
--- a/keyboards/clueboard/17/readme.md
+++ b/keyboards/clueboard/17/readme.md
@@ -1,6 +1,6 @@
1# Clueboard 17% (Formerly Cluepad) 1# Clueboard 17% (Formerly Cluepad)
2 2
3![Clueboard 17%](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/5842fbdce3df28eae5ec557e/5844fb2cb8a79bbdfd63bad1/1498501250178/IMGP3931.jpg?format=750w) 3![Clueboard 17%](https://i.imgur.com/3XBC5c0.jpg)
4 4
5A basic 17 key numpad PCB. 5A basic 17 key numpad PCB.
6 6
@@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment):
13 13
14 make clueboard/17:default 14 make clueboard/17:default
15 15
16See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 16See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/clueboard/17/rules.mk b/keyboards/clueboard/17/rules.mk
index 264aba044..591d40f03 100644
--- a/keyboards/clueboard/17/rules.mk
+++ b/keyboards/clueboard/17/rules.mk
@@ -1,6 +1,4 @@
1
2# MCU name 1# MCU name
3#MCU = at90usb1287
4MCU = atmega32u4 2MCU = atmega32u4
5 3
6# Processor frequency. 4# Processor frequency.
@@ -50,16 +48,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
50 48
51 49
52# Build Options 50# Build Options
53# comment out to disable the options. 51BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
54# 52MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
55BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) 53EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
56# MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 54CONSOLE_ENABLE = yes # Console for debug(+400)
57# EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 55COMMAND_ENABLE = no # Commands for debug and configuration
58# CONSOLE_ENABLE = yes # Console for debug(+400) 56NKRO_ENABLE = yes # USB Nkey Rollover
59# COMMAND_ENABLE = yes # Commands for debug and configuration 57BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
60NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 58RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
61BACKLIGHT_ENABLE = yes # Enable numpad's backlight functionality 59MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
62RGBLIGHT_ENABLE = yes 60UNICODE_ENABLE = no # Unicode
63# MIDI_ENABLE = YES # MIDI controls
64# UNICODE_ENABLE = YES # Unicode
65# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID \ No newline at end of file
diff --git a/keyboards/clueboard/2x1800/2x1800.c b/keyboards/clueboard/2x1800/2x1800.c
index 4ad78899f..09c90adbc 100644
--- a/keyboards/clueboard/2x1800/2x1800.c
+++ b/keyboards/clueboard/2x1800/2x1800.c
@@ -21,10 +21,6 @@ void matrix_init_kb(void) {
21 DDRB |= (1<<5); // Capslock 21 DDRB |= (1<<5); // Capslock
22 DDRB |= (1<<6); // Scroll Lock 22 DDRB |= (1<<6); // Scroll Lock
23 23
24 // JTAG disable for PORT F. write JTD bit twice within four cycles.
25 MCUCR |= (1<<JTD);
26 MCUCR |= (1<<JTD);
27
28 // Run the keymap level init 24 // Run the keymap level init
29 matrix_init_user(); 25 matrix_init_user();
30} 26}
@@ -38,25 +34,24 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
38} 34}
39 35
40void led_set_kb(uint8_t usb_led) { 36void led_set_kb(uint8_t usb_led) {
37 // Toggle numlock as needed
41 if (usb_led & (1<<USB_LED_NUM_LOCK)) { 38 if (usb_led & (1<<USB_LED_NUM_LOCK)) {
42 // Turn numlock on
43 PORTB |= (1<<4); 39 PORTB |= (1<<4);
44 } else { 40 } else {
45 // Turn numlock off
46 PORTB &= ~(1<<4); 41 PORTB &= ~(1<<4);
47 } 42 }
43
44 // Toggle capslock as needed
48 if (usb_led & (1<<USB_LED_CAPS_LOCK)) { 45 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
49 // Turn capslock on
50 PORTB |= (1<<5); 46 PORTB |= (1<<5);
51 } else { 47 } else {
52 // Turn capslock off
53 PORTB &= ~(1<<5); 48 PORTB &= ~(1<<5);
54 } 49 }
50
51 // Toggle scrolllock as needed
55 if (usb_led & (1<<USB_LED_SCROLL_LOCK)) { 52 if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
56 // Turn scroll lock on
57 PORTB |= (1<<6); 53 PORTB |= (1<<6);
58 } else { 54 } else {
59 // Turn scroll lock off
60 PORTB &= ~(1<<6); 55 PORTB &= ~(1<<6);
61 } 56 }
62} 57}
diff --git a/keyboards/clueboard/2x1800/2x1800.h b/keyboards/clueboard/2x1800/2x1800.h
index a4e86e8f2..818ceed80 100644
--- a/keyboards/clueboard/2x1800/2x1800.h
+++ b/keyboards/clueboard/2x1800/2x1800.h
@@ -21,7 +21,7 @@
21// This a shortcut to help you visually see your layout. 21// This a shortcut to help you visually see your layout.
22// The first section contains all of the arguments 22// The first section contains all of the arguments
23// The second converts the arguments into a two-dimensional array 23// The second converts the arguments into a two-dimensional array
24#define LAYOUT( \ 24#define LAYOUT_all( \
25 k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ 25 k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \
26 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ 26 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \
27 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ 27 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \
@@ -90,4 +90,6 @@
90 { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \ 90 { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \
91} 91}
92 92
93#define LAYOUT LAYOUT_all
94
93#endif 95#endif
diff --git a/keyboards/clueboard/2x1800/config.h b/keyboards/clueboard/2x1800/config.h
index ea3c7a6e9..cddcd1ce7 100644
--- a/keyboards/clueboard/2x1800/config.h
+++ b/keyboards/clueboard/2x1800/config.h
@@ -58,6 +58,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
58/* audio support */ 58/* audio support */
59#define B7_AUDIO 59#define B7_AUDIO
60#define C4_AUDIO 60#define C4_AUDIO
61#define AUDIO_CLICKY
61 62
62/* number of backlight levels */ 63/* number of backlight levels */
63// #define BACKLIGHT_PIN B7 64// #define BACKLIGHT_PIN B7
diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json
index 86fd37ffa..0e3bb36a9 100644
--- a/keyboards/clueboard/2x1800/info.json
+++ b/keyboards/clueboard/2x1800/info.json
@@ -1,5 +1,5 @@
1{ 1{
2 "keyboard_name": "CB 2x1800", 2 "keyboard_name": "Clueboard 2x1800",
3 "url": "", 3 "url": "",
4 "maintainer": "skullydazed", 4 "maintainer": "skullydazed",
5 "width": 24, 5 "width": 24,
@@ -8,388 +8,34 @@
8 "LAYOUT": { 8 "LAYOUT": {
9 "key_count": 127, 9 "key_count": 127,
10 "layout": [ 10 "layout": [
11 {"label":"Home", "x":0, "y":0}, 11 {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0},
12 {"label":"End", "x":1, "y":0}, 12 {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25},
13 {"label":"PgUp", "x":2, "y":0}, 13 {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2},
14 {"label":"PgDn", "x":3, "y":0}, 14 {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25},
15 {"label":"Esc", "x":4.75, "y":0}, 15 {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2},
16 {"label":"F1", "x":6.25, "y":0}, 16 {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25}
17 {"label":"F2", "x":7.25, "y":0},
18 {"label":"F3", "x":8.25, "y":0},
19 {"label":"F4", "x":9.25, "y":0},
20 {"label":"F5", "x":10.75, "y":0},
21 {"label":"F6", "x":11.75, "y":0},
22 {"label":"F7", "x":12.75, "y":0},
23 {"label":"F8", "x":13.75, "y":0},
24 {"label":"F9", "x":15.25, "y":0},
25 {"label":"F10", "x":16.25, "y":0},
26 {"label":"F11", "x":17.25, "y":0},
27 {"label":"F12", "x":18.25, "y":0},
28 {"label":"PrtSc", "x":20, "y":0},
29 {"label":"Scroll Lock", "x":21, "y":0},
30 {"label":"Pause", "x":22, "y":0},
31 {"label":"Insert", "x":23, "y":0},
32 {"label":"-", "x":0, "y":1.25},
33 {"label":"Num Lock", "x":1, "y":1.25},
34 {"label":"/", "x":2, "y":1.25},
35 {"label":"*", "x":3, "y":1.25},
36 {"label":"~", "x":4.5, "y":1.25},
37 {"label":"!", "x":5.5, "y":1.25},
38 {"label":"@", "x":6.5, "y":1.25},
39 {"label":"#", "x":7.5, "y":1.25},
40 {"label":"$", "x":8.5, "y":1.25},
41 {"label":"%", "x":9.5, "y":1.25},
42 {"label":"^", "x":10.5, "y":1.25},
43 {"label":"&", "x":11.5, "y":1.25},
44 {"label":"*", "x":12.5, "y":1.25},
45 {"label":"(", "x":13.5, "y":1.25},
46 {"label":")", "x":14.5, "y":1.25},
47 {"label":"_", "x":15.5, "y":1.25},
48 {"label":"+", "x":16.5, "y":1.25},
49 {"label":"Backspace", "x":17.5, "y":1.25, "w":2},
50 {"label":"Num Lock", "x":20, "y":1.25},
51 {"label":"/", "x":21, "y":1.25},
52 {"label":"*", "x":22, "y":1.25},
53 {"label":"-", "x":23, "y":1.25},
54 {"label":"+", "x":0, "y":2.25, "h":2},
55 {"label":"7", "x":1, "y":2.25},
56 {"label":"8", "x":2, "y":2.25},
57 {"label":"9", "x":3, "y":2.25},
58 {"label":"Tab", "x":4.5, "y":2.25, "w":1.5},
59 {"label":"Q", "x":6, "y":2.25},
60 {"label":"W", "x":7, "y":2.25},
61 {"label":"E", "x":8, "y":2.25},
62 {"label":"R", "x":9, "y":2.25},
63 {"label":"T", "x":10, "y":2.25},
64 {"label":"Y", "x":11, "y":2.25},
65 {"label":"U", "x":12, "y":2.25},
66 {"label":"I", "x":13, "y":2.25},
67 {"label":"O", "x":14, "y":2.25},
68 {"label":"P", "x":15, "y":2.25},
69 {"label":"{", "x":16, "y":2.25},
70 {"label":"}", "x":17, "y":2.25},
71 {"label":"|", "x":18, "y":2.25, "w":1.5},
72 {"label":"7", "x":20, "y":2.25},
73 {"label":"8", "x":21, "y":2.25},
74 {"label":"9", "x":22, "y":2.25},
75 {"label":"+", "x":23, "y":2.25, "h":2},
76 {"label":"4", "x":1, "y":3.25},
77 {"label":"5", "x":2, "y":3.25},
78 {"label":"6", "x":3, "y":3.25},
79 {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75},
80 {"label":"A", "x":6.25, "y":3.25},
81 {"label":"S", "x":7.25, "y":3.25},
82 {"label":"D", "x":8.25, "y":3.25},
83 {"label":"F", "x":9.25, "y":3.25},
84 {"label":"G", "x":10.25, "y":3.25},
85 {"label":"H", "x":11.25, "y":3.25},
86 {"label":"J", "x":12.25, "y":3.25},
87 {"label":"K", "x":13.25, "y":3.25},
88 {"label":"L", "x":14.25, "y":3.25},
89 {"label":":", "x":15.25, "y":3.25},
90 {"label":"\"", "x":16.25, "y":3.25},
91 {"label":"Enter", "x":17.25, "y":3.25, "w":2.25},
92 {"label":"4", "x":20, "y":3.25},
93 {"label":"5", "x":21, "y":3.25},
94 {"label":"6", "x":22, "y":3.25},
95 {"label":"Enter", "x":0, "y":4.25, "h":2},
96 {"label":"1", "x":1, "y":4.25},
97 {"label":"2", "x":2, "y":4.25},
98 {"label":"3", "x":3, "y":4.25},
99 {"label":"\\u2191", "x":4.25, "y":4.5},
100 {"label":"Shift", "x":5.5, "y":4.25, "w":1.25},
101 {"label":"Z", "x":6.75, "y":4.25},
102 {"label":"X", "x":7.75, "y":4.25},
103 {"label":"C", "x":8.75, "y":4.25},
104 {"label":"V", "x":9.75, "y":4.25},
105 {"label":"B", "x":10.75, "y":4.25},
106 {"label":"N", "x":11.75, "y":4.25},
107 {"label":"M", "x":12.75, "y":4.25},
108 {"label":"<", "x":13.75, "y":4.25},
109 {"label":">", "x":14.75, "y":4.25},
110 {"label":"?", "x":15.75, "y":4.25},
111 {"label":"Shift", "x":16.75, "y":4.25, "w":1.75},
112 {"label":"\\u2191", "x":18.75, "y":4.5},
113 {"label":"1", "x":20, "y":4.25},
114 {"label":"2", "x":21, "y":4.25},
115 {"label":"3", "x":22, "y":4.25},
116 {"label":"Enter", "x":23, "y":4.25, "h":2},
117 {"label":"0", "x":1, "y":5.25},
118 {"label":".", "x":2, "y":5.25},
119 {"label":"\\u2190", "x":3.25, "y":5.5},
120 {"label":"\\u2193", "x":4.25, "y":5.5},
121 {"label":"\\u2192", "x":5.25, "y":5.5},
122 {"label":"Ctrl", "x":6.5, "y":5.25},
123 {"label":"Win", "x":7.5, "y":5.25},
124 {"label":"Alt", "x":8.5, "y":5.25},
125 {"label":"1u", "x":9.5, "y":5.25},
126 {"label":"1u", "x":10.5, "y":5.25},
127 {"label":"1u", "x":11.5, "y":5.25},
128 {"label":"1u", "x":12.5, "y":5.25},
129 {"label":"Alt", "x":13.5, "y":5.25},
130 {"label":"Win", "x":14.5, "y":5.25},
131 {"label":"Menu", "x":15.5, "y":5.25},
132 {"label":"Ctrl", "x":16.5, "y":5.25},
133 {"label":"\\u2190", "x":17.75, "y":5.5},
134 {"label":"\\u2193", "x":18.75, "y":5.5},
135 {"label":"\\u2192", "x":19.75, "y":5.5},
136 {"label":"0", "x":21, "y":5.25},
137 {"label":".", "x":22, "y":5.25}
138 ] 17 ]
139 }, 18 },
140 "LAYOUT_7u_space": { 19 "LAYOUT_7u_space": {
141 "key_count": 121, 20 "key_count": 121,
142 "layout": [ 21 "layout": [
143 {"label":"k00", "x":0, "y":0}, 22 {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
144 {"label":"k01", "x":1, "y":0}, 23 {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
145 {"label":"k02", "x":2, "y":0}, 24 {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
146 {"label":"k03", "x":3, "y":0}, 25 {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
147 {"label":"k04", "x":4.75, "y":0}, 26 {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
148 {"label":"k06", "x":6.25, "y":0}, 27 {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
149 {"label":"k07", "x":7.25, "y":0},
150 {"label":"k08", "x":8.25, "y":0},
151 {"label":"k09", "x":9.25, "y":0},
152 {"label":"k0a", "x":10.75, "y":0},
153 {"label":"k60", "x":11.75, "y":0},
154 {"label":"k61", "x":12.75, "y":0},
155 {"label":"k62", "x":13.75, "y":0},
156 {"label":"k63", "x":15.25, "y":0},
157 {"label":"k64", "x":16.25, "y":0},
158 {"label":"k65", "x":17.25, "y":0},
159 {"label":"k66", "x":18.25, "y":0},
160 {"label":"k67", "x":20, "y":0},
161 {"label":"k68", "x":21, "y":0},
162 {"label":"k69", "x":22, "y":0},
163 {"label":"k6a", "x":23, "y":0},
164 {"label":"k10", "x":0, "y":1.25},
165 {"label":"k11", "x":1, "y":1.25},
166 {"label":"k12", "x":2, "y":1.25},
167 {"label":"k13", "x":3, "y":1.25},
168 {"label":"k14", "x":4.5, "y":1.25},
169 {"label":"k15", "x":5.5, "y":1.25},
170 {"label":"k16", "x":6.5, "y":1.25},
171 {"label":"k17", "x":7.5, "y":1.25},
172 {"label":"k18", "x":8.5, "y":1.25},
173 {"label":"k19", "x":9.5, "y":1.25},
174 {"label":"k0a", "x":10.5, "y":1.25},
175 {"label":"k70", "x":11.5, "y":1.25},
176 {"label":"k71", "x":12.5, "y":1.25},
177 {"label":"k72", "x":13.5, "y":1.25},
178 {"label":"k73", "x":14.5, "y":1.25},
179 {"label":"k74", "x":15.5, "y":1.25},
180 {"label":"k75", "x":16.5, "y":1.25},
181 {"label":"k76", "x":17.5, "y":1.25, "w":2},
182 {"label":"k77", "x":20, "y":1.25},
183 {"label":"k78", "x":21, "y":1.25},
184 {"label":"k79", "x":22, "y":1.25},
185 {"label":"k7a", "x":23, "y":1.25},
186 {"label":"k20", "x":0, "y":2.25, "h":2},
187 {"label":"k21", "x":1, "y":2.25},
188 {"label":"k22", "x":2, "y":2.25},
189 {"label":"k23", "x":3, "y":2.25},
190 {"label":"k24", "x":4.5, "y":2.25, "w":1.5},
191 {"label":"k25", "x":6, "y":2.25},
192 {"label":"k26", "x":7, "y":2.25},
193 {"label":"k27", "x":8, "y":2.25},
194 {"label":"k28", "x":9, "y":2.25},
195 {"label":"k29", "x":10, "y":2.25},
196 {"label":"k2a", "x":11, "y":2.25},
197 {"label":"k80", "x":12, "y":2.25},
198 {"label":"k81", "x":13, "y":2.25},
199 {"label":"k82", "x":14, "y":2.25},
200 {"label":"k83", "x":15, "y":2.25},
201 {"label":"k84", "x":16, "y":2.25},
202 {"label":"k85", "x":17, "y":2.25},
203 {"label":"k86", "x":18, "y":2.25, "w":1.5},
204 {"label":"k87", "x":20, "y":2.25},
205 {"label":"k88", "x":21, "y":2.25},
206 {"label":"k89", "x":22, "y":2.25},
207 {"label":"k8a", "x":23, "y":2.25, "h":2},
208 {"label":"k31", "x":1, "y":3.25},
209 {"label":"k32", "x":2, "y":3.25},
210 {"label":"k33", "x":3, "y":3.25},
211 {"label":"k34", "x":4.5, "y":3.25, "w":1.75},
212 {"label":"k35", "x":6.25, "y":3.25},
213 {"label":"k36", "x":7.25, "y":3.25},
214 {"label":"k37", "x":8.25, "y":3.25},
215 {"label":"k38", "x":9.25, "y":3.25},
216 {"label":"k39", "x":10.25, "y":3.25},
217 {"label":"k3a", "x":11.25, "y":3.25},
218 {"label":"k90", "x":12.25, "y":3.25},
219 {"label":"k91", "x":13.25, "y":3.25},
220 {"label":"k92", "x":14.25, "y":3.25},
221 {"label":"k93", "x":15.25, "y":3.25},
222 {"label":"k94", "x":16.25, "y":3.25},
223 {"label":"k95", "x":17.25, "y":3.25, "w":2.25},
224 {"label":"k97", "x":20, "y":3.25},
225 {"label":"k98", "x":21, "y":3.25},
226 {"label":"k99", "x":22, "y":3.25},
227 {"label":"k40", "x":0, "y":4.25, "h":2},
228 {"label":"k41", "x":1, "y":4.25},
229 {"label":"k42", "x":2, "y":4.25},
230 {"label":"k43", "x":3, "y":4.25},
231 {"label":"k45", "x":5.5, "y":4.25, "w":1.25},
232 {"label":"k46", "x":6.75, "y":4.25},
233 {"label":"k47", "x":7.75, "y":4.25},
234 {"label":"k48", "x":8.75, "y":4.25},
235 {"label":"k49", "x":9.75, "y":4.25},
236 {"label":"k4a", "x":10.75, "y":4.25},
237 {"label":"ka0", "x":11.75, "y":4.25},
238 {"label":"ka1", "x":12.75, "y":4.25},
239 {"label":"ka2", "x":13.75, "y":4.25},
240 {"label":"ka3", "x":14.75, "y":4.25},
241 {"label":"ka4", "x":15.75, "y":4.25},
242 {"label":"ka5", "x":16.75, "y":4.25, "w":1.75},
243 {"label":"ka7", "x":20, "y":4.25},
244 {"label":"ka8", "x":21, "y":4.25},
245 {"label":"ka9", "x":22, "y":4.25},
246 {"label":"kaa", "x":23, "y":4.25, "h":2},
247 {"label":"k44", "x":4.25, "y":4.5},
248 {"label":"k96", "x":18.75, "y":4.5},
249 {"label":"k51", "x":1, "y":5.25},
250 {"label":"k52", "x":2, "y":5.25},
251 {"label":"k56", "x":6.5, "y":5.25},
252 {"label":"k57", "x":7.5, "y":5.25},
253 {"label":"kb0", "x":8.5, "y":5.25, "w":7},
254 {"label":"kb4", "x":15.5, "y":5.25},
255 {"label":"kb5", "x":16.5, "y":5.25},
256 {"label":"kb8", "x":21, "y":5.25},
257 {"label":"kb9", "x":22, "y":5.25},
258 {"label":"k53", "x":3.25, "y":5.5},
259 {"label":"k54", "x":4.25, "y":5.5},
260 {"label":"k55", "x":5.25, "y":5.5},
261 {"label":"ka6", "x":17.75, "y":5.5},
262 {"label":"kb6", "x":18.75, "y":5.5},
263 {"label":"kb7", "x":19.75, "y":5.5}
264 ] 28 ]
265 }, 29 },
266 "LAYOUT_4u_space": { 30 "LAYOUT_4u_space": {
267 "key_count": 124, 31 "key_count": 124,
268 "layout": [ 32 "layout": [
269 {"label":"k00", "x":0, "y":0}, 33 {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0},
270 {"label":"k01", "x":1, "y":0}, 34 {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25},
271 {"label":"k02", "x":2, "y":0}, 35 {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2},
272 {"label":"k03", "x":3, "y":0}, 36 {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25},
273 {"label":"k04", "x":4.75, "y":0}, 37 {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5},
274 {"label":"k06", "x":6.25, "y":0}, 38 {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5}
275 {"label":"k07", "x":7.25, "y":0},
276 {"label":"k08", "x":8.25, "y":0},
277 {"label":"k09", "x":9.25, "y":0},
278 {"label":"k0a", "x":10.75, "y":0},
279 {"label":"k60", "x":11.75, "y":0},
280 {"label":"k61", "x":12.75, "y":0},
281 {"label":"k62", "x":13.75, "y":0},
282 {"label":"k63", "x":15.25, "y":0},
283 {"label":"k64", "x":16.25, "y":0},
284 {"label":"k65", "x":17.25, "y":0},
285 {"label":"k66", "x":18.25, "y":0},
286 {"label":"k67", "x":20, "y":0},
287 {"label":"k68", "x":21, "y":0},
288 {"label":"k69", "x":22, "y":0},
289 {"label":"k6a", "x":23, "y":0},
290 {"label":"k10", "x":0, "y":1.25},
291 {"label":"k11", "x":1, "y":1.25},
292 {"label":"k12", "x":2, "y":1.25},
293 {"label":"k13", "x":3, "y":1.25},
294 {"label":"k14", "x":4.5, "y":1.25},
295 {"label":"k15", "x":5.5, "y":1.25},
296 {"label":"k16", "x":6.5, "y":1.25},
297 {"label":"k17", "x":7.5, "y":1.25},
298 {"label":"k18", "x":8.5, "y":1.25},
299 {"label":"k19", "x":9.5, "y":1.25},
300 {"label":"k0a", "x":10.5, "y":1.25},
301 {"label":"k70", "x":11.5, "y":1.25},
302 {"label":"k71", "x":12.5, "y":1.25},
303 {"label":"k72", "x":13.5, "y":1.25},
304 {"label":"k73", "x":14.5, "y":1.25},
305 {"label":"k74", "x":15.5, "y":1.25},
306 {"label":"k75", "x":16.5, "y":1.25},
307 {"label":"k76", "x":17.5, "y":1.25, "w":2},
308 {"label":"k77", "x":20, "y":1.25},
309 {"label":"k78", "x":21, "y":1.25},
310 {"label":"k79", "x":22, "y":1.25},
311 {"label":"k7a", "x":23, "y":1.25},
312 {"label":"k20", "x":0, "y":2.25, "h":2},
313 {"label":"k21", "x":1, "y":2.25},
314 {"label":"k22", "x":2, "y":2.25},
315 {"label":"k23", "x":3, "y":2.25},
316 {"label":"k24", "x":4.5, "y":2.25, "w":1.5},
317 {"label":"k25", "x":6, "y":2.25},
318 {"label":"k26", "x":7, "y":2.25},
319 {"label":"k27", "x":8, "y":2.25},
320 {"label":"k28", "x":9, "y":2.25},
321 {"label":"k29", "x":10, "y":2.25},
322 {"label":"k2a", "x":11, "y":2.25},
323 {"label":"k80", "x":12, "y":2.25},
324 {"label":"k81", "x":13, "y":2.25},
325 {"label":"k82", "x":14, "y":2.25},
326 {"label":"k83", "x":15, "y":2.25},
327 {"label":"k84", "x":16, "y":2.25},
328 {"label":"k85", "x":17, "y":2.25},
329 {"label":"k86", "x":18, "y":2.25, "w":1.5},
330 {"label":"k87", "x":20, "y":2.25},
331 {"label":"k88", "x":21, "y":2.25},
332 {"label":"k89", "x":22, "y":2.25},
333 {"label":"k8a", "x":23, "y":2.25, "h":2},
334 {"label":"k31", "x":1, "y":3.25},
335 {"label":"k32", "x":2, "y":3.25},
336 {"label":"k33", "x":3, "y":3.25},
337 {"label":"k34", "x":4.5, "y":3.25, "w":1.75},
338 {"label":"k35", "x":6.25, "y":3.25},
339 {"label":"k36", "x":7.25, "y":3.25},
340 {"label":"k37", "x":8.25, "y":3.25},
341 {"label":"k38", "x":9.25, "y":3.25},
342 {"label":"k39", "x":10.25, "y":3.25},
343 {"label":"k3a", "x":11.25, "y":3.25},
344 {"label":"k90", "x":12.25, "y":3.25},
345 {"label":"k91", "x":13.25, "y":3.25},
346 {"label":"k92", "x":14.25, "y":3.25},
347 {"label":"k93", "x":15.25, "y":3.25},
348 {"label":"k94", "x":16.25, "y":3.25},
349 {"label":"k95", "x":17.25, "y":3.25, "w":2.25},
350 {"label":"k97", "x":20, "y":3.25},
351 {"label":"k98", "x":21, "y":3.25},
352 {"label":"k99", "x":22, "y":3.25},
353 {"label":"k40", "x":0, "y":4.25, "h":2},
354 {"label":"k41", "x":1, "y":4.25},
355 {"label":"k42", "x":2, "y":4.25},
356 {"label":"k43", "x":3, "y":4.25},
357 {"label":"k45", "x":5.5, "y":4.25, "w":1.25},
358 {"label":"k46", "x":6.75, "y":4.25},
359 {"label":"k47", "x":7.75, "y":4.25},
360 {"label":"k48", "x":8.75, "y":4.25},
361 {"label":"k49", "x":9.75, "y":4.25},
362 {"label":"k4a", "x":10.75, "y":4.25},
363 {"label":"ka0", "x":11.75, "y":4.25},
364 {"label":"ka1", "x":12.75, "y":4.25},
365 {"label":"ka2", "x":13.75, "y":4.25},
366 {"label":"ka3", "x":14.75, "y":4.25},
367 {"label":"ka4", "x":15.75, "y":4.25},
368 {"label":"ka5", "x":16.75, "y":4.25, "w":1.75},
369 {"label":"ka7", "x":20, "y":4.25},
370 {"label":"ka8", "x":21, "y":4.25},
371 {"label":"ka9", "x":22, "y":4.25},
372 {"label":"kaa", "x":23, "y":4.25, "h":2},
373 {"label":"k44", "x":4.25, "y":4.5},
374 {"label":"k96", "x":18.75, "y":4.5},
375 {"label":"k51", "x":1, "y":5.25},
376 {"label":"k52", "x":2, "y":5.25},
377 {"label":"k56", "x":6.5, "y":5.25},
378 {"label":"k57", "x":7.5, "y":5.25},
379 {"label":"k58", "x":8.5, "y":5.25},
380 {"label":"kb0", "x":9.5, "y":5.25, "w":4},
381 {"label":"kb2", "x":13.5, "y":5.25},
382 {"label":"kb3", "x":14.5, "y":5.25},
383 {"label":"kb4", "x":15.5, "y":5.25},
384 {"label":"kb5", "x":16.5, "y":5.25},
385 {"label":"kb8", "x":21, "y":5.25},
386 {"label":"kb9", "x":22, "y":5.25},
387 {"label":"k53", "x":3.25, "y":5.5},
388 {"label":"k54", "x":4.25, "y":5.5},
389 {"label":"k55", "x":5.25, "y":5.5},
390 {"label":"ka6", "x":17.75, "y":5.5},
391 {"label":"kb6", "x":18.75, "y":5.5},
392 {"label":"kb7", "x":19.75, "y":5.5}
393 ] 39 ]
394 } 40 }
395 } 41 }
diff --git a/keyboards/clueboard/2x1800/keymaps/default/config.h b/keyboards/clueboard/2x1800/keymaps/default/config.h
index f5eccb225..152e2f148 100644
--- a/keyboards/clueboard/2x1800/keymaps/default/config.h
+++ b/keyboards/clueboard/2x1800/keymaps/default/config.h
@@ -14,11 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef CONFIG_USER_H 17#pragma once
18#define CONFIG_USER_H
19 18
20#include "config_common.h" 19#include "config_common.h"
21 20
22// place overrides here 21// place overrides here
23
24#endif
diff --git a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h b/keyboards/clueboard/2x1800/keymaps/default_4u/config.h
index f5eccb225..152e2f148 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_4u/config.h
+++ b/keyboards/clueboard/2x1800/keymaps/default_4u/config.h
@@ -14,11 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef CONFIG_USER_H 17#pragma once
18#define CONFIG_USER_H
19 18
20#include "config_common.h" 19#include "config_common.h"
21 20
22// place overrides here 21// place overrides here
23
24#endif
diff --git a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h b/keyboards/clueboard/2x1800/keymaps/default_7u/config.h
index f5eccb225..152e2f148 100644
--- a/keyboards/clueboard/2x1800/keymaps/default_7u/config.h
+++ b/keyboards/clueboard/2x1800/keymaps/default_7u/config.h
@@ -14,11 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef CONFIG_USER_H 17#pragma once
18#define CONFIG_USER_H
19 18
20#include "config_common.h" 19#include "config_common.h"
21 20
22// place overrides here 21// place overrides here
23
24#endif
diff --git a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h b/keyboards/clueboard/2x1800/keymaps/macroboard/config.h
index f5eccb225..152e2f148 100644
--- a/keyboards/clueboard/2x1800/keymaps/macroboard/config.h
+++ b/keyboards/clueboard/2x1800/keymaps/macroboard/config.h
@@ -14,11 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef CONFIG_USER_H 17#pragma once
18#define CONFIG_USER_H
19 18
20#include "config_common.h" 19#include "config_common.h"
21 20
22// place overrides here 21// place overrides here
23
24#endif
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h
index f5eccb225..152e2f148 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h
+++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h
@@ -14,11 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef CONFIG_USER_H 17#pragma once
18#define CONFIG_USER_H
19 18
20#include "config_common.h" 19#include "config_common.h"
21 20
22// place overrides here 21// place overrides here
23
24#endif
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk b/keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk
deleted file mode 100644
index 6c605daec..000000000
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1MOUSEKEY_ENABLE = yes
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h
index f5eccb225..152e2f148 100644
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h
+++ b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h
@@ -14,11 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef CONFIG_USER_H 17#pragma once
18#define CONFIG_USER_H
19 18
20#include "config_common.h" 19#include "config_common.h"
21 20
22// place overrides here 21// place overrides here
23
24#endif
diff --git a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk b/keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk
deleted file mode 100644
index 6c605daec..000000000
--- a/keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1MOUSEKEY_ENABLE = yes
diff --git a/keyboards/clueboard/2x1800/readme.md b/keyboards/clueboard/2x1800/readme.md
index afc043f48..7e2c206ed 100644
--- a/keyboards/clueboard/2x1800/readme.md
+++ b/keyboards/clueboard/2x1800/readme.md
@@ -2,11 +2,11 @@
2 2
3Clueboard Double 1800 All The Way 3Clueboard Double 1800 All The Way
4 4
5Keyboard Maintainer: [Zach White](https://github.com/skullydazed) 5* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
6Hardware Supported: Clueboard 2x1800 PCB 6* Hardware Supported: Clueboard 2x1800 PCB
7Hardware Availability: 2018 Apr 1 Group Buy 7* Hardware Availability: 2018 Apr 1 Group Buy
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard:
10 10
11 make 2x1800:default 11 make 2x1800:default
12 12
diff --git a/keyboards/clueboard/2x1800/rules.mk b/keyboards/clueboard/2x1800/rules.mk
index 516a536f6..eb679b9fb 100644
--- a/keyboards/clueboard/2x1800/rules.mk
+++ b/keyboards/clueboard/2x1800/rules.mk
@@ -1,64 +1,20 @@
1# MCU name 1# MCU details
2MCU = at90usb1286 2MCU = at90usb1286
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000 3F_CPU = 16000000
16
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8 4ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU) 5F_USB = $(F_CPU)
36
37# Interrupt driven control endpoint task(+60)
38OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT 6OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
39
40
41# Boot Section Size in *bytes*
42# Teensy halfKay 512
43# Teensy++ halfKay 1024
44# Atmel DFU loader 4096
45# LUFA bootloader 4096
46# USBaspLoader 2048
47OPT_DEFS += -DBOOTLOADER_SIZE=1024 7OPT_DEFS += -DBOOTLOADER_SIZE=1024
48 8
49 9
50# Build Options 10# Build Options
51# change yes to no to disable 11BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
52# 12MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
53BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 13EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
54MOUSEKEY_ENABLE = no # Mouse keys(+4700)
55EXTRAKEY_ENABLE = no # Audio control and System control(+450)
56CONSOLE_ENABLE = yes # Console for debug(+400) 14CONSOLE_ENABLE = yes # Console for debug(+400)
57COMMAND_ENABLE = yes # Commands for debug and configuration 15COMMAND_ENABLE = no # Commands for debug and configuration
58# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 16NKRO_ENABLE = yes # USB Nkey Rollover
59NKRO_ENABLE = yes # USB Nkey Rollover
60MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) 17MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
61UNICODE_ENABLE = no # Unicode 18UNICODE_ENABLE = no # Unicode
62RGBLIGHT_ENABLE = no # RGB on port C6 19RGBLIGHT_ENABLE = yes # RGB on port C6
63AUDIO_ENABLE = no # Audio output on port C4 and B7 20AUDIO_ENABLE = yes # Audio output on port C4 and B7
64FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
diff --git a/keyboards/clueboard/60/60.h b/keyboards/clueboard/60/60.h
index ffff18f9e..713f0d42b 100644
--- a/keyboards/clueboard/60/60.h
+++ b/keyboards/clueboard/60/60.h
@@ -19,15 +19,15 @@
19#include "quantum.h" 19#include "quantum.h"
20 20
21/* 21/*
22 * These are shortcuts to help you work with the various layout options. If your 22 * These are shortcuts to help you work with the various layout options. If your
23 * keymap works with one of the LAYOUT_...() macros you are encouraged to use that 23 * keymap works with one of the LAYOUT_...() macros you are encouraged to use that
24 * and to contribute your keymap to the corresponding layout in 24 * and to contribute your keymap to the corresponding layout in
25 * `qmk_firmware/layouts/community`. 25 * `qmk_firmware/layouts/community`.
26 */ 26 */
27 27
28/* The fully-featured KEYMAP() that has every single key available in the matrix. 28/* The fully-featured LAYOUT_all() that has every single key available in the matrix.
29 */ 29 */
30#define KEYMAP(\ 30#define LAYOUT_all(\
31 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ 31 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
32 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ 32 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
33 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ 33 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
@@ -44,7 +44,7 @@
44/* A layout that matches the Apple Extended Keyboard's main area. No split keys, 44/* A layout that matches the Apple Extended Keyboard's main area. No split keys,
45 * 3 mods on either side of the spacebar. 45 * 3 mods on either side of the spacebar.
46 */ 46 */
47#define KEYMAP_AEK(\ 47#define LAYOUT_aek(\
48 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ 48 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
49 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ 49 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
50 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \ 50 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \
@@ -102,4 +102,7 @@
102 { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \ 102 { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \
103 { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \ 103 { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \
104} 104}
105
106#define LAYOUT LAYOUT_all
107#define KEYMAP LAYOUT_all
105#endif 108#endif
diff --git a/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.c b/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.c
deleted file mode 100644
index 4331155df..000000000
--- a/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.c
+++ /dev/null
@@ -1,126 +0,0 @@
1/*
2 ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#include "hal.h"
18
19#if HAL_USE_PAL || defined(__DOXYGEN__)
20/**
21 * @brief PAL setup.
22 * @details Digital I/O ports static configuration as defined in @p board.h.
23 * This variable is used by the HAL when initializing the PAL driver.
24 */
25const PALConfig pal_default_config = {
26#if STM32_HAS_GPIOA
27 {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
28 VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
29#endif
30#if STM32_HAS_GPIOB
31 {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
32 VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
33#endif
34#if STM32_HAS_GPIOC
35 {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
36 VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
37#endif
38#if STM32_HAS_GPIOD
39 {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
40 VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
41#endif
42#if STM32_HAS_GPIOE
43 {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
44 VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
45#endif
46#if STM32_HAS_GPIOF
47 {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
48 VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
49#endif
50#if STM32_HAS_GPIOG
51 {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
52 VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
53#endif
54#if STM32_HAS_GPIOH
55 {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
56 VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
57#endif
58#if STM32_HAS_GPIOI
59 {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
60 VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}
61#endif
62};
63#endif
64
65void enter_bootloader_mode_if_requested(void);
66
67/**
68 * @brief Early initialization code.
69 * @details This initialization must be performed just after stack setup
70 * and before any other initialization.
71 */
72void __early_init(void) {
73 enter_bootloader_mode_if_requested();
74 stm32_clock_init();
75}
76
77#if HAL_USE_SDC || defined(__DOXYGEN__)
78/**
79 * @brief SDC card detection.
80 */
81bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
82
83 (void)sdcp;
84 /* TODO: Fill the implementation.*/
85 return true;
86}
87
88/**
89 * @brief SDC card write protection detection.
90 */
91bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
92
93 (void)sdcp;
94 /* TODO: Fill the implementation.*/
95 return false;
96}
97#endif /* HAL_USE_SDC */
98
99#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
100/**
101 * @brief MMC_SPI card detection.
102 */
103bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
104
105 (void)mmcp;
106 /* TODO: Fill the implementation.*/
107 return true;
108}
109
110/**
111 * @brief MMC_SPI card write protection detection.
112 */
113bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
114
115 (void)mmcp;
116 /* TODO: Fill the implementation.*/
117 return false;
118}
119#endif
120
121/**
122 * @brief Board-specific initialization code.
123 * @todo Add your board-specific code, if any.
124 */
125void boardInit(void) {
126}
diff --git a/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.h b/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.h
deleted file mode 100644
index e09112eb9..000000000
--- a/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.h
+++ /dev/null
@@ -1,1187 +0,0 @@
1/*
2 ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#ifndef _BOARD_H_
18#define _BOARD_H_
19
20/*
21 * Setup for Clueboard 60% Keyboard
22 */
23
24/*
25 * Board identifier.
26 */
27#define BOARD_GENERIC_STM32_F303XC
28#define BOARD_NAME "Clueboard 60 PCB"
29
30/*
31 * Board oscillators-related settings.
32 * NOTE: LSE not fitted.
33 */
34#if !defined(STM32_LSECLK)
35#define STM32_LSECLK 0U
36#endif
37
38#define STM32_LSEDRV (3U << 3U)
39
40#if !defined(STM32_HSECLK)
41#define STM32_HSECLK 8000000U
42#endif
43
44// #define STM32_HSE_BYPASS
45
46/*
47 * MCU type as defined in the ST header.
48 */
49#define STM32F303xC
50
51/*
52 * IO pins assignments.
53 */
54#define GPIOA_PIN0 0U
55#define GPIOA_PIN1 1U
56#define GPIOA_PIN2 2U
57#define GPIOA_PIN3 3U
58#define GPIOA_PIN4 4U
59#define GPIOA_PIN5 5U
60#define GPIOA_PIN6 6U
61#define GPIOA_PIN7 7U
62#define GPIOA_PIN8 8U
63#define GPIOA_PIN9 9U
64#define GPIOA_PIN10 10U
65#define GPIOA_USB_DM 11U
66#define GPIOA_USB_DP 12U
67#define GPIOA_SWDIO 13U
68#define GPIOA_SWCLK 14U
69#define GPIOA_PIN15 15U
70
71#define GPIOB_PIN0 0U
72#define GPIOB_PIN1 1U
73#define GPIOB_PIN2 2U
74#define GPIOB_PIN3 3U
75#define GPIOB_PIN4 4U
76#define GPIOB_PIN5 5U
77#define GPIOB_PIN6 6U
78#define GPIOB_PIN7 7U
79#define GPIOB_PIN8 8U
80#define GPIOB_PIN9 9U
81#define GPIOB_PIN10 10U
82#define GPIOB_PIN11 11U
83#define GPIOB_PIN12 12U
84#define GPIOB_PIN13 13U
85#define GPIOB_PIN14 14U
86#define GPIOB_PIN15 15U
87
88#define GPIOC_PIN0 0U
89#define GPIOC_PIN1 1U
90#define GPIOC_PIN2 2U
91#define GPIOC_PIN3 3U
92#define GPIOC_PIN4 4U
93#define GPIOC_PIN5 5U
94#define GPIOC_PIN6 6U
95#define GPIOC_PIN7 7U
96#define GPIOC_PIN8 8U
97#define GPIOC_PIN9 9U
98#define GPIOC_PIN10 10U
99#define GPIOC_PIN11 11U
100#define GPIOC_PIN12 12U
101#define GPIOC_PIN13 13U
102#define GPIOC_PIN14 14U
103#define GPIOC_PIN15 15U
104
105#define GPIOD_PIN0 0U
106#define GPIOD_PIN1 1U
107#define GPIOD_PIN2 2U
108#define GPIOD_PIN3 3U
109#define GPIOD_PIN4 4U
110#define GPIOD_PIN5 5U
111#define GPIOD_PIN6 6U
112#define GPIOD_PIN7 7U
113#define GPIOD_PIN8 8U
114#define GPIOD_PIN9 9U
115#define GPIOD_PIN10 10U
116#define GPIOD_PIN11 11U
117#define GPIOD_PIN12 12U
118#define GPIOD_PIN13 13U
119#define GPIOD_PIN14 14U
120#define GPIOD_PIN15 15U
121
122#define GPIOE_PIN0 0U
123#define GPIOE_PIN1 1U
124#define GPIOE_PIN2 2U
125#define GPIOE_PIN3 3U
126#define GPIOE_PIN4 4U
127#define GPIOE_PIN5 5U
128#define GPIOE_PIN6 6U
129#define GPIOE_PIN7 7U
130#define GPIOE_PIN8 8U
131#define GPIOE_PIN9 9U
132#define GPIOE_PIN10 10U
133#define GPIOE_PIN11 11U
134#define GPIOE_PIN12 12U
135#define GPIOE_PIN13 13U
136#define GPIOE_PIN14 14U
137#define GPIOE_PIN15 15U
138
139#define GPIOF_I2C2_SDA 0U
140#define GPIOF_I2C2_SCL 1U
141#define GPIOF_PIN2 2U
142#define GPIOF_PIN3 3U
143#define GPIOF_PIN4 4U
144#define GPIOF_PIN5 5U
145#define GPIOF_PIN6 6U
146#define GPIOF_PIN7 7U
147#define GPIOF_PIN8 8U
148#define GPIOF_PIN9 9U
149#define GPIOF_PIN10 10U
150#define GPIOF_PIN11 11U
151#define GPIOF_PIN12 12U
152#define GPIOF_PIN13 13U
153#define GPIOF_PIN14 14U
154#define GPIOF_PIN15 15U
155
156#define GPIOG_PIN0 0U
157#define GPIOG_PIN1 1U
158#define GPIOG_PIN2 2U
159#define GPIOG_PIN3 3U
160#define GPIOG_PIN4 4U
161#define GPIOG_PIN5 5U
162#define GPIOG_PIN6 6U
163#define GPIOG_PIN7 7U
164#define GPIOG_PIN8 8U
165#define GPIOG_PIN9 9U
166#define GPIOG_PIN10 10U
167#define GPIOG_PIN11 11U
168#define GPIOG_PIN12 12U
169#define GPIOG_PIN13 13U
170#define GPIOG_PIN14 14U
171#define GPIOG_PIN15 15U
172
173#define GPIOH_PIN0 0U
174#define GPIOH_PIN1 1U
175#define GPIOH_PIN2 2U
176#define GPIOH_PIN3 3U
177#define GPIOH_PIN4 4U
178#define GPIOH_PIN5 5U
179#define GPIOH_PIN6 6U
180#define GPIOH_PIN7 7U
181#define GPIOH_PIN8 8U
182#define GPIOH_PIN9 9U
183#define GPIOH_PIN10 10U
184#define GPIOH_PIN11 11U
185#define GPIOH_PIN12 12U
186#define GPIOH_PIN13 13U
187#define GPIOH_PIN14 14U
188#define GPIOH_PIN15 15U
189
190/*
191 * IO lines assignments.
192 */
193#define LINE_L3GD20_SDI PAL_LINE(GPIOA, 7U)
194#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
195#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
196#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
197#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
198
199#define LINE_PIN6 PAL_LINE(GPIOF, 0U)
200#define LINE_PIN7 PAL_LINE(GPIOF, 1U)
201
202#define LINE_CAPS_LOCK PAL_LINE(GPIOB, 7U)
203
204
205/*
206 * I/O ports initial setup, this configuration is established soon after reset
207 * in the initialization code.
208 * Please refer to the STM32 Reference Manual for details.
209 */
210#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
211#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
212#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
213#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
214#define PIN_ODR_LOW(n) (0U << (n))
215#define PIN_ODR_HIGH(n) (1U << (n))
216#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
217#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
218#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
219#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
220#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
221#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
222#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
223#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
224#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
225#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
226
227/*
228 * GPIOA setup:
229 *
230 * PA0 - NC
231 * PA1 - NC
232 * PA2 - COL1
233 * PA3 - COL2
234 * PA4 - SPEAKER1
235 * PA5 - SPEAKER2
236 * PA6 - COL3
237 * PA7 - COL8
238 * PA8 - COL6
239 * PA9 - COL7
240 * PA10 - ROW5
241 * PA11 - USB_DM (alternate 14).
242 * PA12 - USB_DP (alternate 14).
243 * PA13 - SWDIO (alternate 0).
244 * PA14 - SWCLK (alternate 0).
245 * PA15 - ROW4
246 */
247#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_PIN0) | \
248 PIN_MODE_INPUT(GPIOA_PIN1) | \
249 PIN_MODE_INPUT(GPIOA_PIN2) | \
250 PIN_MODE_INPUT(GPIOA_PIN3) | \
251 PIN_MODE_INPUT(GPIOA_PIN4) | \
252 PIN_MODE_INPUT(GPIOA_PIN5) | \
253 PIN_MODE_INPUT(GPIOA_PIN6) | \
254 PIN_MODE_INPUT(GPIOA_PIN7) | \
255 PIN_MODE_INPUT(GPIOA_PIN8) | \
256 PIN_MODE_INPUT(GPIOA_PIN9) | \
257 PIN_MODE_INPUT(GPIOA_PIN10) | \
258 PIN_MODE_ALTERNATE(GPIOA_USB_DM) | \
259 PIN_MODE_ALTERNATE(GPIOA_USB_DP) | \
260 PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
261 PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
262 PIN_MODE_INPUT(GPIOA_PIN15))
263#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \
264 PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
265 PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
266 PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
267 PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
268 PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
269 PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
270 PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
271 PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
272 PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \
273 PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \
274 PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \
275 PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \
276 PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
277 PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
278 PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
279#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_PIN0) | \
280 PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \
281 PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \
282 PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \
283 PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \
284 PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \
285 PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \
286 PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \
287 PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \
288 PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \
289 PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \
290 PIN_OSPEED_HIGH(GPIOA_USB_DM) | \
291 PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \
292 PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
293 PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
294 PIN_OSPEED_VERYLOW(GPIOA_PIN15))
295#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_PIN0) | \
296 PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
297 PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
298 PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
299 PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
300 PIN_PUPDR_FLOATING(GPIOA_PIN5) | \
301 PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
302 PIN_PUPDR_FLOATING(GPIOA_PIN7) | \
303 PIN_PUPDR_PULLUP(GPIOA_PIN8) | \
304 PIN_PUPDR_PULLUP(GPIOA_PIN9) | \
305 PIN_PUPDR_PULLUP(GPIOA_PIN10) | \
306 PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \
307 PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \
308 PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \
309 PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \
310 PIN_PUPDR_PULLUP(GPIOA_PIN15))
311#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \
312 PIN_ODR_HIGH(GPIOA_PIN1) | \
313 PIN_ODR_HIGH(GPIOA_PIN2) | \
314 PIN_ODR_HIGH(GPIOA_PIN3) | \
315 PIN_ODR_HIGH(GPIOA_PIN4) | \
316 PIN_ODR_HIGH(GPIOA_PIN5) | \
317 PIN_ODR_HIGH(GPIOA_PIN6) | \
318 PIN_ODR_HIGH(GPIOA_PIN7) | \
319 PIN_ODR_HIGH(GPIOA_PIN8) | \
320 PIN_ODR_HIGH(GPIOA_PIN9) | \
321 PIN_ODR_HIGH(GPIOA_PIN10) | \
322 PIN_ODR_HIGH(GPIOA_USB_DM) | \
323 PIN_ODR_HIGH(GPIOA_USB_DP) | \
324 PIN_ODR_HIGH(GPIOA_SWDIO) | \
325 PIN_ODR_HIGH(GPIOA_SWCLK) | \
326 PIN_ODR_HIGH(GPIOA_PIN15))
327#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0) | \
328 PIN_AFIO_AF(GPIOA_PIN1, 0) | \
329 PIN_AFIO_AF(GPIOA_PIN2, 0) | \
330 PIN_AFIO_AF(GPIOA_PIN3, 0) | \
331 PIN_AFIO_AF(GPIOA_PIN4, 0) | \
332 PIN_AFIO_AF(GPIOA_PIN5, 5) | \
333 PIN_AFIO_AF(GPIOA_PIN6, 5) | \
334 PIN_AFIO_AF(GPIOA_PIN7, 5))
335#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0) | \
336 PIN_AFIO_AF(GPIOA_PIN9, 0) | \
337 PIN_AFIO_AF(GPIOA_PIN10, 0) | \
338 PIN_AFIO_AF(GPIOA_USB_DM, 14) | \
339 PIN_AFIO_AF(GPIOA_USB_DP, 14) | \
340 PIN_AFIO_AF(GPIOA_SWDIO, 0) | \
341 PIN_AFIO_AF(GPIOA_SWCLK, 0) | \
342 PIN_AFIO_AF(GPIOA_PIN15, 0))
343
344/*
345 * GPIOB setup:
346 *
347 * PB0 - PIN0 (input pullup).
348 * PB1 - PIN1 (input pullup).
349 * PB2 - PIN2 (input pullup).
350 * PB3 - PIN3 (alternate 0).
351 * PB4 - PIN4 (input pullup).
352 * PB5 - PIN5 (input pullup).
353 * PB6 - PIN6 LSM303DLHC_SCL (alternate 4).
354 * PB7 - PIN7 LSM303DLHC_SDA (alternate 4).
355 * PB8 - PIN8 (input pullup).
356 * PB9 - PIN9 (input pullup).
357 * PB10 - PIN10 (input pullup).
358 * PB11 - PIN11 (input pullup).
359 * PB12 - PIN12 (input pullup).
360 * PB13 - PIN13 (input pullup).
361 * PB14 - PIN14 (input pullup).
362 * PB15 - PIN15 (input pullup).
363 */
364#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
365 PIN_MODE_INPUT(GPIOB_PIN1) | \
366 PIN_MODE_INPUT(GPIOB_PIN2) | \
367 PIN_MODE_ALTERNATE(GPIOB_PIN3) | \
368 PIN_MODE_INPUT(GPIOB_PIN4) | \
369 PIN_MODE_INPUT(GPIOB_PIN5) | \
370 PIN_MODE_ALTERNATE(GPIOB_PIN6) | \
371 PIN_MODE_OUTPUT(GPIOB_PIN7) | \
372 PIN_MODE_INPUT(GPIOB_PIN8) | \
373 PIN_MODE_INPUT(GPIOB_PIN9) | \
374 PIN_MODE_INPUT(GPIOB_PIN10) | \
375 PIN_MODE_INPUT(GPIOB_PIN11) | \
376 PIN_MODE_INPUT(GPIOB_PIN12) | \
377 PIN_MODE_INPUT(GPIOB_PIN13) | \
378 PIN_MODE_INPUT(GPIOB_PIN14) | \
379 PIN_MODE_INPUT(GPIOB_PIN15))
380#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
381 PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
382 PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
383 PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
384 PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
385 PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
386 PIN_OTYPE_OPENDRAIN(GPIOB_PIN6) | \
387 PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
388 PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
389 PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
390 PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
391 PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
392 PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
393 PIN_OTYPE_PUSHPULL(GPIOB_PIN13) | \
394 PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \
395 PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
396#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \
397 PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \
398 PIN_OSPEED_VERYLOW(GPIOB_PIN2) | \
399 PIN_OSPEED_HIGH(GPIOB_PIN3) | \
400 PIN_OSPEED_VERYLOW(GPIOB_PIN4) | \
401 PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \
402 PIN_OSPEED_HIGH(GPIOB_PIN6) | \
403 PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \
404 PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \
405 PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \
406 PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \
407 PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \
408 PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \
409 PIN_OSPEED_VERYLOW(GPIOB_PIN13) | \
410 PIN_OSPEED_VERYLOW(GPIOB_PIN14) | \
411 PIN_OSPEED_VERYLOW(GPIOB_PIN15))
412#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
413 PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
414 PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
415 PIN_PUPDR_FLOATING(GPIOB_PIN3) | \
416 PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
417 PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
418 PIN_PUPDR_FLOATING(GPIOB_PIN6) | \
419 PIN_PUPDR_PULLDOWN(GPIOB_PIN7) | \
420 PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
421 PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
422 PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
423 PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
424 PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
425 PIN_PUPDR_PULLUP(GPIOB_PIN13) | \
426 PIN_PUPDR_PULLUP(GPIOB_PIN14) | \
427 PIN_PUPDR_PULLUP(GPIOB_PIN15))
428#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
429 PIN_ODR_HIGH(GPIOB_PIN1) | \
430 PIN_ODR_HIGH(GPIOB_PIN2) | \
431 PIN_ODR_HIGH(GPIOB_PIN3) | \
432 PIN_ODR_HIGH(GPIOB_PIN4) | \
433 PIN_ODR_HIGH(GPIOB_PIN5) | \
434 PIN_ODR_HIGH(GPIOB_PIN6) | \
435 PIN_ODR_LOW(GPIOB_PIN7) | \
436 PIN_ODR_HIGH(GPIOB_PIN8) | \
437 PIN_ODR_HIGH(GPIOB_PIN9) | \
438 PIN_ODR_HIGH(GPIOB_PIN10) | \
439 PIN_ODR_HIGH(GPIOB_PIN11) | \
440 PIN_ODR_HIGH(GPIOB_PIN12) | \
441 PIN_ODR_HIGH(GPIOB_PIN13) | \
442 PIN_ODR_HIGH(GPIOB_PIN14) | \
443 PIN_ODR_HIGH(GPIOB_PIN15))
444#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0) | \
445 PIN_AFIO_AF(GPIOB_PIN1, 0) | \
446 PIN_AFIO_AF(GPIOB_PIN2, 0) | \
447 PIN_AFIO_AF(GPIOB_PIN3, 0) | \
448 PIN_AFIO_AF(GPIOB_PIN4, 0) | \
449 PIN_AFIO_AF(GPIOB_PIN5, 0) | \
450 PIN_AFIO_AF(GPIOB_PIN6, 4) | \
451 PIN_AFIO_AF(GPIOB_PIN7, 0))
452#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0) | \
453 PIN_AFIO_AF(GPIOB_PIN9, 0) | \
454 PIN_AFIO_AF(GPIOB_PIN10, 0) | \
455 PIN_AFIO_AF(GPIOB_PIN11, 0) | \
456 PIN_AFIO_AF(GPIOB_PIN12, 0) | \
457 PIN_AFIO_AF(GPIOB_PIN13, 0) | \
458 PIN_AFIO_AF(GPIOB_PIN14, 0) | \
459 PIN_AFIO_AF(GPIOB_PIN15, 0))
460
461/*
462 * GPIOC setup:
463 *
464 * PC0 - PIN0 (input pullup).
465 * PC1 - PIN1 (input pullup).
466 * PC2 - PIN2 (input pullup).
467 * PC3 - PIN3 (input pullup).
468 * PC4 - PIN4 (input pullup).
469 * PC5 - PIN5 (input pullup).
470 * PC6 - PIN6 (input pullup).
471 * PC7 - PIN7 (input pullup).
472 * PC8 - PIN8 (input pullup).
473 * PC9 - PIN9 (input pullup).
474 * PC10 - PIN10 (input pullup).
475 * PC11 - PIN11 (input pullup).
476 * PC12 - PIN12 (input pullup).
477 * PC13 - PIN13 (input pullup).
478 * PC14 - PIN14 (input floating).
479 * PC15 - PIN15 (input floating).
480 */
481#define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_PIN0) | \
482 PIN_MODE_INPUT(GPIOC_PIN1) | \
483 PIN_MODE_INPUT(GPIOC_PIN2) | \
484 PIN_MODE_INPUT(GPIOC_PIN3) | \
485 PIN_MODE_INPUT(GPIOC_PIN4) | \
486 PIN_MODE_INPUT(GPIOC_PIN5) | \
487 PIN_MODE_INPUT(GPIOC_PIN6) | \
488 PIN_MODE_INPUT(GPIOC_PIN7) | \
489 PIN_MODE_INPUT(GPIOC_PIN8) | \
490 PIN_MODE_INPUT(GPIOC_PIN9) | \
491 PIN_MODE_INPUT(GPIOC_PIN10) | \
492 PIN_MODE_INPUT(GPIOC_PIN11) | \
493 PIN_MODE_INPUT(GPIOC_PIN12) | \
494 PIN_MODE_INPUT(GPIOC_PIN13) | \
495 PIN_MODE_INPUT(GPIOC_PIN14) | \
496 PIN_MODE_INPUT(GPIOC_PIN15))
497#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) | \
498 PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
499 PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
500 PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
501 PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
502 PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
503 PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \
504 PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \
505 PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \
506 PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \
507 PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
508 PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
509 PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
510 PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
511 PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \
512 PIN_OTYPE_PUSHPULL(GPIOC_PIN15))
513#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOC_PIN0) | \
514 PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \
515 PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \
516 PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \
517 PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \
518 PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \
519 PIN_OSPEED_VERYLOW(GPIOC_PIN6) | \
520 PIN_OSPEED_VERYLOW(GPIOC_PIN7) | \
521 PIN_OSPEED_VERYLOW(GPIOC_PIN8) | \
522 PIN_OSPEED_VERYLOW(GPIOC_PIN9) | \
523 PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \
524 PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \
525 PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \
526 PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \
527 PIN_OSPEED_HIGH(GPIOC_PIN14) | \
528 PIN_OSPEED_HIGH(GPIOC_PIN15))
529#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_PIN0) | \
530 PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
531 PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
532 PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
533 PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
534 PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
535 PIN_PUPDR_PULLUP(GPIOC_PIN6) | \
536 PIN_PUPDR_PULLUP(GPIOC_PIN7) | \
537 PIN_PUPDR_PULLUP(GPIOC_PIN8) | \
538 PIN_PUPDR_PULLUP(GPIOC_PIN9) | \
539 PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
540 PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
541 PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
542 PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
543 PIN_PUPDR_FLOATING(GPIOC_PIN14) | \
544 PIN_PUPDR_FLOATING(GPIOC_PIN15))
545#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_PIN0) | \
546 PIN_ODR_HIGH(GPIOC_PIN1) | \
547 PIN_ODR_HIGH(GPIOC_PIN2) | \
548 PIN_ODR_HIGH(GPIOC_PIN3) | \
549 PIN_ODR_HIGH(GPIOC_PIN4) | \
550 PIN_ODR_HIGH(GPIOC_PIN5) | \
551 PIN_ODR_HIGH(GPIOC_PIN6) | \
552 PIN_ODR_HIGH(GPIOC_PIN7) | \
553 PIN_ODR_HIGH(GPIOC_PIN8) | \
554 PIN_ODR_HIGH(GPIOC_PIN9) | \
555 PIN_ODR_HIGH(GPIOC_PIN10) | \
556 PIN_ODR_HIGH(GPIOC_PIN11) | \
557 PIN_ODR_HIGH(GPIOC_PIN12) | \
558 PIN_ODR_HIGH(GPIOC_PIN13) | \
559 PIN_ODR_HIGH(GPIOC_PIN14) | \
560 PIN_ODR_HIGH(GPIOC_PIN15))
561#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_PIN0, 0) | \
562 PIN_AFIO_AF(GPIOC_PIN1, 0) | \
563 PIN_AFIO_AF(GPIOC_PIN2, 0) | \
564 PIN_AFIO_AF(GPIOC_PIN3, 0) | \
565 PIN_AFIO_AF(GPIOC_PIN4, 0) | \
566 PIN_AFIO_AF(GPIOC_PIN5, 0) | \
567 PIN_AFIO_AF(GPIOC_PIN6, 0) | \
568 PIN_AFIO_AF(GPIOC_PIN7, 0))
569#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0) | \
570 PIN_AFIO_AF(GPIOC_PIN9, 0) | \
571 PIN_AFIO_AF(GPIOC_PIN10, 0) | \
572 PIN_AFIO_AF(GPIOC_PIN11, 0) | \
573 PIN_AFIO_AF(GPIOC_PIN12, 0) | \
574 PIN_AFIO_AF(GPIOC_PIN13, 0) | \
575 PIN_AFIO_AF(GPIOC_PIN14, 0) | \
576 PIN_AFIO_AF(GPIOC_PIN15, 0))
577
578/*
579 * GPIOD setup:
580 *
581 * PD0 - PIN0 (input pullup).
582 * PD1 - PIN1 (input pullup).
583 * PD2 - PIN2 (input pullup).
584 * PD3 - PIN3 (input pullup).
585 * PD4 - PIN4 (input pullup).
586 * PD5 - PIN5 (input pullup).
587 * PD6 - PIN6 (input pullup).
588 * PD7 - PIN7 (input pullup).
589 * PD8 - PIN8 (input pullup).
590 * PD9 - PIN9 (input pullup).
591 * PD11 - PIN10 (input pullup).
592 * PD11 - PIN11 (input pullup).
593 * PD12 - PIN12 (input pullup).
594 * PD13 - PIN13 (input pullup).
595 * PD14 - PIN14 (input pullup).
596 * PD15 - PIN15 (input pullup).
597 */
598#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
599 PIN_MODE_INPUT(GPIOD_PIN1) | \
600 PIN_MODE_INPUT(GPIOD_PIN2) | \
601 PIN_MODE_INPUT(GPIOD_PIN3) | \
602 PIN_MODE_INPUT(GPIOD_PIN4) | \
603 PIN_MODE_INPUT(GPIOD_PIN5) | \
604 PIN_MODE_INPUT(GPIOD_PIN6) | \
605 PIN_MODE_INPUT(GPIOD_PIN7) | \
606 PIN_MODE_INPUT(GPIOD_PIN8) | \
607 PIN_MODE_INPUT(GPIOD_PIN9) | \
608 PIN_MODE_INPUT(GPIOD_PIN10) | \
609 PIN_MODE_INPUT(GPIOD_PIN11) | \
610 PIN_MODE_INPUT(GPIOD_PIN12) | \
611 PIN_MODE_INPUT(GPIOD_PIN13) | \
612 PIN_MODE_INPUT(GPIOD_PIN14) | \
613 PIN_MODE_INPUT(GPIOD_PIN15))
614#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
615 PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
616 PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
617 PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
618 PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
619 PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
620 PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
621 PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
622 PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
623 PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
624 PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
625 PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
626 PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
627 PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
628 PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
629 PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
630#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \
631 PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \
632 PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \
633 PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \
634 PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \
635 PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \
636 PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \
637 PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \
638 PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \
639 PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \
640 PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \
641 PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \
642 PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \
643 PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \
644 PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \
645 PIN_OSPEED_VERYLOW(GPIOD_PIN15))
646#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
647 PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
648 PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
649 PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
650 PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
651 PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
652 PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
653 PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
654 PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
655 PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
656 PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
657 PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
658 PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
659 PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
660 PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
661 PIN_PUPDR_PULLUP(GPIOD_PIN15))
662#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
663 PIN_ODR_HIGH(GPIOD_PIN1) | \
664 PIN_ODR_HIGH(GPIOD_PIN2) | \
665 PIN_ODR_HIGH(GPIOD_PIN3) | \
666 PIN_ODR_HIGH(GPIOD_PIN4) | \
667 PIN_ODR_HIGH(GPIOD_PIN5) | \
668 PIN_ODR_HIGH(GPIOD_PIN6) | \
669 PIN_ODR_HIGH(GPIOD_PIN7) | \
670 PIN_ODR_HIGH(GPIOD_PIN8) | \
671 PIN_ODR_HIGH(GPIOD_PIN9) | \
672 PIN_ODR_HIGH(GPIOD_PIN10) | \
673 PIN_ODR_HIGH(GPIOD_PIN11) | \
674 PIN_ODR_HIGH(GPIOD_PIN12) | \
675 PIN_ODR_HIGH(GPIOD_PIN13) | \
676 PIN_ODR_HIGH(GPIOD_PIN14) | \
677 PIN_ODR_HIGH(GPIOD_PIN15))
678#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0) | \
679 PIN_AFIO_AF(GPIOD_PIN1, 0) | \
680 PIN_AFIO_AF(GPIOD_PIN2, 0) | \
681 PIN_AFIO_AF(GPIOD_PIN3, 0) | \
682 PIN_AFIO_AF(GPIOD_PIN4, 0) | \
683 PIN_AFIO_AF(GPIOD_PIN5, 0) | \
684 PIN_AFIO_AF(GPIOD_PIN6, 0) | \
685 PIN_AFIO_AF(GPIOD_PIN7, 0))
686#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0) | \
687 PIN_AFIO_AF(GPIOD_PIN9, 0) | \
688 PIN_AFIO_AF(GPIOD_PIN10, 0) | \
689 PIN_AFIO_AF(GPIOD_PIN11, 0) | \
690 PIN_AFIO_AF(GPIOD_PIN12, 0) | \
691 PIN_AFIO_AF(GPIOD_PIN13, 0) | \
692 PIN_AFIO_AF(GPIOD_PIN14, 0) | \
693 PIN_AFIO_AF(GPIOD_PIN15, 0))
694
695/*
696 * GPIOE setup:
697 *
698 * PE0 - PIN0 (input pullup).
699 * PE1 - PIN1 (input pullup).
700 * PE2 - PIN2 (input pullup).
701 * PE3 - PIN3 L3GD20_CS (output pushpull maximum).
702 * PE4 - PIN4 (input pullup).
703 * PE5 - PIN5 (input pullup).
704 * PE6 - PIN6 (input pullup).
705 * PE7 - PIN7 (input pullup).
706 * PE8 - PIN8 (output pushpull maximum).
707 * PE9 - PIN9 (output pushpull maximum).
708 * PE10 - PIN10 (output pushpull maximum).
709 * PE11 - PIN11 (output pushpull maximum).
710 * PE12 - PIN12 (output pushpull maximum).
711 * PE13 - PIN13 (output pushpull maximum).
712 * PE14 - PIN14 (output pushpull maximum).
713 * PE15 - PIN15 (output pushpull maximum).
714 */
715#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
716 PIN_MODE_INPUT(GPIOE_PIN1) | \
717 PIN_MODE_INPUT(GPIOE_PIN2) |\
718 PIN_MODE_OUTPUT(GPIOE_PIN3) | \
719 PIN_MODE_INPUT(GPIOE_PIN4) |\
720 PIN_MODE_INPUT(GPIOE_PIN5) |\
721 PIN_MODE_INPUT(GPIOE_PIN6) | \
722 PIN_MODE_INPUT(GPIOE_PIN7) | \
723 PIN_MODE_OUTPUT(GPIOE_PIN8) | \
724 PIN_MODE_OUTPUT(GPIOE_PIN9) | \
725 PIN_MODE_OUTPUT(GPIOE_PIN10) | \
726 PIN_MODE_OUTPUT(GPIOE_PIN11) | \
727 PIN_MODE_OUTPUT(GPIOE_PIN12) | \
728 PIN_MODE_OUTPUT(GPIOE_PIN13) | \
729 PIN_MODE_OUTPUT(GPIOE_PIN14) | \
730 PIN_MODE_OUTPUT(GPIOE_PIN15))
731#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) |\
732 PIN_OTYPE_PUSHPULL(GPIOE_PIN1) |\
733 PIN_OTYPE_PUSHPULL(GPIOE_PIN2) |\
734 PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
735 PIN_OTYPE_PUSHPULL(GPIOE_PIN4) |\
736 PIN_OTYPE_PUSHPULL(GPIOE_PIN5) |\
737 PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
738 PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
739 PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
740 PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
741 PIN_OTYPE_PUSHPULL(GPIOE_PIN10) |\
742 PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
743 PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
744 PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
745 PIN_OTYPE_PUSHPULL(GPIOE_PIN14) |\
746 PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
747#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) |\
748 PIN_OSPEED_VERYLOW(GPIOE_PIN1) |\
749 PIN_OSPEED_VERYLOW(GPIOE_PIN2) |\
750 PIN_OSPEED_HIGH(GPIOE_PIN3) | \
751 PIN_OSPEED_VERYLOW(GPIOE_PIN4) |\
752 PIN_OSPEED_VERYLOW(GPIOE_PIN5) |\
753 PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \
754 PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \
755 PIN_OSPEED_HIGH(GPIOE_PIN8) | \
756 PIN_OSPEED_HIGH(GPIOE_PIN9) | \
757 PIN_OSPEED_HIGH(GPIOE_PIN10) | \
758 PIN_OSPEED_HIGH(GPIOE_PIN11) | \
759 PIN_OSPEED_HIGH(GPIOE_PIN12) | \
760 PIN_OSPEED_HIGH(GPIOE_PIN13) | \
761 PIN_OSPEED_HIGH(GPIOE_PIN14) | \
762 PIN_OSPEED_HIGH(GPIOE_PIN15))
763#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
764 PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
765 PIN_PUPDR_PULLUP(GPIOE_PIN2) |\
766 PIN_PUPDR_FLOATING(GPIOE_PIN3) | \
767 PIN_PUPDR_PULLUP(GPIOE_PIN4) |\
768 PIN_PUPDR_PULLUP(GPIOE_PIN5) |\
769 PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
770 PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
771 PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
772 PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
773 PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
774 PIN_PUPDR_FLOATING(GPIOE_PIN11) | \
775 PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
776 PIN_PUPDR_FLOATING(GPIOE_PIN13) | \
777 PIN_PUPDR_FLOATING(GPIOE_PIN14) |\
778 PIN_PUPDR_FLOATING(GPIOE_PIN15))
779#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
780 PIN_ODR_HIGH(GPIOE_PIN1) | \
781 PIN_ODR_HIGH(GPIOE_PIN2) | \
782 PIN_ODR_HIGH(GPIOE_PIN3) | \
783 PIN_ODR_HIGH(GPIOE_PIN4) | \
784 PIN_ODR_HIGH(GPIOE_PIN5) | \
785 PIN_ODR_HIGH(GPIOE_PIN6) | \
786 PIN_ODR_HIGH(GPIOE_PIN7) | \
787 PIN_ODR_LOW(GPIOE_PIN8) | \
788 PIN_ODR_LOW(GPIOE_PIN9) | \
789 PIN_ODR_LOW(GPIOE_PIN10) | \
790 PIN_ODR_LOW(GPIOE_PIN11) | \
791 PIN_ODR_LOW(GPIOE_PIN12) | \
792 PIN_ODR_LOW(GPIOE_PIN13) | \
793 PIN_ODR_LOW(GPIOE_PIN14) | \
794 PIN_ODR_LOW(GPIOE_PIN15))
795#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0) | \
796 PIN_AFIO_AF(GPIOE_PIN1, 0) | \
797 PIN_AFIO_AF(GPIOE_PIN2, 0) |\
798 PIN_AFIO_AF(GPIOE_PIN3, 0) | \
799 PIN_AFIO_AF(GPIOE_PIN4, 0) |\
800 PIN_AFIO_AF(GPIOE_PIN5, 0) |\
801 PIN_AFIO_AF(GPIOE_PIN6, 0) | \
802 PIN_AFIO_AF(GPIOE_PIN7, 0))
803#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0) | \
804 PIN_AFIO_AF(GPIOE_PIN9, 0) | \
805 PIN_AFIO_AF(GPIOE_PIN10, 0) | \
806 PIN_AFIO_AF(GPIOE_PIN11, 0) | \
807 PIN_AFIO_AF(GPIOE_PIN12, 0) | \
808 PIN_AFIO_AF(GPIOE_PIN13, 0) | \
809 PIN_AFIO_AF(GPIOE_PIN14, 0) | \
810 PIN_AFIO_AF(GPIOE_PIN15, 0))
811
812/*
813 * GPIOF setup:
814 *
815 * PF0 - I2C2_SDA (input floating).
816 * PF1 - I2C2_SCL (input floating).
817 * PF2 - PIN2 (input pullup).
818 * PF3 - PIN3 (input pullup).
819 * PF4 - PIN4 (input pullup).
820 * PF5 - PIN5 (input pullup).
821 * PF6 - PIN6 (input pullup).
822 * PF7 - PIN7 (input pullup).
823 * PF8 - PIN8 (input pullup).
824 * PF9 - PIN9 (input pullup).
825 * PF10 - PIN10 (input pullup).
826 * PF11 - PIN11 (input pullup).
827 * PF12 - PIN12 (input pullup).
828 * PF13 - PIN13 (input pullup).
829 * PF14 - PIN14 (input pullup).
830 * PF15 - PIN15 (input pullup).
831 */
832#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_I2C2_SDA) | \
833 PIN_MODE_INPUT(GPIOF_I2C2_SCL) | \
834 PIN_MODE_INPUT(GPIOF_PIN2) | \
835 PIN_MODE_INPUT(GPIOF_PIN3) | \
836 PIN_MODE_INPUT(GPIOF_PIN4) | \
837 PIN_MODE_INPUT(GPIOF_PIN5) | \
838 PIN_MODE_INPUT(GPIOF_PIN6) | \
839 PIN_MODE_INPUT(GPIOF_PIN7) | \
840 PIN_MODE_INPUT(GPIOF_PIN8) | \
841 PIN_MODE_INPUT(GPIOF_PIN9) | \
842 PIN_MODE_INPUT(GPIOF_PIN10) | \
843 PIN_MODE_INPUT(GPIOF_PIN11) | \
844 PIN_MODE_INPUT(GPIOF_PIN12) | \
845 PIN_MODE_INPUT(GPIOF_PIN13) | \
846 PIN_MODE_INPUT(GPIOF_PIN14) | \
847 PIN_MODE_INPUT(GPIOF_PIN15))
848#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_I2C2_SDA) | \
849 PIN_OTYPE_PUSHPULL(GPIOF_I2C2_SCL) | \
850 PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
851 PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
852 PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
853 PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
854 PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
855 PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
856 PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
857 PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
858 PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
859 PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
860 PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
861 PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
862 PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
863 PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
864#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_HIGH(GPIOF_I2C2_SDA) | \
865 PIN_OSPEED_HIGH(GPIOF_I2C2_SCL) | \
866 PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \
867 PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \
868 PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \
869 PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \
870 PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \
871 PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \
872 PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \
873 PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \
874 PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \
875 PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \
876 PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \
877 PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \
878 PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \
879 PIN_OSPEED_VERYLOW(GPIOF_PIN15))
880#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_I2C2_SDA) | \
881 PIN_PUPDR_FLOATING(GPIOF_I2C2_SCL) | \
882 PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
883 PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
884 PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
885 PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
886 PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
887 PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
888 PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
889 PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
890 PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
891 PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
892 PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
893 PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
894 PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
895 PIN_PUPDR_PULLUP(GPIOF_PIN15))
896#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_I2C2_SDA) | \
897 PIN_ODR_HIGH(GPIOF_I2C2_SCL) | \
898 PIN_ODR_HIGH(GPIOF_PIN2) | \
899 PIN_ODR_HIGH(GPIOF_PIN3) | \
900 PIN_ODR_HIGH(GPIOF_PIN4) | \
901 PIN_ODR_HIGH(GPIOF_PIN5) | \
902 PIN_ODR_HIGH(GPIOF_PIN6) | \
903 PIN_ODR_HIGH(GPIOF_PIN7) | \
904 PIN_ODR_HIGH(GPIOF_PIN8) | \
905 PIN_ODR_HIGH(GPIOF_PIN9) | \
906 PIN_ODR_HIGH(GPIOF_PIN10) | \
907 PIN_ODR_HIGH(GPIOF_PIN11) | \
908 PIN_ODR_HIGH(GPIOF_PIN12) | \
909 PIN_ODR_HIGH(GPIOF_PIN13) | \
910 PIN_ODR_HIGH(GPIOF_PIN14) | \
911 PIN_ODR_HIGH(GPIOF_PIN15))
912#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_I2C2_SDA, 0) | \
913 PIN_AFIO_AF(GPIOF_I2C2_SCL, 0) | \
914 PIN_AFIO_AF(GPIOF_PIN2, 0) | \
915 PIN_AFIO_AF(GPIOF_PIN3, 0) | \
916 PIN_AFIO_AF(GPIOF_PIN4, 0) | \
917 PIN_AFIO_AF(GPIOF_PIN5, 0) | \
918 PIN_AFIO_AF(GPIOF_PIN6, 0) | \
919 PIN_AFIO_AF(GPIOF_PIN7, 0))
920#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0) | \
921 PIN_AFIO_AF(GPIOF_PIN9, 0) | \
922 PIN_AFIO_AF(GPIOF_PIN10, 0) | \
923 PIN_AFIO_AF(GPIOF_PIN11, 0) | \
924 PIN_AFIO_AF(GPIOF_PIN12, 0) | \
925 PIN_AFIO_AF(GPIOF_PIN13, 0) | \
926 PIN_AFIO_AF(GPIOF_PIN14, 0) | \
927 PIN_AFIO_AF(GPIOF_PIN15, 0))
928
929/*
930 * GPIOG setup:
931 *
932 * PG0 - PIN0 (input pullup).
933 * PG1 - PIN1 (input pullup).
934 * PG2 - PIN2 (input pullup).
935 * PG3 - PIN3 (input pullup).
936 * PG4 - PIN4 (input pullup).
937 * PG5 - PIN5 (input pullup).
938 * PG6 - PIN6 (input pullup).
939 * PG7 - PIN7 (input pullup).
940 * PG8 - PIN8 (input pullup).
941 * PG9 - PIN9 (input pullup).
942 * PG10 - PIN10 (input pullup).
943 * PG11 - PIN11 (input pullup).
944 * PG12 - PIN12 (input pullup).
945 * PG13 - PIN13 (input pullup).
946 * PG14 - PIN14 (input pullup).
947 * PG15 - PIN15 (input pullup).
948 */
949#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \
950 PIN_MODE_INPUT(GPIOG_PIN1) | \
951 PIN_MODE_INPUT(GPIOG_PIN2) | \
952 PIN_MODE_INPUT(GPIOG_PIN3) | \
953 PIN_MODE_INPUT(GPIOG_PIN4) | \
954 PIN_MODE_INPUT(GPIOG_PIN5) | \
955 PIN_MODE_INPUT(GPIOG_PIN6) | \
956 PIN_MODE_INPUT(GPIOG_PIN7) | \
957 PIN_MODE_INPUT(GPIOG_PIN8) | \
958 PIN_MODE_INPUT(GPIOG_PIN9) | \
959 PIN_MODE_INPUT(GPIOG_PIN10) | \
960 PIN_MODE_INPUT(GPIOG_PIN11) | \
961 PIN_MODE_INPUT(GPIOG_PIN12) | \
962 PIN_MODE_INPUT(GPIOG_PIN13) | \
963 PIN_MODE_INPUT(GPIOG_PIN14) | \
964 PIN_MODE_INPUT(GPIOG_PIN15))
965#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \
966 PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \
967 PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \
968 PIN_OTYPE_PUSHPULL(GPIOG_PIN3) | \
969 PIN_OTYPE_PUSHPULL(GPIOG_PIN4) | \
970 PIN_OTYPE_PUSHPULL(GPIOG_PIN5) | \
971 PIN_OTYPE_PUSHPULL(GPIOG_PIN6) | \
972 PIN_OTYPE_PUSHPULL(GPIOG_PIN7) | \
973 PIN_OTYPE_PUSHPULL(GPIOG_PIN8) | \
974 PIN_OTYPE_PUSHPULL(GPIOG_PIN9) | \
975 PIN_OTYPE_PUSHPULL(GPIOG_PIN10) | \
976 PIN_OTYPE_PUSHPULL(GPIOG_PIN11) | \
977 PIN_OTYPE_PUSHPULL(GPIOG_PIN12) | \
978 PIN_OTYPE_PUSHPULL(GPIOG_PIN13) | \
979 PIN_OTYPE_PUSHPULL(GPIOG_PIN14) | \
980 PIN_OTYPE_PUSHPULL(GPIOG_PIN15))
981#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOG_PIN0) | \
982 PIN_OSPEED_VERYLOW(GPIOG_PIN1) | \
983 PIN_OSPEED_VERYLOW(GPIOG_PIN2) | \
984 PIN_OSPEED_VERYLOW(GPIOG_PIN3) | \
985 PIN_OSPEED_VERYLOW(GPIOG_PIN4) | \
986 PIN_OSPEED_VERYLOW(GPIOG_PIN5) | \
987 PIN_OSPEED_VERYLOW(GPIOG_PIN6) | \
988 PIN_OSPEED_VERYLOW(GPIOG_PIN7) | \
989 PIN_OSPEED_VERYLOW(GPIOG_PIN8) | \
990 PIN_OSPEED_VERYLOW(GPIOG_PIN9) | \
991 PIN_OSPEED_VERYLOW(GPIOG_PIN10) | \
992 PIN_OSPEED_VERYLOW(GPIOG_PIN11) | \
993 PIN_OSPEED_VERYLOW(GPIOG_PIN12) | \
994 PIN_OSPEED_VERYLOW(GPIOG_PIN13) | \
995 PIN_OSPEED_VERYLOW(GPIOG_PIN14) | \
996 PIN_OSPEED_VERYLOW(GPIOG_PIN15))
997#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLUP(GPIOG_PIN0) | \
998 PIN_PUPDR_PULLUP(GPIOG_PIN1) | \
999 PIN_PUPDR_PULLUP(GPIOG_PIN2) | \
1000 PIN_PUPDR_PULLUP(GPIOG_PIN3) | \
1001 PIN_PUPDR_PULLUP(GPIOG_PIN4) | \
1002 PIN_PUPDR_PULLUP(GPIOG_PIN5) | \
1003 PIN_PUPDR_PULLUP(GPIOG_PIN6) | \
1004 PIN_PUPDR_PULLUP(GPIOG_PIN7) | \
1005 PIN_PUPDR_PULLUP(GPIOG_PIN8) | \
1006 PIN_PUPDR_PULLUP(GPIOG_PIN9) | \
1007 PIN_PUPDR_PULLUP(GPIOG_PIN10) | \
1008 PIN_PUPDR_PULLUP(GPIOG_PIN11) | \
1009 PIN_PUPDR_PULLUP(GPIOG_PIN12) | \
1010 PIN_PUPDR_PULLUP(GPIOG_PIN13) | \
1011 PIN_PUPDR_PULLUP(GPIOG_PIN14) | \
1012 PIN_PUPDR_PULLUP(GPIOG_PIN15))
1013#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \
1014 PIN_ODR_HIGH(GPIOG_PIN1) | \
1015 PIN_ODR_HIGH(GPIOG_PIN2) | \
1016 PIN_ODR_HIGH(GPIOG_PIN3) | \
1017 PIN_ODR_HIGH(GPIOG_PIN4) | \
1018 PIN_ODR_HIGH(GPIOG_PIN5) | \
1019 PIN_ODR_HIGH(GPIOG_PIN6) | \
1020 PIN_ODR_HIGH(GPIOG_PIN7) | \
1021 PIN_ODR_HIGH(GPIOG_PIN8) | \
1022 PIN_ODR_HIGH(GPIOG_PIN9) | \
1023 PIN_ODR_HIGH(GPIOG_PIN10) | \
1024 PIN_ODR_HIGH(GPIOG_PIN11) | \
1025 PIN_ODR_HIGH(GPIOG_PIN12) | \
1026 PIN_ODR_HIGH(GPIOG_PIN13) | \
1027 PIN_ODR_HIGH(GPIOG_PIN14) | \
1028 PIN_ODR_HIGH(GPIOG_PIN15))
1029#define VAL_GPIOG_AFRL (PIN_AFIO_AF(GPIOG_PIN0, 0) | \
1030 PIN_AFIO_AF(GPIOG_PIN1, 0) | \
1031 PIN_AFIO_AF(GPIOG_PIN2, 0) | \
1032 PIN_AFIO_AF(GPIOG_PIN3, 0) | \
1033 PIN_AFIO_AF(GPIOG_PIN4, 0) | \
1034 PIN_AFIO_AF(GPIOG_PIN5, 0) | \
1035 PIN_AFIO_AF(GPIOG_PIN6, 0) | \
1036 PIN_AFIO_AF(GPIOG_PIN7, 0))
1037#define VAL_GPIOG_AFRH (PIN_AFIO_AF(GPIOG_PIN8, 0) | \
1038 PIN_AFIO_AF(GPIOG_PIN9, 0) | \
1039 PIN_AFIO_AF(GPIOG_PIN10, 0) | \
1040 PIN_AFIO_AF(GPIOG_PIN11, 0) | \
1041 PIN_AFIO_AF(GPIOG_PIN12, 0) | \
1042 PIN_AFIO_AF(GPIOG_PIN13, 0) | \
1043 PIN_AFIO_AF(GPIOG_PIN14, 0) | \
1044 PIN_AFIO_AF(GPIOG_PIN15, 0))
1045
1046/*
1047 * GPIOH setup:
1048 *
1049 * PH0 - PIN0 (input pullup).
1050 * PH1 - PIN1 (input pullup).
1051 * PH2 - PIN2 (input pullup).
1052 * PH3 - PIN3 (input pullup).
1053 * PH4 - PIN4 (input pullup).
1054 * PH5 - PIN5 (input pullup).
1055 * PH6 - PIN6 (input pullup).
1056 * PH7 - PIN7 (input pullup).
1057 * PH8 - PIN8 (input pullup).
1058 * PH9 - PIN9 (input pullup).
1059 * PH10 - PIN10 (input pullup).
1060 * PH11 - PIN11 (input pullup).
1061 * PH12 - PIN12 (input pullup).
1062 * PH13 - PIN13 (input pullup).
1063 * PH14 - PIN14 (input pullup).
1064 * PH15 - PIN15 (input pullup).
1065 */
1066#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_PIN0) | \
1067 PIN_MODE_INPUT(GPIOH_PIN1) | \
1068 PIN_MODE_INPUT(GPIOH_PIN2) | \
1069 PIN_MODE_INPUT(GPIOH_PIN3) | \
1070 PIN_MODE_INPUT(GPIOH_PIN4) | \
1071 PIN_MODE_INPUT(GPIOH_PIN5) | \
1072 PIN_MODE_INPUT(GPIOH_PIN6) | \
1073 PIN_MODE_INPUT(GPIOH_PIN7) | \
1074 PIN_MODE_INPUT(GPIOH_PIN8) | \
1075 PIN_MODE_INPUT(GPIOH_PIN9) | \
1076 PIN_MODE_INPUT(GPIOH_PIN10) | \
1077 PIN_MODE_INPUT(GPIOH_PIN11) | \
1078 PIN_MODE_INPUT(GPIOH_PIN12) | \
1079 PIN_MODE_INPUT(GPIOH_PIN13) | \
1080 PIN_MODE_INPUT(GPIOH_PIN14) | \
1081 PIN_MODE_INPUT(GPIOH_PIN15))
1082#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_PIN0) | \
1083 PIN_OTYPE_PUSHPULL(GPIOH_PIN1) | \
1084 PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \
1085 PIN_OTYPE_PUSHPULL(GPIOH_PIN3) | \
1086 PIN_OTYPE_PUSHPULL(GPIOH_PIN4) | \
1087 PIN_OTYPE_PUSHPULL(GPIOH_PIN5) | \
1088 PIN_OTYPE_PUSHPULL(GPIOH_PIN6) | \
1089 PIN_OTYPE_PUSHPULL(GPIOH_PIN7) | \
1090 PIN_OTYPE_PUSHPULL(GPIOH_PIN8) | \
1091 PIN_OTYPE_PUSHPULL(GPIOH_PIN9) | \
1092 PIN_OTYPE_PUSHPULL(GPIOH_PIN10) | \
1093 PIN_OTYPE_PUSHPULL(GPIOH_PIN11) | \
1094 PIN_OTYPE_PUSHPULL(GPIOH_PIN12) | \
1095 PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \
1096 PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \
1097 PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
1098#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOH_PIN0) | \
1099 PIN_OSPEED_VERYLOW(GPIOH_PIN1) | \
1100 PIN_OSPEED_VERYLOW(GPIOH_PIN2) | \
1101 PIN_OSPEED_VERYLOW(GPIOH_PIN3) | \
1102 PIN_OSPEED_VERYLOW(GPIOH_PIN4) | \
1103 PIN_OSPEED_VERYLOW(GPIOH_PIN5) | \
1104 PIN_OSPEED_VERYLOW(GPIOH_PIN6) | \
1105 PIN_OSPEED_VERYLOW(GPIOH_PIN7) | \
1106 PIN_OSPEED_VERYLOW(GPIOH_PIN8) | \
1107 PIN_OSPEED_VERYLOW(GPIOH_PIN9) | \
1108 PIN_OSPEED_VERYLOW(GPIOH_PIN10) | \
1109 PIN_OSPEED_VERYLOW(GPIOH_PIN11) | \
1110 PIN_OSPEED_VERYLOW(GPIOH_PIN12) | \
1111 PIN_OSPEED_VERYLOW(GPIOH_PIN13) | \
1112 PIN_OSPEED_VERYLOW(GPIOH_PIN14) | \
1113 PIN_OSPEED_VERYLOW(GPIOH_PIN15))
1114#define VAL_GPIOH_PUPDR (PIN_PUPDR_PULLUP(GPIOH_PIN0) | \
1115 PIN_PUPDR_PULLUP(GPIOH_PIN1) | \
1116 PIN_PUPDR_PULLUP(GPIOH_PIN2) | \
1117 PIN_PUPDR_PULLUP(GPIOH_PIN3) | \
1118 PIN_PUPDR_PULLUP(GPIOH_PIN4) | \
1119 PIN_PUPDR_PULLUP(GPIOH_PIN5) | \
1120 PIN_PUPDR_PULLUP(GPIOH_PIN6) | \
1121 PIN_PUPDR_PULLUP(GPIOH_PIN7) | \
1122 PIN_PUPDR_PULLUP(GPIOH_PIN8) | \
1123 PIN_PUPDR_PULLUP(GPIOH_PIN9) | \
1124 PIN_PUPDR_PULLUP(GPIOH_PIN10) | \
1125 PIN_PUPDR_PULLUP(GPIOH_PIN11) | \
1126 PIN_PUPDR_PULLUP(GPIOH_PIN12) | \
1127 PIN_PUPDR_PULLUP(GPIOH_PIN13) | \
1128 PIN_PUPDR_PULLUP(GPIOH_PIN14) | \
1129 PIN_PUPDR_PULLUP(GPIOH_PIN15))
1130#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_PIN0) | \
1131 PIN_ODR_HIGH(GPIOH_PIN1) | \
1132 PIN_ODR_HIGH(GPIOH_PIN2) | \
1133 PIN_ODR_HIGH(GPIOH_PIN3) | \
1134 PIN_ODR_HIGH(GPIOH_PIN4) | \
1135 PIN_ODR_HIGH(GPIOH_PIN5) | \
1136 PIN_ODR_HIGH(GPIOH_PIN6) | \
1137 PIN_ODR_HIGH(GPIOH_PIN7) | \
1138 PIN_ODR_HIGH(GPIOH_PIN8) | \
1139 PIN_ODR_HIGH(GPIOH_PIN9) | \
1140 PIN_ODR_HIGH(GPIOH_PIN10) | \
1141 PIN_ODR_HIGH(GPIOH_PIN11) | \
1142 PIN_ODR_HIGH(GPIOH_PIN12) | \
1143 PIN_ODR_HIGH(GPIOH_PIN13) | \
1144 PIN_ODR_HIGH(GPIOH_PIN14) | \
1145 PIN_ODR_HIGH(GPIOH_PIN15))
1146#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_PIN0, 0) | \
1147 PIN_AFIO_AF(GPIOH_PIN1, 0) | \
1148 PIN_AFIO_AF(GPIOH_PIN2, 0) | \
1149 PIN_AFIO_AF(GPIOH_PIN3, 0) | \
1150 PIN_AFIO_AF(GPIOH_PIN4, 0) | \
1151 PIN_AFIO_AF(GPIOH_PIN5, 0) | \
1152 PIN_AFIO_AF(GPIOH_PIN6, 0) | \
1153 PIN_AFIO_AF(GPIOH_PIN7, 0))
1154#define VAL_GPIOH_AFRH (PIN_AFIO_AF(GPIOH_PIN8, 0) | \
1155 PIN_AFIO_AF(GPIOH_PIN9, 0) | \
1156 PIN_AFIO_AF(GPIOH_PIN10, 0) | \
1157 PIN_AFIO_AF(GPIOH_PIN11, 0) | \
1158 PIN_AFIO_AF(GPIOH_PIN12, 0) | \
1159 PIN_AFIO_AF(GPIOH_PIN13, 0) | \
1160 PIN_AFIO_AF(GPIOH_PIN14, 0) | \
1161 PIN_AFIO_AF(GPIOH_PIN15, 0))
1162
1163
1164/*
1165 * USB bus activation macro, required by the USB driver.
1166 */
1167// #define usb_lld_connect_bus(usbp)
1168#define usb_lld_connect_bus(usbp) (palSetPadMode(GPIOA, GPIOA_USB_DP, PAL_MODE_ALTERNATE(14)))
1169// #define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT)
1170/*
1171 * USB bus de-activation macro, required by the USB driver.
1172 */
1173// #define usb_lld_disconnect_bus(usbp)
1174#define usb_lld_disconnect_bus(usbp) (palSetPadMode(GPIOA, GPIOA_USB_DP, PAL_MODE_OUTPUT_PUSHPULL)); palClearPad(GPIOA, GPIOA_USB_DP)
1175// #define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12)
1176
1177#if !defined(_FROM_ASM_)
1178#ifdef __cplusplus
1179extern "C" {
1180#endif
1181 void boardInit(void);
1182#ifdef __cplusplus
1183}
1184#endif
1185#endif /* _FROM_ASM_ */
1186
1187#endif /* _BOARD_H_ */
diff --git a/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.mk b/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.mk
deleted file mode 100644
index 43377629a..000000000
--- a/keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
1# List of all the board related files.
2BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
3
4# Required include directories
5BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC
diff --git a/keyboards/clueboard/60/bootloader_defs.h b/keyboards/clueboard/60/bootloader_defs.h
deleted file mode 100644
index 3b0e9d20a..000000000
--- a/keyboards/clueboard/60/bootloader_defs.h
+++ /dev/null
@@ -1,7 +0,0 @@
1/* Address for jumping to bootloader on STM32 chips. */
2/* It is chip dependent, the correct number can be looked up here:
3 * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
4 * This also requires a patch to chibios:
5 * <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
6 */
7#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
diff --git a/keyboards/clueboard/60/config.h b/keyboards/clueboard/60/config.h
index a862d2cda..c7dbf8ad0 100644
--- a/keyboards/clueboard/60/config.h
+++ b/keyboards/clueboard/60/config.h
@@ -15,8 +15,9 @@
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18#ifndef CONFIG_H 18#pragma once
19#define CONFIG_H 19
20#include "config_common.h"
20 21
21/* USB Device descriptor parameter */ 22/* USB Device descriptor parameter */
22#define VENDOR_ID 0xC1ED 23#define VENDOR_ID 0xC1ED
@@ -26,6 +27,12 @@
26#define PRODUCT Clueboard 60% 27#define PRODUCT Clueboard 60%
27#define DESCRIPTION Clueboard 60% 28#define DESCRIPTION Clueboard 60%
28 29
30/* Address for jumping to bootloader on STM32 chips. */
31/* It is chip dependent, the correct number can be looked up here:
32 * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
33 */
34#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
35
29/* key matrix size */ 36/* key matrix size */
30#define MATRIX_ROWS 5 37#define MATRIX_ROWS 5
31#define MATRIX_COLS 15 38#define MATRIX_COLS 15
@@ -33,18 +40,16 @@
33/* 40/*
34 * Keyboard Matrix Assignments 41 * Keyboard Matrix Assignments
35 * 42 *
36 * Change this to how you wired your keyboard 43 * COLS: Pins used for columns, left to right
37 * COLS: AVR pins used for columns, left to right 44 * ROWS: Pins used for rows, top to bottom
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) 45 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) 46 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 * 47 *
42*/ 48*/
43/* Note: These are not used for arm boards. They're here purely as documentation. 49#define MATRIX_ROW_PINS { B0, B1, B2, A15, A10 }
44 * #define MATRIX_ROW_PINS { PB0, PB1, PB2, PA15, PA10 } 50#define MATRIX_COL_PINS { A2, A3, A6, B14, B15, A8, A9, A7, B3, B4, C14, C15, C13, B5, B6 }
45 * #define MATRIX_COL_PINS { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 } 51#define UNUSED_PINS { A0, A1, A9, B7, B8, B9, B10, B11, B12, B13 }
46 * #define UNUSED_PINS 52#define DIODE_DIRECTION COL2ROW
47 */
48 53
49/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 54/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
50#define DEBOUNCE 6 55#define DEBOUNCE 6
@@ -121,8 +126,6 @@
121/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 126/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
122//#define MIDI_TONE_KEYCODE_OCTAVES 1 127//#define MIDI_TONE_KEYCODE_OCTAVES 1
123 128
124#endif
125
126 /* Backlight configuration 129 /* Backlight configuration
127 */ 130 */
128#define BACKLIGHT_LEVELS 1 131#define BACKLIGHT_LEVELS 1
diff --git a/keyboards/clueboard/60/info.json b/keyboards/clueboard/60/info.json
index abafb69f9..aed18b6f0 100644
--- a/keyboards/clueboard/60/info.json
+++ b/keyboards/clueboard/60/info.json
@@ -8,1642 +8,51 @@
8 "LAYOUT_60_ansi": { 8 "LAYOUT_60_ansi": {
9 "key_count": 61, 9 "key_count": 61,
10 "layout": [ 10 "layout": [
11 { 11 {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Backspace", "x": 13, "y": 0, "w": 2},
12 "label": "~", 12 {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5},
13 "x": 0, 13 {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
14 "y": 0 14 {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
15 }, 15 {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
16 {
17 "label": "!",
18 "x": 1,
19 "y": 0
20 },
21 {
22 "label": "@",
23 "x": 2,
24 "y": 0
25 },
26 {
27 "label": "#",
28 "x": 3,
29 "y": 0
30 },
31 {
32 "label": "$",
33 "x": 4,
34 "y": 0
35 },
36 {
37 "label": "%",
38 "x": 5,
39 "y": 0
40 },
41 {
42 "label": "^",
43 "x": 6,
44 "y": 0
45 },
46 {
47 "label": "&",
48 "x": 7,
49 "y": 0
50 },
51 {
52 "label": "*",
53 "x": 8,
54 "y": 0
55 },
56 {
57 "label": "(",
58 "x": 9,
59 "y": 0
60 },
61 {
62 "label": ")",
63 "x": 10,
64 "y": 0
65 },
66 {
67 "label": "_",
68 "x": 11,
69 "y": 0
70 },
71 {
72 "label": "+",
73 "x": 12,
74 "y": 0
75 },
76 {
77 "label": "Backspace",
78 "x": 13,
79 "y": 0,
80 "w": 2
81 },
82 {
83 "label": "Tab",
84 "x": 0,
85 "y": 1,
86 "w": 1.5
87 },
88 {
89 "label": "Q",
90 "x": 1.5,
91 "y": 1
92 },
93 {
94 "label": "W",
95 "x": 2.5,
96 "y": 1
97 },
98 {
99 "label": "E",
100 "x": 3.5,
101 "y": 1
102 },
103 {
104 "label": "R",
105 "x": 4.5,
106 "y": 1
107 },
108 {
109 "label": "T",
110 "x": 5.5,
111 "y": 1
112 },
113 {
114 "label": "Y",
115 "x": 6.5,
116 "y": 1
117 },
118 {
119 "label": "U",
120 "x": 7.5,
121 "y": 1
122 },
123 {
124 "label": "I",
125 "x": 8.5,
126 "y": 1
127 },
128 {
129 "label": "O",
130 "x": 9.5,
131 "y": 1
132 },
133 {
134 "label": "P",
135 "x": 10.5,
136 "y": 1
137 },
138 {
139 "label": "{",
140 "x": 11.5,
141 "y": 1
142 },
143 {
144 "label": "}",
145 "x": 12.5,
146 "y": 1
147 },
148 {
149 "label": "|",
150 "x": 13.5,
151 "y": 1,
152 "w": 1.5
153 },
154 {
155 "label": "Caps Lock",
156 "x": 0,
157 "y": 2,
158 "w": 1.75
159 },
160 {
161 "label": "A",
162 "x": 1.75,
163 "y": 2
164 },
165 {
166 "label": "S",
167 "x": 2.75,
168 "y": 2
169 },
170 {
171 "label": "D",
172 "x": 3.75,
173 "y": 2
174 },
175 {
176 "label": "F",
177 "x": 4.75,
178 "y": 2
179 },
180 {
181 "label": "G",
182 "x": 5.75,
183 "y": 2
184 },
185 {
186 "label": "H",
187 "x": 6.75,
188 "y": 2
189 },
190 {
191 "label": "J",
192 "x": 7.75,
193 "y": 2
194 },
195 {
196 "label": "K",
197 "x": 8.75,
198 "y": 2
199 },
200 {
201 "label": "L",
202 "x": 9.75,
203 "y": 2
204 },
205 {
206 "label": ":",
207 "x": 10.75,
208 "y": 2
209 },
210 {
211 "label": "\"",
212 "x": 11.75,
213 "y": 2
214 },
215 {
216 "label": "Enter",
217 "x": 12.75,
218 "y": 2,
219 "w": 2.25
220 },
221 {
222 "label": "Shift",
223 "x": 0,
224 "y": 3,
225 "w": 2.25
226 },
227 {
228 "label": "Z",
229 "x": 2.25,
230 "y": 3
231 },
232 {
233 "label": "X",
234 "x": 3.25,
235 "y": 3
236 },
237 {
238 "label": "C",
239 "x": 4.25,
240 "y": 3
241 },
242 {
243 "label": "V",
244 "x": 5.25,
245 "y": 3
246 },
247 {
248 "label": "B",
249 "x": 6.25,
250 "y": 3
251 },
252 {
253 "label": "N",
254 "x": 7.25,
255 "y": 3
256 },
257 {
258 "label": "M",
259 "x": 8.25,
260 "y": 3
261 },
262 {
263 "label": "<",
264 "x": 9.25,
265 "y": 3
266 },
267 {
268 "label": ">",
269 "x": 10.25,
270 "y": 3
271 },
272 {
273 "label": "?",
274 "x": 11.25,
275 "y": 3
276 },
277 {
278 "label": "Shift",
279 "x": 12.25,
280 "y": 3,
281 "w": 2.75
282 },
283 {
284 "label": "Ctrl",
285 "x": 0,
286 "y": 4,
287 "w": 1.25
288 },
289 {
290 "label": "Win",
291 "x": 1.25,
292 "y": 4,
293 "w": 1.25
294 },
295 {
296 "label": "Alt",
297 "x": 2.5,
298 "y": 4,
299 "w": 1.25
300 },
301 {
302 "x": 3.75,
303 "y": 4,
304 "w": 6.25
305 },
306 {
307 "label": "Alt",
308 "x": 10,
309 "y": 4,
310 "w": 1.25
311 },
312 {
313 "label": "Win",
314 "x": 11.25,
315 "y": 4,
316 "w": 1.25
317 },
318 {
319 "label": "Menu",
320 "x": 12.5,
321 "y": 4,
322 "w": 1.25
323 },
324 {
325 "label": "Ctrl",
326 "x": 13.75,
327 "y": 4,
328 "w": 1.25
329 }
330 ] 16 ]
331 }, 17 },
332 "LAYOUT_60_iso": { 18 "LAYOUT_60_iso": {
333 "key_count": 62, 19 "key_count": 62,
334 "layout": [ 20 "layout": [
335 { 21 {"label": "\\u00ac", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "\"", "x": 2, "y": 0}, {"label": "\\u00a3", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Backspace", "x": 13, "y": 0, "w": 2},
336 "label": "\\u00ac", 22 {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2},
337 "x": 0, 23 {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "@", "x": 11.75, "y": 2}, {"label": "~", "x": 12.75, "y": 2},
338 "y": 0 24 {"label": "Shift", "x": 0, "y": 3, "w": 1.25}, {"label": "|", "x": 1.25, "y": 3}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
339 }, 25 {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "AltGr", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
340 {
341 "label": "!",
342 "x": 1,
343 "y": 0
344 },
345 {
346 "label": "\"",
347 "x": 2,
348 "y": 0
349 },
350 {
351 "label": "\\u00a3",
352 "x": 3,
353 "y": 0
354 },
355 {
356 "label": "$",
357 "x": 4,
358 "y": 0
359 },
360 {
361 "label": "%",
362 "x": 5,
363 "y": 0
364 },
365 {
366 "label": "^",
367 "x": 6,
368 "y": 0
369 },
370 {
371 "label": "&",
372 "x": 7,
373 "y": 0
374 },
375 {
376 "label": "*",
377 "x": 8,
378 "y": 0
379 },
380 {
381 "label": "(",
382 "x": 9,
383 "y": 0
384 },
385 {
386 "label": ")",
387 "x": 10,
388 "y": 0
389 },
390 {
391 "label": "_",
392 "x": 11,
393 "y": 0
394 },
395 {
396 "label": "+",
397 "x": 12,
398 "y": 0
399 },
400 {
401 "label": "Backspace",
402 "x": 13,
403 "y": 0,
404 "w": 2
405 },
406 {
407 "label": "Tab",
408 "x": 0,
409 "y": 1,
410 "w": 1.5
411 },
412 {
413 "label": "Q",
414 "x": 1.5,
415 "y": 1
416 },
417 {
418 "label": "W",
419 "x": 2.5,
420 "y": 1
421 },
422 {
423 "label": "E",
424 "x": 3.5,
425 "y": 1
426 },
427 {
428 "label": "R",
429 "x": 4.5,
430 "y": 1
431 },
432 {
433 "label": "T",
434 "x": 5.5,
435 "y": 1
436 },
437 {
438 "label": "Y",
439 "x": 6.5,
440 "y": 1
441 },
442 {
443 "label": "U",
444 "x": 7.5,
445 "y": 1
446 },
447 {
448 "label": "I",
449 "x": 8.5,
450 "y": 1
451 },
452 {
453 "label": "O",
454 "x": 9.5,
455 "y": 1
456 },
457 {
458 "label": "P",
459 "x": 10.5,
460 "y": 1
461 },
462 {
463 "label": "{",
464 "x": 11.5,
465 "y": 1
466 },
467 {
468 "label": "}",
469 "x": 12.5,
470 "y": 1
471 },
472 {
473 "label": "Enter",
474 "x": 13.75,
475 "y": 1,
476 "w": 1.25,
477 "h": 2
478 },
479 {
480 "label": "Caps Lock",
481 "x": 0,
482 "y": 2,
483 "w": 1.75
484 },
485 {
486 "label": "A",
487 "x": 1.75,
488 "y": 2
489 },
490 {
491 "label": "S",
492 "x": 2.75,
493 "y": 2
494 },
495 {
496 "label": "D",
497 "x": 3.75,
498 "y": 2
499 },
500 {
501 "label": "F",
502 "x": 4.75,
503 "y": 2
504 },
505 {
506 "label": "G",
507 "x": 5.75,
508 "y": 2
509 },
510 {
511 "label": "H",
512 "x": 6.75,
513 "y": 2
514 },
515 {
516 "label": "J",
517 "x": 7.75,
518 "y": 2
519 },
520 {
521 "label": "K",
522 "x": 8.75,
523 "y": 2
524 },
525 {
526 "label": "L",
527 "x": 9.75,
528 "y": 2
529 },
530 {
531 "label": ":",
532 "x": 10.75,
533 "y": 2
534 },
535 {
536 "label": "@",
537 "x": 11.75,
538 "y": 2
539 },
540 {
541 "label": "~",
542 "x": 12.75,
543 "y": 2
544 },
545 {
546 "label": "Shift",
547 "x": 0,
548 "y": 3,
549 "w": 1.25
550 },
551 {
552 "label": "|",
553 "x": 1.25,
554 "y": 3
555 },
556 {
557 "label": "Z",
558 "x": 2.25,
559 "y": 3
560 },
561 {
562 "label": "X",
563 "x": 3.25,
564 "y": 3
565 },
566 {
567 "label": "C",
568 "x": 4.25,
569 "y": 3
570 },
571 {
572 "label": "V",
573 "x": 5.25,
574 "y": 3
575 },
576 {
577 "label": "B",
578 "x": 6.25,
579 "y": 3
580 },
581 {
582 "label": "N",
583 "x": 7.25,
584 "y": 3
585 },
586 {
587 "label": "M",
588 "x": 8.25,
589 "y": 3
590 },
591 {
592 "label": "<",
593 "x": 9.25,
594 "y": 3
595 },
596 {
597 "label": ">",
598 "x": 10.25,
599 "y": 3
600 },
601 {
602 "label": "?",
603 "x": 11.25,
604 "y": 3
605 },
606 {
607 "label": "Shift",
608 "x": 12.25,
609 "y": 3,
610 "w": 2.75
611 },
612 {
613 "label": "Ctrl",
614 "x": 0,
615 "y": 4,
616 "w": 1.25
617 },
618 {
619 "label": "Win",
620 "x": 1.25,
621 "y": 4,
622 "w": 1.25
623 },
624 {
625 "label": "Alt",
626 "x": 2.5,
627 "y": 4,
628 "w": 1.25
629 },
630 {
631 "x": 3.75,
632 "y": 4,
633 "w": 6.25
634 },
635 {
636 "label": "AltGr",
637 "x": 10,
638 "y": 4,
639 "w": 1.25
640 },
641 {
642 "label": "Win",
643 "x": 11.25,
644 "y": 4,
645 "w": 1.25
646 },
647 {
648 "label": "Menu",
649 "x": 12.5,
650 "y": 4,
651 "w": 1.25
652 },
653 {
654 "label": "Ctrl",
655 "x": 13.75,
656 "y": 4,
657 "w": 1.25
658 }
659 ] 26 ]
660 }, 27 },
661 "KEYMAP_AEK": { 28 "LAYOUT_aek": {
662 "key_count": 60, 29 "key_count": 60,
663 "layout": [ 30 "layout": [
664 { 31 {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Backspace", "x": 13, "y": 0, "w": 2},
665 "label": "~", 32 {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5},
666 "x": 0, 33 {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
667 "y": 0 34 {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
668 }, 35 {"label": "Ctrl", "x": 0, "y": 4, "w": 1.5}, {"label": "Win", "x": 1.5, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.75, "y": 4, "w": 1.5}, {"x": 4.25, "y": 4, "w": 6.5}, {"label": "AltGr", "x": 10.75, "y": 4, "w": 1.5}, {"label": "Win", "x": 12.25, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5 }
669 {
670 "label": "!",
671 "x": 1,
672 "y": 0
673 },
674 {
675 "label": "@",
676 "x": 2,
677 "y": 0
678 },
679 {
680 "label": "#",
681 "x": 3,
682 "y": 0
683 },
684 {
685 "label": "$",
686 "x": 4,
687 "y": 0
688 },
689 {
690 "label": "%",
691 "x": 5,
692 "y": 0
693 },
694 {
695 "label": "^",
696 "x": 6,
697 "y": 0
698 },
699 {
700 "label": "&",
701 "x": 7,
702 "y": 0
703 },
704 {
705 "label": "*",
706 "x": 8,
707 "y": 0
708 },
709 {
710 "label": "(",
711 "x": 9,
712 "y": 0
713 },
714 {
715 "label": ")",
716 "x": 10,
717 "y": 0
718 },
719 {
720 "label": "_",
721 "x": 11,
722 "y": 0
723 },
724 {
725 "label": "+",
726 "x": 12,
727 "y": 0
728 },
729 {
730 "label": "Backspace",
731 "x": 13,
732 "y": 0,
733 "w": 2
734 },
735 {
736 "label": "Tab",
737 "x": 0,
738 "y": 1,
739 "w": 1.5
740 },
741 {
742 "label": "Q",
743 "x": 1.5,
744 "y": 1
745 },
746 {
747 "label": "W",
748 "x": 2.5,
749 "y": 1
750 },
751 {
752 "label": "E",
753 "x": 3.5,
754 "y": 1
755 },
756 {
757 "label": "R",
758 "x": 4.5,
759 "y": 1
760 },
761 {
762 "label": "T",
763 "x": 5.5,
764 "y": 1
765 },
766 {
767 "label": "Y",
768 "x": 6.5,
769 "y": 1
770 },
771 {
772 "label": "U",
773 "x": 7.5,
774 "y": 1
775 },
776 {
777 "label": "I",
778 "x": 8.5,
779 "y": 1
780 },
781 {
782 "label": "O",
783 "x": 9.5,
784 "y": 1
785 },
786 {
787 "label": "P",
788 "x": 10.5,
789 "y": 1
790 },
791 {
792 "label": "{",
793 "x": 11.5,
794 "y": 1
795 },
796 {
797 "label": "}",
798 "x": 12.5,
799 "y": 1
800 },
801 {
802 "label": "|",
803 "x": 13.5,
804 "y": 1,
805 "w": 1.5
806 },
807 {
808 "label": "Caps Lock",
809 "x": 0,
810 "y": 2,
811 "w": 1.75
812 },
813 {
814 "label": "A",
815 "x": 1.75,
816 "y": 2
817 },
818 {
819 "label": "S",
820 "x": 2.75,
821 "y": 2
822 },
823 {
824 "label": "D",
825 "x": 3.75,
826 "y": 2
827 },
828 {
829 "label": "F",
830 "x": 4.75,
831 "y": 2
832 },
833 {
834 "label": "G",
835 "x": 5.75,
836 "y": 2
837 },
838 {
839 "label": "H",
840 "x": 6.75,
841 "y": 2
842 },
843 {
844 "label": "J",
845 "x": 7.75,
846 "y": 2
847 },
848 {
849 "label": "K",
850 "x": 8.75,
851 "y": 2
852 },
853 {
854 "label": "L",
855 "x": 9.75,
856 "y": 2
857 },
858 {
859 "label": ":",
860 "x": 10.75,
861 "y": 2
862 },
863 {
864 "label": "\"",
865 "x": 11.75,
866 "y": 2
867 },
868 {
869 "label": "Enter",
870 "x": 12.75,
871 "y": 2,
872 "w": 2.25
873 },
874 {
875 "label": "Shift",
876 "x": 0,
877 "y": 3,
878 "w": 2.25
879 },
880 {
881 "label": "Z",
882 "x": 2.25,
883 "y": 3
884 },
885 {
886 "label": "X",
887 "x": 3.25,
888 "y": 3
889 },
890 {
891 "label": "C",
892 "x": 4.25,
893 "y": 3
894 },
895 {
896 "label": "V",
897 "x": 5.25,
898 "y": 3
899 },
900 {
901 "label": "B",
902 "x": 6.25,
903 "y": 3
904 },
905 {
906 "label": "N",
907 "x": 7.25,
908 "y": 3
909 },
910 {
911 "label": "M",
912 "x": 8.25,
913 "y": 3
914 },
915 {
916 "label": "<",
917 "x": 9.25,
918 "y": 3
919 },
920 {
921 "label": ">",
922 "x": 10.25,
923 "y": 3
924 },
925 {
926 "label": "?",
927 "x": 11.25,
928 "y": 3
929 },
930 {
931 "label": "Shift",
932 "x": 12.25,
933 "y": 3,
934 "w": 2.75
935 },
936 {
937 "label": "Ctrl",
938 "x": 0,
939 "y": 4,
940 "w": 1.5
941 },
942 {
943 "label": "Win",
944 "x": 1.5,
945 "y": 4,
946 "w": 1.25
947 },
948 {
949 "label": "Alt",
950 "x": 2.75,
951 "y": 4,
952 "w": 1.5
953 },
954 {
955 "x": 4.25,
956 "y": 4,
957 "w": 6.5
958 },
959 {
960 "label": "AltGr",
961 "x": 10.75,
962 "y": 4,
963 "w": 1.5
964 },
965 {
966 "label": "Win",
967 "x": 12.25,
968 "y": 4,
969 "w": 1.25
970 },
971 {
972 "label": "Ctrl",
973 "x": 13.5,
974 "y": 4,
975 "w": 1.5
976 }
977 ] 36 ]
978 }, 37 },
979 "KEYMAP": { 38 "LAYOUT_all": {
980 "key_count": 65, 39 "key_count": 65,
981 "layout": [ 40 "layout": [
982 { 41 {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"x": 13, "y": 0}, {"label": "Back", "x": 14, "y": 0},
983 "label": "~", 42 {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5},
984 "x": 0, 43 {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"x": 12.75, "y": 2}, {"label": "Enter", "x": 13.75, "y": 2, "w": 1.25},
985 "y": 0 44 {"x": 0, "y": 3}, {"label": "Shift", "x": 1, "y": 3, "w": 1.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 1.75}, {"x": 14, "y": 3},
986 }, 45 {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
987 {
988 "label": "!",
989 "x": 1,
990 "y": 0
991 },
992 {
993 "label": "@",
994 "x": 2,
995 "y": 0
996 },
997 {
998 "label": "#",
999 "x": 3,
1000 "y": 0
1001 },
1002 {
1003 "label": "$",
1004 "x": 4,
1005 "y": 0
1006 },
1007 {
1008 "label": "%",
1009 "x": 5,
1010 "y": 0
1011 },
1012 {
1013 "label": "^",
1014 "x": 6,
1015 "y": 0
1016 },
1017 {
1018 "label": "&",
1019 "x": 7,
1020 "y": 0
1021 },
1022 {
1023 "label": "*",
1024 "x": 8,
1025 "y": 0
1026 },
1027 {
1028 "label": "(",
1029 "x": 9,
1030 "y": 0
1031 },
1032 {
1033 "label": ")",
1034 "x": 10,
1035 "y": 0
1036 },
1037 {
1038 "label": "_",
1039 "x": 11,
1040 "y": 0
1041 },
1042 {
1043 "label": "+",
1044 "x": 12,
1045 "y": 0
1046 },
1047 {
1048 "x": 13,
1049 "y": 0
1050 },
1051 {
1052 "label": "Back",
1053 "x": 14,
1054 "y": 0
1055 },
1056 {
1057 "label": "Tab",
1058 "x": 0,
1059 "y": 1,
1060 "w": 1.5
1061 },
1062 {
1063 "label": "Q",
1064 "x": 1.5,
1065 "y": 1
1066 },
1067 {
1068 "label": "W",
1069 "x": 2.5,
1070 "y": 1
1071 },
1072 {
1073 "label": "E",
1074 "x": 3.5,
1075 "y": 1
1076 },
1077 {
1078 "label": "R",
1079 "x": 4.5,
1080 "y": 1
1081 },
1082 {
1083 "label": "T",
1084 "x": 5.5,
1085 "y": 1
1086 },
1087 {
1088 "label": "Y",
1089 "x": 6.5,
1090 "y": 1
1091 },
1092 {
1093 "label": "U",
1094 "x": 7.5,
1095 "y": 1
1096 },
1097 {
1098 "label": "I",
1099 "x": 8.5,
1100 "y": 1
1101 },
1102 {
1103 "label": "O",
1104 "x": 9.5,
1105 "y": 1
1106 },
1107 {
1108 "label": "P",
1109 "x": 10.5,
1110 "y": 1
1111 },
1112 {
1113 "label": "{",
1114 "x": 11.5,
1115 "y": 1
1116 },
1117 {
1118 "label": "}",
1119 "x": 12.5,
1120 "y": 1
1121 },
1122 {
1123 "label": "|",
1124 "x": 13.5,
1125 "y": 1,
1126 "w": 1.5
1127 },
1128 {
1129 "label": "Caps Lock",
1130 "x": 0,
1131 "y": 2,
1132 "w": 1.75
1133 },
1134 {
1135 "label": "A",
1136 "x": 1.75,
1137 "y": 2
1138 },
1139 {
1140 "label": "S",
1141 "x": 2.75,
1142 "y": 2
1143 },
1144 {
1145 "label": "D",
1146 "x": 3.75,
1147 "y": 2
1148 },
1149 {
1150 "label": "F",
1151 "x": 4.75,
1152 "y": 2
1153 },
1154 {
1155 "label": "G",
1156 "x": 5.75,
1157 "y": 2
1158 },
1159 {
1160 "label": "H",
1161 "x": 6.75,
1162 "y": 2
1163 },
1164 {
1165 "label": "J",
1166 "x": 7.75,
1167 "y": 2
1168 },
1169 {
1170 "label": "K",
1171 "x": 8.75,
1172 "y": 2
1173 },
1174 {
1175 "label": "L",
1176 "x": 9.75,
1177 "y": 2
1178 },
1179 {
1180 "label": ":",
1181 "x": 10.75,
1182 "y": 2
1183 },
1184 {
1185 "label": "\"",
1186 "x": 11.75,
1187 "y": 2
1188 },
1189 {
1190 "x": 12.75,
1191 "y": 2
1192 },
1193 {
1194 "label": "Enter",
1195 "x": 13.75,
1196 "y": 2,
1197 "w": 1.25
1198 },
1199 {
1200 "x": 0,
1201 "y": 3
1202 },
1203 {
1204 "label": "Shift",
1205 "x": 1,
1206 "y": 3,
1207 "w": 1.25
1208 },
1209 {
1210 "label": "Z",
1211 "x": 2.25,
1212 "y": 3
1213 },
1214 {
1215 "label": "X",
1216 "x": 3.25,
1217 "y": 3
1218 },
1219 {
1220 "label": "C",
1221 "x": 4.25,
1222 "y": 3
1223 },
1224 {
1225 "label": "V",
1226 "x": 5.25,
1227 "y": 3
1228 },
1229 {
1230 "label": "B",
1231 "x": 6.25,
1232 "y": 3
1233 },
1234 {
1235 "label": "N",
1236 "x": 7.25,
1237 "y": 3
1238 },
1239 {
1240 "label": "M",
1241 "x": 8.25,
1242 "y": 3
1243 },
1244 {
1245 "label": "<",
1246 "x": 9.25,
1247 "y": 3
1248 },
1249 {
1250 "label": ">",
1251 "x": 10.25,
1252 "y": 3
1253 },
1254 {
1255 "label": "?",
1256 "x": 11.25,
1257 "y": 3
1258 },
1259 {
1260 "label": "Shift",
1261 "x": 12.25,
1262 "y": 3,
1263 "w": 1.75
1264 },
1265 {
1266 "x": 14,
1267 "y": 3
1268 },
1269 {
1270 "label": "Ctrl",
1271 "x": 0,
1272 "y": 4,
1273 "w": 1.25
1274 },
1275 {
1276 "label": "Win",
1277 "x": 1.25,
1278 "y": 4,
1279 "w": 1.25
1280 },
1281 {
1282 "label": "Alt",
1283 "x": 2.5,
1284 "y": 4,
1285 "w": 1.25
1286 },
1287 {
1288 "x": 3.75,
1289 "y": 4,
1290 "w": 6.25
1291 },
1292 {
1293 "label": "Alt",
1294 "x": 10,
1295 "y": 4,
1296 "w": 1.25
1297 },
1298 {
1299 "label": "Win",
1300 "x": 11.25,
1301 "y": 4,
1302 "w": 1.25
1303 },
1304 {
1305 "label": "Menu",
1306 "x": 12.5,
1307 "y": 4,
1308 "w": 1.25
1309 },
1310 {
1311 "label": "Ctrl",
1312 "x": 13.75,
1313 "y": 4,
1314 "w": 1.25
1315 }
1316 ] 46 ]
1317 }, 47 },
1318 "LAYOUT_60_ansi_split_bs_rshift": { 48 "LAYOUT_60_ansi_split_bs_rshift": {
1319 "key_count": 63, 49 "key_count": 63,
1320 "layout": [ 50 "layout": [
1321 { 51 {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"x": 13, "y": 0}, {"label": "Back", "x": 14, "y": 0},
1322 "label": "~", 52 {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5},
1323 "x": 0, 53 {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
1324 "y": 0 54 {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 1.75}, {"x": 14, "y": 3},
1325 }, 55 {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25}
1326 {
1327 "label": "!",
1328 "x": 1,
1329 "y": 0
1330 },
1331 {
1332 "label": "@",
1333 "x": 2,
1334 "y": 0
1335 },
1336 {
1337 "label": "#",
1338 "x": 3,
1339 "y": 0
1340 },
1341 {
1342 "label": "$",
1343 "x": 4,
1344 "y": 0
1345 },
1346 {
1347 "label": "%",
1348 "x": 5,
1349 "y": 0
1350 },
1351 {
1352 "label": "^",
1353 "x": 6,
1354 "y": 0
1355 },
1356 {
1357 "label": "&",
1358 "x": 7,
1359 "y": 0
1360 },
1361 {
1362 "label": "*",
1363 "x": 8,
1364 "y": 0
1365 },
1366 {
1367 "label": "(",
1368 "x": 9,
1369 "y": 0
1370 },
1371 {
1372 "label": ")",
1373 "x": 10,
1374 "y": 0
1375 },
1376 {
1377 "label": "_",
1378 "x": 11,
1379 "y": 0
1380 },
1381 {
1382 "label": "+",
1383 "x": 12,
1384 "y": 0
1385 },
1386 {
1387 "x": 13,
1388 "y": 0
1389 },
1390 {
1391 "label": "Back",
1392 "x": 14,
1393 "y": 0
1394 },
1395 {
1396 "label": "Tab",
1397 "x": 0,
1398 "y": 1,
1399 "w": 1.5
1400 },
1401 {
1402 "label": "Q",
1403 "x": 1.5,
1404 "y": 1
1405 },
1406 {
1407 "label": "W",
1408 "x": 2.5,
1409 "y": 1
1410 },
1411 {
1412 "label": "E",
1413 "x": 3.5,
1414 "y": 1
1415 },
1416 {
1417 "label": "R",
1418 "x": 4.5,
1419 "y": 1
1420 },
1421 {
1422 "label": "T",
1423 "x": 5.5,
1424 "y": 1
1425 },
1426 {
1427 "label": "Y",
1428 "x": 6.5,
1429 "y": 1
1430 },
1431 {
1432 "label": "U",
1433 "x": 7.5,
1434 "y": 1
1435 },
1436 {
1437 "label": "I",
1438 "x": 8.5,
1439 "y": 1
1440 },
1441 {
1442 "label": "O",
1443 "x": 9.5,
1444 "y": 1
1445 },
1446 {
1447 "label": "P",
1448 "x": 10.5,
1449 "y": 1
1450 },
1451 {
1452 "label": "{",
1453 "x": 11.5,
1454 "y": 1
1455 },
1456 {
1457 "label": "}",
1458 "x": 12.5,
1459 "y": 1
1460 },
1461 {
1462 "label": "|",
1463 "x": 13.5,
1464 "y": 1,
1465 "w": 1.5
1466 },
1467 {
1468 "label": "Caps Lock",
1469 "x": 0,
1470 "y": 2,
1471 "w": 1.75
1472 },
1473 {
1474 "label": "A",
1475 "x": 1.75,
1476 "y": 2
1477 },
1478 {
1479 "label": "S",
1480 "x": 2.75,
1481 "y": 2
1482 },
1483 {
1484 "label": "D",
1485 "x": 3.75,
1486 "y": 2
1487 },
1488 {
1489 "label": "F",
1490 "x": 4.75,
1491 "y": 2
1492 },
1493 {
1494 "label": "G",
1495 "x": 5.75,
1496 "y": 2
1497 },
1498 {
1499 "label": "H",
1500 "x": 6.75,
1501 "y": 2
1502 },
1503 {
1504 "label": "J",
1505 "x": 7.75,
1506 "y": 2
1507 },
1508 {
1509 "label": "K",
1510 "x": 8.75,
1511 "y": 2
1512 },
1513 {
1514 "label": "L",
1515 "x": 9.75,
1516 "y": 2
1517 },
1518 {
1519 "label": ":",
1520 "x": 10.75,
1521 "y": 2
1522 },
1523 {
1524 "label": "\"",
1525 "x": 11.75,
1526 "y": 2
1527 },
1528 {
1529 "label": "Enter",
1530 "x": 12.75,
1531 "y": 2,
1532 "w": 2.25
1533 },
1534 {
1535 "label": "Shift",
1536 "x": 0,
1537 "y": 3,
1538 "w": 2.25
1539 },
1540 {
1541 "label": "Z",
1542 "x": 2.25,
1543 "y": 3
1544 },
1545 {
1546 "label": "X",
1547 "x": 3.25,
1548 "y": 3
1549 },
1550 {
1551 "label": "C",
1552 "x": 4.25,
1553 "y": 3
1554 },
1555 {
1556 "label": "V",
1557 "x": 5.25,
1558 "y": 3
1559 },
1560 {
1561 "label": "B",
1562 "x": 6.25,
1563 "y": 3
1564 },
1565 {
1566 "label": "N",
1567 "x": 7.25,
1568 "y": 3
1569 },
1570 {
1571 "label": "M",
1572 "x": 8.25,
1573 "y": 3
1574 },
1575 {
1576 "label": "<",
1577 "x": 9.25,
1578 "y": 3
1579 },
1580 {
1581 "label": ">",
1582 "x": 10.25,
1583 "y": 3
1584 },
1585 {
1586 "label": "?",
1587 "x": 11.25,
1588 "y": 3
1589 },
1590 {
1591 "label": "Shift",
1592 "x": 12.25,
1593 "y": 3,
1594 "w": 1.75
1595 },
1596 {
1597 "x": 14,
1598 "y": 3
1599 },
1600 {
1601 "label": "Ctrl",
1602 "x": 0,
1603 "y": 4,
1604 "w": 1.25
1605 },
1606 {
1607 "label": "Win",
1608 "x": 1.25,
1609 "y": 4,
1610 "w": 1.25
1611 },
1612 {
1613 "label": "Alt",
1614 "x": 2.5,
1615 "y": 4,
1616 "w": 1.25
1617 },
1618 {
1619 "x": 3.75,
1620 "y": 4,
1621 "w": 6.25
1622 },
1623 {
1624 "label": "Alt",
1625 "x": 10,
1626 "y": 4,
1627 "w": 1.25
1628 },
1629 {
1630 "label": "Win",
1631 "x": 11.25,
1632 "y": 4,
1633 "w": 1.25
1634 },
1635 {
1636 "label": "Menu",
1637 "x": 12.5,
1638 "y": 4,
1639 "w": 1.25
1640 },
1641 {
1642 "label": "Ctrl",
1643 "x": 13.75,
1644 "y": 4,
1645 "w": 1.25
1646 }
1647 ] 56 ]
1648 } 57 }
1649 } 58 }
diff --git a/keyboards/clueboard/60/keymaps/default/keymap.c b/keyboards/clueboard/60/keymaps/default/keymap.c
index 3e906737b..89d2180ca 100644
--- a/keyboards/clueboard/60/keymaps/default/keymap.c
+++ b/keyboards/clueboard/60/keymaps/default/keymap.c
@@ -1,7 +1,5 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2 2
3#define _______ KC_TRNS
4
5enum keyboard_layers { 3enum keyboard_layers {
6 _BL, 4 _BL,
7 _FL, 5 _FL,
@@ -46,19 +44,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 * |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl | 44 * |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl |
47 * `-----------------------------------------------------------' 45 * `-----------------------------------------------------------'
48 */ 46 */
49 [_BL] = KEYMAP( 47 [_BL] = LAYOUT_all(
50 KC_GESC,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_GRV, KC_BSPC,\ 48 KC_GESC,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_GRV, KC_BSPC,\
51 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, \ 49 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, \
52 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_NUHS, KC_ENT, \ 50 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_NUHS, KC_ENT, \
53 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_BSLS, \ 51 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_BSLS, \
54 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL), 52 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
55 [_FL] = KEYMAP( 53 [_FL] = LAYOUT_all(
56 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, _______,_______,\ 54 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, _______,_______,\
57 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ 55 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
58 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 56 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
59 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \ 57 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \
60 _______,_______,_______, _______, _______, _______, MO(_FL), _______), 58 _______,_______,_______, _______, _______, _______, MO(_FL), _______),
61 [_CL] = KEYMAP( 59 [_CL] = LAYOUT_all(
62 BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\ 60 BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
63 _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \ 61 _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
64 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 62 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
diff --git a/keyboards/clueboard/60/keymaps/default_aek/keymap.c b/keyboards/clueboard/60/keymaps/default_aek/keymap.c
index ea5333e3c..ed4132f41 100644
--- a/keyboards/clueboard/60/keymaps/default_aek/keymap.c
+++ b/keyboards/clueboard/60/keymaps/default_aek/keymap.c
@@ -1,7 +1,5 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2 2
3#define _______ KC_TRNS
4
5enum keyboard_layers { 3enum keyboard_layers {
6 _BL, 4 _BL,
7 _FL, 5 _FL,
@@ -22,19 +20,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 * |Ctrl |Gui|Alt | Space |Alt|Fn |Ctrl | 20 * |Ctrl |Gui|Alt | Space |Alt|Fn |Ctrl |
23 * `-----------------------------------------------------------' 21 * `-----------------------------------------------------------'
24 */ 22 */
25 [_BL] = KEYMAP_AEK( 23 [_BL] = LAYOUT_aek(
26 KC_GESC,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, \ 24 KC_GESC,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, \
27 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,\ 25 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,\
28 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, \ 26 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, \
29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ 27 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
30 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL), 28 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL),
31 [_FL] = KEYMAP_AEK( 29 [_FL] = LAYOUT_aek(
32 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, _______, \ 30 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, _______, \
33 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ 31 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
34 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 32 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
35 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 33 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
36 _______, _______, _______, _______, _______, MO(_FL), _______), 34 _______, _______, _______, _______, _______, MO(_FL), _______),
37 [_CL] = KEYMAP_AEK( 35 [_CL] = LAYOUT_aek(
38 BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ 36 BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
39 _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______,\ 37 _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______,\
40 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 38 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
diff --git a/keyboards/clueboard/60/keymaps/yanfali/keymap.c b/keyboards/clueboard/60/keymaps/yanfali/keymap.c
index b810bdcf8..7c81ea028 100644
--- a/keyboards/clueboard/60/keymaps/yanfali/keymap.c
+++ b/keyboards/clueboard/60/keymaps/yanfali/keymap.c
@@ -1,7 +1,5 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2 2
3#define _______ KC_TRNS
4
5enum keyboard_layers { 3enum keyboard_layers {
6 _BL, 4 _BL,
7 _FL, 5 _FL,
@@ -47,25 +45,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47 * |Ctrl |Alt|Gui | Space |Alt |Gui|Fn |Ctrl | 45 * |Ctrl |Alt|Gui | Space |Alt |Gui|Fn |Ctrl |
48 * `-----------------------------------------------------------------' 46 * `-----------------------------------------------------------------'
49 */ 47 */
50 [_BL] = KEYMAP( 48 [_BL] = LAYOUT_all(
51 KC_GESC,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_GRV, KC_BSPC,\ 49 KC_GESC,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_GRV, KC_BSPC,\
52 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, \ 50 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, \
53 MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \ 51 MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \
54 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, MO(_YF), \ 52 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, MO(_YF), \
55 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL), 53 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
56 [_FL] = KEYMAP( 54 [_FL] = LAYOUT_all(
57 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, _______,_______,\ 55 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, _______,_______,\
58 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ 56 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
59 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 57 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
60 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(_YF), \ 58 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(_YF), \
61 _______,_______,_______, _______, _______, _______, MO(_FL), _______), 59 _______,_______,_______, _______, _______, _______, MO(_FL), _______),
62 [_CL] = KEYMAP( 60 [_CL] = LAYOUT_all(
63 BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\ 61 BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
64 _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \ 62 _______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
65 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 63 _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
66 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \ 64 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \
67 _______, _______, _______, _______, _______, _______, MO(_FL), _______), 65 _______, _______, _______, _______, _______, _______, MO(_FL), _______),
68 [_YF] = KEYMAP( 66 [_YF] = LAYOUT_all(
69 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ 67 _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
70 _______,_______,KC_UP ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ 68 _______,_______,KC_UP ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
71 _______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 69 _______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
diff --git a/keyboards/clueboard/60/matrix.c b/keyboards/clueboard/60/matrix.c
deleted file mode 100644
index 7c38a3bd4..000000000
--- a/keyboards/clueboard/60/matrix.c
+++ /dev/null
@@ -1,175 +0,0 @@
1#include <stdint.h>
2#include <stdbool.h>
3#include <string.h>
4#include "hal.h"
5#include "timer.h"
6#include "wait.h"
7#include "printf.h"
8#include "backlight.h"
9#include "matrix.h"
10
11
12/* Clueboard 60%
13 *
14 * Column pins are input with internal pull-down.
15 * Row pins are output and strobe with high.
16 * Key is high or 1 when it turns on.
17 *
18 * col: { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC15, PC14, PC13, PB5, PB6 }
19 * row: { PB0, PB1, PB2, PA15, PA10 }
20 */
21/* matrix state(1:on, 0:off) */
22static matrix_row_t matrix[MATRIX_ROWS];
23static matrix_row_t matrix_debouncing[MATRIX_COLS];
24static bool debouncing = false;
25static uint16_t debouncing_time = 0;
26
27__attribute__ ((weak))
28void matrix_init_user(void) {}
29
30__attribute__ ((weak))
31void matrix_scan_user(void) {}
32
33__attribute__ ((weak))
34void matrix_init_kb(void) {
35 matrix_init_user();
36}
37
38__attribute__ ((weak))
39void matrix_scan_kb(void) {
40 matrix_scan_user();
41}
42
43void matrix_init(void) {
44 printf("matrix init\n");
45 //debug_matrix = true;
46
47 /* Column(sense) */
48 palSetPadMode(GPIOA, 2, PAL_MODE_OUTPUT_PUSHPULL);
49 palSetPadMode(GPIOA, 3, PAL_MODE_OUTPUT_PUSHPULL);
50 palSetPadMode(GPIOA, 6, PAL_MODE_OUTPUT_PUSHPULL);
51 palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL);
52 palSetPadMode(GPIOB, 15, PAL_MODE_OUTPUT_PUSHPULL);
53 palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL);
54 palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL);
55 palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL);
56 palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL);
57 palSetPadMode(GPIOB, 4, PAL_MODE_OUTPUT_PUSHPULL);
58 palSetPadMode(GPIOC, 15, PAL_MODE_OUTPUT_PUSHPULL);
59 palSetPadMode(GPIOC, 14, PAL_MODE_OUTPUT_PUSHPULL);
60 palSetPadMode(GPIOC, 13, PAL_MODE_OUTPUT_PUSHPULL);
61 palSetPadMode(GPIOB, 5, PAL_MODE_OUTPUT_PUSHPULL);
62 palSetPadMode(GPIOB, 6, PAL_MODE_OUTPUT_PUSHPULL);
63
64 /* Row(strobe) */
65 palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLDOWN);
66 palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_PULLDOWN);
67 palSetPadMode(GPIOB, 2, PAL_MODE_INPUT_PULLDOWN);
68 palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLDOWN);
69 palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLDOWN);
70
71 memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
72 memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
73
74 palClearPad(GPIOB, 7); // Turn off capslock
75 matrix_init_quantum();
76}
77
78uint8_t matrix_scan(void) {
79 for (int col = 0; col < MATRIX_COLS; col++) {
80 matrix_row_t data = 0;
81
82 // strobe col { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
83 switch (col) {
84 case 0: palSetPad(GPIOA, 2); break;
85 case 1: palSetPad(GPIOA, 3); break;
86 case 2: palSetPad(GPIOA, 6); break;
87 case 3: palSetPad(GPIOB, 14); break;
88 case 4: palSetPad(GPIOB, 15); break;
89 case 5: palSetPad(GPIOA, 8); break;
90 case 6: palSetPad(GPIOA, 9); break;
91 case 7: palSetPad(GPIOA, 7); break;
92 case 8: palSetPad(GPIOB, 3); break;
93 case 9: palSetPad(GPIOB, 4); break;
94 case 10: palSetPad(GPIOC, 15); break;
95 case 11: palSetPad(GPIOC, 14); break;
96 case 12: palSetPad(GPIOC, 13); break;
97 case 13: palSetPad(GPIOB, 5); break;
98 case 14: palSetPad(GPIOB, 6); break;
99 }
100
101 // need wait to settle pin state
102 wait_us(20);
103
104 // read row data { PB0, PB1, PB2, PA15, PA10 }
105 data = (
106 (palReadPad(GPIOB, 0) << 0 ) |
107 (palReadPad(GPIOB, 1) << 1 ) |
108 (palReadPad(GPIOB, 2) << 2 ) |
109 (palReadPad(GPIOA, 15) << 3 ) |
110 (palReadPad(GPIOA, 10) << 4 )
111 );
112
113 // unstrobe col { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC15, PC14, PC13, PB5, PB6 }
114 switch (col) {
115 case 0: palClearPad(GPIOA, 2); break;
116 case 1: palClearPad(GPIOA, 3); break;
117 case 2: palClearPad(GPIOA, 6); break;
118 case 3: palClearPad(GPIOB, 14); break;
119 case 4: palClearPad(GPIOB, 15); break;
120 case 5: palClearPad(GPIOA, 8); break;
121 case 6: palClearPad(GPIOA, 9); break;
122 case 7: palClearPad(GPIOA, 7); break;
123 case 8: palClearPad(GPIOB, 3); break;
124 case 9: palClearPad(GPIOB, 4); break;
125 case 10: palClearPad(GPIOC, 15); break;
126 case 11: palClearPad(GPIOC, 14); break;
127 case 12: palClearPad(GPIOC, 13); break;
128 case 13: palClearPad(GPIOB, 5); break;
129 case 14: palClearPad(GPIOB, 6); break;
130 }
131
132 if (matrix_debouncing[col] != data) {
133 matrix_debouncing[col] = data;
134 debouncing = true;
135 debouncing_time = timer_read();
136 }
137 }
138
139 if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
140 for (int row = 0; row < MATRIX_ROWS; row++) {
141 matrix[row] = 0;
142 for (int col = 0; col < MATRIX_COLS; col++) {
143 matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
144 }
145 }
146 debouncing = false;
147 }
148
149 matrix_scan_quantum();
150
151 return 1;
152}
153
154bool matrix_is_on(uint8_t row, uint8_t col) {
155 return (matrix[row] & (1<<col));
156}
157
158matrix_row_t matrix_get_row(uint8_t row) {
159 return matrix[row];
160}
161
162void matrix_print(void) {
163 printf("\nr/c 01234567\n");
164 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
165 printf("%X0: ", row);
166 matrix_row_t data = matrix_get_row(row);
167 for (int col = 0; col < MATRIX_COLS; col++) {
168 if (data & (1<<col))
169 printf("1");
170 else
171 printf("0");
172 }
173 printf("\n");
174 }
175}
diff --git a/keyboards/clueboard/60/rules.mk b/keyboards/clueboard/60/rules.mk
index 3664b6d2c..aada07352 100644
--- a/keyboards/clueboard/60/rules.mk
+++ b/keyboards/clueboard/60/rules.mk
@@ -1,6 +1,5 @@
1# project specific files 1# project specific files
2SRC = matrix.c \ 2SRC = led.c
3 led.c
4LAYOUTS += 60_ansi 60_ansi_split_bs_rshift 60_iso 3LAYOUTS += 60_ansi 60_ansi_split_bs_rshift 60_iso
5 4
6## chip/board settings 5## chip/board settings
@@ -32,8 +31,6 @@ USE_FPU = yes
32 31
33# Vector table for application 32# Vector table for application
34# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ 33# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
35# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
36# OPT_DEFS = -DCORTEX_VTOR_INIT=0x08005000
37OPT_DEFS = 34OPT_DEFS =
38 35
39# Options to pass to dfu-util when flashing 36# Options to pass to dfu-util when flashing
@@ -43,14 +40,10 @@ DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
43# comment out to disable the options. 40# comment out to disable the options.
44# 41#
45BACKLIGHT_ENABLE = no 42BACKLIGHT_ENABLE = no
46BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration 43BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
47## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) 44MOUSEKEY_ENABLE = yes # Mouse keys
48MOUSEKEY_ENABLE = yes # Mouse keys 45EXTRAKEY_ENABLE = yes # Audio control and System control
49EXTRAKEY_ENABLE = yes # Audio control and System control 46CONSOLE_ENABLE = yes # Console for debug
50CONSOLE_ENABLE = yes # Console for debug 47COMMAND_ENABLE = no # Commands for debug and configuration
51COMMAND_ENABLE = yes # Commands for debug and configuration 48NKRO_ENABLE = yes # USB Nkey Rollover
52#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
53NKRO_ENABLE = yes # USB Nkey Rollover
54CUSTOM_MATRIX = yes # Custom matrix file
55AUDIO_ENABLE = yes 49AUDIO_ENABLE = yes
56# SERIAL_LINK_ENABLE = yes
diff --git a/keyboards/clueboard/66/66.c b/keyboards/clueboard/66/66.c
deleted file mode 100644
index 15d7422f1..000000000
--- a/keyboards/clueboard/66/66.c
+++ /dev/null
@@ -1 +0,0 @@
1#include "66.h"
diff --git a/keyboards/clueboard/66/66.h b/keyboards/clueboard/66/66.h
deleted file mode 100644
index c8989983d..000000000
--- a/keyboards/clueboard/66/66.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifndef CLUEBOARD_H
2#define CLUEBOARD_H
3
4#include "quantum.h"
5
6#ifdef KEYBOARD_clueboard_66_rev1
7 #include "rev1.h"
8#endif
9#ifdef KEYBOARD_clueboard_66_rev2
10 #include "rev2.h"
11#endif
12#ifdef KEYBOARD_clueboard_66_rev3
13 #include "rev3.h"
14#endif
15
16#endif
diff --git a/keyboards/clueboard/66/config.h b/keyboards/clueboard/66/config.h
deleted file mode 100644
index dff5c96d0..000000000
--- a/keyboards/clueboard/66/config.h
+++ /dev/null
@@ -1,63 +0,0 @@
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 CLUEBOARD_66_CONFIG_H
19#define CLUEBOARD_66_CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xC1ED
25#define MANUFACTURER Clueboard
26#define PRODUCT Clueboard
27#define DESCRIPTION QMK keyboard firmware for Clueboard
28
29/* COL2ROW or ROW2COL */
30#define DIODE_DIRECTION COL2ROW
31
32/* Set 0 if debouncing isn't needed */
33#define DEBOUNCING_DELAY 5
34
35/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
36#define LOCKING_SUPPORT_ENABLE
37/* Locking resynchronize hack */
38#define LOCKING_RESYNC_ENABLE
39
40/* key combination for command */
41#define IS_COMMAND() ( \
42 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
43)
44
45/*
46 * Feature disable options
47 * These options are also useful to firmware size reduction.
48 */
49
50/* disable debug print */
51//#define NO_DEBUG
52
53/* disable print */
54//#define NO_PRINT
55
56/* disable action features */
57//#define NO_ACTION_LAYER
58//#define NO_ACTION_TAPPING
59//#define NO_ACTION_ONESHOT
60//#define NO_ACTION_MACRO
61//#define NO_ACTION_FUNCTION
62
63#endif
diff --git a/keyboards/clueboard/66/info.json b/keyboards/clueboard/66/info.json
index 1675ae761..05eb6627d 100644
--- a/keyboards/clueboard/66/info.json
+++ b/keyboards/clueboard/66/info.json
@@ -3,12 +3,33 @@
3 "width": 16.5, 3 "width": 16.5,
4 "height": 5, 4 "height": 5,
5 "layouts": { 5 "layouts": {
6 "KEYMAP": { 6 "LAYOUT": {
7 "layout": [{"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"}, {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"}, {"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"}, {"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"}, {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"}] 7 "layout": [
8 {"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"},
9 {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"},
10 {"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"},
11 {"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"},
12 {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"}
13 ]
8 }, 14 },
9 15
10 "LAYOUT_66_ansi": { 16 "LAYOUT_66_ansi": {
11 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] 17 "layout": [
12 } 18 {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0},
19 {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1},
20 {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25},
21 {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3},
22 {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}
23 ]
24 },
25
26 "LAYOUT_66_iso": {
27 "layout": [
28 {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.5, "y":0},
29 {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15.5, "y":1},
30 {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"", "x":12.75, "y":2},
31 {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"label":"\u2191", "x":14.5, "y":3},
32 {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Ctrl", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13.5, "y":4}, {"label":"\u2193", "x":14.5, "y":4}, {"label":"\u2192", "x":15.5, "y":4}
33 }
13 } 34 }
14} 35}
diff --git a/keyboards/clueboard/66/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66/keymaps/66_ansi/keymap.c
index cfa641dcc..73c809ded 100644
--- a/keyboards/clueboard/66/keymaps/66_ansi/keymap.c
+++ b/keyboards/clueboard/66/keymaps/66_ansi/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/66_ansi/readme.md b/keyboards/clueboard/66/keymaps/66_ansi/readme.md
index 25b5d7eb1..eee81c0c2 100644
--- a/keyboards/clueboard/66/keymaps/66_ansi/readme.md
+++ b/keyboards/clueboard/66/keymaps/66_ansi/readme.md
@@ -1,6 +1,4 @@
1![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) 1# Basic Clueboard 66% Hotswap ANSI Layout
2
3# Basic Clueboard 66% Hotswap Layout
4 2
5This is the default layout that comes flashed on every Clueboard. For the most 3This is the default layout that comes flashed on every Clueboard. For the most
6part it's a straightforward and easy to follow layout. The only unusual key is 4part it's a straightforward and easy to follow layout. The only unusual key is
diff --git a/keyboards/clueboard/66/keymaps/66_iso/keymap.c b/keyboards/clueboard/66/keymaps/66_iso/keymap.c
index 577cf045b..ff27acf5c 100644
--- a/keyboards/clueboard/66/keymaps/66_iso/keymap.c
+++ b/keyboards/clueboard/66/keymaps/66_iso/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/66_iso/readme.md b/keyboards/clueboard/66/keymaps/66_iso/readme.md
index 019131aeb..6d895b0eb 100644
--- a/keyboards/clueboard/66/keymaps/66_iso/readme.md
+++ b/keyboards/clueboard/66/keymaps/66_iso/readme.md
@@ -1,6 +1,4 @@
1![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) 1# Default Clueboard 66% ISO Layout
2
3# Default Clueboard Layout
4 2
5This is the default layout that comes flashed on every Clueboard. For the most 3This is the default layout that comes flashed on every Clueboard. For the most
6part it's a straightforward and easy to follow layout. The only unusual key is 4part it's a straightforward and easy to follow layout. The only unusual key is
diff --git a/keyboards/clueboard/66/keymaps/bloodlvst/config.h b/keyboards/clueboard/66/keymaps/bloodlvst/config.h
index 456936cf9..60c6ad4a1 100644
--- a/keyboards/clueboard/66/keymaps/bloodlvst/config.h
+++ b/keyboards/clueboard/66/keymaps/bloodlvst/config.h
@@ -1,7 +1,3 @@
1#ifndef CONFIG_USER_H 1#pragma once
2#define CONFIG_USER_H
3
4#include "../../config.h"
5 2
6#define DISABLE_SPACE_CADET_ROLLOVER 3#define DISABLE_SPACE_CADET_ROLLOVER
7#endif
diff --git a/keyboards/clueboard/66/keymaps/bloodlvst/keymap.c b/keyboards/clueboard/66/keymaps/bloodlvst/keymap.c
index 73543cbfa..7c7faba9c 100644
--- a/keyboards/clueboard/66/keymaps/bloodlvst/keymap.c
+++ b/keyboards/clueboard/66/keymaps/bloodlvst/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/caps_fn/keymap.c b/keyboards/clueboard/66/keymaps/caps_fn/keymap.c
index c48c50738..fc0c56d9a 100644
--- a/keyboards/clueboard/66/keymaps/caps_fn/keymap.c
+++ b/keyboards/clueboard/66/keymaps/caps_fn/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/caps_fn/readme.md b/keyboards/clueboard/66/keymaps/caps_fn/readme.md
index 47a530a80..71d1246c0 100644
--- a/keyboards/clueboard/66/keymaps/caps_fn/readme.md
+++ b/keyboards/clueboard/66/keymaps/caps_fn/readme.md
@@ -1,5 +1,3 @@
1![Clueboard Layout Image](http://i.imgur.com/kGADucy.png)
2
3# Caps Fn Layout 1# Caps Fn Layout
4 2
5This is the default layout except that Caps Lock acts like Caps Lock when 3This is the default layout except that Caps Lock acts like Caps Lock when
diff --git a/keyboards/clueboard/66/keymaps/colemak/keymap.c b/keyboards/clueboard/66/keymaps/colemak/keymap.c
index 3666bd0e6..4479556b6 100644
--- a/keyboards/clueboard/66/keymaps/colemak/keymap.c
+++ b/keyboards/clueboard/66/keymaps/colemak/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/default/keymap.c b/keyboards/clueboard/66/keymaps/default/keymap.c
index 555ff97f0..95283db88 100644
--- a/keyboards/clueboard/66/keymaps/default/keymap.c
+++ b/keyboards/clueboard/66/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/default/readme.md b/keyboards/clueboard/66/keymaps/default/readme.md
index 019131aeb..b1cdcbe4e 100644
--- a/keyboards/clueboard/66/keymaps/default/readme.md
+++ b/keyboards/clueboard/66/keymaps/default/readme.md
@@ -1,6 +1,4 @@
1![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) 1# Default Clueboard 66% Universal Layout
2
3# Default Clueboard Layout
4 2
5This is the default layout that comes flashed on every Clueboard. For the most 3This is the default layout that comes flashed on every Clueboard. For the most
6part it's a straightforward and easy to follow layout. The only unusual key is 4part it's a straightforward and easy to follow layout. The only unusual key is
diff --git a/keyboards/clueboard/66/keymaps/jokrik/keymap.c b/keyboards/clueboard/66/keymaps/jokrik/keymap.c
index 118efe0a9..9c6997c34 100644
--- a/keyboards/clueboard/66/keymaps/jokrik/keymap.c
+++ b/keyboards/clueboard/66/keymaps/jokrik/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/mac_optimized/keymap.c b/keyboards/clueboard/66/keymaps/mac_optimized/keymap.c
index 29d968429..30e772900 100644
--- a/keyboards/clueboard/66/keymaps/mac_optimized/keymap.c
+++ b/keyboards/clueboard/66/keymaps/mac_optimized/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/mac_optimized/readme.md b/keyboards/clueboard/66/keymaps/mac_optimized/readme.md
index 282da369d..db7a87d44 100644
--- a/keyboards/clueboard/66/keymaps/mac_optimized/readme.md
+++ b/keyboards/clueboard/66/keymaps/mac_optimized/readme.md
@@ -1,5 +1,3 @@
1![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png)
2
3# Default Clueboard Layout for Mac 1# Default Clueboard Layout for Mac
4 2
5This is the default Clueboard layout with Alt and GUI switched to match Mac 3This is the default Clueboard layout with Alt and GUI switched to match Mac
diff --git a/keyboards/clueboard/66/keymaps/magicmonty/config.h b/keyboards/clueboard/66/keymaps/magicmonty/config.h
index d933fa997..65853f6b0 100644
--- a/keyboards/clueboard/66/keymaps/magicmonty/config.h
+++ b/keyboards/clueboard/66/keymaps/magicmonty/config.h
@@ -1,7 +1,4 @@
1#ifndef CONFIG_USER_H 1#pragma once
2#define CONFIG_USER_H
3
4#include "../../config.h"
5 2
6/* 3/*
7 * MIDI options 4 * MIDI options
@@ -36,5 +33,3 @@
36#define LSPO_KEY KC_8 33#define LSPO_KEY KC_8
37#define RSPC_KEY KC_9 34#define RSPC_KEY KC_9
38#define PERMISSIVE_HOLD 35#define PERMISSIVE_HOLD
39
40#endif
diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c
index 7f91224cf..8d9371567 100644
--- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c
+++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Helpful defines 3// Helpful defines
4#define xxxxxxx KC_NO 4#define xxxxxxx KC_NO
diff --git a/keyboards/clueboard/66/keymaps/magicmonty/rules.mk b/keyboards/clueboard/66/keymaps/magicmonty/rules.mk
index 7ee1ff169..46222e2d3 100644
--- a/keyboards/clueboard/66/keymaps/magicmonty/rules.mk
+++ b/keyboards/clueboard/66/keymaps/magicmonty/rules.mk
@@ -1,6 +1,7 @@
1 1
2MOUSEKEY_ENABLE = yes 2MOUSEKEY_ENABLE = yes
3EXTRAKEY_ENABLE = yes 3EXTRAKEY_ENABLE = yes
4RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
4 5
5MIDI_ENABLE = yes 6MIDI_ENABLE = yes
6 7
diff --git a/keyboards/clueboard/66/keymaps/manofinterests/keymap.c b/keyboards/clueboard/66/keymaps/manofinterests/keymap.c
index 08815dc5a..e71419980 100644
--- a/keyboards/clueboard/66/keymaps/manofinterests/keymap.c
+++ b/keyboards/clueboard/66/keymaps/manofinterests/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/maximised/keymap.c b/keyboards/clueboard/66/keymaps/maximised/keymap.c
index 1b117dc60..c2e05a5a2 100644
--- a/keyboards/clueboard/66/keymaps/maximised/keymap.c
+++ b/keyboards/clueboard/66/keymaps/maximised/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/maximised/readme.md b/keyboards/clueboard/66/keymaps/maximised/readme.md
index fc82e6879..b8d54a309 100644
--- a/keyboards/clueboard/66/keymaps/maximised/readme.md
+++ b/keyboards/clueboard/66/keymaps/maximised/readme.md
@@ -1,5 +1,3 @@
1![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png)
2
3# Maximised Clueboard Layout 1# Maximised Clueboard Layout
4 2
5This layout is intended for a board with one or both shifts split. The outside key on the split shift is an Fn, while the inside is shift. The bottom row has all the mods on both sides, optimised for a Mac. 3This layout is intended for a board with one or both shifts split. The outside key on the split shift is an Fn, while the inside is shift. The bottom row has all the mods on both sides, optimised for a Mac.
diff --git a/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c b/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c
index 2169312d4..be5634f10 100644
--- a/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c
+++ b/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/mouse_keys/readme.md b/keyboards/clueboard/66/keymaps/mouse_keys/readme.md
index 7fb038205..de883e894 100644
--- a/keyboards/clueboard/66/keymaps/mouse_keys/readme.md
+++ b/keyboards/clueboard/66/keymaps/mouse_keys/readme.md
@@ -1,5 +1,3 @@
1![Clueboard Layout Image](layout.png)
2
3# MouseKeys Layout 1# MouseKeys Layout
4 2
5This layout adds a mouse layer. When you hold down the spacebar the arrow keys 3This layout adds a mouse layer. When you hold down the spacebar the arrow keys
diff --git a/keyboards/clueboard/66/keymaps/mrscooty/keymap.c b/keyboards/clueboard/66/keymaps/mrscooty/keymap.c
index abf98615e..302649c92 100644
--- a/keyboards/clueboard/66/keymaps/mrscooty/keymap.c
+++ b/keyboards/clueboard/66/keymaps/mrscooty/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/serubin/keymap.c b/keyboards/clueboard/66/keymaps/serubin/keymap.c
index 32507e918..e77417c3c 100644
--- a/keyboards/clueboard/66/keymaps/serubin/keymap.c
+++ b/keyboards/clueboard/66/keymaps/serubin/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/shift_fn/keymap.c b/keyboards/clueboard/66/keymaps/shift_fn/keymap.c
index 3736db899..8556f9080 100644
--- a/keyboards/clueboard/66/keymaps/shift_fn/keymap.c
+++ b/keyboards/clueboard/66/keymaps/shift_fn/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/shift_fn/readme.md b/keyboards/clueboard/66/keymaps/shift_fn/readme.md
index 4bd920ad4..d68c5b053 100644
--- a/keyboards/clueboard/66/keymaps/shift_fn/readme.md
+++ b/keyboards/clueboard/66/keymaps/shift_fn/readme.md
@@ -1,4 +1,4 @@
1# Shift Fn Clueboard Layout 1# Shift Fn Clueboard 66% Layout
2 2
3This is an experimental layout. It makes the left shift key a dual roll key. 3This is an experimental layout. It makes the left shift key a dual roll key.
4For most keys it acts as a shift key, but for some keys it activates an 4For most keys it acts as a shift key, but for some keys it activates an
diff --git a/keyboards/clueboard/66/keymaps/smt/keymap.c b/keyboards/clueboard/66/keymaps/smt/keymap.c
index 42dcfecac..c1e375690 100644
--- a/keyboards/clueboard/66/keymaps/smt/keymap.c
+++ b/keyboards/clueboard/66/keymaps/smt/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/tetris/keymap.c b/keyboards/clueboard/66/keymaps/tetris/keymap.c
index f7c6d4c13..ef3abd667 100644
--- a/keyboards/clueboard/66/keymaps/tetris/keymap.c
+++ b/keyboards/clueboard/66/keymaps/tetris/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2#include "tetris_text.h" 2#include "tetris_text.h"
3 3
4// Helpful defines 4// Helpful defines
diff --git a/keyboards/clueboard/66/keymaps/unix_optimized/keymap.c b/keyboards/clueboard/66/keymaps/unix_optimized/keymap.c
index 927e84853..823959ee0 100644
--- a/keyboards/clueboard/66/keymaps/unix_optimized/keymap.c
+++ b/keyboards/clueboard/66/keymaps/unix_optimized/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/unix_optimized/readme.md b/keyboards/clueboard/66/keymaps/unix_optimized/readme.md
index 9e6d0e902..79c7daef8 100644
--- a/keyboards/clueboard/66/keymaps/unix_optimized/readme.md
+++ b/keyboards/clueboard/66/keymaps/unix_optimized/readme.md
@@ -1,6 +1,4 @@
1![Clueboard Layout Image](http://i.imgur.com/BnWlOht.png) 1# Default Clueboard 66% Layout
2
3# Default Clueboard Layout
4 2
5This is the default layout except that Caps Lock has been changed to Control 3This is the default layout except that Caps Lock has been changed to Control
6and Insert and Delete have been put into the Fn layer. 4and Insert and Delete have been put into the Fn layer.
diff --git a/keyboards/clueboard/66/keymaps/win_optimized/keymap.c b/keyboards/clueboard/66/keymaps/win_optimized/keymap.c
index 243235016..2c5cb8639 100644
--- a/keyboards/clueboard/66/keymaps/win_optimized/keymap.c
+++ b/keyboards/clueboard/66/keymaps/win_optimized/keymap.c
@@ -1,4 +1,4 @@
1#include "66.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66/keymaps/win_optimized/readme.md b/keyboards/clueboard/66/keymaps/win_optimized/readme.md
index 703a37be0..d79603268 100644
--- a/keyboards/clueboard/66/keymaps/win_optimized/readme.md
+++ b/keyboards/clueboard/66/keymaps/win_optimized/readme.md
@@ -1,6 +1,4 @@
1![Clueboard Layout Image](http://i.imgur.com/fsqOqZo.png) 1# Default Clueboard 66% Layout
2
3# Default Clueboard Layout
4 2
5This is the default layout that comes flashed on every Clueboard. For the most 3This is the default layout that comes flashed on every Clueboard. For the most
6part it's a straightforward and easy to follow layout. The only unusual key is 4part it's a straightforward and easy to follow layout. The only unusual key is
diff --git a/keyboards/clueboard/66/keymaps/xyverz/config.h b/keyboards/clueboard/66/keymaps/xyverz/config.h
index 4999e4ff6..979cbf576 100644
--- a/keyboards/clueboard/66/keymaps/xyverz/config.h
+++ b/keyboards/clueboard/66/keymaps/xyverz/config.h
@@ -1,3 +1,3 @@
1#include "../config.h" 1#pragma once
2 2
3#define TAPPING_TERM 600 // ms 3#define TAPPING_TERM 600 // ms
diff --git a/keyboards/clueboard/66/keymaps/xyverz/keymap.c b/keyboards/clueboard/66/keymaps/xyverz/keymap.c
index e3f413b49..916a448e2 100644
--- a/keyboards/clueboard/66/keymaps/xyverz/keymap.c
+++ b/keyboards/clueboard/66/keymaps/xyverz/keymap.c
@@ -1,7 +1,7 @@
1// Xyverz' keymap. 1// Xyverz' keymap.
2// It's based on the default keymap, but Dvorak! 2// It's based on the default keymap, but Dvorak!
3 3
4#include "66.h" 4#include QMK_KEYBOARD_H
5#include "action_layer.h" 5#include "action_layer.h"
6#include "eeconfig.h" 6#include "eeconfig.h"
7 7
diff --git a/keyboards/clueboard/66/readme.md b/keyboards/clueboard/66/readme.md
index b7ca6cb56..094cc219e 100644
--- a/keyboards/clueboard/66/readme.md
+++ b/keyboards/clueboard/66/readme.md
@@ -1,6 +1,6 @@
1# Clueboard 66% 1# Clueboard 66%
2 2
3![Clueboard](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/5867eeaad2b857fd0d196f4b/1494021396651/IMGP4201.jpg?format=1500w) 3![Clueboard](https://i.imgur.com/hLePwJu.jpg)
4 4
5A fully customizable 66% keyboard. 5A fully customizable 66% keyboard.
6 6
@@ -8,7 +8,7 @@ A fully customizable 66% keyboard.
8* Hardware Supported: Clueboard 66% PCB 8* Hardware Supported: Clueboard 66% PCB
9 * rev1 (PCB Version 1.0) 9 * rev1 (PCB Version 1.0)
10 * rev2 (PCB Versions 2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6) 10 * rev2 (PCB Versions 2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6)
11 * rev3 (PCB Versions 2.7, 2.8) 11 * rev3 (PCB Versions 2.7, 2.8, 2.9)
12* Hardware Availability: [clueboard.co](https://clueboard.co/) 12* Hardware Availability: [clueboard.co](https://clueboard.co/)
13 13
14Make example for this keyboard (after setting up your build environment): 14Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/clueboard/66/rev1/config.h b/keyboards/clueboard/66/rev1/config.h
index 210718d56..a35c0d0f6 100644
--- a/keyboards/clueboard/66/rev1/config.h
+++ b/keyboards/clueboard/66/rev1/config.h
@@ -1,28 +1,60 @@
1#ifndef CLUEBOARD_66_REV1_CONFIG_H 1#pragma once
2#define CLUEBOARD_66_REV1_CONFIG_H
3 2
4#include "config_common.h" 3#include "config_common.h"
5 4
5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xC1ED
6#define PRODUCT_ID 0x2301 7#define PRODUCT_ID 0x2301
7#define DEVICE_VER 0x0003 8#define DEVICE_VER 0x0003
9#define MANUFACTURER Clueboard
10#define PRODUCT Clueboard
11#define DESCRIPTION QMK keyboard firmware for Clueboard
8 12
9/* key matrix size */ 13/* key matrix size
14 */
10#define MATRIX_ROWS 5 15#define MATRIX_ROWS 5
11#define MATRIX_COLS 16 16#define MATRIX_COLS 16
12 17
13// ROWS: Top to bottom, COLS: Left to right 18/* ROWS: Top to bottom, COLS: Left to right
14/* Column pin configuration 19 */
15* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
17*/
18#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } 20#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
19/* Row pin configuration
20* row: 0 1 2 3 4
21* pin: D1 D0 D2 D5 D3
22*/
23#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 } 21#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 }
24#define UNUSED_PINS 22#define UNUSED_PINS
25 23
24/* COL2ROW or ROW2COL */
25#define DIODE_DIRECTION COL2ROW
26
27/* Set 0 if debouncing isn't needed */
28#define DEBOUNCING_DELAY 5
29
30/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
31#define LOCKING_SUPPORT_ENABLE
32/* Locking resynchronize hack */
33#define LOCKING_RESYNC_ENABLE
34
35/* key combination for command */
36#define IS_COMMAND() ( \
37 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
38)
39
40/*
41 * Feature disable options
42 * These options are also useful to firmware size reduction.
43 */
44
45/* disable debug print */
46//#define NO_DEBUG
47
48/* disable print */
49//#define NO_PRINT
50
51/* disable action features */
52//#define NO_ACTION_LAYER
53//#define NO_ACTION_TAPPING
54//#define NO_ACTION_ONESHOT
55//#define NO_ACTION_MACRO
56//#define NO_ACTION_FUNCTION
57
26/* Underlight configuration 58/* Underlight configuration
27 */ 59 */
28#define RGB_DI_PIN B2 60#define RGB_DI_PIN B2
@@ -31,6 +63,3 @@
31#define RGBLIGHT_HUE_STEP 10 63#define RGBLIGHT_HUE_STEP 10
32#define RGBLIGHT_SAT_STEP 17 64#define RGBLIGHT_SAT_STEP 17
33#define RGBLIGHT_VAL_STEP 17 65#define RGBLIGHT_VAL_STEP 17
34
35
36#endif
diff --git a/keyboards/clueboard/66/rev1/rev1.h b/keyboards/clueboard/66/rev1/rev1.h
index 58694fcb9..8a5e9bf68 100644
--- a/keyboards/clueboard/66/rev1/rev1.h
+++ b/keyboards/clueboard/66/rev1/rev1.h
@@ -1,7 +1,6 @@
1#ifndef REV1_H 1#pragma once
2#define REV1_H
3 2
4#include "../66.h" 3#include "quantum.h"
5 4
6/* Clueboard matrix layout 5/* Clueboard matrix layout
7 * ,-----------------------------------------------------------. ,---. 6 * ,-----------------------------------------------------------. ,---.
@@ -43,7 +42,6 @@
43 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ 42 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
44 { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \ 43 { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \
45} 44}
46#define KEYMAP LAYOUT
47 45
48#define LAYOUT_66_ansi( \ 46#define LAYOUT_66_ansi( \
49 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \ 47 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \
@@ -73,4 +71,4 @@
73 { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, k4C, k4D, k4E, k4F } \ 71 { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, k4C, k4D, k4E, k4F } \
74} 72}
75 73
76#endif 74#define KEYMAP LAYOUT
diff --git a/keyboards/clueboard/66/rev1/rules.mk b/keyboards/clueboard/66/rev1/rules.mk
index f84561674..96d4125ac 100644
--- a/keyboards/clueboard/66/rev1/rules.mk
+++ b/keyboards/clueboard/66/rev1/rules.mk
@@ -1 +1,23 @@
1BACKLIGHT_ENABLE = no \ No newline at end of file 1LAYOUTS = 66_ansi 66_iso
2MCU = atmega32u4
3F_CPU = 16000000
4ARCH = AVR8
5F_USB = $(F_CPU)
6OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
7OPT_DEFS += -DBOOTLOADER_SIZE=4096
8
9# Build Options
10# comment out to disable the options.
11#
12BACKLIGHT_ENABLE = no
13BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
14MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
15EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
16CONSOLE_ENABLE = yes # Console for debug(+400)
17COMMAND_ENABLE = no # Commands for debug and configuration
18NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
19AUDIO_ENABLE = no
20RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
21MIDI_ENABLE = no # MIDI controls
22UNICODE_ENABLE = no # Unicode
23BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/clueboard/66/rev2/config.h b/keyboards/clueboard/66/rev2/config.h
index 6ab2b1127..0216b5e1f 100644
--- a/keyboards/clueboard/66/rev2/config.h
+++ b/keyboards/clueboard/66/rev2/config.h
@@ -1,28 +1,59 @@
1#ifndef CLUEBOARD_66_REV2_CONFIG_H 1#pragma once
2#define CLUEBOARD_66_REV2_CONFIG_H
3 2
4#include "config_common.h" 3#include "config_common.h"
5 4
5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xC1ED
6#define PRODUCT_ID 0x2320 7#define PRODUCT_ID 0x2320
7#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Clueboard
10#define PRODUCT Clueboard
11#define DESCRIPTION QMK keyboard firmware for Clueboard
8 12
9/* key matrix size */ 13/* key matrix size */
10#define MATRIX_ROWS 10 14#define MATRIX_ROWS 10
11#define MATRIX_COLS 8 15#define MATRIX_COLS 8
12 16
13// ROWS: Top to bottom, COLS: Left to right 17/* ROWS: Top to bottom, COLS: Left to right
14/* Row pin configuration
15* row: 0 1 2 3 4 5 6 7 8 9
16* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
17*/ 18*/
18#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } 19#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
19/* Column pin configuration
20 * col: 0 1 2 3 4 5 6 7
21 * pin: F0 F1 F4 F5 F6 F7 E6 B1
22 */
23#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } 20#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
24#define UNUSED_PINS 21#define UNUSED_PINS
25 22
23/* COL2ROW or ROW2COL */
24#define DIODE_DIRECTION COL2ROW
25
26/* Set 0 if debouncing isn't needed */
27#define DEBOUNCING_DELAY 5
28
29/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
30#define LOCKING_SUPPORT_ENABLE
31/* Locking resynchronize hack */
32#define LOCKING_RESYNC_ENABLE
33
34/* key combination for command */
35#define IS_COMMAND() ( \
36 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
37)
38
39/*
40 * Feature disable options
41 * These options are also useful to firmware size reduction.
42 */
43
44/* disable debug print */
45//#define NO_DEBUG
46
47/* disable print */
48//#define NO_PRINT
49
50/* disable action features */
51//#define NO_ACTION_LAYER
52//#define NO_ACTION_TAPPING
53//#define NO_ACTION_ONESHOT
54//#define NO_ACTION_MACRO
55//#define NO_ACTION_FUNCTION
56
26 /* Backlight configuration 57 /* Backlight configuration
27 */ 58 */
28#define BACKLIGHT_LEVELS 1 59#define BACKLIGHT_LEVELS 1
@@ -44,5 +75,3 @@
44#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 1 // The led to start at 75#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 1 // The led to start at
45#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel 76#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
46#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up 77#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
47
48#endif
diff --git a/keyboards/clueboard/66/rev2/rev2.h b/keyboards/clueboard/66/rev2/rev2.h
index bac608df9..267e6795e 100644
--- a/keyboards/clueboard/66/rev2/rev2.h
+++ b/keyboards/clueboard/66/rev2/rev2.h
@@ -1,7 +1,6 @@
1#ifndef REV2_H 1#pragma once
2#define REV2_H
3 2
4#include "66.h" 3#include "quantum.h"
5 4
6/* Clueboard matrix layout 5/* Clueboard matrix layout
7 * ,-----------------------------------------------------------. ,---. 6 * ,-----------------------------------------------------------. ,---.
@@ -48,7 +47,6 @@
48 { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ 47 { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
49 { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ 48 { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
50} 49}
51#define KEYMAP LAYOUT
52 50
53/* LAYOUT_66_ansi, standard 66 key ANSI layout 51/* LAYOUT_66_ansi, standard 66 key ANSI layout
54 */ 52 */
@@ -92,4 +90,4 @@
92 { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ 90 { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \
93} 91}
94 92
95#endif 93#define KEYMAP LAYOUT
diff --git a/keyboards/clueboard/66/rev2/rules.mk b/keyboards/clueboard/66/rev2/rules.mk
index 54a2685bf..4987ac137 100644
--- a/keyboards/clueboard/66/rev2/rules.mk
+++ b/keyboards/clueboard/66/rev2/rules.mk
@@ -1 +1,22 @@
1BACKLIGHT_ENABLE = yes \ No newline at end of file 1LAYOUTS = 66_ansi 66_iso
2MCU = atmega32u4
3F_CPU = 16000000
4ARCH = AVR8
5F_USB = $(F_CPU)
6OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
7OPT_DEFS += -DBOOTLOADER_SIZE=4096
8
9
10# Build Options
11BACKLIGHT_ENABLE = yes
12BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
13MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
14EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
15CONSOLE_ENABLE = yes # Console for debug(+400)
16COMMAND_ENABLE = no # Commands for debug and configuration
17NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18AUDIO_ENABLE = no
19RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
20MIDI_ENABLE = no # MIDI controls
21UNICODE_ENABLE = no # Unicode
22BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/clueboard/66/rev3/config.h b/keyboards/clueboard/66/rev3/config.h
index 218736a88..e7cda4ccf 100644
--- a/keyboards/clueboard/66/rev3/config.h
+++ b/keyboards/clueboard/66/rev3/config.h
@@ -1,28 +1,59 @@
1#ifndef CLUEBOARD_66_REV3_CONFIG_H 1#pragma once
2#define CLUEBOARD_66_REV3_CONFIG_H
3 2
4#include "config_common.h" 3#include "config_common.h"
5 4
5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xC1ED
6#define PRODUCT_ID 0x2370 7#define PRODUCT_ID 0x2370
7#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Clueboard
10#define PRODUCT Clueboard
11#define DESCRIPTION QMK keyboard firmware for Clueboard
8 12
9/* key matrix size */ 13/* key matrix size */
10#define MATRIX_ROWS 10 14#define MATRIX_ROWS 10
11#define MATRIX_COLS 8 15#define MATRIX_COLS 8
12 16
13// ROWS: Top to bottom, COLS: Left to right 17/* ROWS: Top to bottom, COLS: Left to right
14/* Row pin configuration
15* row: 0 1 2 3 4 5 6 7 8 9
16* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
17*/ 18*/
18#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } 19#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
19/* Column pin configuration
20 * col: 0 1 2 3 4 5 6 7
21 * pin: F0 F1 F4 F5 F6 F7 E6 B1
22 */
23#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } 20#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
24#define UNUSED_PINS 21#define UNUSED_PINS
25 22
23/* COL2ROW or ROW2COL */
24#define DIODE_DIRECTION COL2ROW
25
26/* Set 0 if debouncing isn't needed */
27#define DEBOUNCING_DELAY 5
28
29/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
30#define LOCKING_SUPPORT_ENABLE
31/* Locking resynchronize hack */
32#define LOCKING_RESYNC_ENABLE
33
34/* key combination for command */
35#define IS_COMMAND() ( \
36 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
37)
38
39/*
40 * Feature disable options
41 * These options are also useful to firmware size reduction.
42 */
43
44/* disable debug print */
45//#define NO_DEBUG
46
47/* disable print */
48//#define NO_PRINT
49
50/* disable action features */
51//#define NO_ACTION_LAYER
52//#define NO_ACTION_TAPPING
53//#define NO_ACTION_ONESHOT
54//#define NO_ACTION_MACRO
55//#define NO_ACTION_FUNCTION
56
26 /* Backlight configuration 57 /* Backlight configuration
27 */ 58 */
28#define BACKLIGHT_LEVELS 1 59#define BACKLIGHT_LEVELS 1
@@ -44,5 +75,3 @@
44#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at 75#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at
45#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel 76#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
46#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up 77#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
47
48#endif
diff --git a/keyboards/clueboard/66/rev3/rev3.c b/keyboards/clueboard/66/rev3/rev3.c
index 713d998e6..195a21a9e 100644
--- a/keyboards/clueboard/66/rev3/rev3.c
+++ b/keyboards/clueboard/66/rev3/rev3.c
@@ -8,10 +8,6 @@ void matrix_init_kb(void) {
8 // runs once when the firmware starts up 8 // runs once when the firmware starts up
9 matrix_init_user(); 9 matrix_init_user();
10 led_init_ports(); 10 led_init_ports();
11
12 // JTAG disable for PORT F. write JTD bit twice within four cycles.
13 MCUCR |= (1<<JTD);
14 MCUCR |= (1<<JTD);
15} 11}
16 12
17 13
diff --git a/keyboards/clueboard/66/rev3/rev3.h b/keyboards/clueboard/66/rev3/rev3.h
index 0f322a5c0..267e6795e 100644
--- a/keyboards/clueboard/66/rev3/rev3.h
+++ b/keyboards/clueboard/66/rev3/rev3.h
@@ -1,7 +1,6 @@
1#ifndef REV3_H 1#pragma once
2#define REV3_H
3 2
4#include "66.h" 3#include "quantum.h"
5 4
6/* Clueboard matrix layout 5/* Clueboard matrix layout
7 * ,-----------------------------------------------------------. ,---. 6 * ,-----------------------------------------------------------. ,---.
@@ -48,7 +47,6 @@
48 { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ 47 { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
49 { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ 48 { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
50} 49}
51#define KEYMAP LAYOUT
52 50
53/* LAYOUT_66_ansi, standard 66 key ANSI layout 51/* LAYOUT_66_ansi, standard 66 key ANSI layout
54 */ 52 */
@@ -92,4 +90,4 @@
92 { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ 90 { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \
93} 91}
94 92
95#endif 93#define KEYMAP LAYOUT
diff --git a/keyboards/clueboard/66/rev3/rules.mk b/keyboards/clueboard/66/rev3/rules.mk
index 54a2685bf..8c1836351 100644
--- a/keyboards/clueboard/66/rev3/rules.mk
+++ b/keyboards/clueboard/66/rev3/rules.mk
@@ -1 +1,23 @@
1BACKLIGHT_ENABLE = yes \ No newline at end of file 1LAYOUTS = 66_ansi 66_iso
2MCU = atmega32u4
3F_CPU = 16000000
4ARCH = AVR8
5F_USB = $(F_CPU)
6OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
7OPT_DEFS += -DBOOTLOADER_SIZE=4096
8
9# Build Options
10# comment out to disable the options.
11#
12BACKLIGHT_ENABLE = yes
13BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
14MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
15EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
16CONSOLE_ENABLE = yes # Console for debug(+400)
17COMMAND_ENABLE = no # Commands for debug and configuration
18NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
19AUDIO_ENABLE = no
20RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
21MIDI_ENABLE = no # MIDI controls
22UNICODE_ENABLE = no # Unicode
23BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/clueboard/66/rules.mk b/keyboards/clueboard/66/rules.mk
deleted file mode 100644
index c5f8b5c11..000000000
--- a/keyboards/clueboard/66/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
1DEFAULT_FOLDER = clueboard/66/rev2
2LAYOUTS = 66_ansi 66_iso
3MCU = atmega32u4
4F_CPU = 16000000
5ARCH = AVR8
6F_USB = $(F_CPU)
7OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
8OPT_DEFS += -DBOOTLOADER_SIZE=4096
9
10# Build Options
11# comment out to disable the options.
12#
13BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
14MOUSEKEY_ENABLE = no # Mouse keys(+4700)
15EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
16CONSOLE_ENABLE = yes # Console for debug(+400)
17COMMAND_ENABLE = yes # Commands for debug and configuration
18NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
19AUDIO_ENABLE = no
20RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
21MIDI_ENABLE = no # MIDI controls
22UNICODE_ENABLE = no # Unicode
23BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
24
25LAYOUTS = 66_ansi
diff --git a/keyboards/clueboard/66_hotswap/config.h b/keyboards/clueboard/66_hotswap/config.h
index 97da92cfd..d676af0ca 100644
--- a/keyboards/clueboard/66_hotswap/config.h
+++ b/keyboards/clueboard/66_hotswap/config.h
@@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#pragma once 18#pragma once
19
19#include "config_common.h" 20#include "config_common.h"
20 21
21/* USB Device descriptor parameter */ 22/* USB Device descriptor parameter */
diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h
index 14188634b..d5d36d4a1 100644
--- a/keyboards/clueboard/66_hotswap/gen1/config.h
+++ b/keyboards/clueboard/66_hotswap/gen1/config.h
@@ -1,4 +1,5 @@
1#pragma once 1#pragma once
2
2#include "config_common.h" 3#include "config_common.h"
3 4
4#define PRODUCT_ID 0x2390 5#define PRODUCT_ID 0x2390
@@ -8,17 +9,9 @@
8#define MATRIX_ROWS 10 9#define MATRIX_ROWS 10
9#define MATRIX_COLS 8 10#define MATRIX_COLS 8
10 11
11// ROWS: Top to bottom, COLS: Left to right 12/* ROWS: Top to bottom, COLS: Left to right
12/* Row pin configuration
13* row: 0 1 2 3 4 5 6 7 8 9
14* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
15*/ 13*/
16
17#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } 14#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
18/* Column pin configuration
19 * col: 0 1 2 3 4 5 6 7
20 * pin: F0 F1 F4 F5 F6 F7 E6 B1
21 */
22#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } 15#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
23#define UNUSED_PINS 16#define UNUSED_PINS
24 17
diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.h b/keyboards/clueboard/66_hotswap/gen1/gen1.h
index 2d0a9d397..e71994f9c 100644
--- a/keyboards/clueboard/66_hotswap/gen1/gen1.h
+++ b/keyboards/clueboard/66_hotswap/gen1/gen1.h
@@ -3,65 +3,65 @@
3 3
4/* Clueboard matrix layout 4/* Clueboard matrix layout
5 * ,-----------------------------------------------------------. ,---. 5 * ,-----------------------------------------------------------. ,---.
6 * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 56 | | 57| 6 * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 56| | 57|
7 * |-----------------------------------------------------------| |---| 7 * |-----------------------------------------------------------| |---|
8 * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| 8 * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67|
9 * |-----------------------------------------------------------| `---' 9 * |-----------------------------------------------------------| `---'
10 * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75| 10 * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 75|
11 * |------------------------------------------------------------. 11 * |-------------------------------------------------------------.
12 * | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86| 12 * | 30| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 85| 86|
13 * |------------------------------------------------------------------. 13 * |-----------------------------------------------------------------.
14 * | 40| 41| 42| 43| 45| 46| 90| 92| 93| 94| 95| 96| 97| 14 * | 40| 41| 42| 45| 46| 90| 92| 93| 94| 95| 96| 97|
15 * `------------------------------------------------------------------' 15 * `-----------------------------------------------------------------'
16 * ,-----------------------------------------------------------. ,---. 16 * ,-----------------------------------------------------------. ,---.
17 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins| 17 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins|
18 * |-----------------------------------------------------------| |---| 18 * |-----------------------------------------------------------| |---|
19 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| 19 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|
20 * |-----------------------------------------------------------| `---' 20 * |-----------------------------------------------------------| `---'
21 * |Caps | A| S| D| F| G| H| J| k| L| ;| '|Enter | 21 * |Caps | A| S| D| F| G| H| J| k| L| ;| '|Enter |
22 * |--------------------------------------------------------------. 22 * |-------------------------------------------------------------.
23 * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| 23 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |
24 * |------------------------------------------------------------------. 24 * |-----------------------------------------------------------------.
25 * |Ctrl|Alt|Gui | Space| Space|Gui |Alt |Fn |Ctrl|Left|Down|Rgt| 25 * |Ctrl|Alt |Gui | Space| Space|Gui |Alt |Fn |Ctrl|Lft|Dwn|Rgt|
26 * `------------------------------------------------------------------' 26 * `-----------------------------------------------------------------'
27 */ 27 */
28// The first section contains all of the arguments 28// The first section contains all of the arguments
29// The second converts the arguments into a two-dimensional array 29// The second converts the arguments into a two-dimensional array
30 30
31#define LAYOUT( \ 31#define LAYOUT( \
32 k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k56, k57, \ 32 k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k56, k57, \
33 k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ 33 k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
34 k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \ 34 k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \
35 k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \ 35 k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \
36 k40, k41, k42, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ 36 k40, k41, k42, k45, k46, k90, k92, k93, k94, k95, k96, k97 \
37) { \ 37) { \
38 { k00, k01, k02, k03, k04, k05, k06, k07 }, \ 38 { k00, k01, k02, k03, k04, k05, k06, k07 }, \
39 { k10, k11, k12, k13, k14, k15, k16, k17 }, \ 39 { k10, k11, k12, k13, k14, k15, k16, k17 }, \
40 { k20, k21, k22, k23, k24, k25, k26, k27 }, \ 40 { k20, k21, k22, k23, k24, k25, k26, k27 }, \
41 { k30, k31, k32, k33, k34, k35, k36, k37 }, \ 41 { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \
42 { k40, k41, k42, KC_NO, KC_NO, k45, k46, KC_NO }, \ 42 { k40, k41, k42, KC_NO, KC_NO, k45, k46, KC_NO }, \
43 { k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \ 43 { k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \
44 { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ 44 { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
45 { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ 45 { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \
46 { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ 46 { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \
47 { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ 47 { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
48} 48}
49 49
50#define LAYOUT_66_ansi( \ 50#define LAYOUT_66_ansi( \
51 k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k56, k57, \ 51 k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k56, k57, \
52 k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ 52 k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
53 k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \ 53 k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \
54 k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \ 54 k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \
55 k40, k41, k42, k46, k92, k93, k94, k95, k96, k97 \ 55 k40, k41, k42, k46, k92, k93, k94, k95, k96, k97 \
56) { \ 56) { \
57 { k00, k01, k02, k03, k04, k05, k06, k07 }, \ 57 { k00, k01, k02, k03, k04, k05, k06, k07 }, \
58 { k10, k11, k12, k13, k14, k15, k16, k17 }, \ 58 { k10, k11, k12, k13, k14, k15, k16, k17 }, \
59 { k20, k21, k22, k23, k24, k25, k26, k27 }, \ 59 { k20, k21, k22, k23, k24, k25, k26, k27 }, \
60 { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \ 60 { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \
61 { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \ 61 { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \
62 { k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \ 62 { k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \
63 { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ 63 { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
64 { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ 64 { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \
65 { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \ 65 { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \
66 { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ 66 { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \
67} 67}
diff --git a/keyboards/clueboard/66_hotswap/info.json b/keyboards/clueboard/66_hotswap/info.json
index 42fbecedd..04a748764 100644
--- a/keyboards/clueboard/66_hotswap/info.json
+++ b/keyboards/clueboard/66_hotswap/info.json
@@ -4,11 +4,22 @@
4 "height": 5, 4 "height": 5,
5 "layouts": { 5 "layouts": {
6 "LAYOUT": { 6 "LAYOUT": {
7 "layout": [{"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"}, {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"}, {"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"}, {"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"}, {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"}] 7 "layout": [
8 {"x": 0, "y": 0, "label": "GRAVE"}, {"x": 1, "y": 0, "label": "1"}, {"x": 2, "y": 0, "label": "2"}, {"x": 3, "y": 0, "label": "3"}, {"x": 4, "y": 0, "label": "4"}, {"x": 5, "y": 0, "label": "5"}, {"x": 6, "y": 0, "label": "6"}, {"x": 7, "y": 0, "label": "7"}, {"x": 8, "y": 0, "label": "8"}, {"x": 9, "y": 0, "label": "9"}, {"x": 10, "y": 0, "label": "0"}, {"x": 11, "y": 0, "label": "DASH"}, {"x": 12, "y": 0, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 2, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "label": "PAGEUP"},
9 {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "label": "Q"}, {"x": 2.5, "y": 1, "label": "W"}, {"x": 3.5, "y": 1, "label": "E"}, {"x": 4.5, "y": 1, "label": "R"}, {"x": 5.5, "y": 1, "label": "T"}, {"x": 6.5, "y": 1, "label": "Y"}, {"x": 7.5, "y": 1, "label": "U"}, {"x": 8.5, "y": 1, "label": "I"}, {"x": 9.5, "y": 1, "label": "O"}, {"x": 10.5, "y": 1, "label": "P"}, {"x": 11.5, "y": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "label": "PAGEDOWN"},
10 {"x": 0, "y": 2, "w": 1.75, "label": "CAPS LOCK"}, {"x": 1.75, "y": 2, "label": "A"}, {"x": 2.75, "y": 2, "label": "S"}, {"x": 3.75, "y": 2, "label": "D"}, {"x": 4.75, "y": 2, "label": "F"}, {"x": 5.75, "y": 2, "label": "G"}, {"x": 6.75, "y": 2, "label": "H"}, {"x": 7.75, "y": 2, "label": "J"}, {"x": 8.75, "y": 2, "label": "K"}, {"x": 9.75, "y": 2, "label": "L"}, {"x": 10.75, "y": 2, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 2.25, "label": "ENTER"},
11 {"x": 0, "y": 3, "w": 2.25, "label": "LSHIFT"}, {"x": 2.25, "y": 3, "label": "Z"}, {"x": 3.25, "y": 3, "label": "X"}, {"x": 4.25, "y": 3, "label": "C"}, {"x": 5.25, "y": 3, "label": "V"}, {"x": 6.25, "y": 3, "label": "B"}, {"x": 7.25, "y": 3, "label": "N"}, {"x": 8.25, "y": 3, "label": "M"}, {"x": 9.25, "y": 3, "label": "COMMA"}, {"x": 10.25, "y": 3, "label": "PERIOD"}, {"x": 11.25, "y": 3, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 2.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "label": "UP"},
12 {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1.25, "label": "LGUI"}, {"x": 2.5, "y": 4, "w": 1.25, "label": "LALT"}, {"x": 3.75, "y": 4, "w": 2.75, "label": "SPACE1"}, {"x": 6.5, "y": 4, "w": 2.25, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "RGUI"}, {"x": 10, "y": 4, "w": 1.25, "label": "RALT"}, {"x": 11.25, "y": 4, "label": "FN"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "RCTRL"}, {"x": 13.5, "y": 4, "label": "LEFT"}, {"x": 14.5, "y": 4, "label": "DOWN"}, {"x": 15.5, "y": 4, "label": "RIGHT"}
13 ]
8 }, 14 },
9
10 "LAYOUT_66_ansi": { 15 "LAYOUT_66_ansi": {
11 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] 16 "layout": [
17 {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "BACKSPACE", "x": 13, "y": 0, "w": 2}, {"label": "PAGEUP", "x": 15.5, "y": 0},
18 {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5}, {"label": "PAGEDOWN", "x": 15.5, "y": 1},
19 {"label": "CAPS LOCK", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": "SEMICOLON", "x": 10.75, "y": 2}, {"label": "QUOTE", "x": 11.75, "y": 2}, {"label": "ENTER", "x": 12.75, "y": 2, "w": 2.25},
20 {"label": "LSHIFT", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "COMMA", "x": 9.25, "y": 3}, {"label": "PERIOD", "x": 10.25, "y": 3}, {"label": "SLASH", "x": 11.25, "y": 3}, {"label": "RSHIFT", "x": 12.25, "y": 3, "w": 2.25}, {"label": "UP", "x": 14.5, "y": 3},
21 {"label": "LCTRL", "x": 0, "y": 4, "w": 1.25}, {"label": "LGUI", "x": 1.25, "y": 4, "w": 1.25}, {"label": "LALT", "x": 2.5, "y": 4, "w": 1.25}, {"label": "SPACE", "x": 3.75, "y": 4, "w": 6.25}, {"label": "RALT", "x": 10, "y": 4, "w": 1.25}, {"label": "RGUI", "x": 11.25, "y": 4}, {"label": "FN", "x": 12.25, "y": 4, "w": 1.25}, {"label": "LEFT", "x": 13.5, "y": 4}, {"label": "DOWN", "x": 14.5, "y": 4}, {"label": "RIGHT", "x": 15.5, "y": 4}
22 ]
12 } 23 }
13 } 24 }
14} 25}
diff --git a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c
index 977a3501b..224362fe5 100644
--- a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c
+++ b/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c
@@ -1,4 +1,4 @@
1#include "66_hotswap.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
diff --git a/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c b/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c
index 240eb0e97..94f2ec0c4 100644
--- a/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c
+++ b/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1#include "66_hotswap.h" 1#include QMK_KEYBOARD_H
2 2
3// Each layer gets a name for readability, which is then used in the keymap matrix below. 3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name. 4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 KC_GESC,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_PGUP, \ 13 KC_GESC,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_PGUP, \
14 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_PGDN, \ 14 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_PGDN, \
15 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, \ 15 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, \
16 KC_LSFT,MO(_FL),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,MO(_FL), KC_RSFT, KC_UP, \ 16 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
17 KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), 17 KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT),
18 18
19 /* Keymap _FL: Function Layer 19 /* Keymap _FL: Function Layer
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 KC_GRV, 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_DEL, KC_VOLU, \ 22 KC_GRV, 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_DEL, KC_VOLU, \
23 _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ 23 _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \
24 _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 24 _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
25 _______,MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,MO(_FL),_______, KC_PGUP, \ 25 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \
26 _______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), 26 _______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END),
27 27
28 /* Keymap _CL: Control layer 28 /* Keymap _CL: Control layer
@@ -31,6 +31,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ 31 BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \
32 _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ 32 _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
33 _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ 33 _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
34 _______,MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,MO(_FL),_______, RGB_SAI, \ 34 _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \
35 _______,_______,_______, RGB_MOD,RGB_MOD, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), 35 _______,_______,_______, RGB_MOD,RGB_MOD, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI),
36}; 36};
diff --git a/keyboards/clueboard/66_hotswap/readme.md b/keyboards/clueboard/66_hotswap/readme.md
index 8ece12e88..036df01c6 100644
--- a/keyboards/clueboard/66_hotswap/readme.md
+++ b/keyboards/clueboard/66_hotswap/readme.md
@@ -1,16 +1,16 @@
1# Clueboard 66% HotSwap 1# Clueboard 66% HotSwap
2 2
3![Clueboard](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/5867eeaad2b857fd0d196f4b/1494021396651/IMGP4201.jpg?format=1500w) 3![Clueboard](https://i.imgur.com/8UmBoNx.jpg)
4 4
5A fully customizable 66% keyboard with Hot Swap sockets. 5A fully customizable 66% keyboard with Hot Swap sockets.
6 6
7* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) 7* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
8* Hardware Supported: Clueboard 66% HotSwap PCB 8* Hardware Supported: Clueboard 66% HotSwap PCB
9 * 2.9 9 * 2.9 (gen1)
10* Hardware Availability: [clueboard.co](https://clueboard.co/) 10* Hardware Availability: [clueboard.co](https://clueboard.co/)
11 11
12Make example for this keyboard (after setting up your build environment): 12Make example for this keyboard (after setting up your build environment):
13 13
14 make clueboard/66_hotswap:default 14 make clueboard/66_hotswap/gen1:default
15 15
16See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 16See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/clueboard/card/card.h b/keyboards/clueboard/card/card.h
index 3342a0823..a09285eb0 100644
--- a/keyboards/clueboard/card/card.h
+++ b/keyboards/clueboard/card/card.h
@@ -1,22 +1,19 @@
1#ifndef CLUECARD_H 1#pragma once
2#define CLUECARD_H
3 2
4#include "quantum.h" 3#include "quantum.h"
5 4
6// This a shortcut to help you visually see your layout. 5// This a shortcut to help you visually see your layout.
7// The first section contains all of the arguements 6// The first section contains all of the arguements
8// The second converts the arguments into a two-dimensional array 7// The second converts the arguments into a two-dimensional array
9#define KEYMAP( \ 8#define LAYOUT( \
10 k00, k01, k02, \ 9 k00, k01, k02, \
11 k10, k12, \ 10 k10, k12, \
12 k20, k21, k22, \ 11 k20, k21, k22, \
13 k11, \ 12 k11, \
14 k30, k31, k32 \ 13 k30, k31, k32 \
15) { \ 14) { \
16 { k00, k01, k02, }, \ 15 { k00, k01, k02, }, \
17 { k10, k11, k12, }, \ 16 { k10, k11, k12, }, \
18 { k20, k21, k22, }, \ 17 { k20, k21, k22, }, \
19 { k30, k31, k32, } \ 18 { k30, k31, k32, } \
20} 19}
21
22#endif
diff --git a/keyboards/clueboard/card/config.h b/keyboards/clueboard/card/config.h
index 6520eb557..805982121 100644
--- a/keyboards/clueboard/card/config.h
+++ b/keyboards/clueboard/card/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#ifndef CONFIG_H 18#pragma once
19#define CONFIG_H
20 19
21#include "config_common.h" 20#include "config_common.h"
22 21
@@ -32,15 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
32#define MATRIX_ROWS 4 31#define MATRIX_ROWS 4
33#define MATRIX_COLS 3 32#define MATRIX_COLS 3
34 33
35/* 34/* Keyboard Matrix Assignments
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*/ 35*/
45#define MATRIX_ROW_PINS { F0, F5, F4, B4 } 36#define MATRIX_ROW_PINS { F0, F5, F4, B4 }
46#define MATRIX_COL_PINS { F1, F7, F6 } 37#define MATRIX_COL_PINS { F1, F7, F6 }
@@ -163,5 +154,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
163//#define NO_ACTION_ONESHOT 154//#define NO_ACTION_ONESHOT
164//#define NO_ACTION_MACRO 155//#define NO_ACTION_MACRO
165//#define NO_ACTION_FUNCTION 156//#define NO_ACTION_FUNCTION
166
167#endif
diff --git a/keyboards/clueboard/card/info.json b/keyboards/clueboard/card/info.json
new file mode 100644
index 000000000..86dbb4faa
--- /dev/null
+++ b/keyboards/clueboard/card/info.json
@@ -0,0 +1,20 @@
1{
2 "keyboard_name": "Cluecard",
3 "keyboard_folder": "clueboard/card",
4 "url": "",
5 "maintainer": "skullydazed",
6 "width": 10,
7 "height": 7,
8 "layouts": {
9 "LAYOUT": {
10 "layout": [
11 {"label":"ON/OFF", "x":0, "y":0}, {"label":"SAT+", "x":4, "y":0}, {"label":"BRIGHT+", "x":8, "y":0},
12 {"label":"HUE-", "x":2, "y":1}, {"label":"HUE+", "x":6, "y":1},
13 {"label":"MODE", "x":0, "y":2}, {"label":"SAT-", "x":4, "y":2}, {"label":"BRIGHT-", "x":8, "y":2},
14 {"label":"LAYER", "x":2, "y":4},
15
16 {"label":"MX1", "x":4, "y":6, "w":2, "h":2}, {"label":"MX2", "x":6, "y":6, "w":2, "h":2}, {"label":"MX3", "x":8, "y":6, "w":2, "h":2}
17 ]
18 }
19 }
20}
diff --git a/keyboards/clueboard/card/keymaps/default/config.h b/keyboards/clueboard/card/keymaps/default/config.h
index 8893d122e..271f48d00 100644
--- a/keyboards/clueboard/card/keymaps/default/config.h
+++ b/keyboards/clueboard/card/keymaps/default/config.h
@@ -1,8 +1,3 @@
1#ifndef CONFIG_USER_H 1#pragma once
2#define CONFIG_USER_H
3
4#include "../../config.h"
5 2
6// place overrides here 3// place overrides here
7
8#endif
diff --git a/keyboards/clueboard/card/keymaps/default/keymap.c b/keyboards/clueboard/card/keymaps/default/keymap.c
index 5fa6ae20a..687343e1b 100644
--- a/keyboards/clueboard/card/keymaps/default/keymap.c
+++ b/keyboards/clueboard/card/keymaps/default/keymap.c
@@ -1,10 +1,7 @@
1#include "card.h" 1#include QMK_KEYBOARD_H
2#ifdef AUDIO_ENABLE
3 #include "audio.h"
4#endif
5 2
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = KEYMAP( 4 [0] = LAYOUT(
8 RGB_TOG, RGB_SAI, RGB_VAI, \ 5 RGB_TOG, RGB_SAI, RGB_VAI, \
9 RGB_HUD, RGB_HUI, \ 6 RGB_HUD, RGB_HUI, \
10 RGB_MOD, RGB_SAD, RGB_VAD, \ 7 RGB_MOD, RGB_SAD, RGB_VAD, \
diff --git a/keyboards/clueboard/card/keymaps/default/rules.mk b/keyboards/clueboard/card/keymaps/default/rules.mk
index ed7eceea0..3b11f550f 100644
--- a/keyboards/clueboard/card/keymaps/default/rules.mk
+++ b/keyboards/clueboard/card/keymaps/default/rules.mk
@@ -3,16 +3,15 @@
3# the appropriate keymap folder that will get included automatically 3# the appropriate keymap folder that will get included automatically
4# 4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = no # Mouse keys(+4700) 6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = no # Audio control and System control(+450) 7EXTRAKEY_ENABLE = no # Audio control and System control(+450)
8CONSOLE_ENABLE = yes # Console for debug(+400) 8CONSOLE_ENABLE = yes # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration 9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls 12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = yes # Audio output on port C6 13AUDIO_ENABLE = yes # Audio output on port C6
14UNICODE_ENABLE = no # Unicode 14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. 16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/clueboard/card/keymaps/rgb_effects/config.h b/keyboards/clueboard/card/keymaps/rgb_effects/config.h
index c6c9342c8..0b2a68f54 100644
--- a/keyboards/clueboard/card/keymaps/rgb_effects/config.h
+++ b/keyboards/clueboard/card/keymaps/rgb_effects/config.h
@@ -1,12 +1,7 @@
1#ifndef CONFIG_USER_H 1#pragma once
2#define CONFIG_USER_H
3
4#include "../../config.h"
5 2
6// place overrides here 3// place overrides here
7#define RGBLIGHT_ANIMATIONS 4#define RGBLIGHT_ANIMATIONS
8#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 5#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
9#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 6#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
10#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 7#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2
11
12#endif
diff --git a/keyboards/clueboard/card/keymaps/rgb_effects/keymap.c b/keyboards/clueboard/card/keymaps/rgb_effects/keymap.c
index 15cf5325d..92d39aef5 100644
--- a/keyboards/clueboard/card/keymaps/rgb_effects/keymap.c
+++ b/keyboards/clueboard/card/keymaps/rgb_effects/keymap.c
@@ -1,12 +1,12 @@
1#include "card.h" 1#include QMK_KEYBOARD_H
2 2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = KEYMAP( 4 [0] = LAYOUT(
5 RGB_TOG, RGB_SAI, RGB_VAI, \ 5 RGB_TOG, RGB_SAI, RGB_VAI, \
6 RGB_HUD, RGB_HUI, \ 6 RGB_HUD, RGB_HUI, \
7 RGB_MOD, RGB_SAD, RGB_VAD, \ 7 RGB_MOD, RGB_SAD, RGB_VAD, \
8 BL_STEP, \ 8 BL_STEP, \
9 KC_NO, KC_NO, KC_NO \ 9 KC_NO, KC_NO, KC_NO \
10 ) 10 )
11}; 11};
12 12
diff --git a/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk b/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk
index 1418ba1bf..54d74abbe 100644
--- a/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk
+++ b/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk
@@ -3,16 +3,15 @@
3# the appropriate keymap folder that will get included automatically 3# the appropriate keymap folder that will get included automatically
4# 4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = no # Mouse keys(+4700) 6MOUSEKEY_ENABLE = no # Mouse keys(+4700)
7EXTRAKEY_ENABLE = no # Audio control and System control(+450) 7EXTRAKEY_ENABLE = no # Audio control and System control(+450)
8CONSOLE_ENABLE = yes # Console for debug(+400) 8CONSOLE_ENABLE = yes # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration 9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 11BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls 12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6 13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode 14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. 16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
diff --git a/keyboards/clueboard/card/readme.md b/keyboards/clueboard/card/readme.md
index 00d7d285b..20272d236 100644
--- a/keyboards/clueboard/card/readme.md
+++ b/keyboards/clueboard/card/readme.md
@@ -1,5 +1,7 @@
1# Cluecard 1# Cluecard
2 2
3![Cluecard](https://i.imgur.com/dTu0Pzx.jpg)
4
3A simple QMK dev kit. 5A simple QMK dev kit.
4 6
5* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) 7* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
@@ -10,4 +12,4 @@ Make example for this keyboard (after setting up your build environment):
10 12
11 make clueboard/card:default 13 make clueboard/card:default
12 14
13See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 15See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/clueboard/card/rules.mk b/keyboards/clueboard/card/rules.mk
index 2117c8127..37b439e75 100644
--- a/keyboards/clueboard/card/rules.mk
+++ b/keyboards/clueboard/card/rules.mk
@@ -1,70 +1,21 @@
1
2
3# MCU name
4#MCU = at90usb1287
5MCU = atmega32u4 1MCU = atmega32u4
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 2F_CPU = 16000000
19
20
21#
22# LUFA specific
23#
24# Target architecture (see library "Board Types" documentation).
25ARCH = AVR8 3ARCH = 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) 4F_USB = $(F_CPU)
39
40# Interrupt driven control endpoint task(+60)
41OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT 5OPT_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
50OPT_DEFS += -DBOOTLOADER_SIZE=4096 6OPT_DEFS += -DBOOTLOADER_SIZE=4096
51 7
52 8
53# Build Options 9# Build Options
54# change yes to no to disable
55#
56BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 10BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
57MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 11MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
58EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 12EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
59CONSOLE_ENABLE = yes # Console for debug(+400) 13CONSOLE_ENABLE = yes # Console for debug(+400)
60COMMAND_ENABLE = yes # Commands for debug and configuration 14COMMAND_ENABLE = yes # Commands for debug and configuration
61# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15NKRO_ENABLE = no # USB Nkey Rollover
62SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
63# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality by default
64NKRO_ENABLE = no # USB Nkey Rollover 18MIDI_ENABLE = no # MIDI controls
65RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870) 19UNICODE_ENABLE = no # Unicode
66BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality by default 20BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
67MIDI_ENABLE = no # MIDI controls 21AUDIO_ENABLE = yes # Audio output on port C6
68UNICODE_ENABLE = no # Unicode
69BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
70AUDIO_ENABLE = yes # Audio output on port C6
diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md
index 226bc079c..451db3307 100644
--- a/keyboards/clueboard/readme.md
+++ b/keyboards/clueboard/readme.md
@@ -1,12 +1,13 @@
1![Clueboard Logo](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/59c9703318b27d1ab34f40df/1508257572555/) 1![Clueboard Logo](https://i.imgur.com/220uMry.png)
2 2
3Clueboard makes fully customizable custom keyboards in a variety of formfactors. Inside this directory you'll find support for the entire line of Clueboard products. 3Clueboard makes fully customizable custom keyboards in a variety of form-factors. Inside this directory you'll find support for the entire line of Clueboard products.
4 4
5* Maintainer: [Zach White](https://github.com/skullydazed) 5* Maintainer: [Zach White](https://github.com/skullydazed)
6* Hardware Supported: 6* Hardware Supported:
7 * [`17`](17/): Clueboard "Cluepad" PCB 7 * [`17`](17/): Clueboard "Cluepad" PCB
8 * [`2x1800`](2x1800/): Clueboard 2x1800 PCB
8 * [`60`](60/): Clueboard 60% PCB 9 * [`60`](60/): Clueboard 60% PCB
9 * [`66`](66/): Clueboard 66% PCB 10 * [`66`](66/): Clueboard 66% PCB
10 * [`2x1800`](2x1800/): Clueboard 2x1800 PCB 11 * [`66_hotswap`](66/): Clueboard 66% USB-C Hotswappable PCB
11 * [`card`](card/): Special Cluecard PCB 12 * [`card`](card/): Special Cluecard PCB
12* Hardware Availability: [clueboard.co](https://clueboard.co/) 13* Hardware Availability: [clueboard.co](https://clueboard.co/)