~ruther/qmk_firmware

5626a9282cfe28cd267c5351e68e15914a5578bb — DOIO2022 1 year, 9 months ago daea202
Add KB12 keyboard (#21605)

Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
A keyboards/doio/kb12/config.h => keyboards/doio/kb12/config.h +70 -0
@@ 0,0 1,70 @@
/* Copyright 2022 DOIO
 * Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
 *
 * 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

/* RGB Matrix config */
#define RGB_MATRIX_LED_COUNT 12
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS

/* RGB Matrix effect */
#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_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#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_FRACTAL
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
#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

A keyboards/doio/kb12/info.json => keyboards/doio/kb12/info.json +78 -0
@@ 0,0 1,78 @@
{
    "keyboard_name": "KB12-01",
    "manufacturer": "DOIO",
    "url": "",
    "maintainer": "DOIO2022",
    "usb": {
        "vid": "0xD010",
        "pid": "0x1201",
        "device_version": "0.0.1"
    },
    "rgb_matrix": {
        "driver": "ws2812"
        "layout": [
            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
            {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
            {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
            {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
            {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4},
            {"matrix": [1, 1], "x": 75, "y": 32, "flags": 4},
            {"matrix": [1, 2], "x": 150, "y": 32, "flags": 4},
            {"matrix": [1, 3], "x": 224, "y": 32, "flags": 4},
            {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4},
            {"matrix": [2, 1], "x": 75, "y": 64, "flags": 4},
            {"matrix": [2, 2], "x": 150, "y": 64, "flags": 4},
            {"matrix": [2, 3], "x": 224, "y": 64, "flags": 4}
        ],
        "max_brightness": 200
    },
    "matrix_pins": {
        "cols": ["B14", "B13", "B12", "B0", "A7"],
        "rows": ["B3", "B4", "B9"]
    },
    "diode_direction": "COL2ROW",
    "dynamic_keymap": {
        "layer_count": 6
    },
    "encoder": {
        "rotary": [
            {"pin_a": "B5", "pin_b": "B6"}
        ]
    },
    "ws2812": {
        "pin": "A10"
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "mousekey": true,
        "nkro": true,
        "rgb_matrix": true,
        "encoder": true
    },
    "layouts": {
        "LAYOUT": {
            "layout": [
                { "matrix": [0, 4], "x": 0, "y": 0 },
                { "matrix": [0, 0], "x": 3.25, "y": 0 },
                { "matrix": [0, 1], "x": 4.25, "y": 0 },
                { "matrix": [0, 2], "x": 5.25, "y": 0 },
                { "matrix": [0, 3], "x": 6.25, "y": 0 },

                { "matrix": [1, 0], "x": 7.75, "y": 0 },
                { "matrix": [1, 1], "x": 8.75, "y": 0 },
                { "matrix": [1, 2], "x": 9.75, "y": 0 },
                { "matrix": [1, 3], "x": 10.75, "y": 0 },

                { "matrix": [2, 0], "x": 12.25, "y": 0 },
                { "matrix": [2, 1], "x": 13.25, "y": 0 },
                { "matrix": [2, 2], "x": 14.25, "y": 0 },
                { "matrix": [2, 3], "x": 15.25, "y": 0 }
            ]
        }
    }
}

A keyboards/doio/kb12/keymaps/default/keymap.c => keyboards/doio/kb12/keymaps/default/keymap.c +55 -0
@@ 0,0 1,55 @@
/* Copyright 2022 DOIO
 * Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
 *
 * 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

enum layer_names {
    _LAY0,
    _LAY1,
    _LAY2,
    _LAY3,
    _LAY4,
    _LAY5
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_LAY0] = LAYOUT(
		TO(1), KC_F1,   KC_F2,   KC_F3,   KC_F4,      KC_F5,   KC_F6,   KC_F7,   KC_F8,      KC_F9,   KC_F10,  KC_F11,  KC_F12),
  [_LAY1] = LAYOUT(
		TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY2] = LAYOUT(
		TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY3] = LAYOUT(
		TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY4] = LAYOUT(
		TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY5] = LAYOUT(
		TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD,    RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD,    RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS)

};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
    [_LAY0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
    [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif

A keyboards/doio/kb12/keymaps/via/keymap.c => keyboards/doio/kb12/keymaps/via/keymap.c +55 -0
@@ 0,0 1,55 @@
/* Copyright 2022 DOIO
 * Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
 *
 * 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

enum layer_names {
    _LAY0,
    _LAY1,
    _LAY2,
    _LAY3,
    _LAY4,
    _LAY5
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_LAY0] = LAYOUT(
		TO(1), KC_F1,   KC_F2,   KC_F3,   KC_F4,      KC_F5,   KC_F6,   KC_F7,   KC_F8,      KC_F9,   KC_F10,  KC_F11,  KC_F12),
  [_LAY1] = LAYOUT(
		TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY2] = LAYOUT(
		TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY3] = LAYOUT(
		TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY4] = LAYOUT(
		TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
  [_LAY5] = LAYOUT(
		TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD,    RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD,    RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS)

};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
    [_LAY0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
    [_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
    [_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif

A keyboards/doio/kb12/keymaps/via/rules.mk => keyboards/doio/kb12/keymaps/via/rules.mk +2 -0
@@ 0,0 1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

A keyboards/doio/kb12/readme.md => keyboards/doio/kb12/readme.md +24 -0
@@ 0,0 1,24 @@
# doio/kb12

QMK for DOIO Knob 12% .

* Keyboard Maintainer: DOIO2022
* Hardware Supported: DOIO Knob 12%

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

    make doio/kb12:default

Flashing example for this keyboard:

    make doio/kb12: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
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

A keyboards/doio/kb12/rules.mk => keyboards/doio/kb12/rules.mk +1 -0
@@ 0,0 1,1 @@
# This file intentionally left blank

Do not follow this link