Jelajahi Sumber

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
skullydazed 6 tahun lalu
induk
melakukan
d1f735b6d2
100 mengubah file dengan 540 tambahan dan 4085 penghapusan
  1. 3 6
      keyboards/clueboard/17/17.c
  2. 13 10
      keyboards/clueboard/17/17.h
  3. 31 0
      keyboards/clueboard/17/info.json
  4. 15 16
      keyboards/clueboard/17/keymaps/default/keymap.c
  5. 2 2
      keyboards/clueboard/17/readme.md
  6. 10 15
      keyboards/clueboard/17/rules.mk
  7. 5 10
      keyboards/clueboard/2x1800/2x1800.c
  8. 3 1
      keyboards/clueboard/2x1800/2x1800.h
  9. 1 0
      keyboards/clueboard/2x1800/config.h
  10. 19 373
      keyboards/clueboard/2x1800/info.json
  11. 1 4
      keyboards/clueboard/2x1800/keymaps/default/config.h
  12. 1 4
      keyboards/clueboard/2x1800/keymaps/default_4u/config.h
  13. 1 4
      keyboards/clueboard/2x1800/keymaps/default_7u/config.h
  14. 1 4
      keyboards/clueboard/2x1800/keymaps/macroboard/config.h
  15. 1 4
      keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h
  16. 0 1
      keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk
  17. 1 4
      keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h
  18. 0 1
      keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk
  19. 4 4
      keyboards/clueboard/2x1800/readme.md
  20. 8 52
      keyboards/clueboard/2x1800/rules.mk
  21. 8 5
      keyboards/clueboard/60/60.h
  22. 0 126
      keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.c
  23. 0 1187
      keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.h
  24. 0 5
      keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.mk
  25. 0 7
      keyboards/clueboard/60/bootloader_defs.h
  26. 15 12
      keyboards/clueboard/60/config.h
  27. 31 1622
      keyboards/clueboard/60/info.json
  28. 3 5
      keyboards/clueboard/60/keymaps/default/keymap.c
  29. 3 5
      keyboards/clueboard/60/keymaps/default_aek/keymap.c
  30. 4 6
      keyboards/clueboard/60/keymaps/yanfali/keymap.c
  31. 0 175
      keyboards/clueboard/60/matrix.c
  32. 7 14
      keyboards/clueboard/60/rules.mk
  33. 0 1
      keyboards/clueboard/66/66.c
  34. 0 16
      keyboards/clueboard/66/66.h
  35. 0 63
      keyboards/clueboard/66/config.h
  36. 0 1
      keyboards/clueboard/66/info.json
  37. 1 1
      keyboards/clueboard/66/keymaps/66_ansi/keymap.c
  38. 1 3
      keyboards/clueboard/66/keymaps/66_ansi/readme.md
  39. 1 1
      keyboards/clueboard/66/keymaps/66_iso/keymap.c
  40. 1 3
      keyboards/clueboard/66/keymaps/66_iso/readme.md
  41. 1 5
      keyboards/clueboard/66/keymaps/bloodlvst/config.h
  42. 1 1
      keyboards/clueboard/66/keymaps/bloodlvst/keymap.c
  43. 1 1
      keyboards/clueboard/66/keymaps/caps_fn/keymap.c
  44. 0 2
      keyboards/clueboard/66/keymaps/caps_fn/readme.md
  45. 1 1
      keyboards/clueboard/66/keymaps/colemak/keymap.c
  46. 1 1
      keyboards/clueboard/66/keymaps/default/keymap.c
  47. 1 3
      keyboards/clueboard/66/keymaps/default/readme.md
  48. 1 1
      keyboards/clueboard/66/keymaps/jokrik/keymap.c
  49. 1 1
      keyboards/clueboard/66/keymaps/mac_optimized/keymap.c
  50. 0 2
      keyboards/clueboard/66/keymaps/mac_optimized/readme.md
  51. 1 6
      keyboards/clueboard/66/keymaps/magicmonty/config.h
  52. 1 1
      keyboards/clueboard/66/keymaps/magicmonty/keymap.c
  53. 1 0
      keyboards/clueboard/66/keymaps/magicmonty/rules.mk
  54. 1 1
      keyboards/clueboard/66/keymaps/manofinterests/keymap.c
  55. 1 1
      keyboards/clueboard/66/keymaps/maximised/keymap.c
  56. 0 2
      keyboards/clueboard/66/keymaps/maximised/readme.md
  57. 1 1
      keyboards/clueboard/66/keymaps/mouse_keys/keymap.c
  58. 0 2
      keyboards/clueboard/66/keymaps/mouse_keys/readme.md
  59. 1 1
      keyboards/clueboard/66/keymaps/mrscooty/keymap.c
  60. 1 1
      keyboards/clueboard/66/keymaps/serubin/keymap.c
  61. 1 1
      keyboards/clueboard/66/keymaps/shift_fn/keymap.c
  62. 1 1
      keyboards/clueboard/66/keymaps/shift_fn/readme.md
  63. 1 1
      keyboards/clueboard/66/keymaps/smt/keymap.c
  64. 1 1
      keyboards/clueboard/66/keymaps/tetris/keymap.c
  65. 1 1
      keyboards/clueboard/66/keymaps/unix_optimized/keymap.c
  66. 1 3
      keyboards/clueboard/66/keymaps/unix_optimized/readme.md
  67. 1 1
      keyboards/clueboard/66/keymaps/win_optimized/keymap.c
  68. 1 3
      keyboards/clueboard/66/keymaps/win_optimized/readme.md
  69. 2 2
      keyboards/clueboard/66/keymaps/xyverz/config.h
  70. 1 1
      keyboards/clueboard/66/keymaps/xyverz/keymap.c
  71. 2 2
      keyboards/clueboard/66/readme.md
  72. 44 15
      keyboards/clueboard/66/rev1/config.h
  73. 3 5
      keyboards/clueboard/66/rev1/rev1.h
  74. 23 1
      keyboards/clueboard/66/rev1/rules.mk
  75. 41 12
      keyboards/clueboard/66/rev2/config.h
  76. 3 5
      keyboards/clueboard/66/rev2/rev2.h
  77. 22 1
      keyboards/clueboard/66/rev2/rules.mk
  78. 41 12
      keyboards/clueboard/66/rev3/config.h
  79. 0 4
      keyboards/clueboard/66/rev3/rev3.c
  80. 3 5
      keyboards/clueboard/66/rev3/rev3.h
  81. 23 1
      keyboards/clueboard/66/rev3/rules.mk
  82. 0 25
      keyboards/clueboard/66/rules.mk
  83. 1 0
      keyboards/clueboard/66_hotswap/config.h
  84. 2 9
      keyboards/clueboard/66_hotswap/gen1/config.h
  85. 40 40
      keyboards/clueboard/66_hotswap/gen1/gen1.h
  86. 0 0
      keyboards/clueboard/66_hotswap/info.json
  87. 1 1
      keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c
  88. 4 4
      keyboards/clueboard/66_hotswap/keymaps/default/keymap.c
  89. 4 4
      keyboards/clueboard/66_hotswap/readme.md
  90. 7 10
      keyboards/clueboard/card/card.h
  91. 2 13
      keyboards/clueboard/card/config.h
  92. 20 0
      keyboards/clueboard/card/info.json
  93. 1 6
      keyboards/clueboard/card/keymaps/default/config.h
  94. 2 5
      keyboards/clueboard/card/keymaps/default/keymap.c
  95. 6 7
      keyboards/clueboard/card/keymaps/default/rules.mk
  96. 1 6
      keyboards/clueboard/card/keymaps/rgb_effects/config.h
  97. 3 3
      keyboards/clueboard/card/keymaps/rgb_effects/keymap.c
  98. 5 6
      keyboards/clueboard/card/keymaps/rgb_effects/rules.mk
  99. 3 1
      keyboards/clueboard/card/readme.md
  100. 11 60
      keyboards/clueboard/card/rules.mk

+ 3 - 6
keyboards/clueboard/17/17.c

@@ -12,13 +12,11 @@ void matrix_init_kb(void) {
     MCUCR |= (1<<JTD);
 };
 
-void led_set_kb(uint8_t usb_led)
-{
+void led_set_kb(uint8_t usb_led) {
     print("led_set\n");
 }
 
-void backlight_init_ports(void)
-{
+void backlight_init_ports(void) {
     // Set C7 to output
     DDRC |= (1<<7);
 
@@ -29,8 +27,7 @@ void backlight_init_ports(void)
     TCCR4B = 0b00000001;
 }
 
-void backlight_set(uint8_t level)
-{
+void backlight_set(uint8_t level) {
     // Determine the PWM level
     switch (level)
     {

+ 13 - 10
keyboards/clueboard/17/17.h

@@ -19,18 +19,21 @@
  */
 // The first section contains all of the arguments
 // The second converts the arguments into a two-dimensional array
-#define KEYMAP( \
+#define LAYOUT_numpad_5x4( \
     k00, k01, k02, k03, \
-    k10, k11, k12, k13, \
-    k20, k21, k22, \
-    k30, k31, k32, k33, \
-    k40,      k42 \
+    k10, k11, k12,      \
+    k20, k21, k22, k13, \
+    k30, k31, k32,      \
+    k40,      k42, k33  \
 ) { \
-    { k00, k01, k02, k03, }, \
-    { k10, k11, k12, k13, }, \
-    { k20, k21, k22, KC_NO, }, \
-    { k30, k31, k32, k33, }, \
-    { k40, KC_NO, k42, KC_NO } \
+    { k00, k01,   k02, k03   }, \
+    { k10, k11,   k12, k13   }, \
+    { k20, k21,   k22, KC_NO }, \
+    { k30, k31,   k32, k33   }, \
+    { k40, KC_NO, k42, KC_NO }  \
 }
 
+#define LAYOUT LAYOUT_numpad_5x4
+#define KEYMAP LAYOUT_numpad_5x4
+
 #endif

+ 31 - 0
keyboards/clueboard/17/info.json

@@ -0,0 +1,31 @@
+{
+  "keyboard_name": "Clueboard 17% (Cluepad)",
+  "keyboard_folder": "clueboard/17",
+  "url": "",
+  "maintainer": "qmk",
+  "width": 4,
+  "height": 5,
+  "layouts": {
+    "LAYOUT_numpad_5x4": {
+      "layout": [
+        {"label":"Num Lock", "x":0, "y":0},
+        {"label":"/", "x":1, "y":0},
+        {"label":"*", "x":2, "y":0},
+        {"label":"-", "x":3, "y":0},
+        {"label":"7", "x":0, "y":1},
+        {"label":"8", "x":1, "y":1},
+        {"label":"9", "x":2, "y":1},
+        {"label":"4", "x":0, "y":2},
+        {"label":"5", "x":1, "y":2},
+        {"label":"6", "x":2, "y":2},
+        {"label":"+", "x":3, "y":1, "h":2},
+        {"label":"1", "x":0, "y":3},
+        {"label":"2", "x":1, "y":3},
+        {"label":"3", "x":2, "y":3},
+        {"label":"0", "x":0, "y":4, "w":2},
+        {"label":".", "x":2, "y":4},
+        {"label":"Enter", "x":3, "y":3, "h":2}
+      ]
+    }
+  }
+}

+ 15 - 16
keyboards/clueboard/17/keymaps/default/keymap.c

@@ -1,6 +1,4 @@
-#include "17.h"
-
-#include "backlight.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -8,7 +6,6 @@
 // entirely and just use numbers.
 #define _BL 0
 #define _FL 1
-#define _RS 2
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* Keymap _BL: (Base Layer) Default Layer
@@ -24,12 +21,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * |        0|   .| Ent|
    * '-------------------'
    */
-[_BL] = KEYMAP(
-  LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \
-  KC_P7,            KC_P8,   KC_P9,   KC_PPLS, \
-  KC_P4,            KC_P5,   KC_P6, \
-  KC_P1,            KC_P2,   KC_P3,   KC_PENT, \
-  KC_P0,                     KC_PDOT),
+  [_BL] = LAYOUT_numpad_5x4(
+    LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \
+    KC_P7,            KC_P8,   KC_P9,            \
+    KC_P4,            KC_P5,   KC_P6,   KC_PPLS, \
+    KC_P1,            KC_P2,   KC_P3,            \
+    KC_P0,                     KC_PDOT, KC_PENT  \
+  ),
 
   /* Keymap _FL: Function Layer
    * .-------------------.
@@ -44,10 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * |      Fn1|    | Fn7|
    * '-------------------'
    */
-[_FL] = KEYMAP(
-  LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, RGB_TOG, \
-  KC_TRNS,          RGB_SAI,    KC_TRNS, RGB_VAI, \
-  RGB_HUD,             BL_STEP, RGB_HUI, \
-  KC_TRNS,          RGB_SAD,    KC_TRNS, RGB_VAD, \
-  RGB_MOD,                      KC_TRNS)
+  [_FL] = LAYOUT_numpad_5x4(
+    LT(_FL, KC_NLCK), _______, _______, RGB_TOG, \
+    _______,          RGB_SAI, _______,          \
+    RGB_HUD,          BL_STEP, RGB_HUI, RGB_VAI, \
+    _______,          RGB_SAD, _______,          \
+    RGB_MOD,                   _______, RGB_VAD  \
+  )
 };

+ 2 - 2
keyboards/clueboard/17/readme.md

@@ -1,6 +1,6 @@
 # Clueboard 17% (Formerly Cluepad)
 
-![Clueboard 17%](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/5842fbdce3df28eae5ec557e/5844fb2cb8a79bbdfd63bad1/1498501250178/IMGP3931.jpg?format=750w)
+![Clueboard 17%](https://i.imgur.com/3XBC5c0.jpg)
 
 A basic 17 key numpad PCB.
 
@@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment):
 
     make clueboard/17:default
 
-See [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.
+See 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).

+ 10 - 15
keyboards/clueboard/17/rules.mk

@@ -1,6 +1,4 @@
-
 # MCU name
-#MCU = at90usb1287
 MCU = atmega32u4
 
 # Processor frequency.
@@ -50,16 +48,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 
 # Build Options
-#   comment out to disable the options.
-#
-BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
-# MOUSEKEY_ENABLE = yes	# Mouse keys(+4700)
-# EXTRAKEY_ENABLE = yes	# Audio control and System control(+450)
-# CONSOLE_ENABLE = yes	# Console for debug(+400)
-# COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes		# USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes  # Enable numpad's backlight functionality
-RGBLIGHT_ENABLE = yes
-# MIDI_ENABLE = YES 		# MIDI controls
-# UNICODE_ENABLE = YES 		# Unicode
-# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+BOOTMAGIC_ENABLE = no	      # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = yes        # Console for debug(+400)
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = yes           # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+MIDI_ENABLE = no            # MIDI support (+2400 to 4200, depending on config)
+UNICODE_ENABLE = no         # Unicode

+ 5 - 10
keyboards/clueboard/2x1800/2x1800.c

@@ -21,10 +21,6 @@ void matrix_init_kb(void) {
 	DDRB |= (1<<5);  // Capslock
 	DDRB |= (1<<6);  // Scroll Lock
 
-	// JTAG disable for PORT F. write JTD bit twice within four cycles.
-	MCUCR |= (1<<JTD);
-	MCUCR |= (1<<JTD);
-
 	// Run the keymap level init
 	matrix_init_user();
 }
@@ -38,25 +34,24 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 }
 
 void led_set_kb(uint8_t usb_led) {
+  // Toggle numlock as needed
 	if (usb_led & (1<<USB_LED_NUM_LOCK)) {
-		// Turn numlock on
 		PORTB |= (1<<4);
 	} else {
-		// Turn numlock off
 		PORTB &= ~(1<<4);
 	}
+
+  // Toggle capslock as needed
 	if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
-		// Turn capslock on
 		PORTB |= (1<<5);
 	} else {
-		// Turn capslock off
 		PORTB &= ~(1<<5);
 	}
+
+	// Toggle scrolllock as needed
 	if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
-		// Turn scroll lock on
 		PORTB |= (1<<6);
 	} else {
-		// Turn scroll lock off
 		PORTB &= ~(1<<6);
 	}
 }

+ 3 - 1
keyboards/clueboard/2x1800/2x1800.h

@@ -21,7 +21,7 @@
 // This a shortcut to help you visually see your layout.
 // The first section contains all of the arguments
 // The second converts the arguments into a two-dimensional array
-#define LAYOUT( \
+#define LAYOUT_all( \
       k00, k01, k02, k03,    k04,   k06, k07, k08, k09,   k0a, k60, k61, k62,   k63, k64, k65, k66,    k67, k68, k69, k6a, \
       k10, k11, k12, k13,   k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75,    k76,   k77, k78, k79, k7a, \
       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 @@
     { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO } \
 }
 
+#define LAYOUT LAYOUT_all
+
 #endif

+ 1 - 0
keyboards/clueboard/2x1800/config.h

@@ -58,6 +58,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* audio support */
 #define B7_AUDIO
 #define C4_AUDIO
+#define AUDIO_CLICKY
 
 /* number of backlight levels */
 // #define BACKLIGHT_PIN B7

+ 19 - 373
keyboards/clueboard/2x1800/info.json

@@ -1,5 +1,5 @@
 {
-  "keyboard_name": "CB 2x1800",
+  "keyboard_name": "Clueboard 2x1800",
   "url": "",
   "maintainer": "skullydazed",
   "width": 24,
@@ -8,388 +8,34 @@
     "LAYOUT": {
       "key_count": 127,
       "layout": [
-        {"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},
-        {"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},
-        {"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},
-        {"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},
-        {"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},
-        {"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}
+        {"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},
+        {"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},
+        {"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},
+        {"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},
+        {"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},
+        {"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}
       ]
     },
     "LAYOUT_7u_space": {
       "key_count": 121,
       "layout": [
-        {"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},
-        {"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},
-        {"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},
-        {"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},
-        {"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},
-        {"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}
+        {"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},
+        {"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},
+        {"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},
+        {"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},
+        {"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},
+        {"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}
       ]
     },
     "LAYOUT_4u_space": {
       "key_count": 124,
       "layout": [
-        {"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},
-        {"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},
-        {"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},
-        {"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},
-        {"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},
-        {"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}
+        {"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},
+        {"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},
+        {"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},
+        {"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},
+        {"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},
+        {"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}
       ]
     }
   }

+ 1 - 4
keyboards/clueboard/2x1800/keymaps/default/config.h

@@ -14,11 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
 
 #include "config_common.h"
 
 // place overrides here
-
-#endif

+ 1 - 4
keyboards/clueboard/2x1800/keymaps/default_4u/config.h

@@ -14,11 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
 
 #include "config_common.h"
 
 // place overrides here
-
-#endif

+ 1 - 4
keyboards/clueboard/2x1800/keymaps/default_7u/config.h

@@ -14,11 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
 
 #include "config_common.h"
 
 // place overrides here
-
-#endif

+ 1 - 4
keyboards/clueboard/2x1800/keymaps/macroboard/config.h

@@ -14,11 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
 
 #include "config_common.h"
 
 // place overrides here
-
-#endif

+ 1 - 4
keyboards/clueboard/2x1800/keymaps/mouseboard_left/config.h

@@ -14,11 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
 
 #include "config_common.h"
 
 // place overrides here
-
-#endif

+ 0 - 1
keyboards/clueboard/2x1800/keymaps/mouseboard_left/rules.mk

@@ -1 +0,0 @@
-MOUSEKEY_ENABLE = yes

+ 1 - 4
keyboards/clueboard/2x1800/keymaps/mouseboard_right/config.h

@@ -14,11 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
 
 #include "config_common.h"
 
 // place overrides here
-
-#endif

+ 0 - 1
keyboards/clueboard/2x1800/keymaps/mouseboard_right/rules.mk

@@ -1 +0,0 @@
-MOUSEKEY_ENABLE = yes

+ 4 - 4
keyboards/clueboard/2x1800/readme.md

@@ -2,11 +2,11 @@
 
 Clueboard Double 1800 All The Way
 
-Keyboard Maintainer: [Zach White](https://github.com/skullydazed)  
-Hardware Supported: Clueboard 2x1800 PCB  
-Hardware Availability: 2018 Apr 1 Group Buy
+* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
+* Hardware Supported: Clueboard 2x1800 PCB
+* Hardware Availability: 2018 Apr 1 Group Buy
 
-Make example for this keyboard (after setting up your build environment):
+Make example for this keyboard:
 
     make 2x1800:default
 

+ 8 - 52
keyboards/clueboard/2x1800/rules.mk

@@ -1,64 +1,20 @@
-# MCU name
+# MCU details
 MCU = at90usb1286
-
-# Processor frequency.
-#     This will define a symbol, F_CPU, in all source code files equal to the
-#     processor frequency in Hz. You can then use this symbol in your source code to
-#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-#     automatically to create a 32-bit value in your source code.
-#
-#     This will be an integer division of F_USB below, as it is sourced by
-#     F_USB after it has run through any CPU prescalers. Note that this value
-#     does not *change* the processor frequency - it should merely be updated to
-#     reflect the processor speed set externally so that the code can use accurate
-#     software delays.
 F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
 ARCH = AVR8
-
-# Input clock frequency.
-#     This will define a symbol, F_USB, in all source code files equal to the
-#     input clock frequency (before any prescaling is performed) in Hz. This value may
-#     differ from F_CPU if prescaling is used on the latter, and is required as the
-#     raw input clock is fed directly to the PLL sections of the AVR for high speed
-#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-#     at the end, this will be done automatically to create a 32-bit value in your
-#     source code.
-#
-#     If no clock division is performed on the input clock inside the AVR (via the
-#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
 F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
 OPT_DEFS += -DBOOTLOADER_SIZE=1024
 
 
 # Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no      # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no       # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no       # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
 CONSOLE_ENABLE = yes        # Console for debug(+400)
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = yes            # USB Nkey Rollover
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = yes           # USB Nkey Rollover
 MIDI_ENABLE = no            # MIDI support (+2400 to 4200, depending on config)
 UNICODE_ENABLE = no         # Unicode
-RGBLIGHT_ENABLE = no        # RGB on port C6
-AUDIO_ENABLE = no           # Audio output on port C4 and B7
-FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
+RGBLIGHT_ENABLE = yes       # RGB on port C6
+AUDIO_ENABLE = yes          # Audio output on port C4 and B7

+ 8 - 5
keyboards/clueboard/60/60.h

@@ -19,15 +19,15 @@
 #include "quantum.h"
 
 /*
- * These are shortcuts to help you work with the various layout options. If your 
+ * These are shortcuts to help you work with the various layout options. If your
  * keymap works with one of the LAYOUT_...() macros you are encouraged to use that
- * and to contribute your keymap to the corresponding layout in 
+ * and to contribute your keymap to the corresponding layout in
  * `qmk_firmware/layouts/community`.
  */
 
-/* The fully-featured KEYMAP() that has every single key available in the matrix.
+/* The fully-featured LAYOUT_all() that has every single key available in the matrix.
  */
-#define KEYMAP(\
+#define LAYOUT_all(\
     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
      k10,   k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,   k1e, \
      k20,    k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,  k2e, \
@@ -44,7 +44,7 @@
 /* A layout that matches the Apple Extended Keyboard's main area. No split keys,
  * 3 mods on either side of the spacebar.
  */
-#define KEYMAP_AEK(\
+#define LAYOUT_aek(\
     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c,   k0e, \
      k10,   k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,   k1e, \
      k20,    k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,    k2e, \
@@ -102,4 +102,7 @@
     { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \
     { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \
 }
+
+#define LAYOUT LAYOUT_all
+#define KEYMAP LAYOUT_all
 #endif

+ 0 - 126
keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.c

@@ -1,126 +0,0 @@
-/*
-    ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-*/
-
-#include "hal.h"
-
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-/**
- * @brief   PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- *          This variable is used by the HAL when initializing the PAL driver.
- */
-const PALConfig pal_default_config = {
-#if STM32_HAS_GPIOA
-  {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
-   VAL_GPIOA_ODR,   VAL_GPIOA_AFRL,   VAL_GPIOA_AFRH},
-#endif
-#if STM32_HAS_GPIOB
-  {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
-   VAL_GPIOB_ODR,   VAL_GPIOB_AFRL,   VAL_GPIOB_AFRH},
-#endif
-#if STM32_HAS_GPIOC
-  {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
-   VAL_GPIOC_ODR,   VAL_GPIOC_AFRL,   VAL_GPIOC_AFRH},
-#endif
-#if STM32_HAS_GPIOD
-  {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
-   VAL_GPIOD_ODR,   VAL_GPIOD_AFRL,   VAL_GPIOD_AFRH},
-#endif
-#if STM32_HAS_GPIOE
-  {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
-   VAL_GPIOE_ODR,   VAL_GPIOE_AFRL,   VAL_GPIOE_AFRH},
-#endif
-#if STM32_HAS_GPIOF
-  {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
-   VAL_GPIOF_ODR,   VAL_GPIOF_AFRL,   VAL_GPIOF_AFRH},
-#endif
-#if STM32_HAS_GPIOG
-  {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
-   VAL_GPIOG_ODR,   VAL_GPIOG_AFRL,   VAL_GPIOG_AFRH},
-#endif
-#if STM32_HAS_GPIOH
-  {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
-   VAL_GPIOH_ODR,   VAL_GPIOH_AFRL,   VAL_GPIOH_AFRH},
-#endif
-#if STM32_HAS_GPIOI
-  {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
-   VAL_GPIOI_ODR,   VAL_GPIOI_AFRL,   VAL_GPIOI_AFRH}
-#endif
-};
-#endif
-
-void enter_bootloader_mode_if_requested(void);
-
-/**
- * @brief   Early initialization code.
- * @details This initialization must be performed just after stack setup
- *          and before any other initialization.
- */
-void __early_init(void) {
-  enter_bootloader_mode_if_requested();
-  stm32_clock_init();
-}
-
-#if HAL_USE_SDC || defined(__DOXYGEN__)
-/**
- * @brief   SDC card detection.
- */
-bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
-
-  (void)sdcp;
-  /* TODO: Fill the implementation.*/
-  return true;
-}
-
-/**
- * @brief   SDC card write protection detection.
- */
-bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
-
-  (void)sdcp;
-  /* TODO: Fill the implementation.*/
-  return false;
-}
-#endif /* HAL_USE_SDC */
-
-#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
-/**
- * @brief   MMC_SPI card detection.
- */
-bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
-
-  (void)mmcp;
-  /* TODO: Fill the implementation.*/
-  return true;
-}
-
-/**
- * @brief   MMC_SPI card write protection detection.
- */
-bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
-
-  (void)mmcp;
-  /* TODO: Fill the implementation.*/
-  return false;
-}
-#endif
-
-/**
- * @brief   Board-specific initialization code.
- * @todo    Add your board-specific code, if any.
- */
-void boardInit(void) {
-}

+ 0 - 1187
keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.h

@@ -1,1187 +0,0 @@
-/*
-    ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for Clueboard 60% Keyboard
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F303XC
-#define BOARD_NAME                  "Clueboard 60 PCB"
-
-/*
- * Board oscillators-related settings.
- * NOTE: LSE not fitted.
- */
-#if !defined(STM32_LSECLK)
-#define STM32_LSECLK                0U
-#endif
-
-#define STM32_LSEDRV                (3U << 3U)
-
-#if !defined(STM32_HSECLK)
-#define STM32_HSECLK                8000000U
-#endif
-
-// #define STM32_HSE_BYPASS
-
-/*
- * MCU type as defined in the ST header.
- */
-#define STM32F303xC
-
-/*
- * IO pins assignments.
- */
-#define GPIOA_PIN0       0U
-#define GPIOA_PIN1       1U
-#define GPIOA_PIN2       2U
-#define GPIOA_PIN3       3U
-#define GPIOA_PIN4       4U
-#define GPIOA_PIN5       5U
-#define GPIOA_PIN6       6U
-#define GPIOA_PIN7       7U
-#define GPIOA_PIN8       8U
-#define GPIOA_PIN9       9U
-#define GPIOA_PIN10      10U
-#define GPIOA_USB_DM     11U
-#define GPIOA_USB_DP     12U
-#define GPIOA_SWDIO      13U
-#define GPIOA_SWCLK      14U
-#define GPIOA_PIN15      15U
-
-#define GPIOB_PIN0       0U
-#define GPIOB_PIN1       1U
-#define GPIOB_PIN2       2U
-#define GPIOB_PIN3       3U
-#define GPIOB_PIN4       4U
-#define GPIOB_PIN5       5U
-#define GPIOB_PIN6       6U
-#define GPIOB_PIN7       7U
-#define GPIOB_PIN8       8U
-#define GPIOB_PIN9       9U
-#define GPIOB_PIN10      10U
-#define GPIOB_PIN11      11U
-#define GPIOB_PIN12      12U
-#define GPIOB_PIN13      13U
-#define GPIOB_PIN14      14U
-#define GPIOB_PIN15      15U
-
-#define GPIOC_PIN0       0U
-#define GPIOC_PIN1       1U
-#define GPIOC_PIN2       2U
-#define GPIOC_PIN3       3U
-#define GPIOC_PIN4       4U
-#define GPIOC_PIN5       5U
-#define GPIOC_PIN6       6U
-#define GPIOC_PIN7       7U
-#define GPIOC_PIN8       8U
-#define GPIOC_PIN9       9U
-#define GPIOC_PIN10      10U
-#define GPIOC_PIN11      11U
-#define GPIOC_PIN12      12U
-#define GPIOC_PIN13      13U
-#define GPIOC_PIN14      14U
-#define GPIOC_PIN15      15U
-
-#define GPIOD_PIN0       0U
-#define GPIOD_PIN1       1U
-#define GPIOD_PIN2       2U
-#define GPIOD_PIN3       3U
-#define GPIOD_PIN4       4U
-#define GPIOD_PIN5       5U
-#define GPIOD_PIN6       6U
-#define GPIOD_PIN7       7U
-#define GPIOD_PIN8       8U
-#define GPIOD_PIN9       9U
-#define GPIOD_PIN10      10U
-#define GPIOD_PIN11      11U
-#define GPIOD_PIN12      12U
-#define GPIOD_PIN13      13U
-#define GPIOD_PIN14      14U
-#define GPIOD_PIN15      15U
-
-#define GPIOE_PIN0       0U
-#define GPIOE_PIN1       1U
-#define GPIOE_PIN2       2U
-#define GPIOE_PIN3       3U
-#define GPIOE_PIN4       4U
-#define GPIOE_PIN5       5U
-#define GPIOE_PIN6       6U
-#define GPIOE_PIN7       7U
-#define GPIOE_PIN8       8U
-#define GPIOE_PIN9       9U
-#define GPIOE_PIN10      10U
-#define GPIOE_PIN11      11U
-#define GPIOE_PIN12      12U
-#define GPIOE_PIN13      13U
-#define GPIOE_PIN14      14U
-#define GPIOE_PIN15      15U
-
-#define GPIOF_I2C2_SDA   0U
-#define GPIOF_I2C2_SCL   1U
-#define GPIOF_PIN2       2U
-#define GPIOF_PIN3       3U
-#define GPIOF_PIN4       4U
-#define GPIOF_PIN5       5U
-#define GPIOF_PIN6       6U
-#define GPIOF_PIN7       7U
-#define GPIOF_PIN8       8U
-#define GPIOF_PIN9       9U
-#define GPIOF_PIN10      10U
-#define GPIOF_PIN11      11U
-#define GPIOF_PIN12      12U
-#define GPIOF_PIN13      13U
-#define GPIOF_PIN14      14U
-#define GPIOF_PIN15      15U
-
-#define GPIOG_PIN0       0U
-#define GPIOG_PIN1       1U
-#define GPIOG_PIN2       2U
-#define GPIOG_PIN3       3U
-#define GPIOG_PIN4       4U
-#define GPIOG_PIN5       5U
-#define GPIOG_PIN6       6U
-#define GPIOG_PIN7       7U
-#define GPIOG_PIN8       8U
-#define GPIOG_PIN9       9U
-#define GPIOG_PIN10      10U
-#define GPIOG_PIN11      11U
-#define GPIOG_PIN12      12U
-#define GPIOG_PIN13      13U
-#define GPIOG_PIN14      14U
-#define GPIOG_PIN15      15U
-
-#define GPIOH_PIN0       0U
-#define GPIOH_PIN1       1U
-#define GPIOH_PIN2       2U
-#define GPIOH_PIN3       3U
-#define GPIOH_PIN4       4U
-#define GPIOH_PIN5       5U
-#define GPIOH_PIN6       6U
-#define GPIOH_PIN7       7U
-#define GPIOH_PIN8       8U
-#define GPIOH_PIN9       9U
-#define GPIOH_PIN10      10U
-#define GPIOH_PIN11      11U
-#define GPIOH_PIN12      12U
-#define GPIOH_PIN13      13U
-#define GPIOH_PIN14      14U
-#define GPIOH_PIN15      15U
-
-/*
- * IO lines assignments.
- */
-#define LINE_L3GD20_SDI             PAL_LINE(GPIOA, 7U)
-#define LINE_USB_DM                 PAL_LINE(GPIOA, 11U)
-#define LINE_USB_DP                 PAL_LINE(GPIOA, 12U)
-#define LINE_SWDIO                  PAL_LINE(GPIOA, 13U)
-#define LINE_SWCLK                  PAL_LINE(GPIOA, 14U)
-
-#define LINE_PIN6               PAL_LINE(GPIOF, 0U)
-#define LINE_PIN7               PAL_LINE(GPIOF, 1U)
-
-#define LINE_CAPS_LOCK               PAL_LINE(GPIOB, 7U)
-
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- * Please refer to the STM32 Reference Manual for details.
- */
-#define PIN_MODE_INPUT(n)           (0U << ((n) * 2U))
-#define PIN_MODE_OUTPUT(n)          (1U << ((n) * 2U))
-#define PIN_MODE_ALTERNATE(n)       (2U << ((n) * 2U))
-#define PIN_MODE_ANALOG(n)          (3U << ((n) * 2U))
-#define PIN_ODR_LOW(n)              (0U << (n))
-#define PIN_ODR_HIGH(n)             (1U << (n))
-#define PIN_OTYPE_PUSHPULL(n)       (0U << (n))
-#define PIN_OTYPE_OPENDRAIN(n)      (1U << (n))
-#define PIN_OSPEED_VERYLOW(n)       (0U << ((n) * 2U))
-#define PIN_OSPEED_LOW(n)           (1U << ((n) * 2U))
-#define PIN_OSPEED_MEDIUM(n)        (2U << ((n) * 2U))
-#define PIN_OSPEED_HIGH(n)          (3U << ((n) * 2U))
-#define PIN_PUPDR_FLOATING(n)       (0U << ((n) * 2U))
-#define PIN_PUPDR_PULLUP(n)         (1U << ((n) * 2U))
-#define PIN_PUPDR_PULLDOWN(n)       (2U << ((n) * 2U))
-#define PIN_AFIO_AF(n, v)           ((v) << (((n) % 8U) * 4U))
-
-/*
- * GPIOA setup:
- *
- * PA0  - NC
- * PA1  - NC
- * PA2  - COL1
- * PA3  - COL2
- * PA4  - SPEAKER1
- * PA5  - SPEAKER2
- * PA6  - COL3
- * PA7  - COL8
- * PA8  - COL6
- * PA9  - COL7
- * PA10 - ROW5
- * PA11 - USB_DM                    (alternate 14).
- * PA12 - USB_DP                    (alternate 14).
- * PA13 - SWDIO                     (alternate 0).
- * PA14 - SWCLK                     (alternate 0).
- * PA15 - ROW4
- */
-#define VAL_GPIOA_MODER             (PIN_MODE_INPUT(GPIOA_PIN0) |         \
-                                     PIN_MODE_INPUT(GPIOA_PIN1) |           \
-                                     PIN_MODE_INPUT(GPIOA_PIN2) |           \
-                                     PIN_MODE_INPUT(GPIOA_PIN3) |           \
-                                     PIN_MODE_INPUT(GPIOA_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOA_PIN5) |   \
-                                     PIN_MODE_INPUT(GPIOA_PIN6) |  \
-                                     PIN_MODE_INPUT(GPIOA_PIN7) |  \
-                                     PIN_MODE_INPUT(GPIOA_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOA_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOA_PIN10) |          \
-                                     PIN_MODE_ALTERNATE(GPIOA_USB_DM) |     \
-                                     PIN_MODE_ALTERNATE(GPIOA_USB_DP) |     \
-                                     PIN_MODE_ALTERNATE(GPIOA_SWDIO) |      \
-                                     PIN_MODE_ALTERNATE(GPIOA_SWCLK) |      \
-                                     PIN_MODE_INPUT(GPIOA_PIN15))
-#define VAL_GPIOA_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) |     \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN1) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN3) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN5) |   \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN6) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN7) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) |     \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) |     \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
-#define VAL_GPIOA_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOA_PIN0) |     \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN1) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN2) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN5) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN6) |     \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN7) |     \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN10) |      \
-                                     PIN_OSPEED_HIGH(GPIOA_USB_DM) |        \
-                                     PIN_OSPEED_VERYLOW(GPIOA_USB_DP) |     \
-                                     PIN_OSPEED_HIGH(GPIOA_SWDIO) |         \
-                                     PIN_OSPEED_HIGH(GPIOA_SWCLK) |         \
-                                     PIN_OSPEED_VERYLOW(GPIOA_PIN15))
-#define VAL_GPIOA_PUPDR             (PIN_PUPDR_FLOATING(GPIOA_PIN0) |     \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN1) |         \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN2) |         \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN3) |         \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN4) |         \
-                                     PIN_PUPDR_FLOATING(GPIOA_PIN5) |   \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN6) |    \
-                                     PIN_PUPDR_FLOATING(GPIOA_PIN7) |  \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN10) |        \
-                                     PIN_PUPDR_FLOATING(GPIOA_USB_DM) |     \
-                                     PIN_PUPDR_FLOATING(GPIOA_USB_DP) |     \
-                                     PIN_PUPDR_PULLUP(GPIOA_SWDIO) |        \
-                                     PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) |      \
-                                     PIN_PUPDR_PULLUP(GPIOA_PIN15))
-#define VAL_GPIOA_ODR               (PIN_ODR_HIGH(GPIOA_PIN0) |           \
-                                     PIN_ODR_HIGH(GPIOA_PIN1) |             \
-                                     PIN_ODR_HIGH(GPIOA_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOA_PIN3) |             \
-                                     PIN_ODR_HIGH(GPIOA_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOA_PIN5) |         \
-                                     PIN_ODR_HIGH(GPIOA_PIN6) |        \
-                                     PIN_ODR_HIGH(GPIOA_PIN7) |        \
-                                     PIN_ODR_HIGH(GPIOA_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOA_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOA_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOA_USB_DM) |           \
-                                     PIN_ODR_HIGH(GPIOA_USB_DP) |           \
-                                     PIN_ODR_HIGH(GPIOA_SWDIO) |            \
-                                     PIN_ODR_HIGH(GPIOA_SWCLK) |            \
-                                     PIN_ODR_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_AFRL              (PIN_AFIO_AF(GPIOA_PIN0, 0) |         \
-                                     PIN_AFIO_AF(GPIOA_PIN1, 0) |           \
-                                     PIN_AFIO_AF(GPIOA_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOA_PIN3, 0) |           \
-                                     PIN_AFIO_AF(GPIOA_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOA_PIN5, 5) |       \
-                                     PIN_AFIO_AF(GPIOA_PIN6, 5) |      \
-                                     PIN_AFIO_AF(GPIOA_PIN7, 5))
-#define VAL_GPIOA_AFRH              (PIN_AFIO_AF(GPIOA_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOA_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOA_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOA_USB_DM, 14) |        \
-                                     PIN_AFIO_AF(GPIOA_USB_DP, 14) |        \
-                                     PIN_AFIO_AF(GPIOA_SWDIO, 0) |          \
-                                     PIN_AFIO_AF(GPIOA_SWCLK, 0) |          \
-                                     PIN_AFIO_AF(GPIOA_PIN15, 0))
-
-/*
- * GPIOB setup:
- *
- * PB0  - PIN0                      (input pullup).
- * PB1  - PIN1                      (input pullup).
- * PB2  - PIN2                      (input pullup).
- * PB3  - PIN3                       (alternate 0).
- * PB4  - PIN4                      (input pullup).
- * PB5  - PIN5                      (input pullup).
- * PB6  - PIN6 LSM303DLHC_SCL   (alternate 4).
- * PB7  - PIN7 LSM303DLHC_SDA   (alternate 4).
- * PB8  - PIN8                      (input pullup).
- * PB9  - PIN9                      (input pullup).
- * PB10 - PIN10                     (input pullup).
- * PB11 - PIN11                     (input pullup).
- * PB12 - PIN12                     (input pullup).
- * PB13 - PIN13                     (input pullup).
- * PB14 - PIN14                     (input pullup).
- * PB15 - PIN15                     (input pullup).
- */
-#define VAL_GPIOB_MODER             (PIN_MODE_INPUT(GPIOB_PIN0) |           \
-                                     PIN_MODE_INPUT(GPIOB_PIN1) |           \
-                                     PIN_MODE_INPUT(GPIOB_PIN2) |           \
-                                     PIN_MODE_ALTERNATE(GPIOB_PIN3) |        \
-                                     PIN_MODE_INPUT(GPIOB_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOB_PIN5) |           \
-                                     PIN_MODE_ALTERNATE(GPIOB_PIN6) |   \
-                                     PIN_MODE_OUTPUT(GPIOB_PIN7) |   \
-                                     PIN_MODE_INPUT(GPIOB_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOB_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOB_PIN10) |          \
-                                     PIN_MODE_INPUT(GPIOB_PIN11) |          \
-                                     PIN_MODE_INPUT(GPIOB_PIN12) |          \
-                                     PIN_MODE_INPUT(GPIOB_PIN13) |          \
-                                     PIN_MODE_INPUT(GPIOB_PIN14) |          \
-                                     PIN_MODE_INPUT(GPIOB_PIN15))
-#define VAL_GPIOB_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN1) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN3) |        \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN5) |       \
-                                     PIN_OTYPE_OPENDRAIN(GPIOB_PIN6) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN7) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN11) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN12) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN13) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN14) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
-#define VAL_GPIOB_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOB_PIN0) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN1) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN2) |       \
-                                     PIN_OSPEED_HIGH(GPIOB_PIN3) |           \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN5) |       \
-                                     PIN_OSPEED_HIGH(GPIOB_PIN6) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN7) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN10) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN11) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN12) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN13) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN14) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOB_PIN15))
-#define VAL_GPIOB_PUPDR             (PIN_PUPDR_PULLUP(GPIOB_PIN0) |         \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN1) |         \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN2) |         \
-                                     PIN_PUPDR_FLOATING(GPIOB_PIN3) |        \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN4) |         \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN5) |         \
-                                     PIN_PUPDR_FLOATING(GPIOB_PIN6) |   \
-                                     PIN_PUPDR_PULLDOWN(GPIOB_PIN7) |   \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN10) |        \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN11) |        \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN12) |        \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN13) |        \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN14) |        \
-                                     PIN_PUPDR_PULLUP(GPIOB_PIN15))
-#define VAL_GPIOB_ODR               (PIN_ODR_HIGH(GPIOB_PIN0) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN1) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN3) |              \
-                                     PIN_ODR_HIGH(GPIOB_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN5) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN6) |         \
-                                     PIN_ODR_LOW(GPIOB_PIN7) |         \
-                                     PIN_ODR_HIGH(GPIOB_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOB_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOB_PIN11) |            \
-                                     PIN_ODR_HIGH(GPIOB_PIN12) |            \
-                                     PIN_ODR_HIGH(GPIOB_PIN13) |            \
-                                     PIN_ODR_HIGH(GPIOB_PIN14) |            \
-                                     PIN_ODR_HIGH(GPIOB_PIN15))
-#define VAL_GPIOB_AFRL              (PIN_AFIO_AF(GPIOB_PIN0, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN1, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN3, 0) |            \
-                                     PIN_AFIO_AF(GPIOB_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN5, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN6, 4) |       \
-                                     PIN_AFIO_AF(GPIOB_PIN7, 0))
-#define VAL_GPIOB_AFRH              (PIN_AFIO_AF(GPIOB_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOB_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOB_PIN11, 0) |          \
-                                     PIN_AFIO_AF(GPIOB_PIN12, 0) |          \
-                                     PIN_AFIO_AF(GPIOB_PIN13, 0) |          \
-                                     PIN_AFIO_AF(GPIOB_PIN14, 0) |          \
-                                     PIN_AFIO_AF(GPIOB_PIN15, 0))
-
-/*
- * GPIOC setup:
- *
- * PC0  - PIN0                      (input pullup).
- * PC1  - PIN1                      (input pullup).
- * PC2  - PIN2                      (input pullup).
- * PC3  - PIN3                      (input pullup).
- * PC4  - PIN4                      (input pullup).
- * PC5  - PIN5                      (input pullup).
- * PC6  - PIN6                      (input pullup).
- * PC7  - PIN7                      (input pullup).
- * PC8  - PIN8                      (input pullup).
- * PC9  - PIN9                      (input pullup).
- * PC10 - PIN10                     (input pullup).
- * PC11 - PIN11                     (input pullup).
- * PC12 - PIN12                     (input pullup).
- * PC13 - PIN13                     (input pullup).
- * PC14 - PIN14                  (input floating).
- * PC15 - PIN15                 (input floating).
- */
-#define VAL_GPIOC_MODER             (PIN_MODE_INPUT(GPIOC_PIN0) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN1) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN2) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN3) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN5) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN6) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN7) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOC_PIN10) |          \
-                                     PIN_MODE_INPUT(GPIOC_PIN11) |          \
-                                     PIN_MODE_INPUT(GPIOC_PIN12) |          \
-                                     PIN_MODE_INPUT(GPIOC_PIN13) |          \
-                                     PIN_MODE_INPUT(GPIOC_PIN14) |       \
-                                     PIN_MODE_INPUT(GPIOC_PIN15))
-#define VAL_GPIOC_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN1) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN3) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN5) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN6) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN7) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN11) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN12) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN13) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN14) |   \
-                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN15))
-#define VAL_GPIOC_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOC_PIN0) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN1) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN2) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN5) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN6) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN7) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN10) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN11) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN12) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOC_PIN13) |      \
-                                     PIN_OSPEED_HIGH(GPIOC_PIN14) |      \
-                                     PIN_OSPEED_HIGH(GPIOC_PIN15))
-#define VAL_GPIOC_PUPDR             (PIN_PUPDR_PULLUP(GPIOC_PIN0) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN1) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN2) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN3) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN4) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN5) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN6) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN7) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN10) |        \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN11) |        \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN12) |        \
-                                     PIN_PUPDR_PULLUP(GPIOC_PIN13) |        \
-                                     PIN_PUPDR_FLOATING(GPIOC_PIN14) |   \
-                                     PIN_PUPDR_FLOATING(GPIOC_PIN15))
-#define VAL_GPIOC_ODR               (PIN_ODR_HIGH(GPIOC_PIN0) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN1) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN3) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN5) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN6) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN7) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOC_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOC_PIN11) |            \
-                                     PIN_ODR_HIGH(GPIOC_PIN12) |            \
-                                     PIN_ODR_HIGH(GPIOC_PIN13) |            \
-                                     PIN_ODR_HIGH(GPIOC_PIN14) |         \
-                                     PIN_ODR_HIGH(GPIOC_PIN15))
-#define VAL_GPIOC_AFRL              (PIN_AFIO_AF(GPIOC_PIN0, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN1, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN3, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN5, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN6, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN7, 0))
-#define VAL_GPIOC_AFRH              (PIN_AFIO_AF(GPIOC_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOC_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOC_PIN11, 0) |          \
-                                     PIN_AFIO_AF(GPIOC_PIN12, 0) |          \
-                                     PIN_AFIO_AF(GPIOC_PIN13, 0) |          \
-                                     PIN_AFIO_AF(GPIOC_PIN14, 0) |       \
-                                     PIN_AFIO_AF(GPIOC_PIN15, 0))
-
-/*
- * GPIOD setup:
- *
- * PD0  - PIN0                      (input pullup).
- * PD1  - PIN1                      (input pullup).
- * PD2  - PIN2                      (input pullup).
- * PD3  - PIN3                      (input pullup).
- * PD4  - PIN4                      (input pullup).
- * PD5  - PIN5                      (input pullup).
- * PD6  - PIN6                      (input pullup).
- * PD7  - PIN7                      (input pullup).
- * PD8  - PIN8                      (input pullup).
- * PD9  - PIN9                      (input pullup).
- * PD11 - PIN10                     (input pullup).
- * PD11 - PIN11                     (input pullup).
- * PD12 - PIN12                     (input pullup).
- * PD13 - PIN13                     (input pullup).
- * PD14 - PIN14                     (input pullup).
- * PD15 - PIN15                     (input pullup).
- */
-#define VAL_GPIOD_MODER             (PIN_MODE_INPUT(GPIOD_PIN0) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN1) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN2) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN3) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN5) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN6) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN7) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOD_PIN10) |          \
-                                     PIN_MODE_INPUT(GPIOD_PIN11) |          \
-                                     PIN_MODE_INPUT(GPIOD_PIN12) |          \
-                                     PIN_MODE_INPUT(GPIOD_PIN13) |          \
-                                     PIN_MODE_INPUT(GPIOD_PIN14) |          \
-                                     PIN_MODE_INPUT(GPIOD_PIN15))
-#define VAL_GPIOD_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN1) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN3) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN5) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN6) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN7) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN11) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN12) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN13) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN14) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
-#define VAL_GPIOD_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOD_PIN0) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN1) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN2) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN5) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN6) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN7) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN10) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN11) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN12) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN13) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN14) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOD_PIN15))
-#define VAL_GPIOD_PUPDR             (PIN_PUPDR_PULLUP(GPIOD_PIN0) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN1) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN2) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN3) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN4) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN5) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN6) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN7) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN10) |        \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN11) |        \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN12) |        \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN13) |        \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN14) |        \
-                                     PIN_PUPDR_PULLUP(GPIOD_PIN15))
-#define VAL_GPIOD_ODR               (PIN_ODR_HIGH(GPIOD_PIN0) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN1) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN3) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN5) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN6) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN7) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOD_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOD_PIN11) |            \
-                                     PIN_ODR_HIGH(GPIOD_PIN12) |            \
-                                     PIN_ODR_HIGH(GPIOD_PIN13) |            \
-                                     PIN_ODR_HIGH(GPIOD_PIN14) |            \
-                                     PIN_ODR_HIGH(GPIOD_PIN15))
-#define VAL_GPIOD_AFRL              (PIN_AFIO_AF(GPIOD_PIN0, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN1, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN3, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN5, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN6, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN7, 0))
-#define VAL_GPIOD_AFRH              (PIN_AFIO_AF(GPIOD_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOD_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOD_PIN11, 0) |          \
-                                     PIN_AFIO_AF(GPIOD_PIN12, 0) |          \
-                                     PIN_AFIO_AF(GPIOD_PIN13, 0) |          \
-                                     PIN_AFIO_AF(GPIOD_PIN14, 0) |          \
-                                     PIN_AFIO_AF(GPIOD_PIN15, 0))
-
-/*
- * GPIOE setup:
- *
- * PE0  - PIN0               (input pullup).
- * PE1  - PIN1               (input pullup).
- * PE2  - PIN2           (input pullup).
- * PE3  - PIN3 L3GD20_CS         (output pushpull maximum).
- * PE4  - PIN4           (input pullup).
- * PE5  - PIN5           (input pullup).
- * PE6  - PIN6                      (input pullup).
- * PE7  - PIN7                      (input pullup).
- * PE8  - PIN8                 (output pushpull maximum).
- * PE9  - PIN9                  (output pushpull maximum).
- * PE10 - PIN10               (output pushpull maximum).
- * PE11 - PIN11                (output pushpull maximum).
- * PE12 - PIN12                 (output pushpull maximum).
- * PE13 - PIN13                 (output pushpull maximum).
- * PE14 - PIN14               (output pushpull maximum).
- * PE15 - PIN15                (output pushpull maximum).
- */
-#define VAL_GPIOE_MODER             (PIN_MODE_INPUT(GPIOE_PIN0) |    \
-                                     PIN_MODE_INPUT(GPIOE_PIN1) |    \
-                                     PIN_MODE_INPUT(GPIOE_PIN2) |\
-                                     PIN_MODE_OUTPUT(GPIOE_PIN3) |       \
-                                     PIN_MODE_INPUT(GPIOE_PIN4) |\
-                                     PIN_MODE_INPUT(GPIOE_PIN5) |\
-                                     PIN_MODE_INPUT(GPIOE_PIN6) |           \
-                                     PIN_MODE_INPUT(GPIOE_PIN7) |           \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN8) |     \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN9) |      \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN10) |   \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN11) |    \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN12) |     \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN13) |     \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN14) |   \
-                                     PIN_MODE_OUTPUT(GPIOE_PIN15))
-#define VAL_GPIOE_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN1) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN2) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN3) |    \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN4) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN5) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN6) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN7) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN8) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN9) |   \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN10) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN12) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN13) |  \
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN14) |\
-                                     PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
-#define VAL_GPIOE_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOE_PIN0) |\
-                                     PIN_OSPEED_VERYLOW(GPIOE_PIN1) |\
-                                     PIN_OSPEED_VERYLOW(GPIOE_PIN2) |\
-                                     PIN_OSPEED_HIGH(GPIOE_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOE_PIN4) |\
-                                     PIN_OSPEED_VERYLOW(GPIOE_PIN5) |\
-                                     PIN_OSPEED_VERYLOW(GPIOE_PIN6) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOE_PIN7) |       \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN8) |     \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN9) |      \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN10) |   \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN11) |    \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN12) |     \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN13) |     \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN14) |   \
-                                     PIN_OSPEED_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_PUPDR             (PIN_PUPDR_PULLUP(GPIOE_PIN0) |  \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN1) |  \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN2) |\
-                                     PIN_PUPDR_FLOATING(GPIOE_PIN3) |    \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN4) |\
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN5) |\
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN6) |         \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN7) |         \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN8) |    \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN9) |     \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN10) |  \
-                                     PIN_PUPDR_FLOATING(GPIOE_PIN11) | \
-                                     PIN_PUPDR_PULLUP(GPIOE_PIN12) |    \
-                                     PIN_PUPDR_FLOATING(GPIOE_PIN13) |  \
-                                     PIN_PUPDR_FLOATING(GPIOE_PIN14) |\
-                                     PIN_PUPDR_FLOATING(GPIOE_PIN15))
-#define VAL_GPIOE_ODR               (PIN_ODR_HIGH(GPIOE_PIN0) |      \
-                                     PIN_ODR_HIGH(GPIOE_PIN1) |      \
-                                     PIN_ODR_HIGH(GPIOE_PIN2) |  \
-                                     PIN_ODR_HIGH(GPIOE_PIN3) |          \
-                                     PIN_ODR_HIGH(GPIOE_PIN4) |  \
-                                     PIN_ODR_HIGH(GPIOE_PIN5) |  \
-                                     PIN_ODR_HIGH(GPIOE_PIN6) |             \
-                                     PIN_ODR_HIGH(GPIOE_PIN7) |             \
-                                     PIN_ODR_LOW(GPIOE_PIN8) |         \
-                                     PIN_ODR_LOW(GPIOE_PIN9) |          \
-                                     PIN_ODR_LOW(GPIOE_PIN10) |       \
-                                     PIN_ODR_LOW(GPIOE_PIN11) |        \
-                                     PIN_ODR_LOW(GPIOE_PIN12) |         \
-                                     PIN_ODR_LOW(GPIOE_PIN13) |         \
-                                     PIN_ODR_LOW(GPIOE_PIN14) |       \
-                                     PIN_ODR_LOW(GPIOE_PIN15))
-#define VAL_GPIOE_AFRL              (PIN_AFIO_AF(GPIOE_PIN0, 0) |    \
-                                     PIN_AFIO_AF(GPIOE_PIN1, 0) |    \
-                                     PIN_AFIO_AF(GPIOE_PIN2, 0) |\
-                                     PIN_AFIO_AF(GPIOE_PIN3, 0) |        \
-                                     PIN_AFIO_AF(GPIOE_PIN4, 0) |\
-                                     PIN_AFIO_AF(GPIOE_PIN5, 0) |\
-                                     PIN_AFIO_AF(GPIOE_PIN6, 0) |           \
-                                     PIN_AFIO_AF(GPIOE_PIN7, 0))
-#define VAL_GPIOE_AFRH              (PIN_AFIO_AF(GPIOE_PIN8, 0) |      \
-                                     PIN_AFIO_AF(GPIOE_PIN9, 0) |       \
-                                     PIN_AFIO_AF(GPIOE_PIN10, 0) |    \
-                                     PIN_AFIO_AF(GPIOE_PIN11, 0) |     \
-                                     PIN_AFIO_AF(GPIOE_PIN12, 0) |      \
-                                     PIN_AFIO_AF(GPIOE_PIN13, 0) |      \
-                                     PIN_AFIO_AF(GPIOE_PIN14, 0) |    \
-                                     PIN_AFIO_AF(GPIOE_PIN15, 0))
-
-/*
- * GPIOF setup:
- *
- * PF0  - I2C2_SDA                    (input floating).
- * PF1  - I2C2_SCL                   (input floating).
- * PF2  - PIN2                      (input pullup).
- * PF3  - PIN3                      (input pullup).
- * PF4  - PIN4                      (input pullup).
- * PF5  - PIN5                      (input pullup).
- * PF6  - PIN6                      (input pullup).
- * PF7  - PIN7                      (input pullup).
- * PF8  - PIN8                      (input pullup).
- * PF9  - PIN9                      (input pullup).
- * PF10 - PIN10                     (input pullup).
- * PF11 - PIN11                     (input pullup).
- * PF12 - PIN12                     (input pullup).
- * PF13 - PIN13                     (input pullup).
- * PF14 - PIN14                     (input pullup).
- * PF15 - PIN15                     (input pullup).
- */
-#define VAL_GPIOF_MODER             (PIN_MODE_INPUT(GPIOF_I2C2_SDA) |         \
-                                     PIN_MODE_INPUT(GPIOF_I2C2_SCL) |        \
-                                     PIN_MODE_INPUT(GPIOF_PIN2) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN3) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN5) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN6) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN7) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOF_PIN10) |          \
-                                     PIN_MODE_INPUT(GPIOF_PIN11) |          \
-                                     PIN_MODE_INPUT(GPIOF_PIN12) |          \
-                                     PIN_MODE_INPUT(GPIOF_PIN13) |          \
-                                     PIN_MODE_INPUT(GPIOF_PIN14) |          \
-                                     PIN_MODE_INPUT(GPIOF_PIN15))
-#define VAL_GPIOF_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOF_I2C2_SDA) |     \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_I2C2_SCL) |    \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN3) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN5) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN6) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN7) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN11) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN12) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN13) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN14) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
-#define VAL_GPIOF_OSPEEDR           (PIN_OSPEED_HIGH(GPIOF_I2C2_SDA) |        \
-                                     PIN_OSPEED_HIGH(GPIOF_I2C2_SCL) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN2) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN5) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN6) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN7) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN10) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN11) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN12) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN13) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN14) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOF_PIN15))
-#define VAL_GPIOF_PUPDR             (PIN_PUPDR_FLOATING(GPIOF_I2C2_SDA) |     \
-                                     PIN_PUPDR_FLOATING(GPIOF_I2C2_SCL) |    \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN2) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN3) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN4) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN5) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN6) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN7) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN10) |        \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN11) |        \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN12) |        \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN13) |        \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN14) |        \
-                                     PIN_PUPDR_PULLUP(GPIOF_PIN15))
-#define VAL_GPIOF_ODR               (PIN_ODR_HIGH(GPIOF_I2C2_SDA) |           \
-                                     PIN_ODR_HIGH(GPIOF_I2C2_SCL) |          \
-                                     PIN_ODR_HIGH(GPIOF_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN3) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN5) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN6) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN7) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOF_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOF_PIN11) |            \
-                                     PIN_ODR_HIGH(GPIOF_PIN12) |            \
-                                     PIN_ODR_HIGH(GPIOF_PIN13) |            \
-                                     PIN_ODR_HIGH(GPIOF_PIN14) |            \
-                                     PIN_ODR_HIGH(GPIOF_PIN15))
-#define VAL_GPIOF_AFRL              (PIN_AFIO_AF(GPIOF_I2C2_SDA, 0) |         \
-                                     PIN_AFIO_AF(GPIOF_I2C2_SCL, 0) |        \
-                                     PIN_AFIO_AF(GPIOF_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN3, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN5, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN6, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN7, 0))
-#define VAL_GPIOF_AFRH              (PIN_AFIO_AF(GPIOF_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOF_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOF_PIN11, 0) |          \
-                                     PIN_AFIO_AF(GPIOF_PIN12, 0) |          \
-                                     PIN_AFIO_AF(GPIOF_PIN13, 0) |          \
-                                     PIN_AFIO_AF(GPIOF_PIN14, 0) |          \
-                                     PIN_AFIO_AF(GPIOF_PIN15, 0))
-
-/*
- * GPIOG setup:
- *
- * PG0  - PIN0                      (input pullup).
- * PG1  - PIN1                      (input pullup).
- * PG2  - PIN2                      (input pullup).
- * PG3  - PIN3                      (input pullup).
- * PG4  - PIN4                      (input pullup).
- * PG5  - PIN5                      (input pullup).
- * PG6  - PIN6                      (input pullup).
- * PG7  - PIN7                      (input pullup).
- * PG8  - PIN8                      (input pullup).
- * PG9  - PIN9                      (input pullup).
- * PG10 - PIN10                     (input pullup).
- * PG11 - PIN11                     (input pullup).
- * PG12 - PIN12                     (input pullup).
- * PG13 - PIN13                     (input pullup).
- * PG14 - PIN14                     (input pullup).
- * PG15 - PIN15                     (input pullup).
- */
-#define VAL_GPIOG_MODER             (PIN_MODE_INPUT(GPIOG_PIN0) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN1) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN2) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN3) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN5) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN6) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN7) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOG_PIN10) |          \
-                                     PIN_MODE_INPUT(GPIOG_PIN11) |          \
-                                     PIN_MODE_INPUT(GPIOG_PIN12) |          \
-                                     PIN_MODE_INPUT(GPIOG_PIN13) |          \
-                                     PIN_MODE_INPUT(GPIOG_PIN14) |          \
-                                     PIN_MODE_INPUT(GPIOG_PIN15))
-#define VAL_GPIOG_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN1) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN3) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN5) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN6) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN7) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN11) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN12) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN13) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN14) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOG_PIN15))
-#define VAL_GPIOG_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOG_PIN0) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN1) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN2) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN5) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN6) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN7) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN10) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN11) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN12) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN13) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN14) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOG_PIN15))
-#define VAL_GPIOG_PUPDR             (PIN_PUPDR_PULLUP(GPIOG_PIN0) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN1) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN2) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN3) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN4) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN5) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN6) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN7) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN10) |        \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN11) |        \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN12) |        \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN13) |        \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN14) |        \
-                                     PIN_PUPDR_PULLUP(GPIOG_PIN15))
-#define VAL_GPIOG_ODR               (PIN_ODR_HIGH(GPIOG_PIN0) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN1) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN3) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN5) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN6) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN7) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOG_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOG_PIN11) |            \
-                                     PIN_ODR_HIGH(GPIOG_PIN12) |            \
-                                     PIN_ODR_HIGH(GPIOG_PIN13) |            \
-                                     PIN_ODR_HIGH(GPIOG_PIN14) |            \
-                                     PIN_ODR_HIGH(GPIOG_PIN15))
-#define VAL_GPIOG_AFRL              (PIN_AFIO_AF(GPIOG_PIN0, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN1, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN3, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN5, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN6, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN7, 0))
-#define VAL_GPIOG_AFRH              (PIN_AFIO_AF(GPIOG_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOG_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOG_PIN11, 0) |          \
-                                     PIN_AFIO_AF(GPIOG_PIN12, 0) |          \
-                                     PIN_AFIO_AF(GPIOG_PIN13, 0) |          \
-                                     PIN_AFIO_AF(GPIOG_PIN14, 0) |          \
-                                     PIN_AFIO_AF(GPIOG_PIN15, 0))
-
-/*
- * GPIOH setup:
- *
- * PH0  - PIN0                      (input pullup).
- * PH1  - PIN1                      (input pullup).
- * PH2  - PIN2                      (input pullup).
- * PH3  - PIN3                      (input pullup).
- * PH4  - PIN4                      (input pullup).
- * PH5  - PIN5                      (input pullup).
- * PH6  - PIN6                      (input pullup).
- * PH7  - PIN7                      (input pullup).
- * PH8  - PIN8                      (input pullup).
- * PH9  - PIN9                      (input pullup).
- * PH10 - PIN10                     (input pullup).
- * PH11 - PIN11                     (input pullup).
- * PH12 - PIN12                     (input pullup).
- * PH13 - PIN13                     (input pullup).
- * PH14 - PIN14                     (input pullup).
- * PH15 - PIN15                     (input pullup).
- */
-#define VAL_GPIOH_MODER             (PIN_MODE_INPUT(GPIOH_PIN0) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN1) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN2) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN3) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN4) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN5) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN6) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN7) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN8) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN9) |           \
-                                     PIN_MODE_INPUT(GPIOH_PIN10) |          \
-                                     PIN_MODE_INPUT(GPIOH_PIN11) |          \
-                                     PIN_MODE_INPUT(GPIOH_PIN12) |          \
-                                     PIN_MODE_INPUT(GPIOH_PIN13) |          \
-                                     PIN_MODE_INPUT(GPIOH_PIN14) |          \
-                                     PIN_MODE_INPUT(GPIOH_PIN15))
-#define VAL_GPIOH_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOH_PIN0) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN1) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN2) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN3) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN4) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN5) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN6) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN7) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN8) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN9) |       \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN10) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN11) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN12) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN13) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN14) |      \
-                                     PIN_OTYPE_PUSHPULL(GPIOH_PIN15))
-#define VAL_GPIOH_OSPEEDR           (PIN_OSPEED_VERYLOW(GPIOH_PIN0) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN1) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN2) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN3) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN4) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN5) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN6) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN7) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN8) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN9) |       \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN10) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN11) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN12) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN13) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN14) |      \
-                                     PIN_OSPEED_VERYLOW(GPIOH_PIN15))
-#define VAL_GPIOH_PUPDR             (PIN_PUPDR_PULLUP(GPIOH_PIN0) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN1) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN2) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN3) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN4) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN5) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN6) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN7) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN8) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN9) |         \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN10) |        \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN11) |        \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN12) |        \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN13) |        \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN14) |        \
-                                     PIN_PUPDR_PULLUP(GPIOH_PIN15))
-#define VAL_GPIOH_ODR               (PIN_ODR_HIGH(GPIOH_PIN0) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN1) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN2) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN3) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN4) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN5) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN6) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN7) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN8) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN9) |             \
-                                     PIN_ODR_HIGH(GPIOH_PIN10) |            \
-                                     PIN_ODR_HIGH(GPIOH_PIN11) |            \
-                                     PIN_ODR_HIGH(GPIOH_PIN12) |            \
-                                     PIN_ODR_HIGH(GPIOH_PIN13) |            \
-                                     PIN_ODR_HIGH(GPIOH_PIN14) |            \
-                                     PIN_ODR_HIGH(GPIOH_PIN15))
-#define VAL_GPIOH_AFRL              (PIN_AFIO_AF(GPIOH_PIN0, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN1, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN2, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN3, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN4, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN5, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN6, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN7, 0))
-#define VAL_GPIOH_AFRH              (PIN_AFIO_AF(GPIOH_PIN8, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN9, 0) |           \
-                                     PIN_AFIO_AF(GPIOH_PIN10, 0) |          \
-                                     PIN_AFIO_AF(GPIOH_PIN11, 0) |          \
-                                     PIN_AFIO_AF(GPIOH_PIN12, 0) |          \
-                                     PIN_AFIO_AF(GPIOH_PIN13, 0) |          \
-                                     PIN_AFIO_AF(GPIOH_PIN14, 0) |          \
-                                     PIN_AFIO_AF(GPIOH_PIN15, 0))
-
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-// #define usb_lld_connect_bus(usbp)
-#define usb_lld_connect_bus(usbp) (palSetPadMode(GPIOA, GPIOA_USB_DP, PAL_MODE_ALTERNATE(14)))
-// #define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT)
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-// #define usb_lld_disconnect_bus(usbp)
-#define usb_lld_disconnect_bus(usbp) (palSetPadMode(GPIOA, GPIOA_USB_DP, PAL_MODE_OUTPUT_PUSHPULL)); palClearPad(GPIOA, GPIOA_USB_DP)
-// #define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12)
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
-  void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */

+ 0 - 5
keyboards/clueboard/60/boards/GENERIC_STM32_F303XC/board.mk

@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC

+ 0 - 7
keyboards/clueboard/60/bootloader_defs.h

@@ -1,7 +0,0 @@
-/* Address for jumping to bootloader on STM32 chips. */
-/* It is chip dependent, the correct number can be looked up here:
- * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
- * This also requires a patch to chibios:
- *  <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
- */
-#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800

+ 15 - 12
keyboards/clueboard/60/config.h

@@ -15,8 +15,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
+
+#include "config_common.h"
 
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0xC1ED
@@ -26,6 +27,12 @@
 #define PRODUCT         Clueboard 60%
 #define DESCRIPTION     Clueboard 60%
 
+/* Address for jumping to bootloader on STM32 chips. */
+/* It is chip dependent, the correct number can be looked up here:
+ * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
+ */
+#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
+
 /* key matrix size */
 #define MATRIX_ROWS 5
 #define MATRIX_COLS 15
@@ -33,18 +40,16 @@
 /*
  * Keyboard Matrix Assignments
  *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
+ * COLS: Pins used for columns, left to right
+ * ROWS: Pins used for rows, top to bottom
  * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
  *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
  *
 */
-/* Note: These are not used for arm boards. They're here purely as documentation.
- * #define MATRIX_ROW_PINS { PB0, PB1, PB2, PA15, PA10 }
- * #define MATRIX_COL_PINS { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
- * #define UNUSED_PINS
- */
+#define MATRIX_ROW_PINS { B0, B1, B2, A15, A10 }
+#define MATRIX_COL_PINS { A2, A3, A6, B14, B15, A8, A9, A7, B3, B4, C14, C15, C13, B5, B6 }
+#define UNUSED_PINS { A0, A1, A9, B7, B8, B9, B10, B11, B12, B13 }
+#define DIODE_DIRECTION COL2ROW
 
 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 #define DEBOUNCE 6
@@ -121,8 +126,6 @@
 /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
 //#define MIDI_TONE_KEYCODE_OCTAVES 1
 
-#endif
-
  /* Backlight configuration
  */
 #define BACKLIGHT_LEVELS 1

+ 31 - 1622
keyboards/clueboard/60/info.json

@@ -8,1642 +8,51 @@
     "LAYOUT_60_ansi": {
       "key_count": 61,
       "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
-        },
-        {
-          "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": "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.75
-        },
-        {
-          "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
-        }
+        {"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": "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": "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.75},
+        {"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 }
       ]
-    },
+   },
     "LAYOUT_60_iso": {
       "key_count": 62,
       "layout": [
-        {
-          "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
-        },
-        {
-          "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": "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
-        },
-        {
-          "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
-        },
-        {
-          "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
-        }
+        {"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},
+        {"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": "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},
+        {"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},
+        {"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 }
       ]
-    },
-    "KEYMAP_AEK": {
+   },
+    "LAYOUT_aek": {
       "key_count": 60,
       "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
-        },
-        {
-          "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": "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.75
-        },
-        {
-          "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
-        }
+        {"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": "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": "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.75},
+        {"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 }
       ]
-    },
-    "KEYMAP": {
+   },
+    "LAYOUT_all": {
       "key_count": 65,
       "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
-        },
-        {
-          "x": 13,
-          "y": 0
-        },
-        {
-          "label": "Back",
-          "x": 14,
-          "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
-        },
-        {
-          "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
-        },
-        {
-          "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
-        },
-        {
-          "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
-        }
+        {"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},
+        {"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": "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},
+        {"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},
+        {"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 }
       ]
-    },
+   },
     "LAYOUT_60_ansi_split_bs_rshift": {
       "key_count": 63,
       "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
-        },
-        {
-          "x": 13,
-          "y": 0
-        },
-        {
-          "label": "Back",
-          "x": 14,
-          "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
-        },
-        {
-          "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": 1.75
-        },
-        {
-          "x": 14,
-          "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,
-          "w": 1.25
-        },
-        {
-          "label": "Menu",
-          "x": 12.5,
-          "y": 4,
-          "w": 1.25
-        },
-        {
-          "label": "Ctrl",
-          "x": 13.75,
-          "y": 4,
-          "w": 1.25
-        }
+        {"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},
+        {"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": "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": 1.75}, {"x": 14, "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, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25}
       ]
     }
   }

+ 3 - 5
keyboards/clueboard/60/keymaps/default/keymap.c

@@ -1,7 +1,5 @@
 #include QMK_KEYBOARD_H
 
-#define _______ KC_TRNS
-
 enum keyboard_layers {
     _BL,
     _FL,
@@ -46,19 +44,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * |Ctrl |Gui|Alt  |         Space         |Alt  |Gui|Fn |Ctrl |
      * `-----------------------------------------------------------'
      */
-    [_BL] = KEYMAP(
+    [_BL] = LAYOUT_all(
       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,\
       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_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,  \
       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, \
       KC_LCTL,  KC_LGUI,  KC_LALT,                        KC_SPC,                      KC_RALT,  KC_RGUI,  MO(_FL),   KC_RCTL),
-    [_FL] = KEYMAP(
+    [_FL] = LAYOUT_all(
       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, _______,_______,\
       _______,   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,     \
       _______,     _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______, \
       _______,  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,   _______, \
       _______,_______,_______,                        _______,                     _______,  _______,  MO(_FL),   _______),
-    [_CL] = KEYMAP(
+    [_CL] = LAYOUT_all(
       BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
       _______,   _______,_______,_______,RESET,  _______,_______,_______,_______,_______,_______,_______,_______,_______,     \
       _______,     _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______, \

+ 3 - 5
keyboards/clueboard/60/keymaps/default_aek/keymap.c

@@ -1,7 +1,5 @@
 #include QMK_KEYBOARD_H
 
-#define _______ KC_TRNS
-
 enum keyboard_layers {
   _BL,
   _FL,
@@ -22,19 +20,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * |Ctrl |Gui|Alt  |         Space               |Alt|Fn |Ctrl |
      * `-----------------------------------------------------------'
      */
-    [_BL] = KEYMAP_AEK(
+    [_BL] = LAYOUT_aek(
       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_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_CAPS,     KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,    KC_ENT,   \
       KC_LSFT,         KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,     KC_RSFT,     \
       KC_LCTL,  KC_LGUI,  KC_LALT,                        KC_SPC,                           KC_RALT,  MO(_FL),   KC_RCTL),
-    [_FL] = KEYMAP_AEK(
+    [_FL] = LAYOUT_aek(
       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,  _______,  \
       _______,   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
       _______,     _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,    _______,  \
       _______,       _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,       _______,     \
       _______,  _______,  _______,                        _______,                          _______,  MO(_FL),   _______),
-    [_CL] = KEYMAP_AEK(
+    [_CL] = LAYOUT_aek(
       BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,   \
       _______,   _______,_______,_______,RESET,  _______,_______,_______,_______,_______,_______,_______,_______,_______,\
       _______,     _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,    \

+ 4 - 6
keyboards/clueboard/60/keymaps/yanfali/keymap.c

@@ -1,7 +1,5 @@
 #include QMK_KEYBOARD_H
 
-#define _______ KC_TRNS
-
 enum keyboard_layers {
     _BL,
     _FL,
@@ -47,25 +45,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * |Ctrl       |Alt|Gui  |         Space         |Alt  |Gui|Fn |Ctrl |
      * `-----------------------------------------------------------------'
      */
-    [_BL] = KEYMAP(
+    [_BL] = LAYOUT_all(
       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,\
       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,     \
       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,  \
       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), \
       KC_LCTL,  KC_LALT,  KC_LGUI,                        KC_SPC,                      KC_RALT,  KC_RGUI,  MO(_FL),   KC_RCTL),
-    [_FL] = KEYMAP(
+    [_FL] = LAYOUT_all(
       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, _______,_______,\
       _______,   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,     \
       _______,     _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______, \
       _______,  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,   MO(_YF), \
       _______,_______,_______,                        _______,                     _______,  _______,  MO(_FL),   _______),
-    [_CL] = KEYMAP(
+    [_CL] = LAYOUT_all(
       BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
       _______,   _______,_______,_______,RESET,  _______,_______,_______,_______,_______,_______,_______,_______,_______,     \
       _______,     _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______, \
       _______,  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,     MO(_YF), \
       _______,  _______,  _______,                        _______,                     _______,  _______,  MO(_FL),   _______),
-    [_YF] = KEYMAP(
+    [_YF] = LAYOUT_all(
       _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
       _______,_______,KC_UP  ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        \
       _______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______,  _______,     \

+ 0 - 175
keyboards/clueboard/60/matrix.c

@@ -1,175 +0,0 @@
-#include <stdint.h>
-#include <stdbool.h>
-#include <string.h>
-#include "hal.h"
-#include "timer.h"
-#include "wait.h"
-#include "printf.h"
-#include "backlight.h"
-#include "matrix.h"
-
-
-/* Clueboard 60%
- *
- * Column pins are input with internal pull-down.
- * Row pins are output and strobe with high.
- * Key is high or 1 when it turns on.
- *
- *     col: { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC15, PC14, PC13, PB5, PB6 }
- *     row: { PB0, PB1, PB2, PA15, PA10 }
- */
-/* matrix state(1:on, 0:off) */
-static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_COLS];
-static bool debouncing = false;
-static uint16_t debouncing_time = 0;
-
-__attribute__ ((weak))
-void matrix_init_user(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {}
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
-  matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
-  matrix_scan_user();
-}
-
-void matrix_init(void) {
-    printf("matrix init\n");
-    //debug_matrix = true;
-
-    /* Column(sense) */
-    palSetPadMode(GPIOA, 2,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOA, 3,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOA, 6,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOB, 15, PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOA, 8,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOA, 9,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOA, 7,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOB, 3,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOB, 4,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOC, 15, PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOC, 14, PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOC, 13, PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOB, 5,  PAL_MODE_OUTPUT_PUSHPULL);
-    palSetPadMode(GPIOB, 6,  PAL_MODE_OUTPUT_PUSHPULL);
-
-    /* Row(strobe) */
-    palSetPadMode(GPIOB, 0,  PAL_MODE_INPUT_PULLDOWN);
-    palSetPadMode(GPIOB, 1,  PAL_MODE_INPUT_PULLDOWN);
-    palSetPadMode(GPIOB, 2,  PAL_MODE_INPUT_PULLDOWN);
-    palSetPadMode(GPIOA, 15,  PAL_MODE_INPUT_PULLDOWN);
-    palSetPadMode(GPIOA, 10,  PAL_MODE_INPUT_PULLDOWN);
-
-    memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
-    memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
-
-    palClearPad(GPIOB, 7);  // Turn off capslock
-    matrix_init_quantum();
-}
-
-uint8_t matrix_scan(void) {
-    for (int col = 0; col < MATRIX_COLS; col++) {
-        matrix_row_t data = 0;
-
-        // strobe col { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
-        switch (col) {
-            case 0: palSetPad(GPIOA, 2); break;
-            case 1: palSetPad(GPIOA, 3); break;
-            case 2: palSetPad(GPIOA, 6); break;
-            case 3: palSetPad(GPIOB, 14); break;
-            case 4: palSetPad(GPIOB, 15); break;
-            case 5: palSetPad(GPIOA, 8); break;
-            case 6: palSetPad(GPIOA, 9); break;
-            case 7: palSetPad(GPIOA, 7); break;
-            case 8: palSetPad(GPIOB, 3); break;
-            case 9: palSetPad(GPIOB, 4); break;
-            case 10: palSetPad(GPIOC, 15); break;
-            case 11: palSetPad(GPIOC, 14); break;
-            case 12: palSetPad(GPIOC, 13); break;
-            case 13: palSetPad(GPIOB, 5); break;
-            case 14: palSetPad(GPIOB, 6); break;
-        }
-
-        // need wait to settle pin state
-        wait_us(20);
-
-        // read row data { PB0, PB1, PB2, PA15, PA10 }
-        data = (
-            (palReadPad(GPIOB, 0) << 0 ) |
-            (palReadPad(GPIOB, 1) << 1 ) |
-            (palReadPad(GPIOB, 2) << 2 ) |
-            (palReadPad(GPIOA, 15) << 3 ) |
-            (palReadPad(GPIOA, 10) << 4 )
-        );
-
-        // unstrobe  col { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC15, PC14, PC13, PB5, PB6 }
-        switch (col) {
-            case 0: palClearPad(GPIOA, 2); break;
-            case 1: palClearPad(GPIOA, 3); break;
-            case 2: palClearPad(GPIOA, 6); break;
-            case 3: palClearPad(GPIOB, 14); break;
-            case 4: palClearPad(GPIOB, 15); break;
-            case 5: palClearPad(GPIOA, 8); break;
-            case 6: palClearPad(GPIOA, 9); break;
-            case 7: palClearPad(GPIOA, 7); break;
-            case 8: palClearPad(GPIOB, 3); break;
-            case 9: palClearPad(GPIOB, 4); break;
-            case 10: palClearPad(GPIOC, 15); break;
-            case 11: palClearPad(GPIOC, 14); break;
-            case 12: palClearPad(GPIOC, 13); break;
-            case 13: palClearPad(GPIOB, 5); break;
-            case 14: palClearPad(GPIOB, 6); break;
-        }
-
-        if (matrix_debouncing[col] != data) {
-            matrix_debouncing[col] = data;
-            debouncing = true;
-            debouncing_time = timer_read();
-        }
-    }
-
-    if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
-        for (int row = 0; row < MATRIX_ROWS; row++) {
-            matrix[row] = 0;
-            for (int col = 0; col < MATRIX_COLS; col++) {
-                matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
-            }
-        }
-        debouncing = false;
-    }
-
-    matrix_scan_quantum();
-
-    return 1;
-}
-
-bool matrix_is_on(uint8_t row, uint8_t col) {
-    return (matrix[row] & (1<<col));
-}
-
-matrix_row_t matrix_get_row(uint8_t row) {
-    return matrix[row];
-}
-
-void matrix_print(void) {
-    printf("\nr/c 01234567\n");
-    for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
-        printf("%X0: ", row);
-        matrix_row_t data = matrix_get_row(row);
-        for (int col = 0; col < MATRIX_COLS; col++) {
-            if (data & (1<<col))
-                printf("1");
-            else
-                printf("0");
-        }
-        printf("\n");
-    }
-}

+ 7 - 14
keyboards/clueboard/60/rules.mk

@@ -1,6 +1,5 @@
 # project specific files
-SRC =	matrix.c \
-	led.c
+SRC =	led.c
 LAYOUTS += 60_ansi 60_ansi_split_bs_rshift 60_iso
 
 ## chip/board settings
@@ -32,8 +31,6 @@ USE_FPU = yes
 
 # Vector table for application
 # 0x00000000-0x00001000 area is occupied by bootlaoder.*/
-# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
-# OPT_DEFS = -DCORTEX_VTOR_INIT=0x08005000
 OPT_DEFS =
 
 # Options to pass to dfu-util when flashing
@@ -43,14 +40,10 @@ DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
 #   comment out to disable the options.
 #
 BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration
-## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
-MOUSEKEY_ENABLE = yes	# Mouse keys
-EXTRAKEY_ENABLE = yes	# Audio control and System control
-CONSOLE_ENABLE = yes	# Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-#SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
-NKRO_ENABLE = yes	    # USB Nkey Rollover
-CUSTOM_MATRIX = yes # Custom matrix file
+BOOTMAGIC_ENABLE = no	  # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes	  # Mouse keys
+EXTRAKEY_ENABLE = yes	  # Audio control and System control
+CONSOLE_ENABLE = yes	  # Console for debug
+COMMAND_ENABLE = no     # Commands for debug and configuration
+NKRO_ENABLE = yes	      # USB Nkey Rollover
 AUDIO_ENABLE = yes
-# SERIAL_LINK_ENABLE = yes

+ 0 - 1
keyboards/clueboard/66/66.c

@@ -1 +0,0 @@
-#include "66.h"

+ 0 - 16
keyboards/clueboard/66/66.h

@@ -1,16 +0,0 @@
-#ifndef CLUEBOARD_H
-#define CLUEBOARD_H
-
-#include "quantum.h"
-
-#ifdef KEYBOARD_clueboard_66_rev1
-    #include "rev1.h"
-#endif
-#ifdef KEYBOARD_clueboard_66_rev2
-    #include "rev2.h"
-#endif
-#ifdef KEYBOARD_clueboard_66_rev3
-    #include "rev3.h"
-#endif
-
-#endif

+ 0 - 63
keyboards/clueboard/66/config.h

@@ -1,63 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef CLUEBOARD_66_CONFIG_H
-#define CLUEBOARD_66_CONFIG_H
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID       0xC1ED
-#define MANUFACTURER    Clueboard
-#define PRODUCT         Clueboard
-#define DESCRIPTION     QMK keyboard firmware for Clueboard
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCING_DELAY 5
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/* key combination for command */
-#define IS_COMMAND() ( \
-    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
-
-/*
- * Feature disable options
- *  These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-#endif

File diff ditekan karena terlalu besar
+ 0 - 1
keyboards/clueboard/66/info.json


+ 1 - 1
keyboards/clueboard/66/keymaps/66_ansi/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 3
keyboards/clueboard/66/keymaps/66_ansi/readme.md

@@ -1,6 +1,4 @@
-![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png)
-
-# Basic Clueboard 66% Hotswap Layout
+# Basic Clueboard 66% Hotswap ANSI Layout
 
 This is the default layout that comes flashed on every Clueboard. For the most
 part it's a straightforward and easy to follow layout. The only unusual key is 

+ 1 - 1
keyboards/clueboard/66/keymaps/66_iso/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 3
keyboards/clueboard/66/keymaps/66_iso/readme.md

@@ -1,6 +1,4 @@
-![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png)
-
-# Default Clueboard Layout
+# Default Clueboard 66% ISO Layout
 
 This is the default layout that comes flashed on every Clueboard. For the most
 part it's a straightforward and easy to follow layout. The only unusual key is 

+ 1 - 5
keyboards/clueboard/66/keymaps/bloodlvst/config.h

@@ -1,7 +1,3 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
+#pragma once
 
 #define DISABLE_SPACE_CADET_ROLLOVER
-#endif

+ 1 - 1
keyboards/clueboard/66/keymaps/bloodlvst/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/caps_fn/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 0 - 2
keyboards/clueboard/66/keymaps/caps_fn/readme.md

@@ -1,5 +1,3 @@
-![Clueboard Layout Image](http://i.imgur.com/kGADucy.png)
-
 # Caps Fn Layout
 
 This is the default layout except that Caps Lock acts like Caps Lock when

+ 1 - 1
keyboards/clueboard/66/keymaps/colemak/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/default/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 3
keyboards/clueboard/66/keymaps/default/readme.md

@@ -1,6 +1,4 @@
-![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png)
-
-# Default Clueboard Layout
+# Default Clueboard 66% Universal Layout
 
 This is the default layout that comes flashed on every Clueboard. For the most
 part it's a straightforward and easy to follow layout. The only unusual key is 

+ 1 - 1
keyboards/clueboard/66/keymaps/jokrik/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/mac_optimized/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 0 - 2
keyboards/clueboard/66/keymaps/mac_optimized/readme.md

@@ -1,5 +1,3 @@
-![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png)
-
 # Default Clueboard Layout for Mac
 
 This is the default Clueboard layout with Alt and GUI switched to match Mac

+ 1 - 6
keyboards/clueboard/66/keymaps/magicmonty/config.h

@@ -1,7 +1,4 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
+#pragma once
 
 /*
  * MIDI options
@@ -36,5 +33,3 @@
 #define LSPO_KEY KC_8
 #define RSPC_KEY KC_9
 #define PERMISSIVE_HOLD
-
-#endif

+ 1 - 1
keyboards/clueboard/66/keymaps/magicmonty/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Helpful defines
 #define xxxxxxx KC_NO

+ 1 - 0
keyboards/clueboard/66/keymaps/magicmonty/rules.mk

@@ -1,6 +1,7 @@
 
 MOUSEKEY_ENABLE = yes
 EXTRAKEY_ENABLE = yes
+RGBLIGHT_ENABLE = yes   # Enable keyboard underlight functionality
 
 MIDI_ENABLE = yes
 

+ 1 - 1
keyboards/clueboard/66/keymaps/manofinterests/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/maximised/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 0 - 2
keyboards/clueboard/66/keymaps/maximised/readme.md

@@ -1,5 +1,3 @@
-![Clueboard Layout Image](http://i.imgur.com/7oZCsHF.png)
-
 # Maximised Clueboard Layout
 
 This 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.

+ 1 - 1
keyboards/clueboard/66/keymaps/mouse_keys/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 0 - 2
keyboards/clueboard/66/keymaps/mouse_keys/readme.md

@@ -1,5 +1,3 @@
-![Clueboard Layout Image](layout.png)
-
 # MouseKeys Layout
 
 This layout adds a mouse layer. When you hold down the spacebar the arrow keys

+ 1 - 1
keyboards/clueboard/66/keymaps/mrscooty/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/serubin/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/shift_fn/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/shift_fn/readme.md

@@ -1,4 +1,4 @@
-# Shift Fn Clueboard Layout
+# Shift Fn Clueboard 66% Layout
 
 This is an experimental layout. It makes the left shift key a dual roll key.
 For most keys it acts as a shift key, but for some keys it activates an 

+ 1 - 1
keyboards/clueboard/66/keymaps/smt/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 1
keyboards/clueboard/66/keymaps/tetris/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 #include "tetris_text.h"
 
 // Helpful defines

+ 1 - 1
keyboards/clueboard/66/keymaps/unix_optimized/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 3
keyboards/clueboard/66/keymaps/unix_optimized/readme.md

@@ -1,6 +1,4 @@
-![Clueboard Layout Image](http://i.imgur.com/BnWlOht.png)
-
-# Default Clueboard Layout
+# Default Clueboard 66% Layout
 
 This is the default layout except that Caps Lock has been changed to Control
 and Insert and Delete have been put into the Fn layer.

+ 1 - 1
keyboards/clueboard/66/keymaps/win_optimized/keymap.c

@@ -1,4 +1,4 @@
-#include "66.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 1 - 3
keyboards/clueboard/66/keymaps/win_optimized/readme.md

@@ -1,6 +1,4 @@
-![Clueboard Layout Image](http://i.imgur.com/fsqOqZo.png)
-
-# Default Clueboard Layout
+# Default Clueboard 66% Layout
 
 This is the default layout that comes flashed on every Clueboard. For the most
 part it's a straightforward and easy to follow layout. The only unusual key is 

+ 2 - 2
keyboards/clueboard/66/keymaps/xyverz/config.h

@@ -1,3 +1,3 @@
-#include "../config.h"
+#pragma once
 
-#define TAPPING_TERM 600 // ms	
+#define TAPPING_TERM 600 // ms

+ 1 - 1
keyboards/clueboard/66/keymaps/xyverz/keymap.c

@@ -1,7 +1,7 @@
 // Xyverz' keymap.
 // It's based on the default keymap, but Dvorak!
 
-#include "66.h"
+#include QMK_KEYBOARD_H
 #include "action_layer.h"
 #include "eeconfig.h"
 

+ 2 - 2
keyboards/clueboard/66/readme.md

@@ -1,6 +1,6 @@
 # Clueboard 66%
 
-![Clueboard](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/5867eeaad2b857fd0d196f4b/1494021396651/IMGP4201.jpg?format=1500w)
+![Clueboard](https://i.imgur.com/hLePwJu.jpg)
 
 A fully customizable 66% keyboard.
 
@@ -8,7 +8,7 @@ A fully customizable 66% keyboard.
 * Hardware Supported: Clueboard 66% PCB
   * rev1 (PCB Version 1.0)
   * rev2 (PCB Versions 2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6)
-  * rev3 (PCB Versions 2.7, 2.8)
+  * rev3 (PCB Versions 2.7, 2.8, 2.9)
 * Hardware Availability: [clueboard.co](https://clueboard.co/)
 
 Make example for this keyboard (after setting up your build environment):

+ 44 - 15
keyboards/clueboard/66/rev1/config.h

@@ -1,28 +1,60 @@
-#ifndef CLUEBOARD_66_REV1_CONFIG_H
-#define CLUEBOARD_66_REV1_CONFIG_H
+#pragma once
 
 #include "config_common.h"
 
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xC1ED
 #define PRODUCT_ID      0x2301
 #define DEVICE_VER      0x0003
+#define MANUFACTURER    Clueboard
+#define PRODUCT         Clueboard
+#define DESCRIPTION     QMK keyboard firmware for Clueboard
 
-/* key matrix size */
+/* key matrix size
+ */
 #define MATRIX_ROWS 5
 #define MATRIX_COLS 16
 
-// ROWS: Top to bottom, COLS: Left to right
-/* Column pin configuration
-* col: 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
-* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1
-*/
+/* ROWS: Top to bottom, COLS: Left to right
+ */
 #define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 }
-/* Row pin configuration
-* row: 0  1  2  3  4
-* pin: D1 D0 D2 D5 D3
-*/
 #define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 }
 #define UNUSED_PINS
 
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
 /* Underlight configuration
  */
 #define RGB_DI_PIN B2
@@ -31,6 +63,3 @@
 #define RGBLIGHT_HUE_STEP 10
 #define RGBLIGHT_SAT_STEP 17
 #define RGBLIGHT_VAL_STEP 17
-
-
-#endif

+ 3 - 5
keyboards/clueboard/66/rev1/rev1.h

@@ -1,7 +1,6 @@
-#ifndef REV1_H
-#define REV1_H
+#pragma once
 
-#include "../66.h"
+#include "quantum.h"
 
 /* Clueboard matrix layout
  * ,-----------------------------------------------------------.  ,---.
@@ -43,7 +42,6 @@
     { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
     { k40, k41, k42, k43, KC_NO,    k45, k46, KC_NO,    KC_NO,    k49, k4A, k4B, k4C, k4D, k4E, k4F }  \
 }
-#define KEYMAP LAYOUT
 
 #define LAYOUT_66_ansi( \
     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,    k0E,   k0F, \
@@ -73,4 +71,4 @@
     { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, k4C, k4D, k4E, k4F }  \
 }
 
-#endif
+#define KEYMAP LAYOUT

+ 23 - 1
keyboards/clueboard/66/rev1/rules.mk

@@ -1 +1,23 @@
-BACKLIGHT_ENABLE = no
+LAYOUTS = 66_ansi 66_iso
+MCU = atmega32u4
+F_CPU = 16000000
+ARCH = AVR8
+F_USB = $(F_CPU)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+#   comment out to disable the options.
+#
+BACKLIGHT_ENABLE = no
+BOOTMAGIC_ENABLE = no 	# Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes   # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes 	# Audio control and System control(+450)
+CONSOLE_ENABLE = yes  	# Console for debug(+400)
+COMMAND_ENABLE = no     # Commands for debug and configuration
+NKRO_ENABLE = yes		    # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+AUDIO_ENABLE = no
+RGBLIGHT_ENABLE = no    # Enable keyboard underlight functionality
+MIDI_ENABLE = no 		    # MIDI controls
+UNICODE_ENABLE = no 		# Unicode
+BLUETOOTH_ENABLE = no   # Enable Bluetooth with the Adafruit EZ-Key HID

+ 41 - 12
keyboards/clueboard/66/rev2/config.h

@@ -1,28 +1,59 @@
-#ifndef CLUEBOARD_66_REV2_CONFIG_H
-#define CLUEBOARD_66_REV2_CONFIG_H
+#pragma once
 
 #include "config_common.h"
 
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xC1ED
 #define PRODUCT_ID      0x2320
 #define DEVICE_VER      0x0001
+#define MANUFACTURER    Clueboard
+#define PRODUCT         Clueboard
+#define DESCRIPTION     QMK keyboard firmware for Clueboard
 
 /* key matrix size */
 #define MATRIX_ROWS 10
 #define MATRIX_COLS 8
 
-// ROWS: Top to bottom, COLS: Left to right
-/* Row pin configuration
-* row: 0  1  2  3  4  5  6  7  8  9
-* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
+/* ROWS: Top to bottom, COLS: Left to right
 */
 #define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
-/* Column pin configuration
- * col: 0  1  2  3  4  5  6  7
- * pin: F0 F1 F4 F5 F6 F7 E6 B1
- */
 #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
 #define UNUSED_PINS
 
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
  /* Backlight configuration
  */
 #define BACKLIGHT_LEVELS 1
@@ -44,5 +75,3 @@
 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 1   // The led to start at
 #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5  // How many LEDs to travel
 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 4    // How many LEDs wide to light up
-
-#endif

+ 3 - 5
keyboards/clueboard/66/rev2/rev2.h

@@ -1,7 +1,6 @@
-#ifndef REV2_H
-#define REV2_H
+#pragma once
 
-#include "66.h"
+#include "quantum.h"
 
 /* Clueboard matrix layout
  * ,-----------------------------------------------------------.  ,---.
@@ -48,7 +47,6 @@
     { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
     { k90, KC_NO, k92, k93, k94, k95, k96, k97 }  \
 }
-#define KEYMAP LAYOUT
 
 /* LAYOUT_66_ansi, standard 66 key ANSI layout
  */
@@ -92,4 +90,4 @@
     { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 }  \
 }
 
-#endif
+#define KEYMAP LAYOUT

+ 22 - 1
keyboards/clueboard/66/rev2/rules.mk

@@ -1 +1,22 @@
-BACKLIGHT_ENABLE = yes
+LAYOUTS = 66_ansi 66_iso
+MCU = atmega32u4
+F_CPU = 16000000
+ARCH = AVR8
+F_USB = $(F_CPU)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+BACKLIGHT_ENABLE = yes
+BOOTMAGIC_ENABLE = no 	# Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes   # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes 	# Audio control and System control(+450)
+CONSOLE_ENABLE = yes  	# Console for debug(+400)
+COMMAND_ENABLE = no     # Commands for debug and configuration
+NKRO_ENABLE = yes		    # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+AUDIO_ENABLE = no
+RGBLIGHT_ENABLE = yes   # Enable keyboard underlight functionality
+MIDI_ENABLE = no 		    # MIDI controls
+UNICODE_ENABLE = no 		# Unicode
+BLUETOOTH_ENABLE = no   # Enable Bluetooth with the Adafruit EZ-Key HID

+ 41 - 12
keyboards/clueboard/66/rev3/config.h

@@ -1,28 +1,59 @@
-#ifndef CLUEBOARD_66_REV3_CONFIG_H
-#define CLUEBOARD_66_REV3_CONFIG_H
+#pragma once
 
 #include "config_common.h"
 
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xC1ED
 #define PRODUCT_ID      0x2370
 #define DEVICE_VER      0x0001
+#define MANUFACTURER    Clueboard
+#define PRODUCT         Clueboard
+#define DESCRIPTION     QMK keyboard firmware for Clueboard
 
 /* key matrix size */
 #define MATRIX_ROWS 10
 #define MATRIX_COLS 8
 
-// ROWS: Top to bottom, COLS: Left to right
-/* Row pin configuration
-* row: 0  1  2  3  4  5  6  7  8  9
-* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
+/* ROWS: Top to bottom, COLS: Left to right
 */
 #define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
-/* Column pin configuration
- * col: 0  1  2  3  4  5  6  7
- * pin: F0 F1 F4 F5 F6 F7 E6 B1
- */
 #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
 #define UNUSED_PINS
 
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
  /* Backlight configuration
  */
 #define BACKLIGHT_LEVELS 1
@@ -44,5 +75,3 @@
 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2   // The led to start at
 #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5  // How many LEDs to travel
 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 4    // How many LEDs wide to light up
-
-#endif

+ 0 - 4
keyboards/clueboard/66/rev3/rev3.c

@@ -8,10 +8,6 @@ void matrix_init_kb(void) {
     // runs once when the firmware starts up
     matrix_init_user();
     led_init_ports();
-
-    // JTAG disable for PORT F. write JTD bit twice within four cycles.
-    MCUCR |= (1<<JTD);
-    MCUCR |= (1<<JTD);
 }
 
 

+ 3 - 5
keyboards/clueboard/66/rev3/rev3.h

@@ -1,7 +1,6 @@
-#ifndef REV3_H
-#define REV3_H
+#pragma once
 
-#include "66.h"
+#include "quantum.h"
 
 /* Clueboard matrix layout
  * ,-----------------------------------------------------------.  ,---.
@@ -48,7 +47,6 @@
     { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
     { k90, KC_NO, k92, k93, k94, k95, k96, k97 }  \
 }
-#define KEYMAP LAYOUT
 
 /* LAYOUT_66_ansi, standard 66 key ANSI layout
  */
@@ -92,4 +90,4 @@
     { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 }  \
 }
 
-#endif
+#define KEYMAP LAYOUT

+ 23 - 1
keyboards/clueboard/66/rev3/rules.mk

@@ -1 +1,23 @@
-BACKLIGHT_ENABLE = yes
+LAYOUTS = 66_ansi 66_iso
+MCU = atmega32u4
+F_CPU = 16000000
+ARCH = AVR8
+F_USB = $(F_CPU)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+#   comment out to disable the options.
+#
+BACKLIGHT_ENABLE = yes
+BOOTMAGIC_ENABLE = no 	# Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes   # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes 	# Audio control and System control(+450)
+CONSOLE_ENABLE = yes  	# Console for debug(+400)
+COMMAND_ENABLE = no     # Commands for debug and configuration
+NKRO_ENABLE = yes		    # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+AUDIO_ENABLE = no
+RGBLIGHT_ENABLE = yes   # Enable keyboard underlight functionality
+MIDI_ENABLE = no 		    # MIDI controls
+UNICODE_ENABLE = no 		# Unicode
+BLUETOOTH_ENABLE = no   # Enable Bluetooth with the Adafruit EZ-Key HID

+ 0 - 25
keyboards/clueboard/66/rules.mk

@@ -1,25 +0,0 @@
-DEFAULT_FOLDER = clueboard/66/rev2
-LAYOUTS = 66_ansi 66_iso
-MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-# Build Options
-#   comment out to disable the options.
-#
-BOOTMAGIC_ENABLE = no 	# Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no	# Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes 	# Audio control and System control(+450)
-CONSOLE_ENABLE = yes	# Console for debug(+400)
-COMMAND_ENABLE = yes   # Commands for debug and configuration
-NKRO_ENABLE = yes		# USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes  # Enable keyboard underlight functionality
-MIDI_ENABLE = no 		# MIDI controls
-UNICODE_ENABLE = no 		# Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-
-LAYOUTS = 66_ansi

+ 1 - 0
keyboards/clueboard/66_hotswap/config.h

@@ -16,6 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #pragma once
+
 #include "config_common.h"
 
 /* USB Device descriptor parameter */

+ 2 - 9
keyboards/clueboard/66_hotswap/gen1/config.h

@@ -1,4 +1,5 @@
 #pragma once
+
 #include "config_common.h"
 
 #define PRODUCT_ID      0x2390
@@ -8,17 +9,9 @@
 #define MATRIX_ROWS 10
 #define MATRIX_COLS 8
 
-// ROWS: Top to bottom, COLS: Left to right
-/* Row pin configuration
-* row: 0  1  2  3  4  5  6  7  8  9
-* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
+/* ROWS: Top to bottom, COLS: Left to right
 */
-
 #define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
-/* Column pin configuration
- * col: 0  1  2  3  4  5  6  7
- * pin: F0 F1 F4 F5 F6 F7 E6 B1
- */
 #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
 #define UNUSED_PINS
 

+ 40 - 40
keyboards/clueboard/66_hotswap/gen1/gen1.h

@@ -3,65 +3,65 @@
 
 /* Clueboard matrix layout
  * ,-----------------------------------------------------------.  ,---.
- * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54|   56  |  | 57|
+ * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54|     56|  | 57|
  * |-----------------------------------------------------------|  |---|
  * |   10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64|   65|  | 67|
  * |-----------------------------------------------------------|  `---'
- * |    20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74|  75|
- * |------------------------------------------------------------.
- * |  30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84|  85|86|
- * |------------------------------------------------------------------.
- * |  40| 41|  42|  43|   45|       46|   90|  92|  93| 94| 95| 96| 97|
- * `------------------------------------------------------------------'
+ * |    20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73|      75|
+ * |-------------------------------------------------------------.
+ * |      30| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83|      85| 86|
+ * |-----------------------------------------------------------------.
+ * |  40|  41|  42|        45|      46|  90|  92| 93|  94| 95| 96| 97|
+ * `-----------------------------------------------------------------'
  * ,-----------------------------------------------------------.  ,---.
  * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |  |Ins|
  * |-----------------------------------------------------------|  |---|
  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|  |Del|
  * |-----------------------------------------------------------|  `---'
  * |Caps  |  A|  S|  D|  F|  G|  H|  J|  k|  L|  ;|  '|Enter   |
- * |--------------------------------------------------------------.
- * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|  \|Shift| Up|
- * |------------------------------------------------------------------.
- * |Ctrl|Alt|Gui |     Space|  Space|Gui |Alt |Fn  |Ctrl|Left|Down|Rgt|
- * `------------------------------------------------------------------'
+ * |-------------------------------------------------------------.
+ * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift   |Up |
+ * |-----------------------------------------------------------------.
+ * |Ctrl|Alt |Gui |     Space|   Space|Gui |Alt |Fn |Ctrl|Lft|Dwn|Rgt|
+ * `-----------------------------------------------------------------'
  */
 // The first section contains all of the arguments
 // The second converts the arguments into a two-dimensional array
 
 #define LAYOUT( \
     k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54,    k56,   k57, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65,      k67, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73,    k75, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \
-    k40, k41, k42,           k45, k46,      k90,      k92, k93, k94, k95, k96, k97 \
+    k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64,    k65,   k67, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73,         k75,        \
+    k30,      k32, k33, k34, k35, k36, k37, k80, k81, k82, k83,      k85, k86,      \
+    k40, k41, k42,           k45, k46,      k90,      k92, k93, k94, k95, k96, k97  \
 ) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37 }, \
-    { k40, k41, k42, KC_NO, KC_NO, k45, k46, KC_NO }, \
-    { k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \
-    { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
-    { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \
-    { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
-    { k90, KC_NO, k92, k93, k94, k95, k96, k97 }  \
+    { k00,    k01,    k02,    k03,    k04,    k05,    k06,    k07   }, \
+    { k10,    k11,    k12,    k13,    k14,    k15,    k16,    k17   }, \
+    { k20,    k21,    k22,    k23,    k24,    k25,    k26,    k27   }, \
+    { k30,    KC_NO,  k32,    k33,    k34,    k35,    k36,    k37   }, \
+    { k40,    k41,    k42,    KC_NO,  KC_NO,  k45,    k46,    KC_NO }, \
+    { k50,    k51,    k52,    k53,    k54,    KC_NO,  k56,    k57   }, \
+    { k60,    k61,    k62,    k63,    k64,    k65,    KC_NO,  k67   }, \
+    { k70,    k71,    k72,    k73,    KC_NO,  k75,    KC_NO,  KC_NO }, \
+    { k80,    k81,    k82,    k83,    KC_NO,  k85,    k86,    KC_NO }, \
+    { k90,    KC_NO,  k92,    k93,    k94,    k95,    k96,    k97   }  \
 }
 
 #define LAYOUT_66_ansi( \
     k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54,    k56,   k57, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65,      k67, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73,    k75, \
-    k30,      k32, k33, k34, k35, k36, k37, k80, k81, k82, k83,    k85,   k86, \
-    k40, k41, k42,                k46,                k92, k93, k94, k95, k96, k97 \
+    k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64,    k65,   k67, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73,         k75,        \
+    k30,      k32, k33, k34, k35, k36, k37, k80, k81, k82, k83,      k85, k86,      \
+    k40, k41, k42,                k46,                k92, k93, k94, k95, k96, k97  \
 ) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \
-    { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \
-    { k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \
-    { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
-    { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \
-    { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \
-    { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 }  \
+    { k00,    k01,    k02,    k03,    k04,    k05,    k06,    k07   }, \
+    { k10,    k11,    k12,    k13,    k14,    k15,    k16,    k17   }, \
+    { k20,    k21,    k22,    k23,    k24,    k25,    k26,    k27   }, \
+    { k30,    KC_NO,  k32,    k33,    k34,    k35,    k36,    k37   }, \
+    { k40,    k41,    k42,    KC_NO,  KC_NO,  KC_NO,  k46,    KC_NO }, \
+    { k50,    k51,    k52,    k53,    k54,    KC_NO,  k56,    k57   }, \
+    { k60,    k61,    k62,    k63,    k64,    k65,    KC_NO,  k67   }, \
+    { k70,    k71,    k72,    k73,    KC_NO,  k75,    KC_NO,  KC_NO }, \
+    { k80,    k81,    k82,    k83,    KC_NO,  k85,    k86,    KC_NO }, \
+    { KC_NO,  KC_NO,  k92,    k93,    k94,    k95,    k96,    k97   }  \
 }

File diff ditekan karena terlalu besar
+ 0 - 0
keyboards/clueboard/66_hotswap/info.json


+ 1 - 1
keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c

@@ -1,4 +1,4 @@
-#include "66_hotswap.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.

+ 4 - 4
keyboards/clueboard/66_hotswap/keymaps/default/keymap.c

@@ -1,4 +1,4 @@
-#include "66_hotswap.h"
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // 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] = {
   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, \
   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, \
   KC_CAPS,KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,      KC_ENT,                            \
-  KC_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,           \
+  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,           \
   KC_LCTL,KC_LGUI,KC_LALT,                KC_SPC, KC_SPC,                         KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT),
 
   /* Keymap _FL: Function Layer
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   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, \
   _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE,                KC_VOLD, \
   _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,    _______,                             \
-  _______,MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,MO(_FL),_______,        KC_PGUP,         \
+  _______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        _______,        KC_PGUP,         \
   _______,_______,_______,                _______,_______,                        _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END),
 
   /* Keymap _CL: Control layer
@@ -31,6 +31,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   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, \
   _______,_______,_______,_______,RESET,  _______,_______,_______,_______,_______,_______,_______,_______,_______,                RGB_VAD, \
   _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,    _______,                             \
-  _______,MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,MO(_FL),_______,        RGB_SAI,         \
+  _______,        _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        _______,        RGB_SAI,         \
   _______,_______,_______,                RGB_MOD,RGB_MOD,                        _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI),
 };

+ 4 - 4
keyboards/clueboard/66_hotswap/readme.md

@@ -1,16 +1,16 @@
 # Clueboard 66% HotSwap
 
-![Clueboard](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/5867eeaad2b857fd0d196f4b/1494021396651/IMGP4201.jpg?format=1500w)
+![Clueboard](https://i.imgur.com/8UmBoNx.jpg)
 
 A fully customizable 66% keyboard with Hot Swap sockets.
 
 * Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
 * Hardware Supported: Clueboard 66% HotSwap PCB
-  * 2.9
+  * 2.9 (gen1)
 * Hardware Availability: [clueboard.co](https://clueboard.co/)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make clueboard/66_hotswap:default
+    make clueboard/66_hotswap/gen1:default
 
-See [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.
+See 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).

+ 7 - 10
keyboards/clueboard/card/card.h

@@ -1,22 +1,19 @@
-#ifndef CLUECARD_H
-#define CLUECARD_H
+#pragma once
 
 #include "quantum.h"
 
 // This a shortcut to help you visually see your layout.
 // The first section contains all of the arguements
 // The second converts the arguments into a two-dimensional array
-#define KEYMAP( \
-	k00, k01, k02, \
-	k10, k12, \
-	k20, k21, k22, \
-	k11, \
-	k30, k31, k32 \
+#define LAYOUT( \
+	k00,      k01,      k02, \
+	     k10,      k12,      \
+	k20,      k21,      k22, \
+	     k11,                \
+	          k30, k31, k32  \
 ) { \
 	{ k00, k01, k02, }, \
 	{ k10, k11, k12, }, \
 	{ k20, k21, k22, }, \
 	{ k30, k31, k32, } \
 }
-
-#endif

+ 2 - 13
keyboards/clueboard/card/config.h

@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
 
 #include "config_common.h"
 
@@ -32,15 +31,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define MATRIX_ROWS 4
 #define MATRIX_COLS 3
 
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
+/* Keyboard Matrix Assignments
 */
 #define MATRIX_ROW_PINS { F0, F5, F4, B4 }
 #define MATRIX_COL_PINS { F1, F7, F6 }
@@ -163,5 +154,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_ONESHOT
 //#define NO_ACTION_MACRO
 //#define NO_ACTION_FUNCTION
-
-#endif

+ 20 - 0
keyboards/clueboard/card/info.json

@@ -0,0 +1,20 @@
+{
+  "keyboard_name": "Cluecard",
+  "keyboard_folder": "clueboard/card",
+  "url": "",
+  "maintainer": "skullydazed",
+  "width": 10,
+  "height": 7,
+  "layouts": {
+    "LAYOUT": {
+      "layout": [
+        {"label":"ON/OFF", "x":0, "y":0}, {"label":"SAT+", "x":4, "y":0}, {"label":"BRIGHT+", "x":8, "y":0},
+        {"label":"HUE-", "x":2, "y":1}, {"label":"HUE+", "x":6, "y":1},
+        {"label":"MODE", "x":0, "y":2}, {"label":"SAT-", "x":4, "y":2}, {"label":"BRIGHT-", "x":8, "y":2},
+        {"label":"LAYER", "x":2, "y":4},
+
+        {"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}
+      ]
+    }
+  }
+}

+ 1 - 6
keyboards/clueboard/card/keymaps/default/config.h

@@ -1,8 +1,3 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
+#pragma once
 
 // place overrides here
-
-#endif

+ 2 - 5
keyboards/clueboard/card/keymaps/default/keymap.c

@@ -1,10 +1,7 @@
-#include "card.h"
-#ifdef AUDIO_ENABLE
-	#include "audio.h"
-#endif
+#include QMK_KEYBOARD_H
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-	[0] = KEYMAP(
+	[0] = LAYOUT(
 		RGB_TOG,        RGB_SAI,        RGB_VAI, \
 		        RGB_HUD,        RGB_HUI,         \
 		RGB_MOD,        RGB_SAD,        RGB_VAD, \

+ 6 - 7
keyboards/clueboard/card/keymaps/default/rules.mk

@@ -3,16 +3,15 @@
 #   the appropriate keymap folder that will get included automatically
 #
 BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no       # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no       # Audio control and System control(+450)
-CONSOLE_ENABLE = yes         # Console for debug(+400)
+MOUSEKEY_ENABLE = no        # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no        # Audio control and System control(+450)
+CONSOLE_ENABLE = yes        # Console for debug(+400)
 COMMAND_ENABLE = yes        # Commands for debug and configuration
 NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality
+BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
 MIDI_ENABLE = no            # MIDI controls
-AUDIO_ENABLE = yes           # Audio output on port C6
+AUDIO_ENABLE = yes          # Audio output on port C6
 UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight.
+RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
-

+ 1 - 6
keyboards/clueboard/card/keymaps/rgb_effects/config.h

@@ -1,12 +1,7 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
+#pragma once
 
 // place overrides here
 #define RGBLIGHT_ANIMATIONS
 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2
-
-#endif

+ 3 - 3
keyboards/clueboard/card/keymaps/rgb_effects/keymap.c

@@ -1,12 +1,12 @@
-#include "card.h"
+#include QMK_KEYBOARD_H
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-	[0] = KEYMAP(
+	[0] = LAYOUT(
 		RGB_TOG,        RGB_SAI,        RGB_VAI, \
 		        RGB_HUD,        RGB_HUI,         \
 		RGB_MOD,        RGB_SAD,        RGB_VAD, \
 		BL_STEP,                                 \
-		KC_NO,   KC_NO,   KC_NO                  \
+		KC_NO,  KC_NO,  KC_NO                    \
 	)
 };
 

+ 5 - 6
keyboards/clueboard/card/keymaps/rgb_effects/rules.mk

@@ -3,16 +3,15 @@
 #   the appropriate keymap folder that will get included automatically
 #
 BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no       # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no       # Audio control and System control(+450)
-CONSOLE_ENABLE = yes         # Console for debug(+400)
+MOUSEKEY_ENABLE = no        # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no        # Audio control and System control(+450)
+CONSOLE_ENABLE = yes        # Console for debug(+400)
 COMMAND_ENABLE = yes        # Commands for debug and configuration
 NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality
+BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
 MIDI_ENABLE = no            # MIDI controls
 AUDIO_ENABLE = no           # Audio output on port C6
 UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight.
+RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
-

+ 3 - 1
keyboards/clueboard/card/readme.md

@@ -1,5 +1,7 @@
 # Cluecard
 
+![Cluecard](https://i.imgur.com/dTu0Pzx.jpg)
+
 A simple QMK dev kit.
 
 * Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
@@ -10,4 +12,4 @@ Make example for this keyboard (after setting up your build environment):
 
     make clueboard/card:default
 
-See [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.
+See 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).

+ 11 - 60
keyboards/clueboard/card/rules.mk

@@ -1,70 +1,21 @@
-
-
-# MCU name
-#MCU = at90usb1287
 MCU = atmega32u4
-
-# Processor frequency.
-#     This will define a symbol, F_CPU, in all source code files equal to the
-#     processor frequency in Hz. You can then use this symbol in your source code to
-#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-#     automatically to create a 32-bit value in your source code.
-#
-#     This will be an integer division of F_USB below, as it is sourced by
-#     F_USB after it has run through any CPU prescalers. Note that this value
-#     does not *change* the processor frequency - it should merely be updated to
-#     reflect the processor speed set externally so that the code can use accurate
-#     software delays.
 F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
 ARCH = AVR8
-
-# Input clock frequency.
-#     This will define a symbol, F_USB, in all source code files equal to the
-#     input clock frequency (before any prescaling is performed) in Hz. This value may
-#     differ from F_CPU if prescaling is used on the latter, and is required as the
-#     raw input clock is fed directly to the PLL sections of the AVR for high speed
-#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-#     at the end, this will be done automatically to create a 32-bit value in your
-#     source code.
-#
-#     If no clock division is performed on the input clock inside the AVR (via the
-#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
 F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
 OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 
 # Build Options
-#   change yes to no to disable
-#
 BOOTMAGIC_ENABLE = no      # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
-CONSOLE_ENABLE = yes        # Console for debug(+400)
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = no            # USB Nkey Rollover
-RGBLIGHT_ENABLE = yes       # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality by default
-MIDI_ENABLE = no            # MIDI controls
-UNICODE_ENABLE = no         # Unicode
-BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = yes           # Audio output on port C6
+MOUSEKEY_ENABLE = yes      # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes      # Audio control and System control(+450)
+CONSOLE_ENABLE = yes       # Console for debug(+400)
+COMMAND_ENABLE = yes       # Commands for debug and configuration
+NKRO_ENABLE = no           # USB Nkey Rollover
+RGBLIGHT_ENABLE = yes      # Enable keyboard underlight functionality (+4870)
+BACKLIGHT_ENABLE = yes     # Enable keyboard backlight functionality by default
+MIDI_ENABLE = no           # MIDI controls
+UNICODE_ENABLE = no        # Unicode
+BLUETOOTH_ENABLE = no      # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = yes         # Audio output on port C6

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini