~ruther/qmk_firmware

410686dc03e242a8e9a1a7043dabc68f8ab0287e — rooski15 3 years ago e13bb58
[Keyboard] Add blockboy/ac980mini keyboard (#16839)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
A keyboards/blockboy/ac980mini/ac980mini.c => keyboards/blockboy/ac980mini/ac980mini.c +54 -0
@@ 0,0 1,54 @@
/* Copyright 2022 rooski15
 *
 * 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 "ac980mini.h"

#ifdef RGB_MATRIX_ENABLE
// LED location configuration
led_config_t g_led_config = { {
	
	{  63,     64,     65,     66,     67,     68,     69,     70,     71,     72,     73,     74,     75,         76,    77,     78,     79,        80 },   
	{  46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     56,     57,     58,         59,    60,     61,     62,    NO_LED },   
	{  29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     NO_LED,     41,    42,     43,     44,        45 },   
	{  13,     14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     NO_LED, 24,         25,    26,     27,     28,    NO_LED },   
	{  0,      1,      2,  NO_LED, NO_LED,      3, NO_LED, NO_LED, NO_LED,      4,      5,      6,      7,          8,     9,     10,     11,        12 }
	
},{
		
	// Physical X,Y coordinates of each LED, starting with LED 0 above.	
	{ 1 , 64 }, { 16 , 64 }, { 31 , 64 },                            { 75 , 64 },                                         { 123 , 64 }, { 132 , 64 }, { 144 , 64 }, { 159 , 64 }, { 171 , 64 }, { 183 , 64 },   { 198 , 64 }, { 210 , 64 }, { 224 , 64 },
	{ 7 , 48 }, { 27 , 48 }, { 39 , 48 }, { 51 , 48 }, {  63 , 48 }, { 75 , 48 }, { 87 , 48 }, { 99 , 48 }, { 111 , 48 }, { 123 , 48 }, { 135 , 48 }, { 151 , 48 },               { 171 , 48 },   { 186 , 48 }, { 198 , 48 }, { 210 , 48 },	
	{ 4 , 36 }, { 20 , 36 }, { 32 , 36 }, { 44 , 36 }, {  56 , 36 }, { 68 , 36 }, { 80 , 36 }, { 92 , 36 }, { 104 , 36 }, { 116 , 36 }, { 128 , 36 }, { 140 , 36 }, { 160 , 36 },                 { 186 , 36 }, { 198 , 36 }, { 210 , 36 }, { 224 , 36 },
	{ 3 , 16 }, { 18 , 16 }, { 30 , 16 }, { 42 , 16 }, {  54 , 16 }, { 66 , 16 }, { 78 , 16 }, { 90 , 16 }, { 102 , 16 }, { 114 , 16 }, { 126 , 16 }, { 138 , 16 }, { 150 , 16 }, { 165 , 16 },   { 186 , 16 }, { 198 , 16 }, { 210 , 16 },
	{ 0 ,  0 }, { 12 ,  0 }, { 24 ,  0 }, { 36 ,  0 }, {  48 ,  0 }, { 60 ,  0 }, { 72 ,  0 }, { 84 ,  0 }, {  96 ,  0 }, { 108 ,  0 }, { 120 ,  0 }, { 132 ,  0 }, { 144 ,  0 }, { 162 ,  0 },   { 186 ,  0 }, { 198 ,  0 }, { 210 ,  0 }, { 224 ,  0 },

},{
	// "Flag Assignment" of each key
	// 4 = Alpha
	// 1 = Mod
	// See https://docs.qmk.fm/#/feature_rgb_matrix?id=flags
	// No Caps / Num indicators
	1,1,1,    1,      1,1,1, 1,1,1,  4,4,1,
	1,4,4,4,4,4,4,4,4,4,4,1,   1,  4,4,4,
	1,4,4,4,4,4,4,4,4,4,4,4,1,     4,4,4,1,
	1,4,4,4,4,4,4,4,4,4,4,4,4,4,   4,4,4,
	1,4,4,4,4,4,4,4,4,4,4,4,4,1,   1,1,1,1

} };
/*

*/
#endif
\ No newline at end of file

A keyboards/blockboy/ac980mini/ac980mini.h => keyboards/blockboy/ac980mini/ac980mini.h +35 -0
@@ 0,0 1,35 @@
/* Copyright 2022 rooski15
 *
 * 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 ___ KC_NO

#define LAYOUT( \
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,       K0E, K0F, K0G, K0H, \
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,       K1E, K1F, K1G,      \
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,    K2D,         K2E, K2F, K2G, K2H, \
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A,    K3C,       K3D,   K3E, K3F, K3G,      \
    K40, K41, K42,           K45,                K49, K4A, K4B,     K4C, K4D, K4E,   K4F, K4G, K4H  \
) { \
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, ___ }, \
    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E, K2F, K2G, K2H }, \
    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, ___, K3C, K3D, K3E, K3F, K3G, ___ }, \
    { K40, K41, K42, ___, ___, K45, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
}

A keyboards/blockboy/ac980mini/config.h => keyboards/blockboy/ac980mini/config.h +94 -0
@@ 0,0 1,94 @@
// Copyright 2022 rooski15 (@rooski15)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once
#include "config_common.h"

// RGB configuration
#define RGB_DI_PIN B7
// The number of LEDs connected
#define DRIVER_LED_TOTAL  81
//#ifdef RGB_DI_PIN
#    define RGBLED_NUM 81

#ifdef RGB_MATRIX_ENABLE
//#   define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
// #   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 RGB_MATRIX_FRAMEBUFFER_EFFECTS
// #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. 
#    define RGB_MATRIX_HUE_STEP 8
#    define RGB_MATRIX_SAT_STEP 8
#    define RGB_MATRIX_VAL_STEP 8
#    define RGB_MATRIX_SPD_STEP 10

/* Enable the animations you want/need.  You may need to enable only a small number of these because       *
 * they take up a lot of space.  Enable and confirm that you can still successfully compile your firmware. */
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
#    define ENABLE_RGB_MATRIX_ALPHAS_MODS
#    define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#    define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#    define ENABLE_RGB_MATRIX_BREATHING
#    define ENABLE_RGB_MATRIX_BAND_SAT
#    define ENABLE_RGB_MATRIX_BAND_VAL
#    define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#    define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#    define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#    define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#    define ENABLE_RGB_MATRIX_CYCLE_ALL
#    define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#    define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#    define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#    define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#    define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#    define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#    define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#    define ENABLE_RGB_MATRIX_DUAL_BEACON
#    define ENABLE_RGB_MATRIX_RAINBOW_BEACON
#    define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#    define ENABLE_RGB_MATRIX_RAINDROPS
#    define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#    define ENABLE_RGB_MATRIX_HUE_BREATHING
#    define ENABLE_RGB_MATRIX_HUE_PENDULUM
#    define ENABLE_RGB_MATRIX_HUE_WAVE
#    define ENABLE_RGB_MATRIX_PIXEL_RAIN
#    define ENABLE_RGB_MATRIX_PIXEL_FLOW
#    define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
#    define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#    define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#    define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#    define ENABLE_RGB_MATRIX_SPLASH
#    define ENABLE_RGB_MATRIX_MULTISPLASH
#    define ENABLE_RGB_MATRIX_SOLID_SPLASH
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

/*
 * Feature disable options
 *  These options are also useful to firmware size reduction.
 */

/* disable debug print */
//#define NO_DEBUG

/* disable print */
//#define NO_PRINT

/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

A keyboards/blockboy/ac980mini/info.json => keyboards/blockboy/ac980mini/info.json +109 -0
@@ 0,0 1,109 @@
{
    "manufacturer": "blockboy",
    "keyboard_name": "AC980Mini",
    "maintainer": "rooski15",
    "bootloader": "atmel-dfu",
    "diode_direction": "COL2ROW",
    "matrix_pins": {
        "cols": ["D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3"],
        "rows": ["D0", "D1", "D2", "D3", "D5"]
    },
    "processor": "atmega32u4",
    "url": "",
    "usb": {
        "device_version": "1.0.0",
        "pid": "0x6060",
        "vid": "0xFEED"
    },
    "layouts": {
        "LAYOUT_all": {
            "layout": [
                { "matrix": [0, 0], "x": 0, "y": 0 },
                { "matrix": [0, 1], "x": 1, "y": 0 },
                { "matrix": [0, 2], "x": 2, "y": 0 },
                { "matrix": [0, 3], "x": 3, "y": 0 },
                { "matrix": [0, 4], "x": 4, "y": 0 },
                { "matrix": [0, 5], "x": 5, "y": 0 },
                { "matrix": [0, 6], "x": 6, "y": 0 },
                { "matrix": [0, 7], "x": 7, "y": 0 },
                { "matrix": [0, 8], "x": 8, "y": 0 },
                { "matrix": [0, 9], "x": 9, "y": 0 },
                { "matrix": [0, 10], "x": 10, "y": 0 },
                { "matrix": [0, 11], "x": 11, "y": 0 },
                { "matrix": [0, 12], "x": 12, "y": 0 },
                { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 },
                { "matrix": [0, 14], "x": 15.5, "y": 0 },
                { "matrix": [0, 15], "x": 16.5, "y": 0 },
                { "matrix": [0, 16], "x": 17.5, "y": 0 },
                { "matrix": [0, 17], "x": 18.5, "y": 0 },
				
                { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
                { "matrix": [1, 1], "x": 1.5, "y": 1 },
                { "matrix": [1, 2], "x": 2.5, "y": 1 },
                { "matrix": [1, 3], "x": 3.5, "y": 1 },
                { "matrix": [1, 4], "x": 4.5, "y": 1 },
                { "matrix": [1, 5], "x": 5.5, "y": 1 },
                { "matrix": [1, 6], "x": 6.5, "y": 1 },
                { "matrix": [1, 7], "x": 7.5, "y": 1 },
                { "matrix": [1, 8], "x": 8.5, "y": 1 },
                { "matrix": [1, 9], "x": 9.5, "y": 1 },
                { "matrix": [1, 10], "x": 10.5, "y": 1 },
                { "matrix": [1, 11], "x": 11.5, "y": 1 },
                { "matrix": [1, 12], "x": 12.5, "y": 1 },
                { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
                { "matrix": [1, 14], "x": 15.5, "y": 1 },
                { "matrix": [1, 15], "x": 16.5, "y": 1 },
                { "matrix": [1, 16], "x": 17.5, "y": 1 },
				
                { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
                { "matrix": [2, 1], "x": 1.75, "y": 2 },
                { "matrix": [2, 2], "x": 2.75, "y": 2 },
                { "matrix": [2, 3], "x": 3.75, "y": 2 },
                { "matrix": [2, 4], "x": 4.75, "y": 2 },
                { "matrix": [2, 5], "x": 5.75, "y": 2 },
                { "matrix": [2, 6], "x": 6.75, "y": 2 },
                { "matrix": [2, 7], "x": 7.75, "y": 2 },
                { "matrix": [2, 8], "x": 8.75, "y": 2 },
                { "matrix": [2, 9], "x": 9.75, "y": 2 },
                { "matrix": [2, 10], "x": 10.75, "y": 2 },
                { "matrix": [2, 11], "x": 11.75, "y": 2 },
                { "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
                { "matrix": [2, 14], "x": 15.5, "y": 2 },
                { "matrix": [2, 15], "x": 16.5, "y": 2 },
                { "matrix": [2, 16], "x": 17.5, "y": 2 },
				{ "h": 2, "matrix": [2, 17], "x": 18.5, "y": 1 },
				
                { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
                { "matrix": [3, 1], "x": 2.25, "y": 3 },
                { "matrix": [3, 2], "x": 3.25, "y": 3 },
                { "matrix": [3, 3], "x": 4.25, "y": 3 },
                { "matrix": [3, 4], "x": 5.25, "y": 3 },
                { "matrix": [3, 5], "x": 6.25, "y": 3 },
                { "matrix": [3, 6], "x": 7.25, "y": 3 },
                { "matrix": [3, 7], "x": 8.25, "y": 3 },
                { "matrix": [3, 8], "x": 9.25, "y": 3 },
                { "matrix": [3, 9], "x": 10.25, "y": 3 },
                { "matrix": [3, 10], "x": 11.25, "y": 3 },
                { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 },
                { "matrix": [3, 13], "x": 14.25, "y": 3.25 },
                { "matrix": [3, 14], "x": 15.5, "y": 3 },
                { "matrix": [3, 15], "x": 16.5, "y": 3 },
                { "matrix": [3, 16], "x": 17.5, "y": 3 },
				
                { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
                { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
                { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
                { "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4 },
                { "matrix": [4, 9], "x": 10, "y": 4 },
                { "matrix": [4, 10], "x": 11, "y": 4 },
                { "matrix": [4, 11], "x": 12, "y": 4 },
                { "matrix": [4, 12], "x": 13.25, "y": 4.25 },
                { "matrix": [4, 13], "x": 14.25, "y": 4.25 },
                { "matrix": [4, 14], "x": 15.25, "y": 4.25 },
                { "matrix": [4, 15], "x": 16.5, "y": 4 },
                { "matrix": [4, 16], "x": 17.5, "y": 4 },
				{ "h": 2, "matrix": [4, 17], "x": 18.5, "y": 3 },
            ]
        }
    }
}
\ No newline at end of file

A keyboards/blockboy/ac980mini/keymaps/default/keymap.c => keyboards/blockboy/ac980mini/keymaps/default/keymap.c +74 -0
@@ 0,0 1,74 @@
/* Copyright 2021 QMK
 *
 * 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] = {
    /*
     * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐    ┌───┬───┬───┬───┐
     * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│    │Num│ / │ * │ - │
     * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤    ├───┼───┼───┼───┤
     * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │    │ 7 │ 8 │ 9 │   │
     * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤    ├───┼───┼───┤ + │
     * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │  Enter │    │ 4 │ 5 │ 6 │   │
     * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘    ├───┼───┼───┼───┤
     * │ Shift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │  ┌───┐ │ 1 │ 2 │ 3 │   │
     * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘  │ ↑ │ └───┼───┼───┤Ent│
     * │Ctrl│GUI │Alt │         Space          │Alt│GUI│Ctl│  ┌───┼───┼───┐ │ 0 │ . │   │
     * └────┴────┴────┴────────────────────────┴───┴───┴───┘  │ ← │ ↓ │ → │ └───┴───┴───┘
	 *                                                        └───┴───┴───┘
     */
    [0] = LAYOUT_all(
        QK_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,             KC_NUM,  KC_PSLS, KC_PAST, KC_PMNS,
        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_P7,   KC_P8,   KC_P9,   
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,      KC_ENT,                  KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,      KC_RSFT,             KC_UP,       KC_P1,   KC_P2,   KC_P3,
        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, KC_RGUI, MO(1),         KC_LEFT, KC_DOWN, KC_RGHT,       KC_P0,   KC_PDOT, KC_PENT
    ),
	// RGB Control
	[1] = LAYOUT_all(
        _______,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10,  KC_F11,  KC_F12, _______,             RGB_TOG, RGB_SPI, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            RGB_VAI,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, MO(2),   _______,       RGB_MOD, RGB_HUI, RGB_SAI,       _______, _______, _______
    ),
	[2] = LAYOUT_all(
          RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            _______,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, _______, _______,       _______, _______, _______,       _______, _______, _______
    ),
	[3] = LAYOUT_all(
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            _______,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, _______, _______,       _______, _______, _______,       _______, _______, _______ 
    )
};


/*
	[x] = LAYOUT_all(
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            _______,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, _______, _______,       _______, _______, _______,       _______, _______, _______ 
    )
*/
\ No newline at end of file

A keyboards/blockboy/ac980mini/keymaps/via/keymap.c => keyboards/blockboy/ac980mini/keymaps/via/keymap.c +74 -0
@@ 0,0 1,74 @@
/* Copyright 2021 QMK
 *
 * 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] = {
    /*
     * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐    ┌───┬───┬───┬───┐
     * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│    │Num│ / │ * │ - │
     * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤    ├───┼───┼───┼───┤
     * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │    │ 7 │ 8 │ 9 │   │
     * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤    ├───┼───┼───┤ + │
     * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │  Enter │    │ 4 │ 5 │ 6 │   │
     * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘    ├───┼───┼───┼───┤
     * │ Shift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │  ┌───┐ │ 1 │ 2 │ 3 │   │
     * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘  │ ↑ │ └───┼───┼───┤Ent│
     * │Ctrl│GUI │Alt │         Space          │Alt│GUI│Ctl│  ┌───┼───┼───┐ │ 0 │ . │   │
     * └────┴────┴────┴────────────────────────┴───┴───┴───┘  │ ← │ ↓ │ → │ └───┴───┴───┘
	 *                                                        └───┴───┴───┘
     */
    [0] = LAYOUT_all(
        QK_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,             KC_NUM,  KC_PSLS, KC_PAST, KC_PMNS,
        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_P7,   KC_P8,   KC_P9,   
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,      KC_ENT,                  KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,      KC_RSFT,             KC_UP,       KC_P1,   KC_P2,   KC_P3,
        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, KC_RGUI, MO(1),         KC_LEFT, KC_DOWN, KC_RGHT,       KC_P0,   KC_PDOT, KC_PENT
    ),
	// RGB Control
	[1] = LAYOUT_all(
        _______,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10,  KC_F11,  KC_F12, _______,             RGB_TOG, RGB_SPI, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            RGB_VAI,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, MO(2),   _______,       RGB_MOD, RGB_HUI, RGB_SAI,       _______, _______, _______
    ),
	[2] = LAYOUT_all(
          RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            _______,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, _______, _______,       _______, _______, _______,       _______, _______, _______
    ),
	[3] = LAYOUT_all(
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            _______,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, _______, _______,       _______, _______, _______,       _______, _______, _______ 
    )
};


/*
	[x] = LAYOUT_all(
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,                  _______, _______, _______, _______, 
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______,            _______,       _______, _______, _______,
        _______, _______, _______,                   _______,                            _______, _______, _______,       _______, _______, _______,       _______, _______, _______ 
    )
*/

A keyboards/blockboy/ac980mini/keymaps/via/rules.mk => keyboards/blockboy/ac980mini/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes

A keyboards/blockboy/ac980mini/readme.md => keyboards/blockboy/ac980mini/readme.md +29 -0
@@ 0,0 1,29 @@
# blockboy/ac980mini

![AC980mini](https://i.imgur.com/1ZAROm2h.png)
![AC980mini kle](https://imgur.com/prgMVo2h.jpg)


An F-Row-Less 1800 project with fixed layout and lots of RGB.

* Keyboard Maintainer: [rooski15](https://github.com/rooski15)
* Hardware Supported: AC980mini
* Hardware Availability: [Aliexpress - Block Boy AC980mini](https://www.aliexpress.com/item/1005003787162850.html)

Make example for this keyboard (after setting up your build environment):

    make blockboy/ac980mini:default

Flashing example for this keyboard:

    make blockboy/ac980mini: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).

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

A keyboards/blockboy/ac980mini/rules.mk => keyboards/blockboy/ac980mini/rules.mk +22 -0
@@ 0,0 1,22 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = atmel-dfu

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
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
NKRO_ENABLE = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output

RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
LTO_ENABLE = yes