~ruther/qmk_firmware

86d59f1034785b9cd8cc2bfcce7016cd97d041e9 — noroadsleft 6 years ago c427023
[Keyboard] KBD75 refactor (#6755)

* convert codebase to #pragma once

* fix file includes

- quantum.h is included at keyboard level, redundant at revision level
- keyboard-level path is accessible at revision level, remove relative pathing

* duplicate common layout macros from rev1 to rev2

Add the layout macros supported by both rev1 and rev2 to rev2.h directly, which exposes these layouts to QMK Configurator.

* enable community layout support (75_ansi, 75_iso)

* add LAYOUT_75_iso layout data

It needs its own tree because its keys are in a different order from LAYOUT_iso_1u even though the physical layout is the same.

* minimize rules.mk files (use QMK defaults)

* use atmel-dfu bootloader rule

* fix typo on rev1 info.json
M keyboards/kbdfans/kbd75/config.h => keyboards/kbdfans/kbd75/config.h +1 -4
@@ 1,5 1,4 @@
#ifndef CONFIG_H
#define CONFIG_H
#pragma once

#include "config_common.h"



@@ 46,5 45,3 @@
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif

#endif

M keyboards/kbdfans/kbd75/kbd75.h => keyboards/kbdfans/kbd75/kbd75.h +2 -6
@@ 2,12 2,8 @@

#include "quantum.h"

#ifdef KEYBOARD_kbdfans_kbd75_rev1
#if defined(KEYBOARD_kbdfans_kbd75_rev1)
    #include "rev1.h"
#endif

#ifdef KEYBOARD_kbdfans_kbd75_rev2
    #include "../rev1/rev1.h"
#elif defined(KEYBOARD_kbdfans_kbd75_rev2)
    #include "rev2.h"
#endif


M keyboards/kbdfans/kbd75/rev1/info.json => keyboards/kbdfans/kbd75/rev1/info.json +90 -0
@@ 28,6 28,96 @@
    "LAYOUT_iso": {
      "key_count": 84,
      "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"~", "x":12.75, "y":3}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"AltGr", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
    },

    "LAYOUT_75_iso": {
      "layout": [
        {"label":"Esc", "x":0, "y":0},
        {"label":"F1", "x":1, "y":0},
        {"label":"F2", "x":2, "y":0},
        {"label":"F3", "x":3, "y":0},
        {"label":"F4", "x":4, "y":0},
        {"label":"F5", "x":5, "y":0},
        {"label":"F6", "x":6, "y":0},
        {"label":"F7", "x":7, "y":0},
        {"label":"F8", "x":8, "y":0},
        {"label":"F9", "x":9, "y":0},
        {"label":"F10", "x":10, "y":0},
        {"label":"F11", "x":11, "y":0},
        {"label":"F12", "x":12, "y":0},
        {"label":"PrtSc", "x":13, "y":0},
        {"label":"Scroll Lock", "x":14, "y":0},
        {"label":"Pause", "x":15, "y":0},
        {"label":"`", "x":0, "y":1},
        {"label":"1", "x":1, "y":1},
        {"label":"2", "x":2, "y":1},
        {"label":"3", "x":3, "y":1},
        {"label":"4", "x":4, "y":1},
        {"label":"5", "x":5, "y":1},
        {"label":"6", "x":6, "y":1},
        {"label":"7", "x":7, "y":1},
        {"label":"8", "x":8, "y":1},
        {"label":"9", "x":9, "y":1},
        {"label":"0", "x":10, "y":1},
        {"label":"-", "x":11, "y":1},
        {"label":"=", "x":12, "y":1},
        {"label":"Backspace", "x":13, "y":1, "w":2},
        {"label":"Home", "x":15, "y":1},
        {"label":"Tab", "x":0, "y":2, "w":1.5},
        {"label":"Q", "x":1.5, "y":2},
        {"label":"W", "x":2.5, "y":2},
        {"label":"E", "x":3.5, "y":2},
        {"label":"R", "x":4.5, "y":2},
        {"label":"T", "x":5.5, "y":2},
        {"label":"Y", "x":6.5, "y":2},
        {"label":"U", "x":7.5, "y":2},
        {"label":"I", "x":8.5, "y":2},
        {"label":"O", "x":9.5, "y":2},
        {"label":"P", "x":10.5, "y":2},
        {"label":"[", "x":11.5, "y":2},
        {"label":"]", "x":12.5, "y":2},
        {"label":"PgUp", "x":15, "y":2},
        {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
        {"label":"A", "x":1.75, "y":3},
        {"label":"S", "x":2.75, "y":3},
        {"label":"D", "x":3.75, "y":3},
        {"label":"F", "x":4.75, "y":3},
        {"label":"G", "x":5.75, "y":3},
        {"label":"H", "x":6.75, "y":3},
        {"label":"J", "x":7.75, "y":3},
        {"label":"K", "x":8.75, "y":3},
        {"label":"L", "x":9.75, "y":3},
        {"label":";", "x":10.75, "y":3},
        {"label":"'", "x":11.75, "y":3},
        {"label":"ISO #", "x":12.75, "y":3},
        {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2},
        {"label":"PgDn", "x":15, "y":3},
        {"label":"Shift", "x":0, "y":4, "w":1.25},
        {"label":"ISO \\", "x":1.25, "y":4},
        {"label":"Z", "x":2.25, "y":4},
        {"label":"X", "x":3.25, "y":4},
        {"label":"C", "x":4.25, "y":4},
        {"label":"V", "x":5.25, "y":4},
        {"label":"B", "x":6.25, "y":4},
        {"label":"N", "x":7.25, "y":4},
        {"label":"M", "x":8.25, "y":4},
        {"label":",", "x":9.25, "y":4},
        {"label":".", "x":10.25, "y":4},
        {"label":"/", "x":11.25, "y":4},
        {"label":"Shift", "x":12.25, "y":4, "w":1.75},
        {"label":"Up", "x":14, "y":4},
        {"label":"End", "x":15, "y":4},
        {"label":"Ctrl", "x":0, "y":5, "w":1.25},
        {"label":"GUI", "x":1.25, "y":5, "w":1.25},
        {"label":"Alt", "x":2.5, "y":5, "w":1.25},
        {"label":"Space", "x":3.75, "y":5, "w":6.25},
        {"label":"AltGr", "x":10, "y":5},
        {"label":"Fn", "x":11, "y":5},
        {"label":"Ctrl", "x":12, "y":5},
        {"label":"Left", "x":13, "y":5},
        {"label":"Down", "x":14, "y":5},
        {"label":"Right", "x":15, "y":5}
      ]
    }
  }
}

M keyboards/kbdfans/kbd75/rev1/rev1.h => keyboards/kbdfans/kbd75/rev1/rev1.h +24 -10
@@ 1,8 1,6 @@
#ifndef REV1_H
#define REV1_H
#pragma once

#include "quantum.h"
#include "../kbd75.h"
#include "kbd75.h"

/* LAYOUT
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐


@@ 20,7 18,7 @@
 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
 */

// LAYOUT for all possible switch positions on a KBD75
// LAYOUT for all possible switch positions on a KBD75 rev 1
#define LAYOUT( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \


@@ 44,7 42,7 @@
 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
 */

 #define LAYOUT_ansi_1u( \
#define LAYOUT_ansi_1u( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \


@@ 53,13 51,15 @@
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO,  K114,  K115 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 }, \
	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
	{ K400,  KC_NO, K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  K511,  K512,  K513,  K514,  K515 }  \
}

#define LAYOUT_75_ansi LAYOUT_ansi_1u

#define LAYOUT_iso_1u( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \


@@ 76,6 76,22 @@
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  K511,  K512,  K513,  K514,  K515 }  \
}

#define LAYOUT_75_iso( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K313, K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
) LAYOUT_iso_1u( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214,       K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
)


/* normal bottom row ──────────────────────── ↓ ─── ↓
 * ┌────┬────┬────┬────────────────────────┬─────┬─────┬───┬───┬───┐


@@ 83,7 99,7 @@
 * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
 */

 #define LAYOUT_ansi( \
#define LAYOUT_ansi( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \


@@ 114,5 130,3 @@
	{ K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  KC_NO, K512,  K513,  K514,  K515 }  \
}

#endif

M keyboards/kbdfans/kbd75/rev1/rules.mk => keyboards/kbdfans/kbd75/rev1/rules.mk +5 -39
@@ 1,44 1,8 @@
# MCU name
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*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Bootloader selection
BOOTLOADER = atmel-dfu


# Build Options


@@ 53,4 17,6 @@ SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
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 keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
\ No newline at end of file
RGBLIGHT_ENABLE = yes

LAYOUTS = 75_ansi 75_iso

M keyboards/kbdfans/kbd75/rev2/info.json => keyboards/kbdfans/kbd75/rev2/info.json +90 -0
@@ 32,6 32,96 @@

    "LAYOUT_numpad": {
      "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"label":"Home", "x":13, "y":1}, {"label":"_", "x":14, "y":1}, {"label":"+", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"|", "x":11.5, "y":2, "w":1.5}, {"label":"Page Up", "x":13, "y":2}, {"label":"{", "x":14, "y":2}, {"label":"}", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":"Enter", "x":10.75, "y":3, "w":2.25}, {"label":"Page Down", "x":13, "y":3}, {"label":":", "x":14, "y":3}, {"label":"\"", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"?", "x":9.25, "y":4}, {"label":"Shift", "x":10.25, "y":4, "w":1.75}, {"label":"\u2191", "x":12, "y":4}, {"label":"End", "x":13, "y":4}, {"label":"<", "x":14, "y":4}, {"label":">", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":1.25}, {"x":5, "y":5, "w":2.25}, {"x":7.25, "y":5, "w":1.75}, {"x":9, "y":5}, {"label":"Alt", "x":10, "y":5}, {"label":"\u2190", "x":11, "y":5}, {"label":"\u2193", "x":12, "y":5}, {"label":"\u2192", "x":13, "y":5}, {"label":"Fn", "x":14, "y":5}, {"label":"Ctrl", "x":15, "y":5}]
    },

    "LAYOUT_75_iso": {
      "layout": [
        {"label":"Esc", "x":0, "y":0},
        {"label":"F1", "x":1, "y":0},
        {"label":"F2", "x":2, "y":0},
        {"label":"F3", "x":3, "y":0},
        {"label":"F4", "x":4, "y":0},
        {"label":"F5", "x":5, "y":0},
        {"label":"F6", "x":6, "y":0},
        {"label":"F7", "x":7, "y":0},
        {"label":"F8", "x":8, "y":0},
        {"label":"F9", "x":9, "y":0},
        {"label":"F10", "x":10, "y":0},
        {"label":"F11", "x":11, "y":0},
        {"label":"F12", "x":12, "y":0},
        {"label":"PrtSc", "x":13, "y":0},
        {"label":"Scroll Lock", "x":14, "y":0},
        {"label":"Pause", "x":15, "y":0},
        {"label":"`", "x":0, "y":1},
        {"label":"1", "x":1, "y":1},
        {"label":"2", "x":2, "y":1},
        {"label":"3", "x":3, "y":1},
        {"label":"4", "x":4, "y":1},
        {"label":"5", "x":5, "y":1},
        {"label":"6", "x":6, "y":1},
        {"label":"7", "x":7, "y":1},
        {"label":"8", "x":8, "y":1},
        {"label":"9", "x":9, "y":1},
        {"label":"0", "x":10, "y":1},
        {"label":"-", "x":11, "y":1},
        {"label":"=", "x":12, "y":1},
        {"label":"Backspace", "x":13, "y":1, "w":2},
        {"label":"Home", "x":15, "y":1},
        {"label":"Tab", "x":0, "y":2, "w":1.5},
        {"label":"Q", "x":1.5, "y":2},
        {"label":"W", "x":2.5, "y":2},
        {"label":"E", "x":3.5, "y":2},
        {"label":"R", "x":4.5, "y":2},
        {"label":"T", "x":5.5, "y":2},
        {"label":"Y", "x":6.5, "y":2},
        {"label":"U", "x":7.5, "y":2},
        {"label":"I", "x":8.5, "y":2},
        {"label":"O", "x":9.5, "y":2},
        {"label":"P", "x":10.5, "y":2},
        {"label":"[", "x":11.5, "y":2},
        {"label":"]", "x":12.5, "y":2},
        {"label":"PgUp", "x":15, "y":2},
        {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
        {"label":"A", "x":1.75, "y":3},
        {"label":"S", "x":2.75, "y":3},
        {"label":"D", "x":3.75, "y":3},
        {"label":"F", "x":4.75, "y":3},
        {"label":"G", "x":5.75, "y":3},
        {"label":"H", "x":6.75, "y":3},
        {"label":"J", "x":7.75, "y":3},
        {"label":"K", "x":8.75, "y":3},
        {"label":"L", "x":9.75, "y":3},
        {"label":";", "x":10.75, "y":3},
        {"label":"'", "x":11.75, "y":3},
        {"label":"ISO #", "x":12.75, "y":3},
        {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2},
        {"label":"PgDn", "x":15, "y":3},
        {"label":"Shift", "x":0, "y":4, "w":1.25},
        {"label":"ISO \\", "x":1.25, "y":4},
        {"label":"Z", "x":2.25, "y":4},
        {"label":"X", "x":3.25, "y":4},
        {"label":"C", "x":4.25, "y":4},
        {"label":"V", "x":5.25, "y":4},
        {"label":"B", "x":6.25, "y":4},
        {"label":"N", "x":7.25, "y":4},
        {"label":"M", "x":8.25, "y":4},
        {"label":",", "x":9.25, "y":4},
        {"label":".", "x":10.25, "y":4},
        {"label":"/", "x":11.25, "y":4},
        {"label":"Shift", "x":12.25, "y":4, "w":1.75},
        {"label":"Up", "x":14, "y":4},
        {"label":"End", "x":15, "y":4},
        {"label":"Ctrl", "x":0, "y":5, "w":1.25},
        {"label":"GUI", "x":1.25, "y":5, "w":1.25},
        {"label":"Alt", "x":2.5, "y":5, "w":1.25},
        {"label":"Space", "x":3.75, "y":5, "w":6.25},
        {"label":"AltGr", "x":10, "y":5},
        {"label":"Fn", "x":11, "y":5},
        {"label":"Ctrl", "x":12, "y":5},
        {"label":"Left", "x":13, "y":5},
        {"label":"Down", "x":14, "y":5},
        {"label":"Right", "x":15, "y":5}
      ]
    }
  }
}

M keyboards/kbdfans/kbd75/rev2/rev2.h => keyboards/kbdfans/kbd75/rev2/rev2.h +130 -6
@@ 1,9 1,135 @@
#ifndef REV2_H
#define REV2_H
#pragma once

#include "quantum.h"
#include "../kbd75.h"
#include "kbd75.h"

/* LAYOUT
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
 * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
 * │1.5U │   │   │   │   │   │   │   │   │   │   │   │   │1.5U │   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
 * │1.75U │   │   │   │   │   │   │   │   │   │   │   │2.25U   │   │
 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
 * │2.25U   │   │   │   │   │   │   │   │   │   │   │1.75U │   │   │
 * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
 * │1.25│1.25│1.25│2.25U   │1.25│2.75U     │   │   │   │   │   │   │
 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
 */

// LAYOUT for all possible switch positions on a KBD75 rev 1
#define LAYOUT( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503, K504,       K506,       K508,       K510, K511, K512, K513, K514, K515  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
	{ K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  K504,  KC_NO, K506,  KC_NO, K508,  KC_NO, K510,  K511,  K512,  K513,  K514,  K515 }  \
}


/* 1U bottom row ─────────────────────────── ↓ ─ ↓ ─ ↓
 * ┌────┬────┬────┬────────────────────────┬───┬───┬───┬───┬───┬───┐
 * │1.25│1.25│1.25│6.25U                   │1U │1U │1U │1U │1U │1U │
 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
 */

#define LAYOUT_ansi_1u( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
	K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 }, \
	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
	{ K400,  KC_NO, K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  K511,  K512,  K513,  K514,  K515 }  \
}

#define LAYOUT_75_ansi LAYOUT_ansi_1u

#define LAYOUT_iso_1u( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214,       K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 }, \
	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
	{ K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  K511,  K512,  K513,  K514,  K515 }  \
}

#define LAYOUT_75_iso( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K313, K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
) LAYOUT_iso_1u( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214,       K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510, K511, K512, K513, K514, K515  \
)


/* normal bottom row ──────────────────────── ↓ ─── ↓
 * ┌────┬────┬────┬────────────────────────┬─────┬─────┬───┬───┬───┐
 * │1.25│1.25│1.25│6.25U                   │1.5U │1.5U │1U │1U │1U │
 * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
 */

#define LAYOUT_ansi( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
	K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510,       K512, K513, K514, K515  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 }, \
	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
	{ K400,  KC_NO, K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  KC_NO, K512,  K513,  K514,  K515 }  \
}

#define LAYOUT_iso( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214,       K315, \
	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
	K500, K501,       K503,             K506,                   K510,       K512, K513, K514, K515  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 }, \
	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
	{ K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  KC_NO, K512,  K513,  K514,  K515 }  \
}

// LAYOUT for all possible switch positions on a KBD75 rev 2
#define LAYOUT_numpad( \


@@ 21,5 147,3 @@
	{ K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
	{ K500,  K501,  KC_NO, K503,  K504,  KC_NO, K506,  KC_NO, K508,  K509,  K510,  K511,  K512,  K513,  K514,  K515 }  \
}

#endif

M keyboards/kbdfans/kbd75/rev2/rules.mk => keyboards/kbdfans/kbd75/rev2/rules.mk +5 -39
@@ 1,44 1,8 @@
# MCU name
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*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Bootloader selection
BOOTLOADER = atmel-dfu


# Build Options


@@ 53,4 17,6 @@ SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
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 keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
\ No newline at end of file
RGBLIGHT_ENABLE = yes

LAYOUTS = 75_ansi 75_iso