Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added my prototype keyboard K_Pro v1 TKL #23797

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
651 changes: 651 additions & 0 deletions keyboards/skdevices/adler/adler.c

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions keyboards/skdevices/adler/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Copyright 2024 ksmosna (@ksmosna)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

/*
* 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

// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 00 AD <-> GND
// 01 AD <-> SCL
// 10 AD <-> SDA
// 11 AD <-> VCC
// ADDR represents A1:A0 of the 7-bit address.
// The result is: 0b11101(ADDR)

#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define OLED_DISPLAY_128X64
6 changes: 6 additions & 0 deletions keyboards/skdevices/adler/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Copyright 2024 ksmosna (@ksmosna)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>
292 changes: 292 additions & 0 deletions keyboards/skdevices/adler/keyboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
{
"manufacturer": "SKDevices",
"keyboard_name": "Adler",
"maintainer": "Krzysztof Smosna",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true,
"oled": true
},
"build":{
"debounce_type": "asym_eager_defer_pk"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "C9", "C8", "C7", "C6", "B15", "B14", "B13", "B12", "B10", "B2", "B1", "B0", "C5", "C4", "A7"],
"rows": ["B5", "B4", "B3", "D2", "C12", "C11"]
Comment on lines +22 to +23
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has this been tested on hardware?

B2 is boot1 and using it can cause issues. IIRC, A10 can cause issues with getting into the stm32-dfu bootloader. A9 is vbus sense and has an internal pulldown, IIRC, so may have issues.

},
"processor": "STM32F411",
"url": "https://skdevices.pl",
"usb": {
"device_version": "1.0.0",
"pid": "0xA4CE",
"vid": "0x0483"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is STM's vendor ID, please use a different vendor ID.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I've contacted with STMicroelectronics and I can use that VID with that speciffic PID. This is reserved for that project . Here is reply from support

"" SKDevices“ company can use the original PID: 0xA4CE and VID: 0x0483 pending to be licensed by USB-IF of "STM32F411RET6" and solely for the purpose of Adler using STM32F411RET6 silicon USB device microcontrollers” This license is revocable and nontransferable and no other rights are granted except those expressly stated here.

Please note that They would only be able to test their products for USB-IF certification under our company name. All products will be listed under our company name ( STMicroelectronics) on the Integrators list if certified. They would not have rights to use the USB-IF logos on their products. If they intend to use the USB-IF logos they must obtain their own VID. The requirements to display the USB-IF’s trademarked and licensed USB logo are:

    1. The company must be a USB vendor (i.e. obtain a USB vendor ID). 

    2. The company must execute the USB-IF Trademark License Agreement. 

    3. The product bearing the logo must successfully pass USB-IF Compliance Testing and appear on the Integrators List under that company’s name. 

These requirements apply to manufacturers and resellers. "

},
"encoder": {
"rotary": [
{"pin_a": "B8", "pin_b": "B9", "resolution": 2}
]
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"flower_blooming": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true,
"starlight": true,
"starlight_dual_sat": true,
"starlight_dual_hue": true,
"riverflow": true
},
"default": {
"val": 150
},
"sleep": true,
"driver": "is31fl3733",
"layout": [
{"matrix": [0, 17], "x": 24, "y": 6, "flags": 1},
{"matrix": [0, 2], "x": 46, "y": 6, "flags": 4},
{"matrix": [0, 3], "x": 57, "y": 6, "flags": 4},
{"matrix": [0, 4], "x": 68, "y": 6, "flags": 4},
{"matrix": [0, 5], "x": 79, "y": 6, "flags": 4},
{"matrix": [0, 6], "x": 95, "y": 6, "flags": 4},
{"matrix": [0, 7], "x": 106, "y": 6, "flags": 4},
{"matrix": [0, 8], "x": 117, "y": 6, "flags": 4},
{"matrix": [0, 9], "x": 128, "y": 6, "flags": 4},
{"matrix": [0, 10], "x": 144, "y": 6, "flags": 4},
{"matrix": [0, 11], "x": 155, "y": 6, "flags": 4},
{"matrix": [0, 12], "x": 166, "y": 6, "flags": 4},
{"matrix": [0, 13], "x": 177, "y": 6, "flags": 4},

{"matrix": [1, 17], "x": 10, "y": 20, "flags": 4},
{"matrix": [1, 0], "x": 24, "y": 20, "flags": 1},
{"matrix": [1, 1], "x": 35, "y": 20, "flags": 4},
{"matrix": [1, 2], "x": 46, "y": 20, "flags": 4},
{"matrix": [1, 3], "x": 57, "y": 20, "flags": 4},
{"matrix": [1, 4], "x": 68, "y": 20, "flags": 4},
{"matrix": [1, 5], "x": 79, "y": 20, "flags": 4},
{"matrix": [1, 6], "x": 90, "y": 20, "flags": 4},
{"matrix": [1, 7], "x": 101, "y": 20, "flags": 4},
{"matrix": [1, 8], "x": 112, "y": 20, "flags": 4},
{"matrix": [1, 9], "x": 123, "y": 20, "flags": 4},
{"matrix": [1, 10], "x": 134, "y": 20, "flags": 4},
{"matrix": [1, 11], "x": 145, "y": 20, "flags": 4},
{"matrix": [1, 12], "x": 156, "y": 20, "flags": 4},
{"matrix": [1, 13], "x": 171, "y": 20, "flags": 4},
{"matrix": [1, 14], "x": 191, "y": 20, "flags": 4},
{"matrix": [1, 15], "x": 202, "y": 20, "flags": 4},
{"matrix": [1, 16], "x": 213, "y": 20, "flags": 4},

{"matrix": [2, 17], "x": 10, "y": 31, "flags": 4},
{"matrix": [2, 0], "x": 27, "y": 31, "flags": 1},
{"matrix": [2, 1], "x": 41, "y": 31, "flags": 4},
{"matrix": [2, 2], "x": 52, "y": 31, "flags": 4},
{"matrix": [2, 3], "x": 63, "y": 31, "flags": 4},
{"matrix": [2, 4], "x": 74, "y": 31, "flags": 1},
{"matrix": [2, 5], "x": 85, "y": 31, "flags": 4},
{"matrix": [2, 6], "x": 96, "y": 31, "flags": 4},
{"matrix": [2, 7], "x": 107, "y": 31, "flags": 4},
{"matrix": [2, 8], "x": 118, "y": 31, "flags": 4},
{"matrix": [2, 9], "x": 129, "y": 31, "flags": 4},
{"matrix": [2, 10], "x": 140, "y": 31, "flags": 1},
{"matrix": [2, 11], "x": 151, "y": 31, "flags": 4},
{"matrix": [2, 12], "x": 162, "y": 31, "flags": 4},
{"matrix": [2, 13], "x": 174, "y": 31, "flags": 4},
{"matrix": [2, 14], "x": 191, "y": 31, "flags": 4},
{"matrix": [2, 15], "x": 202, "y": 31, "flags": 4},
{"matrix": [2, 16], "x": 213, "y": 31, "flags": 1},

{"matrix": [3, 17], "x": 10, "y": 42, "flags": 4},
{"matrix": [3, 0], "x": 29, "y": 42, "flags": 1},
{"matrix": [3, 1], "x": 44, "y": 42, "flags": 4},
{"matrix": [3, 2], "x": 55, "y": 42, "flags": 4},
{"matrix": [3, 3], "x": 66, "y": 42, "flags": 4},
{"matrix": [3, 4], "x": 77, "y": 42, "flags": 4},
{"matrix": [3, 5], "x": 88, "y": 42, "flags": 4},
{"matrix": [3, 6], "x": 99, "y": 42, "flags": 4},
{"matrix": [3, 7], "x": 110, "y": 42, "flags": 4},
{"matrix": [3, 8], "x": 121, "y": 42, "flags": 4},
{"matrix": [3, 9], "x": 132, "y": 42, "flags": 4},
{"matrix": [3, 10], "x": 143, "y": 42, "flags": 4},
{"matrix": [3, 11], "x": 154, "y": 42, "flags": 4},
{"matrix": [3, 13], "x": 170, "y": 42, "flags": 4},
{"matrix": [3, 14], "x": 191, "y": 42, "flags": 4},
{"matrix": [3, 15], "x": 202, "y": 42, "flags": 4},
{"matrix": [3, 16], "x": 213, "y": 42, "flags": 4},

{"matrix": [4, 17], "x": 10, "y": 53, "flags": 4},
{"matrix": [4, 0], "x": 31, "y": 53, "flags": 1},
{"matrix": [4, 2], "x": 49, "y": 53, "flags": 4},
{"matrix": [4, 3], "x": 60, "y": 53, "flags": 4},
{"matrix": [4, 4], "x": 71, "y": 53, "flags": 4},
{"matrix": [4, 5], "x": 82, "y": 53, "flags": 4},
{"matrix": [4, 6], "x": 93, "y": 53, "flags": 4},
{"matrix": [4, 7], "x": 104, "y": 53, "flags": 4},
{"matrix": [4, 8], "x": 115, "y": 53, "flags": 4},
{"matrix": [4, 9], "x": 126, "y": 53, "flags": 4},
{"matrix": [4, 10], "x": 137, "y": 53, "flags": 4},
{"matrix": [4, 11], "x": 148, "y": 53, "flags": 4},
{"matrix": [4, 13], "x": 167, "y": 53, "flags": 4},
{"matrix": [4, 15], "x": 202, "y": 53, "flags": 4},

{"matrix": [5, 17], "x": 10, "y": 64, "flags": 4},
{"matrix": [5, 0], "x": 25, "y": 64, "flags": 1},
{"matrix": [5, 1], "x": 39, "y": 64, "flags": 1},
{"matrix": [5, 2], "x": 53, "y": 64, "flags": 1},
{"matrix": [5, 6], "x": 94, "y": 64, "flags": 1},
{"matrix": [5, 10], "x": 135, "y": 64, "flags": 4},
{"matrix": [5, 11], "x": 149, "y": 64, "flags": 1},
{"matrix": [5, 12], "x": 163, "y": 64, "flags": 1},
{"matrix": [5, 13], "x": 177, "y": 64, "flags": 1},
{"matrix": [5, 14], "x": 191, "y": 64, "flags": 4},
{"matrix": [5, 15], "x": 202, "y": 64, "flags": 4},
{"matrix": [5, 16], "x": 213, "y": 64, "flags": 4}
]
},
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
{"matrix": [0, 17], "x": 0, "y": 0},
{"matrix": [0, 0], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 3.25, "y": 0},
{"matrix": [0, 3], "x": 4.25, "y": 0},
{"matrix": [0, 4], "x": 5.25, "y": 0},
{"matrix": [0, 5], "x": 6.25, "y": 0},
{"matrix": [0, 6], "x": 7.75, "y": 0},
{"matrix": [0, 7], "x": 8.75, "y": 0},
{"matrix": [0, 8], "x": 9.75, "y": 0},
{"matrix": [0, 9], "x": 10.75, "y": 0},
{"matrix": [0, 10], "x": 12.25, "y": 0},
{"matrix": [0, 11], "x": 13.25, "y": 0},
{"matrix": [0, 12], "x": 14.25, "y": 0},
{"matrix": [0, 13], "x": 15.25, "y": 0},
{"matrix": [1, 17], "x": 0, "y": 1.25},
{"matrix": [1, 0], "x": 1.25, "y": 1.25},
{"matrix": [1, 1], "x": 2.25, "y": 1.25},
{"matrix": [1, 2], "x": 3.25, "y": 1.25},
{"matrix": [1, 3], "x": 4.25, "y": 1.25},
{"matrix": [1, 4], "x": 5.25, "y": 1.25},
{"matrix": [1, 5], "x": 6.25, "y": 1.25},
{"matrix": [1, 6], "x": 7.25, "y": 1.25},
{"matrix": [1, 7], "x": 8.25, "y": 1.25},
{"matrix": [1, 8], "x": 9.25, "y": 1.25},
{"matrix": [1, 9], "x": 10.25, "y": 1.25},
{"matrix": [1, 10], "x": 11.25, "y": 1.25},
{"matrix": [1, 11], "x": 12.25, "y": 1.25},
{"matrix": [1, 12], "x": 13.25, "y": 1.25},
{"matrix": [1, 13], "x": 15.25, "y": 1.25, "w": 2.0},
{"matrix": [1, 14], "x": 16.25, "y": 1.25},
{"matrix": [1, 15], "x": 17.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 17], "x": 0, "y": 2.25},
{"matrix": [2, 0], "x": 1.25, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 2.75, "y": 2.25},
{"matrix": [2, 2], "x": 3.75, "y": 2.25},
{"matrix": [2, 3], "x": 4.75, "y": 2.25},
{"matrix": [2, 4], "x": 5.75, "y": 2.25},
{"matrix": [2, 5], "x": 6.75, "y": 2.25},
{"matrix": [2, 6], "x": 7.75, "y": 2.25},
{"matrix": [2, 7], "x": 8.75, "y": 2.25},
{"matrix": [2, 8], "x": 9.75, "y": 2.25},
{"matrix": [2, 9], "x": 10.75, "y": 2.25},
{"matrix": [2, 10], "x": 11.75, "y": 2.25},
{"matrix": [2, 11], "x": 12.75, "y": 2.25},
{"matrix": [2, 12], "x": 13.75, "y": 2.25},
{"matrix": [2, 13], "x": 14.75, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 16.5, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 17], "x": 0, "y": 3.25},
{"matrix": [3, 0], "x": 1.25, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 3, "y": 3.25},
{"matrix": [3, 2], "x": 4, "y": 3.25},
{"matrix": [3, 3], "x": 5, "y": 3.25},
{"matrix": [3, 4], "x": 6, "y": 3.25},
{"matrix": [3, 5], "x": 7, "y": 3.25},
{"matrix": [3, 6], "x": 8, "y": 3.25},
{"matrix": [3, 7], "x": 9, "y": 3.25},
{"matrix": [3, 8], "x": 10, "y": 3.25},
{"matrix": [3, 9], "x": 11, "y": 3.25},
{"matrix": [3, 10], "x": 12, "y": 3.25},
{"matrix": [3, 11], "x": 13, "y": 3.25},
{"matrix": [3, 13], "x": 14, "y": 3.25, "w": 2.25},
{"matrix": [3, 14], "x": 16.5, "y": 3.25},
{"matrix": [3, 15], "x": 17.5, "y": 3.25},
{"matrix": [3, 16], "x": 18.5, "y": 3.25},
{"matrix": [4, 17], "x": 0, "y": 4.25},
{"matrix": [4, 0], "x": 1.25, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 3.5, "y": 4.25},
{"matrix": [4, 3], "x": 4.5, "y": 4.25},
{"matrix": [4, 4], "x": 5.5, "y": 4.25},
{"matrix": [4, 5], "x": 6.5, "y": 4.25},
{"matrix": [4, 6], "x": 7.5, "y": 4.25},
{"matrix": [4, 7], "x": 8.5, "y": 4.25},
{"matrix": [4, 8], "x": 9.5, "y": 4.25},
{"matrix": [4, 9], "x": 10.5, "y": 4.25},
{"matrix": [4, 10], "x": 11.5, "y": 4.25},
{"matrix": [4, 11], "x": 12.5, "y": 4.25},
{"matrix": [4, 13], "x": 13.5, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 17.5, "y": 4.25},
{"matrix": [5, 17], "x": 0, "y": 5.25},
{"matrix": [5, 0], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 3.75, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 5, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 12], "x": 13.75, "y": 5.25, "w": 1.25},
{"matrix": [5, 13], "x": 15, "y": 5.25, "w": 1.25},
{"matrix": [5, 14], "x": 16.5, "y": 5.25},
{"matrix": [5, 15], "x": 17.5, "y": 5.25},
{"matrix": [5, 16], "x": 18.5, "y": 5.25}
]
}
}
}
38 changes: 38 additions & 0 deletions keyboards/skdevices/adler/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright 2024 ksmosna (@ksmosna)
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┐ ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
* │Kno│ │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│
* └───┘ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘
* ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
* │M1 │ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │PSc│Scr│Pse│
* ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
* │M2 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Ins│Hom│PgU│
* ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤
* │M3 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │Del│End│PgD│
* ├───┤ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ └───┼───┼───┘
* │M4 │ │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │
* ├───┤ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
* │M5 │ │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │
* └───┘ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
*/
[0] = LAYOUT_tkl_ansi(
KC_MUTE, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,

KC_NO, KC_GRV, 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_SCRL, KC_PAUS,
KC_NO, 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_INS, KC_HOME, KC_PGUP,
KC_NO, 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_DEL, KC_END, KC_PGDN,
KC_NO, 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_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
)
};

#if defined (ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}
};
#endif
Loading