Merge remote-tracking branch 'origin/master' into develop

Conflicts:
	keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c
This commit is contained in:
Zach White 2021-08-09 08:34:14 -07:00
commit 12681bacc4
35 changed files with 3370 additions and 18 deletions

View File

@ -0,0 +1,45 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xCA75
#define PRODUCT_ID 0x4014
#define DEVICE_VER 0x0001
#define MANUFACTURER Salmon Cat Studio
#define PRODUCT Aozora
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 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
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { F6, F5, F4, F1, F0 }
#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D4, D6, D7, B4, B5, B6, C6, C7, F7 }
#define DIODE_DIRECTION COL2ROW

View File

@ -0,0 +1,17 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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/>.
*/
#include "hotswap.h"

View File

@ -0,0 +1,34 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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/>.
*/
#pragma once
#include "quantum.h"
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, K3E, K3F, \
K40, K41, K42, K44, K48, K49, K4A, K4D, K4E, K4F \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D, K3E, K3F }, \
{ K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, K48, K49, K4A, KC_NO, KC_NO, K4D, K4E, K4F }, \
}

View File

@ -0,0 +1,83 @@
{
"keyboard_name": "Aozora",
"url": "https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21",
"maintainer": "Food",
"width": 17.25,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"K00 (F6,B0)", "x":0, "y":0},
{"label":"K01 (F6,B1)", "x":1, "y":0},
{"label":"K02 (F6,B2)", "x":2, "y":0},
{"label":"K03 (F6,B3)", "x":3, "y":0},
{"label":"K04 (F6,B7)", "x":4, "y":0},
{"label":"K05 (F6,D0)", "x":5, "y":0},
{"label":"K06 (F6,D1)", "x":6, "y":0},
{"label":"K07 (F6,D4)", "x":7, "y":0},
{"label":"K08 (F6,D6)", "x":8, "y":0},
{"label":"K09 (F6,D7)", "x":9, "y":0},
{"label":"K0A (F6,B4)", "x":10, "y":0},
{"label":"K0B (F6,B5)", "x":11, "y":0},
{"label":"K0C (F6,B6)", "x":12, "y":0},
{"label":"K0D (F6,C6)", "x":13, "y":0, "w":2},
{"label":"K0E (F6,C7)", "x":15.25, "y":0},
{"label":"K0F (F6,F7)", "x":16.25, "y":0},
{"label":"K10 (F5,B0)", "x":0, "y":1, "w":1.5},
{"label":"K11 (F5,B1)", "x":1.5, "y":1},
{"label":"K12 (F5,B2)", "x":2.5, "y":1},
{"label":"K13 (F5,B3)", "x":3.5, "y":1},
{"label":"K14 (F5,B7)", "x":4.5, "y":1},
{"label":"K15 (F5,D0)", "x":5.5, "y":1},
{"label":"K16 (F5,D1)", "x":6.5, "y":1},
{"label":"K17 (F5,D4)", "x":7.5, "y":1},
{"label":"K18 (F5,D6)", "x":8.5, "y":1},
{"label":"K19 (F5,D7)", "x":9.5, "y":1},
{"label":"K1A (F5,B4)", "x":10.5, "y":1},
{"label":"K1B (F5,B5)", "x":11.5, "y":1},
{"label":"K1C (F5,B6)", "x":12.5, "y":1},
{"label":"K1D (F5,C6)", "x":13.5, "y":1, "w":1.5},
{"label":"K1E (F5,C7)", "x":15.25, "y":1},
{"label":"K1F (F5,F7)", "x":16.25, "y":1},
{"label":"K20 (F4,B0)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F4,B1)", "x":1.75, "y":2},
{"label":"K22 (F4,B2)", "x":2.75, "y":2},
{"label":"K23 (F4,B3)", "x":3.75, "y":2},
{"label":"K24 (F4,B7)", "x":4.75, "y":2},
{"label":"K25 (F4,D0)", "x":5.75, "y":2},
{"label":"K26 (F4,D1)", "x":6.75, "y":2},
{"label":"K27 (F4,D4)", "x":7.75, "y":2},
{"label":"K28 (F4,D6)", "x":8.75, "y":2},
{"label":"K29 (F4,D7)", "x":9.75, "y":2},
{"label":"K2A (F4,B4)", "x":10.75, "y":2},
{"label":"K2B (F4,B5)", "x":11.75, "y":2},
{"label":"K2D (F4,C6)", "x":12.75, "y":2, "w":2.25},
{"label":"K30 (F1,B0)", "x":0, "y":3, "w":2.25},
{"label":"K31 (F1,B1)", "x":2.25, "y":3},
{"label":"K32 (F1,B2)", "x":3.25, "y":3},
{"label":"K33 (F1,B3)", "x":4.25, "y":3},
{"label":"K34 (F1,B7)", "x":5.25, "y":3},
{"label":"K35 (F1,D0)", "x":6.25, "y":3},
{"label":"K36 (F1,D1)", "x":7.25, "y":3},
{"label":"K37 (F1,D4)", "x":8.25, "y":3},
{"label":"K38 (F1,D6)", "x":9.25, "y":3},
{"label":"K39 (F1,D7)", "x":10.25, "y":3},
{"label":"K3A (F1,B4)", "x":11.25, "y":3},
{"label":"K3D (F1,C6)", "x":12.25, "y":3, "w":2.75},
{"label":"K3E (F1,C7)", "x":15.25, "y":3},
{"label":"K3F (F1,F7)", "x":16.25, "y":3},
{"label":"K40 (F0,B0)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F0,B1)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F0,B2)", "x":2.5, "y":4, "w":1.25},
{"label":"K44 (F0,B7)", "x":3.75, "y":4, "w":6.25},
{"label":"K48 (F0,D6)", "x":10, "y":4, "w":1.25},
{"label":"K49 (F0,D7)", "x":11.25, "y":4, "w":1.25},
{"label":"K4A (F0,B4)", "x":12.5, "y":4, "w":1.25},
{"label":"K4D (F0,C6)", "x":14.25, "y":4},
{"label":"K4E (F0,C7)", "x":15.25, "y":4},
{"label":"K4F (F0,F7)", "x":16.25, "y":4}
]
}
}
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
}

View File

@ -0,0 +1,35 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, 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_PSCR, 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_DEL, 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, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
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_F13, KC_F14, KC_F15,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};

View File

@ -0,0 +1,17 @@
# Aozora
A 65%-Style 6-Key keyboard featuring a cloud-shaped badge.
![SCS Aozora](https://i.imgur.com/dL5nonc.jpg)
* Keyboard Maintainer: [Food](https://github.com/Phooood)
* Hardware Supported: [Aozora](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21)
* Hardware Availability: [salmoncat.studio](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) | GB is over.
Make example for this keyboard (after setting up your build environment):
make aozora/hotswap:default
To reset, press the button on the back of the PCB.
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).

View File

@ -0,0 +1,23 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # 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 = 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
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

View File

@ -1,3 +1,19 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#include "mkiirgb.h"
#ifdef RGB_MATRIX_ENABLE
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {

View File

@ -1,16 +1,26 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#pragma once
#define XXX KC_NO
#if defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v1)
#include "v1.h"
#elif defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v2)
#include "v2.h"
#elif defined(KEYBOARD_kbdfans_kbd67_mkiirgb_v3)
#include "v3.h"
#endif
#include "quantum.h"
#define LAYOUT_65_ansi_blocker( \
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, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
) { \
{ 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, K1D, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
}

View File

@ -3,17 +3,19 @@
A customizable 65% RGB keyboard.
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
* Hardware Supported: KBD67 Mk.II RGB V1 and V2
* Hardware Supported: KBD67 Mk.II RGB V1, V2, and V3
* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
There are two versions of the KBD67 MKII RGB. Please use the appropriate firmware for your board.
There are three versions of the KBD67 MKII RGB. Please use the appropriate firmware for your board.
* V1: STM32F303 (Arm), takes `.bin` files
* V2: ATmega32U4 (AVR), takes `.hex` files
* V3: Atmega32U4 (AVR), takes `.bin` files
Make example for this keyboard (after setting up your build environment):
make kbdfans/kbd67/mkiirgb/v1:default # Arm (STM32F303)
make kbdfans/kbd67/mkiirgb/v2:default # AVR (ATmega32U4)
make kbdfans/kbd67/mkiirgb/v3:default # AVR (ATmega32U4)
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).

View File

@ -0,0 +1,124 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#include "v1.h"
#ifdef RGB_MATRIX_ENABLE
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
{0, C8_8, C7_8, C6_8}, // LA17
{0, C9_8, C7_7, C6_7}, // LA16
{0, C9_7, C8_7, C6_6}, // LA15
{0, C9_6, C8_6, C7_6}, // LA14
{0, C9_5, C8_5, C7_5}, // LA13
{0, C9_4, C8_4, C7_4}, // LA12
{0, C9_3, C8_3, C7_3}, // LA11
{0, C9_2, C8_2, C7_2}, // LA10
{0, C9_1, C8_1, C7_1}, // LA9
{0, C2_9, C3_9, C4_9}, // LB0
{0, C1_9, C3_10, C4_10}, // LB1
{0, C1_10, C2_10, C4_11}, // LB2
{0, C1_11, C2_11, C3_11}, // LB3
{0, C1_13, C2_13, C3_13}, // LB5
{0, C1_14, C2_14, C3_14}, // LB6
{0, C1_7, C2_7, C3_7}, // LA7
{0, C1_6, C2_6, C3_6}, // LA6
{0, C1_5, C2_5, C3_5}, // LA5
{0, C1_4, C2_4, C3_4}, // LA4
{0, C1_3, C2_3, C3_3}, // LA3
{0, C1_2, C2_2, C4_3}, // LA2
{0, C1_1, C3_2, C4_2}, // LA1
{0, C2_1, C3_1, C4_1}, // LA0
{0, C9_9, C8_9, C7_9}, // LB9
{0, C9_10, C8_10, C7_10}, // LB10
{0, C9_11, C8_11, C7_11}, // LB11
{0, C9_12, C8_12, C7_12}, // LB12
{0, C9_13, C8_13, C7_13}, // LB13
{0, C9_14, C8_14, C7_14}, // LB14
{0, C1_15, C2_15, C3_15}, // LB7
{0, C1_8, C2_8, C3_8}, // LA8
{1, C9_6, C8_6, C7_6}, // LC14
{1, C9_5, C8_5, C7_5}, // LC13
{1, C9_4, C8_4, C7_4}, // LC12
{1, C9_3, C8_3, C7_3}, // LC11
{1, C9_2, C8_2, C7_2}, // LC10
{1, C9_1, C8_1, C7_1}, // LC9
{1, C2_9, C3_9, C4_9}, // LD0
{1, C1_9, C3_10, C4_10}, // LD1
{1, C1_10, C2_10, C4_11}, // LD2
{1, C1_11, C2_11, C3_11}, // LD3
{1, C1_12, C2_12, C3_12}, // LD4
{1, C1_13, C2_13, C3_13}, // LD5
{0, C1_16, C2_16, C3_16}, // LB8
{1, C9_8, C7_7, C6_7}, // LC16
{1, C1_5, C2_5, C3_5}, // LC5
{1, C1_4, C2_4, C3_4}, // LC4
{1, C1_3, C2_3, C3_3}, // LC3
{1, C1_2, C2_2, C4_3}, // LC2
{1, C1_1, C3_2, C4_2}, // LC1
{1, C9_9, C8_9, C7_9}, // LD9
{1, C9_10, C8_10, C7_10}, // LD10
{1, C9_11, C8_11, C7_11}, // LD11
{1, C9_12, C8_12, C7_12}, // LD12
{1, C1_14, C2_14, C3_14}, // LD6
{1, C1_15, C2_15, C3_15}, // LD7
{1, C1_16, C2_16, C3_16}, // LD8
{0, C9_15, C8_15, C6_14}, // LB15
{1, C8_8, C7_8, C6_8}, // LC17
{1, C1_8, C2_8, C3_8}, // LC8
{1, C1_7, C2_7, C3_7}, // LC7
{1, C2_1, C3_1, C4_1}, // LC0
{1, C9_14, C8_14, C7_14}, // LD14
{1, C9_15, C8_15, C6_14}, // LD15
{1, C8_16, C7_16, C6_16}, // LD17
{0, C8_16, C7_16, C6_16}, // LB17
{0, C9_16, C7_15, C6_15}, // LB16
};
led_config_t g_led_config = { {
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
}, {
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
{2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
}, {
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 1, 1, 4, 1, 1, 1, 1, 1
} };
__attribute__ ((weak))
void rgb_matrix_indicators_user(void)
{
if (host_keyboard_led_state().caps_lock)
{
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
}
}
#endif

View File

@ -0,0 +1,32 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#pragma once
#define XXX KC_NO
#include "quantum.h"
#define LAYOUT_65_ansi_blocker( \
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, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
) { \
{ 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, K1D, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
}

View File

@ -0,0 +1,124 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#include "v2.h"
#ifdef RGB_MATRIX_ENABLE
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
{0, C8_8, C7_8, C6_8}, // LA17
{0, C9_8, C7_7, C6_7}, // LA16
{0, C9_7, C8_7, C6_6}, // LA15
{0, C9_6, C8_6, C7_6}, // LA14
{0, C9_5, C8_5, C7_5}, // LA13
{0, C9_4, C8_4, C7_4}, // LA12
{0, C9_3, C8_3, C7_3}, // LA11
{0, C9_2, C8_2, C7_2}, // LA10
{0, C9_1, C8_1, C7_1}, // LA9
{0, C2_9, C3_9, C4_9}, // LB0
{0, C1_9, C3_10, C4_10}, // LB1
{0, C1_10, C2_10, C4_11}, // LB2
{0, C1_11, C2_11, C3_11}, // LB3
{0, C1_13, C2_13, C3_13}, // LB5
{0, C1_14, C2_14, C3_14}, // LB6
{0, C1_7, C2_7, C3_7}, // LA7
{0, C1_6, C2_6, C3_6}, // LA6
{0, C1_5, C2_5, C3_5}, // LA5
{0, C1_4, C2_4, C3_4}, // LA4
{0, C1_3, C2_3, C3_3}, // LA3
{0, C1_2, C2_2, C4_3}, // LA2
{0, C1_1, C3_2, C4_2}, // LA1
{0, C2_1, C3_1, C4_1}, // LA0
{0, C9_9, C8_9, C7_9}, // LB9
{0, C9_10, C8_10, C7_10}, // LB10
{0, C9_11, C8_11, C7_11}, // LB11
{0, C9_12, C8_12, C7_12}, // LB12
{0, C9_13, C8_13, C7_13}, // LB13
{0, C9_14, C8_14, C7_14}, // LB14
{0, C1_15, C2_15, C3_15}, // LB7
{0, C1_8, C2_8, C3_8}, // LA8
{1, C9_6, C8_6, C7_6}, // LC14
{1, C9_5, C8_5, C7_5}, // LC13
{1, C9_4, C8_4, C7_4}, // LC12
{1, C9_3, C8_3, C7_3}, // LC11
{1, C9_2, C8_2, C7_2}, // LC10
{1, C9_1, C8_1, C7_1}, // LC9
{1, C2_9, C3_9, C4_9}, // LD0
{1, C1_9, C3_10, C4_10}, // LD1
{1, C1_10, C2_10, C4_11}, // LD2
{1, C1_11, C2_11, C3_11}, // LD3
{1, C1_12, C2_12, C3_12}, // LD4
{1, C1_13, C2_13, C3_13}, // LD5
{0, C1_16, C2_16, C3_16}, // LB8
{1, C9_8, C7_7, C6_7}, // LC16
{1, C1_5, C2_5, C3_5}, // LC5
{1, C1_4, C2_4, C3_4}, // LC4
{1, C1_3, C2_3, C3_3}, // LC3
{1, C1_2, C2_2, C4_3}, // LC2
{1, C1_1, C3_2, C4_2}, // LC1
{1, C9_9, C8_9, C7_9}, // LD9
{1, C9_10, C8_10, C7_10}, // LD10
{1, C9_11, C8_11, C7_11}, // LD11
{1, C9_12, C8_12, C7_12}, // LD12
{1, C1_14, C2_14, C3_14}, // LD6
{1, C1_15, C2_15, C3_15}, // LD7
{1, C1_16, C2_16, C3_16}, // LD8
{0, C9_15, C8_15, C6_14}, // LB15
{1, C8_8, C7_8, C6_8}, // LC17
{1, C1_8, C2_8, C3_8}, // LC8
{1, C1_7, C2_7, C3_7}, // LC7
{1, C2_1, C3_1, C4_1}, // LC0
{1, C9_14, C8_14, C7_14}, // LD14
{1, C9_15, C8_15, C6_14}, // LD15
{1, C8_16, C7_16, C6_16}, // LD17
{0, C8_16, C7_16, C6_16}, // LB17
{0, C9_16, C7_15, C6_15}, // LB16
};
led_config_t g_led_config = { {
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
}, {
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
{2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
}, {
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 1, 1, 4, 1, 1, 1, 1, 1
} };
__attribute__ ((weak))
void rgb_matrix_indicators_user(void)
{
if (host_keyboard_led_state().caps_lock)
{
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
}
}
#endif

View File

@ -0,0 +1,32 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#pragma once
#define XXX KC_NO
#include "quantum.h"
#define LAYOUT_65_ansi_blocker( \
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, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
) { \
{ 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, K1D, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
}

View File

@ -0,0 +1,75 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4B42 // KB
#define PRODUCT_ID 0x1226
#define DEVICE_VER 0x0002
#define MANUFACTURER KBDfans
#define PRODUCT kbd67mkiirgb v3
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
#define MATRIX_ROW_PINS { F0, F1, F4, E6, C6 }
#define MATRIX_COL_PINS { F7, F6, F5, C7, B0, B1, B2, B3, B4, D7, D6, D4, D5, D3, D2}
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define USB_SUSPEND_WAKEUP_DELAY 5000
#define RGB_MATRIX_KEYPRESSES
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define DISABLE_RGB_MATRIX_BAND_SAT
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#define DISABLE_RGB_MATRIX_SPLASH
#define DISABLE_RGB_MATRIX_MULTISPLASH
#define DISABLE_RGB_MATRIX_SOLID_SPLASH
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
#define DISABLE_RGB_MATRIX_RAINDROPS
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 0b0110000
#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons.
#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 67
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
#define DRIVER_INDICATOR_LED_TOTAL 0
#endif

View File

@ -0,0 +1,13 @@
# KBD67 Mk.II RGB V3 (Hotswap)
A hotswap 65% keyboard with USB C, inswitch RGB, and ESD protection.
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
* Hardware Supported: KBD67 Mk.II RGB V3
* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
Make example for this keyboard (after setting up your build environment):
make kbdfans/kbd67/mkiirgb/v3:default
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).

View File

@ -0,0 +1,28 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = lufa-ms
BOOTLOADER_SIZE = 6144
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # 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 = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
RGB_MATRIX_ENABLE = yes # Use RGB matrix
RGB_MATRIX_DRIVER = IS31FL3741
LTO_ENABLE = yes
LAYOUTS = 65_ansi_blocker

View File

@ -0,0 +1,126 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#include "v3.h"
#ifdef RGB_MATRIX_ENABLE
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
{0, CS21_SW1, CS20_SW1, CS19_SW1},
{0, CS21_SW2, CS20_SW2, CS19_SW2},
{0, CS21_SW3, CS20_SW3, CS19_SW3},
{0, CS21_SW4, CS20_SW4, CS19_SW4},
{0, CS21_SW5, CS20_SW5, CS19_SW5},
{0, CS21_SW6, CS20_SW6, CS19_SW6},
{0, CS21_SW7, CS20_SW7, CS19_SW7},
{0, CS21_SW8, CS20_SW8, CS19_SW8},
{0, CS24_SW1, CS23_SW1, CS22_SW1},
{0, CS24_SW2, CS23_SW2, CS22_SW2},
{0, CS24_SW3, CS23_SW3, CS22_SW3},
{0, CS24_SW4, CS23_SW4, CS22_SW4},
{0, CS24_SW5, CS23_SW5, CS22_SW5},
{0, CS24_SW6, CS23_SW6, CS22_SW6},
{0, CS24_SW7, CS23_SW7, CS22_SW7},
{0, CS15_SW1, CS14_SW1, CS13_SW1},
{0, CS15_SW2, CS14_SW2, CS13_SW2},
{0, CS15_SW3, CS14_SW3, CS13_SW3},
{0, CS15_SW4, CS14_SW4, CS13_SW4},
{0, CS15_SW5, CS14_SW5, CS13_SW5},
{0, CS15_SW6, CS14_SW6, CS13_SW6},
{0, CS15_SW7, CS14_SW7, CS13_SW7},
{0, CS15_SW8, CS14_SW8, CS13_SW8},
{0, CS30_SW1, CS29_SW1, CS28_SW1},
{0, CS30_SW2, CS29_SW2, CS28_SW2},
{0, CS30_SW3, CS29_SW3, CS28_SW3},
{0, CS30_SW4, CS29_SW4, CS28_SW4},
{0, CS30_SW5, CS29_SW5, CS28_SW5},
{0, CS30_SW6, CS29_SW6, CS28_SW6},
{0, CS30_SW7, CS29_SW7, CS28_SW7},
{0, CS12_SW1, CS11_SW1, CS10_SW1},
{0, CS12_SW2, CS11_SW2, CS10_SW2},
{0, CS12_SW3, CS11_SW3, CS10_SW3},
{0, CS12_SW4, CS11_SW4, CS10_SW4},
{0, CS12_SW5, CS11_SW5, CS10_SW5},
{0, CS12_SW6, CS11_SW6, CS10_SW6},
{0, CS12_SW7, CS11_SW7, CS10_SW7},
{0, CS12_SW8, CS11_SW8, CS10_SW8},
{0, CS33_SW1, CS32_SW1, CS31_SW1},
{0, CS33_SW2, CS32_SW2, CS31_SW2},
{0, CS33_SW3, CS32_SW3, CS31_SW3},
{0, CS33_SW4, CS32_SW4, CS31_SW4},
{0, CS33_SW5, CS32_SW5, CS31_SW5},
{0, CS33_SW7, CS32_SW7, CS31_SW7},
{0, CS9_SW1, CS8_SW1, CS7_SW1},
{0, CS9_SW2, CS8_SW2, CS7_SW2},
{0, CS9_SW3, CS8_SW3, CS7_SW3},
{0, CS9_SW4, CS8_SW4, CS7_SW4},
{0, CS9_SW5, CS8_SW5, CS7_SW5},
{0, CS9_SW6, CS8_SW6, CS7_SW6},
{0, CS9_SW7, CS8_SW7, CS7_SW7},
{0, CS9_SW8, CS8_SW8, CS7_SW8},
{0, CS36_SW1, CS35_SW1, CS34_SW1},
{0, CS36_SW2, CS35_SW2, CS34_SW2},
{0, CS36_SW3, CS35_SW3, CS34_SW3},
{0, CS36_SW4, CS35_SW4, CS34_SW4},
{0, CS36_SW5, CS35_SW5, CS34_SW5},
{0, CS36_SW7, CS35_SW7, CS34_SW7},
{0, CS3_SW1, CS2_SW1, CS1_SW1},
{0, CS3_SW2, CS2_SW2, CS1_SW2},
{0, CS3_SW3, CS2_SW3, CS1_SW3},
{0, CS3_SW6, CS2_SW6, CS1_SW6},
// {0, CS39_SW1, CS38_SW1, CS37_SW1},
{0, CS39_SW2, CS38_SW2, CS37_SW2},
{0, CS39_SW3, CS38_SW3, CS37_SW3},
{0, CS39_SW4, CS38_SW4, CS37_SW4},
{0, CS39_SW5, CS38_SW5, CS37_SW5},
{0, CS39_SW7, CS38_SW7, CS37_SW7}
};
led_config_t g_led_config = { {
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 },
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
}, {
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
}, {
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
1, 1, 1, 4, 1, 1, 1, 1, 1
} };
__attribute__ ((weak))
void rgb_matrix_indicators_user(void)
{
if (host_keyboard_led_state().caps_lock)
{
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
}
}
#endif

View File

@ -0,0 +1,33 @@
/* Copyright 2021 DZTECH <moyi4681@live.cn>
*
* 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/>.
*/
#pragma once
#define XXX KC_NO
#include "quantum.h"
#define LAYOUT_65_ansi_blocker( \
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, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K42, K45, K48, K4A, K4B, K4D, K4E \
) { \
{ 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, K1D, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, K4D, K4E } \
}

View File

@ -0,0 +1,146 @@
/* Copyright 2021 Chris Laprade
*
* 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/>.
*/
#pragma once
/*
* USB/POWER OPTIONS
*/
// #define USB_MAX_POWER_CONSUMPTION 500
#define USB_SUSPEND_WAKEUP_DELAY 200
#define USB_POLLING_INTERVAL_MS 1
/*
* MUSIC/AUDIO options
*/
#ifdef AUDIO_ENABLE
# define AUDIO_CLICKY
# define MUSIC_MAP
# define AUDIO_VOICES
# define AUDIO_VOICE_DEFAULT something
# define AUDIO_DAC_SAMPLE_MAX 2732U
# define DEFAULT_LAYER_SONGS \
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
/* Plays during keyboard startup */
# define STARTUP_SONG SONG(NO_SOUND)
#endif
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
#define MIDI_ADVANCED
/*
* ENCODER options
*/
#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 4 // Define number of stages between detents on encoders
#define ENCODERS_PAD_A \
{ B12 }
#define ENCODERS_PAD_B \
{ B13 }
/*
* RGB options
*/
#ifdef RGBLIGHT_ENABLE
# define RGBLIGHT_SLEEP // Allows rgb to sleep when the host/keyboard does
# define RGBLIGHT_ANIMATIONS // Enable using rgb animations
# define RGBLIGHT_LAYERS // Enable indicating layers using layered rgb assignments
# define RGBLIGHT_LAYER_BLINK // Allows rgb layers to be blinked (activate for a set amount of time)
# define RGBLIGHT_MAX_LAYERS 32 // Overides the default (8) max number of rgb layers
# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Allows rgb layers to work even when rgb is toggled off
#endif
/*
* UNICODE options
*/
#define UNICODE_SELECTED_MODES UC_WINC, UC_LNX, UC_MAC // Define the methods used for in/outputting unicode
/*
* TAP-DANCE options
*/
#define TAPPING_TERM 250 // Default time allowed before resetting a Tap-Dance combo
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
#define TAPPING_TOGGLE 3
/*
* LEADER-KEY options
*/ // Used for on-board chording
#define LEADER_PER_KEY_TIMING
#define LEADER_TIMEOUT 500
/*
* COMBO-KEY options
*/
#define COMBO_COUNT 2
#define COMBO_TERM 300
/*
* MACRO per-key options
*/
#define RETRO_TAPPING_PER_KEY // Control Retro-Tap individually by key
#define TAPPING_FORCE_HOLD_PER_KEY // Control Force-Hold individually by key
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY // Control Mod-Tap-Interrupt individually by key
#define PERMISSIVE_HOLD_PER_KEY // Control Permissive-Hold individually by key
#define MK_KINETIC_SPEED // Use kinetic acceleration for mouse-keys
// Fall-back defines to prevent compile errors if user_song_list is missing
#ifndef ZELDA_PUZZLE2
# define ZELDA_PUZZLE2 Q__NOTE(_G5)
#endif
#ifndef SONIC_RING2
# define SONIC_RING2 E__NOTE(_E6)
#endif
#ifndef ZELDA_CHEST2
# define ZELDA_CHEST2 Q__NOTE(_G5)
#endif
#ifndef COIN_SOUND2
# define COIN_SOUND2 E__NOTE(_A5)
#endif
#ifndef ONE_UP_SOUND2
# define ONE_UP_SOUND2 Q__NOTE(_E6)
#endif
#ifndef IMPERIAL_MARCH
# define IMPERIAL_MARCH HD_NOTE(_A4)
#endif
#ifndef MARIO_GAMEOVER
# define MARIO_GAMEOVER HD_NOTE(_C5)
#endif
#ifndef LEAD_START_SOUND
# define LEAD_START_SOUND E__NOTE(_C5)
#endif
#ifndef LEAD_SUCCESS_SOUND
# define LEAD_SUCCESS_SOUND E__NOTE(_A5), HD_NOTE(_E6),
#endif
#ifndef LEAD_FAIL_SOUND
# define LEAD_FAIL_SOUND E__NOTE(_A5), HD_NOTE(_E4),
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,37 @@
![Layout Image](https://github.com/rootiest/rootiest.github.io/raw/main/img/rootiest-planck_legend.png)
# The Rootiest Planck Layout
This layout takes advantage of as many QMK features as possible for a huge complicated beast of a keyboard!
## Features include
- Encoder functions further extended by layers and modifiers
- Extensive use of the on-board speaker
- Extensive use of the backlight LEDs for startup animations, layer indicators, and bootloader/debug warnings, etc
- Many layers, both toggled and momentary.
- A toggled Numpad layer, with an emphasis on coding/accounting and with arrow keys on WASD
- A "Tabular" layer accessed by holding Tab with frequently used functions, including Alt+Tab via pressing Space
- A toggled Mouse-keys layer that allows full control of the mouse movement and buttons from the keyboard
- Use of Space-Cadet Shift/Ctrl keys on various layers
- Hold enter for Right-Shift
- Shift+BackSpace for Delete
- Grave-Esc in the top-left Esc key position
- Music, Terminal, MIDI, and RGB control on Functions layer
- QWERTY, COLEMAK, DVORAK, and PLOVER layers
- Special keys for common Ctrl+ combos like Ctrl+C, Ctrl+V, etc
- Special keys for Copy-Line, Cut-Line, Delete-Line, etc
- Special keys for Ctrl+Alt+Del, Alt+F4, etc
- Settings like rgb animation state and startup animation/sound are stored in the EEPROM to survive restart
- "Sticky keys" with audible indication allow most modifiers to be locked by pressing multiple times in quick succession
- Sticky-locking the Shift key toggles CapsLock instead of locking Shift
- Unicode characters and emoji can be sent via custom tap-dance keys
- Emoji and app-specific functions can be sent via leader-key chording
- VelociKey and word-per-minute tracking are also included
See the layout here: [Keyboard Layout](http://www.keyboard-layout-editor.com/#/gists/e48e19bc251a8d07ff8475fc1a16f43b)
To build and flash this keymap, use this command:
qmk flash -kb planck/rev6 -km rootiest

View File

@ -0,0 +1,26 @@
SRC += muse.c
ENCODER_ENABLE = yes # Enables basic encoder support
OLED_DRIVER_ENABLE = yes # Enables support for OLED displays
# UNICODE_ENABLE = yes # Allow inputting basic unicode characters
UNICODEMAP_ENABLE = yes # Enable use of Unicode mapping array
# UCIS_ENABLE = yes # Another method for generating Unicode characters via maps
TAP_DANCE_ENABLE = yes # Enable Tap-Dance
NKRO_ENABLE = yes # Enable N-Key rollover
MOUSEKEY_ENABLE = yes # Enable mouse emulation
EXTRAKEY_ENABLE = yes # Allows audio control and System control
RAW_ENABLE = yes # Enable bi-directional communication to host
CONSOLE_ENABLE = yes # Enable outputting debugging data/logs to terminal
WPM_ENABLE = yes # Enable on-board words-per-minute tracking
VELOCIKEY_ENABLE = yes # Enables dynamically changing rgb animation speed based on WPM
LEADER_ENABLE = yes # Enables Leader-Key
COMBO_ENABLE = yes # Enables combo keys
KEY_LOCK_ENABLE = yes # Enables using lock key to maintain holds
# LTO_ENABLE = yes # Does some optimisation to make firmware size smaller
# SWAP_HANDS_ENABLE = yes # Enables the swap hands function
# DEBOUNCE_TYPE = sym_eager_pk # Change debounce algorithm
# NOTE: The following requires a lot of memory to include
TERMINAL_ENABLE = yes # Enables a command-line-like interface designed to communicate through a text editor with keystrokes
# NOTE: The following is not yet available in main qmk branch
KEY_OVERRIDE_ENABLE = yes # Allows overiding modifier combos (change Shift+1 without affecting 1 or Shift's normal operation)

View File

@ -0,0 +1,75 @@
/*
Copyright 2021 Franciso Escobar
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/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4D4B // MechanicKeys
#define PRODUCT_ID 0x3C4D
#define DEVICE_VER 0x0001
#define MANUFACTURER MechanicKeys
#define PRODUCT Undead 60-M
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 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
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B7, B5, B4, D7, D6, B3, B2 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* RGB Underglow */
#define RGB_DI_PIN F7
#ifdef RGB_DI_PIN
#define RGBLED_NUM 16
#define RGBLIGHT_SLEEP
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#endif
/* Rotary encoder */
#define ENCODERS_PAD_A { F6 }
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 4

View File

@ -0,0 +1,18 @@
{
"keyboard_name": "Undead-60M",
"url": "",
"maintainer": "qmk",
"width": 16,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [
{"label": "F1", "x": 0, "y": 0}, {"label": "F2", "x": 1, "y": 0}, {"label": "Esc", "x": 3.5, "y": 0}, {"label": "1", "x": 4.5, "y": 0}, {"label": "2", "x": 5.5, "y": 0}, {"label": "3", "x": 6.5, "y": 0}, {"label": "4", "x": 7.5, "y": 0}, {"label": "5", "x": 8.5, "y": 0}, {"label": "6", "x": 9.5, "y": 0}, {"label": "7", "x": 10.5, "y": 0}, {"label": "8", "x": 11.5, "y": 0}, {"label": "9", "x": 12.5, "y": 0}, {"label": "0", "x": 13.5, "y": 0}, {"label": "-", "x": 14.5, "y": 0}, {"label": "=", "x": 15.5, "y": 0}, {"label": "Backspace", "x": 16.5, "y": 0},
{"label": "F2", "x": 0, "y": 1}, {"label": "F3", "x": 1, "y": 1}, {"label": "Tab", "x": 3.5, "y": 1}, {"label": "Q", "x": 5, "y": 1}, {"label": "W", "x": 6, "y": 1}, {"label": "E", "x": 7, "y": 1}, {"label": "R", "x": 8, "y": 1}, {"label": "T", "x": 9, "y": 1}, {"label": "Y", "x": 10, "y": 1}, {"label": "U", "x": 11, "y": 1}, {"label": "I", "x": 12, "y": 1}, {"label": "O", "x": 13, "y": 1}, {"label": "P", "x": 14, "y": 1}, {"label": "[", "x": 15, "y": 1}, {"label": "]", "x": 16, "y": 1}, {"label": "|", "x": 17, "y": 1},
{"label": "F4", "x": 0, "y": 2}, {"label": "F5", "x": 1, "y": 2}, {"label": "Caps", "x": 3.5, "y": 2}, {"label": "A", "x": 5.25, "y": 2}, {"label": "S", "x": 6.25, "y": 2}, {"label": "D", "x": 7.25, "y": 2}, {"label": "F", "x": 8.25, "y": 2}, {"label": "G", "x": 9.25, "y": 2}, {"label": "H", "x": 10.25, "y": 2}, {"label": "J", "x": 11.25, "y": 2}, {"label": "K", "x": 12.25, "y": 2}, {"label": "L", "x": 13.25, "y": 2}, {"label": ";", "x": 14.25, "y": 2}, {"label": "'", "x": 15.25, "y": 2}, {"label": "Enter", "x": 16.25, "y": 2},
{"label": "F6", "x": 0, "y": 3}, {"label": "F7", "x": 1, "y": 3}, {"label": "Shift", "x": 3.5, "y": 3}, {"label": "Z", "x": 5.5, "y": 3}, {"label": "X", "x": 6.5, "y": 3}, {"label": "C", "x": 7.5, "y": 3}, {"label": "V", "x": 8.5, "y": 3}, {"label": "B", "x": 9.5, "y": 3}, {"label": "N", "x": 10.5, "y": 3}, {"label": "M", "x": 11.5, "y": 3}, {"label": ",", "x": 12.5, "y": 3}, {"label": ".", "x": 13.5, "y": 3}, {"label": "/", "x": 14.5, "y": 3}, {"label": "Shift", "x": 15.5, "y": 3},
{"label": "F1", "x": 0, "y": 4}, {"label": "F2", "x": 1, "y": 4}, {"label": "Ctrl", "x": 3.5, "y": 4}, {"label": "OS", "x": 4.75, "y": 4}, {"label": "Alt", "x": 6, "y": 4}, {"label": "Space", "x": 7.25, "y": 4}, {"label": "Alt", "x": 13.5, "y": 4}, {"label": "OS", "x": 14.75, "y": 4}, {"label": "Ctrl", "x": 16, "y": 4}, {"label": "Fn", "x": 17.25, "y": 4}
]
}
}
}

View File

@ -0,0 +1,51 @@
/* Copyright 2021 Francisco Escobar
*
* 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/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* 0: qwerty */
KC_MPLY, KC_P1, KC_ESC, 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_P2, KC_P3, 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_P4, KC_P5, 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_P6, KC_P7, 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_P8, KC_P9, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(1)
),
[1] = LAYOUT( /* 1: fn */
KC_TRNS, KC_TRNS, 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_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS
),
[2] = LAYOUT( /* 2: media */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS
),
[3] = LAYOUT( /*3: RGB */
RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};

View File

@ -0,0 +1,52 @@
/* Copyright 2021 Francisco Escobar
*
* 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/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* 0: qwerty */
KC_MPLY, KC_P1, KC_ESC, 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_P2, KC_P3, 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_P4, KC_P5, 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_P6, KC_P7, 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_P8, KC_P9, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(1)
),
[1] = LAYOUT( /* 1: fn */
KC_TRNS, KC_TRNS, 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_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS
),
[2] = LAYOUT( /* 2: media */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS
),
[3] = LAYOUT( /*3: RGB */
RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};

View File

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

View File

@ -0,0 +1,27 @@
# Undead 60M
![Undead 60M](https://i.imgur.com/0EWBzNth.jpeg)
![Undead 60M](https://i.imgur.com/m8z1kMVh.jpeg)
![Undead 60M](https://i.imgur.com/AZIfVzNh.jpeg)
A 60% PCB with some add-ons
- RGB Underglow
- Macro cluster
- Hotswap
- optional Knob
* Keyboard Maintainer: [jfescobar18](https://github.com/jfescobar18)
* Hardware Supported: Undead 60M PCB
* Hardware Availability: [MechanicKeys](https://www.facebook.com/MechanicKeys-104963764775280)
Make example for this keyboard (after setting up your build environment):
make undead60m/:default
Flashing example for this keyboard:
make undead60m:default:flash
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).

View File

@ -0,0 +1,25 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # 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
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
KEYBOARD_LOCK_ENABLE = yes
ENCODER_ENABLE = yes
LTO_ENABLE = yes

View File

@ -0,0 +1,60 @@
/* Copyright 2021 Francisco Escobar
*
* 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/>.
*/
#include "undead60m.h"
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
switch (get_highest_layer(layer_state)) {
case 0: /* Layer 1: Volume */
if (clockwise) {
tap_code(KC_VOLD);
} else {
tap_code(KC_VOLU);
}
break;
case 1: /* Layer 2: Scroll */
if (clockwise) {
tap_code(KC_WH_U);
} else {
tap_code(KC_WH_D);
}
break;
case 2: /* Layer 3: Change Track */
if (clockwise) {
tap_code(KC_MPRV);
} else {
tap_code(KC_MNXT);
}
break;
case 3: /* Layer 4: Brightness */
if (clockwise) {
tap_code(KC_BRID);
} else {
tap_code(KC_BRIU);
}
break;
default: /* Default: Volume */
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
break;
}
}
return true;
}

View File

@ -0,0 +1,34 @@
/* Copyright 2021 Francisco Escobar
*
* 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/>.
*/
#pragma once
#include "quantum.h"
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K43, K44, K48, K4C, K4D, K4E, K4F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, KC_NO }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \
{ K40, K41, K42, K43, K44, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, KC_NO, K4C, K4D, K4E, K4F } \
}

View File

@ -74,7 +74,7 @@ def info_json(keyboard):
except jsonschema.ValidationError as e:
json_path = '.'.join([str(p) for p in e.absolute_path])
cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message)
exit()
exit(1)
# Make sure we have at least one layout
if not info_data.get('layouts'):

View File

@ -17,9 +17,12 @@ def json_load(json_file):
try:
return hjson.load(json_file.open(encoding='utf-8'))
except json.decoder.JSONDecodeError as e:
except (json.decoder.JSONDecodeError, hjson.HjsonDecodeError) as e:
cli.log.error('Invalid JSON encountered attempting to load {fg_cyan}%s{fg_reset}:\n\t{fg_red}%s', json_file, e)
exit(1)
except Exception as e:
cli.log.error('Unknown error attempting to load {fg_cyan}%s{fg_reset}:\n\t{fg_red}%s', json_file, e)
exit(1)
def load_jsonschema(schema_name):