[Keyboard] Added RAMA WORKS M65-B, M65-BX, M10-C, M50-A (#9991)
* Added RAMA WORKS M65-B, M65-BX, M10-C, M50-A * Review changes * Review changes * Review changes * Increase layers to 10 for M10-C, M10-B
This commit is contained in:
parent
c59a81b792
commit
70acf36d16
40 changed files with 1595 additions and 31 deletions
|
@ -179,3 +179,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 10
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
LAYOUT( KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0 ),
|
||||||
LAYOUT(
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0 ),
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
LAYOUT(
|
LAYOUT( 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 ),
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
LAYOUT(
|
LAYOUT( 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 ),
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
LAYOUT(
|
LAYOUT( 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 )
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
|
||||||
};
|
};
|
||||||
|
|
120
keyboards/wilba_tech/rama_works_m10_c/config.h
Normal file
120
keyboards/wilba_tech/rama_works_m10_c/config.h
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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 0x5241 // "RA"
|
||||||
|
#define PRODUCT_ID 0x00AC // 10-C
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER RAMA WORKS
|
||||||
|
#define PRODUCT RAMA WORKS M10-C
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 1
|
||||||
|
#define MATRIX_COLS 10
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { E6 }
|
||||||
|
#define MATRIX_COL_PINS { D7, B6, F0, D6, B5, F1, D4, B4, F4, F5 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
// IS31FL3731 driver
|
||||||
|
#define DRIVER_COUNT 1
|
||||||
|
#define DRIVER_LED_TOTAL 12
|
||||||
|
|
||||||
|
// Enable WT RGB backlight
|
||||||
|
#define RGB_BACKLIGHT_ENABLED 1
|
||||||
|
|
||||||
|
// This conditionally compiles the backlight code for M10-C specifics
|
||||||
|
#define RGB_BACKLIGHT_M10_C
|
||||||
|
|
||||||
|
// enable/disable LEDs based on layout
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
|
||||||
|
#define RGB_BACKLIGHT_USE_ISO_ENTER 0
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
|
||||||
|
|
||||||
|
// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
|
||||||
|
|
||||||
|
// disable backlight after timeout in minutes, 0 = no timeout
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
|
||||||
|
|
||||||
|
// the default brightness
|
||||||
|
#define RGB_BACKLIGHT_BRIGHTNESS 255
|
||||||
|
|
||||||
|
// the default effect (RGB test)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT 255
|
||||||
|
|
||||||
|
// the default effect speed (0-3)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT_SPEED 0
|
||||||
|
|
||||||
|
// the default color1 and color2
|
||||||
|
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
|
||||||
|
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
|
||||||
|
|
||||||
|
// These define which keys in the matrix are alphas/mods
|
||||||
|
// Used for backlight effects so colors are different for
|
||||||
|
// alphas vs. mods
|
||||||
|
// Each value is for a row, bit 0 is column 0
|
||||||
|
// Alpha=0 Mod=1
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000000
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000000
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0000000000000000
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0000000000000000
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0000000000000000
|
||||||
|
|
||||||
|
#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 10
|
||||||
|
|
||||||
|
// Backlight config starts after VIA's EEPROM usage,
|
||||||
|
// dynamic keymaps start after this.
|
||||||
|
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 51
|
||||||
|
|
||||||
|
// VIA lighting is handled by the keyboard-level code
|
||||||
|
#define VIA_CUSTOM_LIGHTING_ENABLE
|
12
keyboards/wilba_tech/rama_works_m10_c/info.json
Normal file
12
keyboards/wilba_tech/rama_works_m10_c/info.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "RAMA WORKS M10-C",
|
||||||
|
"url": "http://rama.works",
|
||||||
|
"maintainer": "Wilba",
|
||||||
|
"width": 3,
|
||||||
|
"height": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":0, "y":1}, {"label":"0,4", "x":1, "y":1}, {"label":"0,5", "x":2, "y":1}, {"label":"0,6", "x":0, "y":2}, {"label":"0,7", "x":1, "y":2}, {"label":"0,8", "x":2, "y":2}, {"label":"0,9", "x":1, "y":3, "w":2}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
LAYOUT( KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0 ),
|
||||||
|
/*
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
|
||||||
|
*/
|
||||||
|
};
|
29
keyboards/wilba_tech/rama_works_m10_c/keymaps/via/keymap.c
Normal file
29
keyboards/wilba_tech/rama_works_m10_c/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
LAYOUT( KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0 ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||||
|
LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
VIA_ENABLE = yes
|
18
keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c
Normal file
18
keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
#ifndef RGB_BACKLIGHT_M10_C
|
||||||
|
#error RGB_BACKLIGHT_M10_C not defined
|
||||||
|
#endif
|
35
keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.h
Normal file
35
keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
|
||||||
|
#include "via.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 \
|
||||||
|
) { \
|
||||||
|
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09}, \
|
||||||
|
}
|
19
keyboards/wilba_tech/rama_works_m10_c/readme.md
Normal file
19
keyboards/wilba_tech/rama_works_m10_c/readme.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# RAMA WORKS M10-C
|
||||||
|
|
||||||
|
![RAMA WORKS M10-C](https://cdn.shopify.com/s/files/1/2689/3156/products/M10-C-LNY.1539_1296x1296.jpg?v=1580018332)
|
||||||
|
|
||||||
|
The RAMA WORKS M10-C is an ortholinear keyboard made by Rama Works.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
|
||||||
|
* Hardware Supported: RAMA WORKS M10-C PCB
|
||||||
|
* Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m10_c:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m10_c: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).
|
35
keyboards/wilba_tech/rama_works_m10_c/rules.mk
Normal file
35
keyboards/wilba_tech/rama_works_m10_c/rules.mk
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# 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 = 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
|
||||||
|
CIE1931_CURVE = yes
|
||||||
|
|
||||||
|
# Do not put the microcontroller into power saving mode
|
||||||
|
# when we get USB suspend event. We want it to keep updating
|
||||||
|
# backlight effects.
|
||||||
|
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC = keyboards/wilba_tech/wt_main.c \
|
||||||
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
|
quantum/color.c \
|
||||||
|
drivers/issi/is31fl3731.c \
|
||||||
|
drivers/avr/i2c_master.c
|
118
keyboards/wilba_tech/rama_works_m50_a/config.h
Normal file
118
keyboards/wilba_tech/rama_works_m50_a/config.h
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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 0x5241 // "RA"
|
||||||
|
#define PRODUCT_ID 0x050A // 50-A
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER RAMA WORKS
|
||||||
|
#define PRODUCT RAMA WORKS M50-A
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 13
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { F0, F1, F5, F6 }
|
||||||
|
#define MATRIX_COL_PINS { F4, B5, C7, C6, B6, B2, B3, B1, B4, D7, D6, D4, D3 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
// IS31FL3731 driver
|
||||||
|
#define DRIVER_COUNT 2
|
||||||
|
#define DRIVER_LED_TOTAL 72
|
||||||
|
|
||||||
|
// Enable WT RGB backlight
|
||||||
|
#define RGB_BACKLIGHT_ENABLED 1
|
||||||
|
|
||||||
|
// This conditionally compiles the backlight code for M50-A specifics
|
||||||
|
#define RGB_BACKLIGHT_M50_A
|
||||||
|
|
||||||
|
// enable/disable LEDs based on layout
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
|
||||||
|
#define RGB_BACKLIGHT_USE_ISO_ENTER 0
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
|
||||||
|
|
||||||
|
// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
|
||||||
|
|
||||||
|
// disable backlight after timeout in minutes, 0 = no timeout
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
|
||||||
|
|
||||||
|
// the default brightness
|
||||||
|
#define RGB_BACKLIGHT_BRIGHTNESS 255
|
||||||
|
|
||||||
|
// the default effect (RGB test)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT 255
|
||||||
|
|
||||||
|
// the default effect speed (0-3)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT_SPEED 0
|
||||||
|
|
||||||
|
// the default color1 and color2
|
||||||
|
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
|
||||||
|
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
|
||||||
|
|
||||||
|
// These define which keys in the matrix are alphas/mods
|
||||||
|
// Used for backlight effects so colors are different for
|
||||||
|
// alphas vs. mods
|
||||||
|
// Each value is for a row, bit 0 is column 0
|
||||||
|
// Alpha=0 Mod=1
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0001000000000011
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0001000000000011
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0001000000000011
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0001111111111111
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0000000000000000
|
||||||
|
|
||||||
|
#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
|
||||||
|
// Backlight config starts after VIA's EEPROM usage,
|
||||||
|
// dynamic keymaps start after this.
|
||||||
|
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
|
||||||
|
|
||||||
|
// VIA lighting is handled by the keyboard-level code
|
||||||
|
#define VIA_CUSTOM_LIGHTING_ENABLE
|
12
keyboards/wilba_tech/rama_works_m50_a/info.json
Normal file
12
keyboards/wilba_tech/rama_works_m50_a/info.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "RAMA WORKS M50-A",
|
||||||
|
"url": "http://rama.works",
|
||||||
|
"maintainer": "Wilba",
|
||||||
|
"width": 13.25,
|
||||||
|
"height": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.25, "y":0}, {"label":"0,2", "x":2.25, "y":0}, {"label":"0,3", "x":3.25, "y":0}, {"label":"0,4", "x":4.25, "y":0}, {"label":"0,5", "x":5.25, "y":0}, {"label":"0,6", "x":6.25, "y":0}, {"label":"0,7", "x":7.25, "y":0}, {"label":"0,8", "x":8.25, "y":0}, {"label":"0,9", "x":9.25, "y":0}, {"label":"0,10", "x":10.25, "y":0}, {"label":"0,11", "x":11.25, "y":0}, {"label":"0,12", "x":12.25, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1.25, "y":1}, {"label":"1,2", "x":2.25, "y":1}, {"label":"1,3", "x":3.25, "y":1}, {"label":"1,4", "x":4.25, "y":1}, {"label":"1,5", "x":5.25, "y":1}, {"label":"1,6", "x":6.25, "y":1}, {"label":"1,7", "x":7.25, "y":1}, {"label":"1,8", "x":8.25, "y":1}, {"label":"1,9", "x":9.25, "y":1}, {"label":"1,10", "x":10.25, "y":1}, {"label":"1,11", "x":11.25, "y":1}, {"label":"1,12", "x":12.25, "y":1}, {"label":"2,0", "x":0, "y":2}, {"label":"2,1", "x":1.25, "y":2}, {"label":"2,2", "x":2.25, "y":2}, {"label":"2,3", "x":3.25, "y":2}, {"label":"2,4", "x":4.25, "y":2}, {"label":"2,5", "x":5.25, "y":2}, {"label":"2,6", "x":6.25, "y":2}, {"label":"2,7", "x":7.25, "y":2}, {"label":"2,8", "x":8.25, "y":2}, {"label":"2,9", "x":9.25, "y":2}, {"label":"2,10", "x":10.25, "y":2}, {"label":"2,11", "x":11.25, "y":2}, {"label":"2,12", "x":12.25, "y":2}, {"label":"3,0", "x":0, "y":3}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
|
||||||
|
/* Qwerty
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT(
|
||||||
|
_______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
_______, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
_______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||||
|
_______, _______, KC_LCTL, KC_LALT, KC_LGUI, FN_MO13, KC_SPC, KC_SPC, FN_MO23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
/* Lower
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
_______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||||
|
_______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Raise
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
_______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
_______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Adjust (Lower + Raise)
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
*/
|
||||||
|
|
||||||
|
};
|
93
keyboards/wilba_tech/rama_works_m50_a/keymaps/via/keymap.c
Normal file
93
keyboards/wilba_tech/rama_works_m50_a/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
|
||||||
|
/* Qwerty
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT(
|
||||||
|
_______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
_______, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
_______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||||
|
_______, _______, KC_LCTL, KC_LALT, KC_LGUI, FN_MO13, KC_SPC, KC_SPC, FN_MO23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
/* Lower
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT(
|
||||||
|
_______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
_______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||||
|
_______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Raise
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
_______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
_______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Adjust (Lower + Raise)
|
||||||
|
* ,------------------------------------------------------------------------------------------.
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||||
|
* | | | | | | | | | | | | |
|
||||||
|
* `------------------------------------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
VIA_ENABLE = yes
|
18
keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c
Normal file
18
keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
#ifndef RGB_BACKLIGHT_M50_A
|
||||||
|
#error RGB_BACKLIGHT_M50_A not defined
|
||||||
|
#endif
|
41
keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.h
Normal file
41
keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.h
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
|
||||||
|
#include "via.h"
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C } \
|
||||||
|
}
|
||||||
|
|
19
keyboards/wilba_tech/rama_works_m50_a/readme.md
Normal file
19
keyboards/wilba_tech/rama_works_m50_a/readme.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# RAMA WORKS M50-A
|
||||||
|
|
||||||
|
![RAMA WORKS M50-A](https://images.squarespace-cdn.com/content/v1/563c788ae4b099120ae219e2/1586599330524-K5GC9PIVQD3IDSIIMEWA/ke17ZwdGBToddI8pDm48kPTrHXgsMrSIMwe6YW3w1AZ7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0k5fwC0WRNFJBIXiBeNI5fKTrY37saURwPBw8fO2esROAxn-RKSrlQamlL27g22X2A/M50-A-SCENE-01.1868.JPG?format=1500w)
|
||||||
|
|
||||||
|
The RAMA WORKS M50-A is an ortholinear keyboard made by Rama Works.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
|
||||||
|
* Hardware Supported: RAMA WORKS M50-A PCB
|
||||||
|
* Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m50_a:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m50_a: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).
|
35
keyboards/wilba_tech/rama_works_m50_a/rules.mk
Normal file
35
keyboards/wilba_tech/rama_works_m50_a/rules.mk
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# 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 = 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
|
||||||
|
CIE1931_CURVE = yes
|
||||||
|
|
||||||
|
# Do not put the microcontroller into power saving mode
|
||||||
|
# when we get USB suspend event. We want it to keep updating
|
||||||
|
# backlight effects.
|
||||||
|
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC = keyboards/wilba_tech/wt_main.c \
|
||||||
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
|
quantum/color.c \
|
||||||
|
drivers/issi/is31fl3731.c \
|
||||||
|
drivers/avr/i2c_master.c
|
114
keyboards/wilba_tech/rama_works_m65_b/config.h
Normal file
114
keyboards/wilba_tech/rama_works_m65_b/config.h
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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 0x5241 // "RA"
|
||||||
|
#define PRODUCT_ID 0x065B // 65-B
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER RAMA WORKS
|
||||||
|
#define PRODUCT RAMA WORKS M65-B
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { F0, F1, F4, F6, F7 }
|
||||||
|
#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
// IS31FL3731 driver
|
||||||
|
#define DRIVER_COUNT 2
|
||||||
|
#define DRIVER_LED_TOTAL 72
|
||||||
|
|
||||||
|
// Enable WT RGB backlight
|
||||||
|
#define RGB_BACKLIGHT_ENABLED 1
|
||||||
|
|
||||||
|
// This conditionally compiles the backlight code for M65-B specifics
|
||||||
|
#define RGB_BACKLIGHT_M65_B
|
||||||
|
|
||||||
|
// enable/disable LEDs based on layout
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_7U_SPACEBAR 1
|
||||||
|
#define RGB_BACKLIGHT_USE_ISO_ENTER 0
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
|
||||||
|
|
||||||
|
// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
|
||||||
|
|
||||||
|
// disable backlight after timeout in minutes, 0 = no timeout
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
|
||||||
|
|
||||||
|
// the default brightness
|
||||||
|
#define RGB_BACKLIGHT_BRIGHTNESS 255
|
||||||
|
|
||||||
|
// the default effect (RGB test)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT 255
|
||||||
|
|
||||||
|
// the default effect speed (0-3)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT_SPEED 0
|
||||||
|
|
||||||
|
// the default color1 and color2
|
||||||
|
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
|
||||||
|
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
|
||||||
|
|
||||||
|
// These define which keys in the matrix are alphas/mods
|
||||||
|
// Used for backlight effects so colors are different for
|
||||||
|
// alphas vs. mods
|
||||||
|
// Each value is for a row, bit 0 is column 0
|
||||||
|
// Alpha=0 Mod=1
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0110000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0111000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0111100000000111
|
||||||
|
|
||||||
|
#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
|
||||||
|
// Backlight config starts after VIA's EEPROM usage,
|
||||||
|
// dynamic keymaps start after this.
|
||||||
|
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
|
||||||
|
|
||||||
|
// VIA lighting is handled by the keyboard-level code
|
||||||
|
#define VIA_CUSTOM_LIGHTING_ENABLE
|
12
keyboards/wilba_tech/rama_works_m65_b/info.json
Normal file
12
keyboards/wilba_tech/rama_works_m65_b/info.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "RAMA WORKS M65-B",
|
||||||
|
"url": "http://rama.works",
|
||||||
|
"maintainer": "Wilba",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Num Lock", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Insert", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Home", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"/", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Ctrl", "x":11, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
// Default layer
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_BSLS, KC_DEL, KC_HOME,
|
||||||
|
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_BSPC, KC_PGUP,
|
||||||
|
KC_LCTL, 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_PGDN,
|
||||||
|
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_END,
|
||||||
|
MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
// Fn1 Layer
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
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_INS, KC_DEL, KC_TRNS,
|
||||||
|
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, 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),
|
||||||
|
|
||||||
|
// Fn2 Layer
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, 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),
|
||||||
|
|
||||||
|
// Fn3 Layer
|
||||||
|
/*
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
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),
|
||||||
|
*/
|
||||||
|
};
|
36
keyboards/wilba_tech/rama_works_m65_b/keymaps/via/keymap.c
Normal file
36
keyboards/wilba_tech/rama_works_m65_b/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
// Default layer
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_BSLS, KC_DEL, KC_HOME,
|
||||||
|
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_BSPC, KC_PGUP,
|
||||||
|
KC_LCTL, 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_PGDN,
|
||||||
|
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_END,
|
||||||
|
MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
// Fn1 Layer
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
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_INS, KC_DEL, KC_TRNS,
|
||||||
|
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, 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),
|
||||||
|
|
||||||
|
// Fn2 Layer
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, 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),
|
||||||
|
|
||||||
|
// Fn3 Layer
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
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),
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
VIA_ENABLE = yes
|
18
keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c
Normal file
18
keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
#ifndef RGB_BACKLIGHT_M65_B
|
||||||
|
#error RGB_BACKLIGHT_M65_B not defined
|
||||||
|
#endif
|
45
keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.h
Normal file
45
keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.h
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
|
||||||
|
#include "via.h"
|
||||||
|
|
||||||
|
#define ____ KC_NO
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
|
||||||
|
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
||||||
|
K400, K401, K402, K407, K411, K412, K413, K414 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
|
||||||
|
{ K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
|
||||||
|
{ K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413, K414 } \
|
||||||
|
}
|
19
keyboards/wilba_tech/rama_works_m65_b/readme.md
Normal file
19
keyboards/wilba_tech/rama_works_m65_b/readme.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# RAMA WORKS M65-B
|
||||||
|
|
||||||
|
![RAMA WORKS M65-B](https://images.squarespace-cdn.com/content/v1/563c788ae4b099120ae219e2/1572021195246-4QHS1WZTE862N635BVR2/ke17ZwdGBToddI8pDm48kAgzYejSbWGRoJP4yk7IdNQUqsxRUqqbr1mOJYKfIPR7LoDQ9mXPOjoJoqy81S2I8N_N4V1vUb5AoIIIbLZhVYy7Mythp_T-mtop-vrsUOmeInPi9iDjx9w8K4ZfjXt2dtCOkMDEaPiGoIoGazr_ji7tWlVp5kgqCHrK9bIsxYYSbSexTd1-frD7527z4SM9QQ/RW-M65-B-WIDE-HERO-A.1710.JPG?format=1500w)
|
||||||
|
|
||||||
|
The RAMA WORKS M65-B is a 65% keyboard made by Rama Works.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
|
||||||
|
* Hardware Supported: RAMA WORKS M65-B PCB
|
||||||
|
* Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m65_b:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m65_b: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).
|
35
keyboards/wilba_tech/rama_works_m65_b/rules.mk
Normal file
35
keyboards/wilba_tech/rama_works_m65_b/rules.mk
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# 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 = 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
|
||||||
|
CIE1931_CURVE = yes
|
||||||
|
|
||||||
|
# Do not put the microcontroller into power saving mode
|
||||||
|
# when we get USB suspend event. We want it to keep updating
|
||||||
|
# backlight effects.
|
||||||
|
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC = keyboards/wilba_tech/wt_main.c \
|
||||||
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
|
quantum/color.c \
|
||||||
|
drivers/issi/is31fl3731.c \
|
||||||
|
drivers/avr/i2c_master.c
|
114
keyboards/wilba_tech/rama_works_m65_bx/config.h
Normal file
114
keyboards/wilba_tech/rama_works_m65_bx/config.h
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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 0x5241 // "RA"
|
||||||
|
#define PRODUCT_ID 0x165B // 65-BX
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER RAMA WORKS
|
||||||
|
#define PRODUCT RAMA WORKS M65-BX
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { F0, F1, F4, F6, F7 }
|
||||||
|
#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
// IS31FL3731 driver
|
||||||
|
#define DRIVER_COUNT 2
|
||||||
|
#define DRIVER_LED_TOTAL 72
|
||||||
|
|
||||||
|
// Enable WT RGB backlight
|
||||||
|
#define RGB_BACKLIGHT_ENABLED 1
|
||||||
|
|
||||||
|
// This conditionally compiles the backlight code for M65-BX specifics
|
||||||
|
#define RGB_BACKLIGHT_M65_BX
|
||||||
|
|
||||||
|
// enable/disable LEDs based on layout
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
|
||||||
|
#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
|
||||||
|
#define RGB_BACKLIGHT_USE_7U_SPACEBAR 1
|
||||||
|
#define RGB_BACKLIGHT_USE_ISO_ENTER 0
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
|
||||||
|
|
||||||
|
// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
|
||||||
|
|
||||||
|
// disable backlight after timeout in minutes, 0 = no timeout
|
||||||
|
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
|
||||||
|
|
||||||
|
// the default brightness
|
||||||
|
#define RGB_BACKLIGHT_BRIGHTNESS 255
|
||||||
|
|
||||||
|
// the default effect (RGB test)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT 255
|
||||||
|
|
||||||
|
// the default effect speed (0-3)
|
||||||
|
#define RGB_BACKLIGHT_EFFECT_SPEED 0
|
||||||
|
|
||||||
|
// the default color1 and color2
|
||||||
|
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
|
||||||
|
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
|
||||||
|
|
||||||
|
// These define which keys in the matrix are alphas/mods
|
||||||
|
// Used for backlight effects so colors are different for
|
||||||
|
// alphas vs. mods
|
||||||
|
// Each value is for a row, bit 0 is column 0
|
||||||
|
// Alpha=0 Mod=1
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0110000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0111000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001
|
||||||
|
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0111100000000111
|
||||||
|
|
||||||
|
#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
|
||||||
|
|
||||||
|
// Backlight config starts after VIA's EEPROM usage,
|
||||||
|
// dynamic keymaps start after this.
|
||||||
|
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
|
||||||
|
|
||||||
|
// VIA lighting is handled by the keyboard-level code
|
||||||
|
#define VIA_CUSTOM_LIGHTING_ENABLE
|
12
keyboards/wilba_tech/rama_works_m65_bx/info.json
Normal file
12
keyboards/wilba_tech/rama_works_m65_bx/info.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "RAMA WORKS M65-BX",
|
||||||
|
"url": "http://rama.works",
|
||||||
|
"maintainer": "Wilba",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Num Lock", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Insert", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Home", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"/", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Ctrl", "x":11, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
// Default layer
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_BSLS, KC_DEL, KC_HOME,
|
||||||
|
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_BSPC, KC_PGUP,
|
||||||
|
KC_LCTL, 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_PGDN,
|
||||||
|
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_END,
|
||||||
|
MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
// Fn1 Layer
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
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_INS, KC_DEL, KC_TRNS,
|
||||||
|
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, 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),
|
||||||
|
|
||||||
|
// Fn2 Layer
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, 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),
|
||||||
|
|
||||||
|
// Fn3 Layer
|
||||||
|
/*
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
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),
|
||||||
|
*/
|
||||||
|
};
|
36
keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/keymap.c
Normal file
36
keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
// Default layer
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_BSLS, KC_DEL, KC_HOME,
|
||||||
|
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_BSPC, KC_PGUP,
|
||||||
|
KC_LCTL, 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_PGDN,
|
||||||
|
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_END,
|
||||||
|
MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
// Fn1 Layer
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
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_INS, KC_DEL, KC_TRNS,
|
||||||
|
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, 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),
|
||||||
|
|
||||||
|
// Fn2 Layer
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, 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),
|
||||||
|
|
||||||
|
// Fn3 Layer
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
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),
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
VIA_ENABLE = yes
|
18
keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c
Normal file
18
keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
#ifndef RGB_BACKLIGHT_M65_BX
|
||||||
|
#error RGB_BACKLIGHT_M65_BX not defined
|
||||||
|
#endif
|
45
keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.h
Normal file
45
keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.h
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/* Copyright 2020 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
|
||||||
|
#include "via.h"
|
||||||
|
|
||||||
|
#define ____ KC_NO
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
|
||||||
|
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
||||||
|
K400, K401, K402, K407, K411, K412, K413, K414 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
|
||||||
|
{ K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
|
||||||
|
{ K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413, K414 } \
|
||||||
|
}
|
19
keyboards/wilba_tech/rama_works_m65_bx/readme.md
Normal file
19
keyboards/wilba_tech/rama_works_m65_bx/readme.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# RAMA WORKS M65-BX
|
||||||
|
|
||||||
|
![RAMA WORKS M65-B](https://images.squarespace-cdn.com/content/v1/563c788ae4b099120ae219e2/1572021195246-4QHS1WZTE862N635BVR2/ke17ZwdGBToddI8pDm48kAgzYejSbWGRoJP4yk7IdNQUqsxRUqqbr1mOJYKfIPR7LoDQ9mXPOjoJoqy81S2I8N_N4V1vUb5AoIIIbLZhVYy7Mythp_T-mtop-vrsUOmeInPi9iDjx9w8K4ZfjXt2dtCOkMDEaPiGoIoGazr_ji7tWlVp5kgqCHrK9bIsxYYSbSexTd1-frD7527z4SM9QQ/RW-M65-B-WIDE-HERO-A.1710.JPG?format=1500w)
|
||||||
|
|
||||||
|
The RAMA WORKS M65-B is a 65% keyboard made by Rama Works. The RAMA WORKS M65-BX PCB is the solderable variant with layout options.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
|
||||||
|
* Hardware Supported: RAMA WORKS M65-BX PCB
|
||||||
|
* Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m65_bx:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make wilba_tech/rama_works_m65_bx: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).
|
35
keyboards/wilba_tech/rama_works_m65_bx/rules.mk
Normal file
35
keyboards/wilba_tech/rama_works_m65_bx/rules.mk
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# 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 = 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
|
||||||
|
CIE1931_CURVE = yes
|
||||||
|
|
||||||
|
# Do not put the microcontroller into power saving mode
|
||||||
|
# when we get USB suspend event. We want it to keep updating
|
||||||
|
# backlight effects.
|
||||||
|
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC = keyboards/wilba_tech/wt_main.c \
|
||||||
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
|
quantum/color.c \
|
||||||
|
drivers/issi/is31fl3731.c \
|
||||||
|
drivers/avr/i2c_master.c
|
|
@ -18,7 +18,10 @@
|
||||||
defined(RGB_BACKLIGHT_ZEAL65) || \
|
defined(RGB_BACKLIGHT_ZEAL65) || \
|
||||||
defined(RGB_BACKLIGHT_M60_A) || \
|
defined(RGB_BACKLIGHT_M60_A) || \
|
||||||
defined(RGB_BACKLIGHT_M6_B) || \
|
defined(RGB_BACKLIGHT_M6_B) || \
|
||||||
|
defined(RGB_BACKLIGHT_M10_C) || \
|
||||||
defined(RGB_BACKLIGHT_KOYU) || \
|
defined(RGB_BACKLIGHT_KOYU) || \
|
||||||
|
defined(RGB_BACKLIGHT_M65_B) || \
|
||||||
|
defined(RGB_BACKLIGHT_M65_BX) || \
|
||||||
defined(RGB_BACKLIGHT_HS60) || \
|
defined(RGB_BACKLIGHT_HS60) || \
|
||||||
defined(RGB_BACKLIGHT_NK65) || \
|
defined(RGB_BACKLIGHT_NK65) || \
|
||||||
defined(RGB_BACKLIGHT_NEBULA12) || \
|
defined(RGB_BACKLIGHT_NEBULA12) || \
|
||||||
|
@ -27,7 +30,8 @@
|
||||||
defined(RGB_BACKLIGHT_DAWN60) || \
|
defined(RGB_BACKLIGHT_DAWN60) || \
|
||||||
defined(RGB_BACKLIGHT_WT60_B) || \
|
defined(RGB_BACKLIGHT_WT60_B) || \
|
||||||
defined(RGB_BACKLIGHT_WT60_BX) || \
|
defined(RGB_BACKLIGHT_WT60_BX) || \
|
||||||
defined(RGB_BACKLIGHT_WT60_C)
|
defined(RGB_BACKLIGHT_WT60_C) || \
|
||||||
|
defined(RGB_BACKLIGHT_M50_A)
|
||||||
#else
|
#else
|
||||||
#error wt_rgb_backlight.c compiled without setting configuration symbol
|
#error wt_rgb_backlight.c compiled without setting configuration symbol
|
||||||
#endif
|
#endif
|
||||||
|
@ -87,6 +91,8 @@ LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL];
|
||||||
#define BACKLIGHT_LED_COUNT 84 //64 + 20
|
#define BACKLIGHT_LED_COUNT 84 //64 + 20
|
||||||
#elif defined(RGB_BACKLIGHT_NEBULA12)
|
#elif defined(RGB_BACKLIGHT_NEBULA12)
|
||||||
#define BACKLIGHT_LED_COUNT 16
|
#define BACKLIGHT_LED_COUNT 16
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
#define BACKLIGHT_LED_COUNT 12
|
||||||
#else
|
#else
|
||||||
#define BACKLIGHT_LED_COUNT 72
|
#define BACKLIGHT_LED_COUNT 72
|
||||||
#endif
|
#endif
|
||||||
|
@ -120,6 +126,8 @@ backlight_config g_config = {
|
||||||
RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 },
|
RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 },
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B)
|
||||||
.custom_color = { { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 }, { 171, 255 }, { 213, 255 } }
|
.custom_color = { { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 }, { 171, 255 }, { 213, 255 } }
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
.custom_color = { { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 }, { 171, 255 }, { 213, 255 }, { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 } }
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -600,7 +608,29 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
{1, C9_15, C8_15, C6_14}, //D15
|
{1, C9_15, C8_15, C6_14}, //D15
|
||||||
{1, C9_16, C7_15, C6_15} //D16
|
{1, C9_16, C7_15, C6_15} //D16
|
||||||
};
|
};
|
||||||
#elif !defined(RGB_BACKLIGHT_M6_B)
|
#elif defined(RGB_BACKLIGHT_M6_B)
|
||||||
|
// Driver has fixed mapping of index to the red, green and blue LEDs
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
// 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)
|
||||||
|
#define ISSI_ADDR_1 0x74
|
||||||
|
#define ISSI_ADDR_2
|
||||||
|
|
||||||
|
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
|
{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_12, C2_12, C3_12}, // LB4
|
||||||
|
{0, C1_13, C2_13, C3_13}, // LB5
|
||||||
|
{0, C1_14, C2_14, C3_14}, // LB6
|
||||||
|
{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, C9_15, C8_15, C6_14}, // LB15
|
||||||
|
{0, C9_16, C7_15, C6_15} // LB16
|
||||||
|
};
|
||||||
|
#else
|
||||||
// This is a 7-bit address, that gets left-shifted and bit 0
|
// 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)
|
// set to 0 for write, 1 for read (as per I2C protocol)
|
||||||
#define ISSI_ADDR_1 0x74
|
#define ISSI_ADDR_1 0x74
|
||||||
|
@ -689,7 +719,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||||
{1, C9_16, C7_15, C6_15}, // LD16
|
{1, C9_16, C7_15, C6_15}, // LD16
|
||||||
{1, C8_16, C7_16, C6_16}, // LD17
|
{1, C8_16, C7_16, C6_16}, // LD17
|
||||||
};
|
};
|
||||||
#endif // !defined(RGB_BACKLIGHT_M6_B)
|
#endif
|
||||||
|
|
||||||
|
|
||||||
typedef struct Point {
|
typedef struct Point {
|
||||||
|
@ -759,6 +789,35 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
{0,9}, {0,43}, {0,77}, {0,111}, {0,145}, {0,201}, {224,181}, {230,217}, {235,255},
|
{0,9}, {0,43}, {0,77}, {0,111}, {0,145}, {0,201}, {224,181}, {230,217}, {235,255},
|
||||||
{189,128}, {200,131}, {210,141}, {218,159}, {255,255}, {207,238}, {211,255}, {218,255}, {255,255}
|
{189,128}, {200,131}, {210,141}, {218,159}, {255,255}, {207,238}, {211,255}, {218,255}, {255,255}
|
||||||
};
|
};
|
||||||
|
#elif defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX)
|
||||||
|
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
|
// LA0..LA17
|
||||||
|
{120,16}, {104,16}, {88,16}, {72,16}, {56,16}, {40,16}, {24,16}, {4,16}, {4,32},
|
||||||
|
{128,0}, {112,0}, {96,0}, {80,0}, {64,0}, {48,0}, {32,0}, {16,0}, {0,0},
|
||||||
|
// LB0..LB17
|
||||||
|
{144,0}, {160,0}, {176,0}, {192,0}, {208,0}, {224,0}, {216,0}, {240,0}, {240,16},
|
||||||
|
{136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {220,16}, {240,32}, {240,48}, {240,64},
|
||||||
|
// LC0..LC17
|
||||||
|
{112,64}, {100,48}, {84,48}, {68,48}, {52,48}, {36,48}, {64,60}, {44,60}, {24,64},
|
||||||
|
{108,32}, {92,32}, {76,32}, {60,32}, {44,32}, {28,32}, {255,255}, {10,48}, {4,64},
|
||||||
|
// LD0..LD17
|
||||||
|
{124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32}, {180,48}, {202,48}, {224,48},
|
||||||
|
{116,48}, {132,48}, {148,48}, {164,48}, {255,255}, {160,60}, {180,64}, {208,64}, {224,64}
|
||||||
|
};
|
||||||
|
const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
|
// LA0..LA17
|
||||||
|
{64,128}, {75,132}, {84,145}, {91,164}, {97,187}, {102,213}, {105,242}, {109,255}, {128,243},
|
||||||
|
{61,255}, {67,255}, {72,255}, {77,255}, {82,255}, {86,255}, {90,255}, {93,255}, {96,255},
|
||||||
|
// LB0..LB17
|
||||||
|
{56,255}, {51,255}, {46,255}, {42,255}, {38,255}, {35,255}, {37,255}, {32,255}, {19,255},
|
||||||
|
{53,132}, {44,145}, {37,164}, {31,187}, {26,213}, {22,249}, {0,255}, {237,255}, {224,255},
|
||||||
|
// LC0..LC17
|
||||||
|
{189,255}, {179,135}, {170,149}, {163,169}, {157,193}, {153,220}, {172,252}, {169,255}, {165,255},
|
||||||
|
{128,26}, {128,60}, {128,94}, {128,128}, {128,162}, {128,196}, {255,255}, {148,255}, {161,255},
|
||||||
|
// LD0..LD17
|
||||||
|
{0,9}, {0,43}, {0,77}, {0,111}, {0,145}, {0,201}, {224,181}, {230,217}, {235,255},
|
||||||
|
{189,128}, {200,131}, {210,141}, {218,159}, {255,255}, {207,238}, {211,255}, {218,255}, {221,255}
|
||||||
|
};
|
||||||
#elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A)
|
#elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A)
|
||||||
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
// LA0..LA17
|
// LA0..LA17
|
||||||
|
@ -1010,6 +1069,24 @@ const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
{160,255}, {96,255}, {77,255}, {179,255}, {51,255}, {205,255}
|
{160,255}, {96,255}, {77,255}, {179,255}, {51,255}, {205,255}
|
||||||
};
|
};
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
// M10-C is really simple:
|
||||||
|
// 0 1 2
|
||||||
|
// 3 4 5
|
||||||
|
// 8 7 6
|
||||||
|
// 11 10 9
|
||||||
|
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
|
{0,0}, {16,0}, {32,0},
|
||||||
|
{0,16}, {16,16}, {32,16},
|
||||||
|
{32,32}, {16,32}, {0,32},
|
||||||
|
{32,48}, {24,48}, {16,48}
|
||||||
|
};
|
||||||
|
const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
|
{160,255}, {192,255}, {224,255},
|
||||||
|
{128,255}, {0,0}, {0,255},
|
||||||
|
{32,255}, {64,255}, {96,255},
|
||||||
|
{45,255}, {54,255}, {64,255}
|
||||||
|
};
|
||||||
#elif defined(RGB_BACKLIGHT_DAWN60)
|
#elif defined(RGB_BACKLIGHT_DAWN60)
|
||||||
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
// LA1..LA16
|
// LA1..LA16
|
||||||
|
@ -1053,7 +1130,35 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
//11 - 20
|
//11 - 20
|
||||||
{234,255}, {222,255}, {213,255}, {197,255}, {180,255}, {167,255}, {152,255}, {147,255}, {128,255}, {101,255}
|
{234,255}, {222,255}, {213,255}, {197,255}, {180,255}, {167,255}, {152,255}, {147,255}, {128,255}, {101,255}
|
||||||
};
|
};
|
||||||
|
#elif defined(RGB_BACKLIGHT_M50_A)
|
||||||
|
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
|
// LA0..LA17
|
||||||
|
{255,255}, {104,16}, {88,16}, {72,16}, {56,16}, {40,16}, {24,16}, {255,255}, {255,255},
|
||||||
|
{104,0}, {88,0}, {72,0}, {56,0}, {40,0}, {24,0}, {0,0}, {0,16}, {255,255},
|
||||||
|
// LB0..LB17
|
||||||
|
{255,255}, {120,0}, {136,0}, {152,0}, {168,0}, {184,0}, {200,0}, {255,255}, {255,255},
|
||||||
|
{120,16}, {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {255,255}, {255,255}, {255,255},
|
||||||
|
// LC0..LC17
|
||||||
|
{255,255}, {112,48}, {88,48}, {72,48}, {56,48}, {40,48}, {24,48}, {0,48}, {255,255},
|
||||||
|
{104,32}, {88,32}, {72,32}, {56,32}, {40,32}, {24,32}, {0,32}, {255,255}, {255,255},
|
||||||
|
// LD0..LD17
|
||||||
|
{255,255}, {120,32}, {136,32}, {152,32}, {168,32}, {184,32}, {200,32}, {255,255}, {255,255},
|
||||||
|
{255,255}, {136,48}, {152,48}, {168,48}, {184,48}, {200,48}, {255,255}, {255,255}, {255,255}
|
||||||
|
};
|
||||||
|
const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
|
||||||
|
// LA0..LA17
|
||||||
|
{255,255}, {73,88}, {89,104}, {99,130}, {105,162}, {110,197}, {113,233}, {255,255}, {255,255},
|
||||||
|
{67,255}, {73,255}, {79,255}, {84,255}, {89,255}, {93,255}, {98,255}, {116,255}, {255,255},
|
||||||
|
// LB0..LB17
|
||||||
|
{0,0}, {61,255}, {55,255}, {49,255}, {44,255}, {39,255}, {35,255}, {255,255}, {255,255},
|
||||||
|
{55,88}, {39,104}, {29,130}, {23,162}, {18,197}, {15,233}, {255,255}, {255,255}, {255,255},
|
||||||
|
// LC0..LC17
|
||||||
|
{255,255}, {192,255}, {183,255}, {177,255}, {172,255}, {167,255}, {163,255}, {158,255}, {255,255},
|
||||||
|
{183,88}, {167,104}, {157,130}, {151,162}, {146,197}, {143,233}, {140,255}, {255,255}, {255,255},
|
||||||
|
// LD0..LD17
|
||||||
|
{255,255}, {201,88}, {217,104}, {227,130}, {233,162}, {238,197}, {241,233}, {255,255}, {255,255},
|
||||||
|
{255,255}, {201,255}, {207,255}, {212,255}, {217,255}, {221,255}, {255,255}, {255,255}, {255,255}
|
||||||
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// This may seem counter-intuitive, but it's quite flexible.
|
// This may seem counter-intuitive, but it's quite flexible.
|
||||||
|
@ -1067,7 +1172,7 @@ void map_led_to_point( uint8_t index, Point *point )
|
||||||
point->x = pgm_read_byte(addr);
|
point->x = pgm_read_byte(addr);
|
||||||
point->y = pgm_read_byte(addr+1);
|
point->y = pgm_read_byte(addr+1);
|
||||||
|
|
||||||
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA65) || defined(RGB_BACKLIGHT_NEBULA12)
|
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA65) || defined(RGB_BACKLIGHT_NEBULA12)
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1177,6 +1282,22 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
{ 36+16, 36+15, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 54+8, 18+15 },
|
{ 36+16, 36+15, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 54+8, 18+15 },
|
||||||
{ 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 255, 54+14, 54+15, 54+16, 18+17, 18+16 }
|
{ 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 255, 54+14, 54+15, 54+16, 18+17, 18+16 }
|
||||||
};
|
};
|
||||||
|
#elif defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX)
|
||||||
|
// Note: Left spacebar stab is at 4,4 (LC6)
|
||||||
|
// Right spacebar stab is at 4,10 (D14)
|
||||||
|
// (B6)
|
||||||
|
// A17, A16, A15, A14, A13, A12, A11, A10, A9, B0, B1, B2, B3, B4, B7
|
||||||
|
// A7, A6, A5, A4, A3, A2, A1, A0, B9, B10, B11, B12, B13, B14, B8
|
||||||
|
// A8, C14, C13, C12, C11, C10, C9, D0, D1, D2, D3, D4, D5, B5, B15
|
||||||
|
// C16, C15, C5, C4, C3, C2, C1, D9, D10, D11, D12, D6, D7, D8, B16
|
||||||
|
// C17, C8, C7, C6, ---, ---, ---, C0, ---, ---, D14, D15, D16, D17, B17
|
||||||
|
const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
|
{ 0+17, 0+16, 0+15, 0+14, 0+13, 0+12, 0+11, 0+10, 0+9, 18+0, 18+1, 18+2, 18+3, 18+4, 18+7 },
|
||||||
|
{ 0+7, 0+6, 0+5, 0+4, 0+3, 0+2, 0+1, 0+0, 18+9, 18+10, 18+11, 18+12, 18+13, 18+14, 18+8 },
|
||||||
|
{ 0+8, 36+14, 36+13, 36+12, 36+11, 36+10, 36+9, 54+0, 54+1, 54+2, 54+3, 54+4, 54+5, 18+5, 18+15 },
|
||||||
|
{ 36+16, 36+15, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 54+8, 18+16 },
|
||||||
|
{ 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 255, 54+14, 54+15, 54+16, 54+17, 18+17 }
|
||||||
|
};
|
||||||
#elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A)
|
#elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A)
|
||||||
// Note: Left spacebar stab is at 4,3 (LC6)
|
// Note: Left spacebar stab is at 4,3 (LC6)
|
||||||
// Right spacebar stab is at 4,9 (LD13) or 4,10 (LD14)
|
// Right spacebar stab is at 4,9 (LD13) or 4,10 (LD14)
|
||||||
|
@ -1287,6 +1408,15 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
{ 0, 3, 5, 1, 2, 4 }
|
{ 0, 3, 5, 1, 2, 4 }
|
||||||
};
|
};
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
// M10-C is really simple:
|
||||||
|
// 0 1 2
|
||||||
|
// 3 4 5
|
||||||
|
// 8 7 6
|
||||||
|
// 11 10 9
|
||||||
|
const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 8, 7, 6, 10 }
|
||||||
|
};
|
||||||
#elif defined(RGB_BACKLIGHT_DAWN60)
|
#elif defined(RGB_BACKLIGHT_DAWN60)
|
||||||
//Dawn60
|
//Dawn60
|
||||||
// A16, A15, A14, A13, A12, A11, A10, A9, B1, B2, B3, B4, B5, B6,
|
// A16, A15, A14, A13, A12, A11, A10, A9, B1, B2, B3, B4, B5, B6,
|
||||||
|
@ -1300,6 +1430,16 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
{ -1+8 , 31+14, 31+13, 31+12, 31+11, 31+10, 31+9 , 47+1 , 47+2 , 47+3 , 47+4 , 47+5 , 15+8 , 15+7 },
|
{ -1+8 , 31+14, 31+13, 31+12, 31+11, 31+10, 31+9 , 47+1 , 47+2 , 47+3 , 47+4 , 47+5 , 15+8 , 15+7 },
|
||||||
{ 31+15, 31+5 , 31+4 , 31+3 , 31+2 , 31+1 , 47+9 , 47+10, 47+11, 47+12, 255 ,47+6 , 47+7 , 15+16},
|
{ 31+15, 31+5 , 31+4 , 31+3 , 31+2 , 31+1 , 47+9 , 47+10, 47+11, 47+12, 255 ,47+6 , 47+7 , 15+16},
|
||||||
{ 31+16, 31+8 , 31+7 , 255 , 255 , 31+6 , 255 , 255 , 255 , 47+13, 47+14, 47+15, 47+16, 47+8 }
|
{ 31+16, 31+8 , 31+7 , 255 , 255 , 31+6 , 255 , 255 , 255 , 47+13, 47+14, 47+15, 47+16, 47+8 }
|
||||||
|
#elif defined(RGB_BACKLIGHT_M50_A)
|
||||||
|
// LA15, LA14, LA13, LA12, LA11, LA10, LA9, LB1, LB2, LB3, LB4, LB5, LB6
|
||||||
|
// LA16, LA6, LA5, LA4, LA3, LA2, LA1, LB9, LB10, LB11, LB12, LB13, LB14
|
||||||
|
// LC15, LC14, LC13, LC12, LC11, LC10, LC9, LD1, LD2, LD3, LD4, LD5, LD6
|
||||||
|
// LC7, LC6, LC5, LC4, LC3, LC2, LC1, ----, LD10, LD11, LD12, LD13, LD14
|
||||||
|
const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
|
||||||
|
{ 0+15, 0+14, 0+13, 0+12, 0+11, 0+10, 0+9, 18+1, 18+2, 18+3, 18+4, 18+5, 18+6 },
|
||||||
|
{ 0+16, 0+6, 0+5, 0+4, 0+3, 0+2, 0+1, 18+9, 18+10, 18+11, 18+12, 18+13, 18+14 },
|
||||||
|
{ 36+15, 36+14, 36+13, 36+12, 36+11, 36+10, 36+9, 54+1, 54+2, 54+3, 54+4, 54+5, 54+6 },
|
||||||
|
{ 36+7, 36+6, 36+5, 36+4, 36+3, 36+2, 36+1, 255, 54+10, 54+11, 54+12, 54+13, 54+14 },
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1316,6 +1456,9 @@ void backlight_update_pwm_buffers(void)
|
||||||
{
|
{
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B)
|
||||||
IS31FL3218_update_pwm_buffers();
|
IS31FL3218_update_pwm_buffers();
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 );
|
||||||
|
IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 );
|
||||||
#elif defined(RGB_BACKLIGHT_HS60)
|
#elif defined(RGB_BACKLIGHT_HS60)
|
||||||
IS31FL3733_update_pwm_buffers( ISSI_ADDR_1, 0 );
|
IS31FL3733_update_pwm_buffers( ISSI_ADDR_1, 0 );
|
||||||
IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 );
|
IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 );
|
||||||
|
@ -1856,17 +1999,24 @@ void backlight_effect_cycle_radial2(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C)
|
||||||
void backlight_effect_custom_colors(void)
|
void backlight_effect_custom_colors(void)
|
||||||
{
|
{
|
||||||
RGB rgb;
|
RGB rgb;
|
||||||
for ( uint8_t i = 0; i < 6; i++ )
|
for ( uint8_t i = 0; i < RGB_BACKLIGHT_CUSTOM_COLORS_COUNT; i++ )
|
||||||
{
|
{
|
||||||
HSV hsv = { .h = g_config.custom_color[i].h, .s = g_config.custom_color[i].s, .v = g_config.brightness };
|
HSV hsv = { .h = g_config.custom_color[i].h, .s = g_config.custom_color[i].s, .v = g_config.brightness };
|
||||||
rgb = hsv_to_rgb( hsv );
|
rgb = hsv_to_rgb( hsv );
|
||||||
uint8_t led;
|
uint8_t led;
|
||||||
map_row_column_to_led( 0, i, &led );
|
map_row_column_to_led( 0, i, &led );
|
||||||
backlight_set_color( led, rgb.r, rgb.g, rgb.b );
|
backlight_set_color( led, rgb.r, rgb.g, rgb.b );
|
||||||
|
#if defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
// Set stab LEDs with the same color
|
||||||
|
if ( led == 10 ) {
|
||||||
|
backlight_set_color( 9, rgb.r, rgb.g, rgb.b );
|
||||||
|
backlight_set_color( 11, rgb.r, rgb.g, rgb.b );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1890,7 +2040,7 @@ void backlight_effect_indicators_set_colors( uint8_t index, HS color )
|
||||||
#if defined(RGB_BACKLIGHT_ZEAL65)
|
#if defined(RGB_BACKLIGHT_ZEAL65)
|
||||||
backlight_set_color( 36+7, rgb.r, rgb.g, rgb.b ); // LC7
|
backlight_set_color( 36+7, rgb.r, rgb.g, rgb.b ); // LC7
|
||||||
backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14
|
backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14
|
||||||
#elif defined(RGB_BACKLIGHT_KOYU)
|
#elif defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX)
|
||||||
backlight_set_color( 36+6, rgb.r, rgb.g, rgb.b ); // LC6
|
backlight_set_color( 36+6, rgb.r, rgb.g, rgb.b ); // LC6
|
||||||
backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14
|
backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14
|
||||||
#elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A)
|
#elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A)
|
||||||
|
@ -2008,7 +2158,7 @@ static void gpt_backlight_timer_task(GPTDriver *gptp)
|
||||||
backlight_effect_solid_color();
|
backlight_effect_solid_color();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C)
|
||||||
backlight_effect_custom_colors();
|
backlight_effect_custom_colors();
|
||||||
#else
|
#else
|
||||||
backlight_effect_alphas_mods();
|
backlight_effect_alphas_mods();
|
||||||
|
@ -2045,7 +2195,7 @@ static void gpt_backlight_timer_task(GPTDriver *gptp)
|
||||||
|
|
||||||
if ( ! suspend_backlight )
|
if ( ! suspend_backlight )
|
||||||
{
|
{
|
||||||
#if !defined(RGB_BACKLIGHT_M6_B)
|
#if !defined(RGB_BACKLIGHT_M6_B) && !defined(RGB_BACKLIGHT_M10_C)
|
||||||
backlight_effect_indicators();
|
backlight_effect_indicators();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -2231,11 +2381,11 @@ void backlight_config_set_value( uint8_t *data )
|
||||||
g_config.alphas_mods[i] = ( *(value_data+i*2) << 8 ) | ( *(value_data+i*2+1) );
|
g_config.alphas_mods[i] = ( *(value_data+i*2) << 8 ) | ( *(value_data+i*2+1) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C)
|
||||||
case id_custom_color:
|
case id_custom_color:
|
||||||
{
|
{
|
||||||
uint8_t index = value_data[0];
|
uint8_t index = value_data[0];
|
||||||
if ( index >= 0 && index <= 6 )
|
if ( index >= 0 && index < RGB_BACKLIGHT_CUSTOM_COLORS_COUNT )
|
||||||
{
|
{
|
||||||
_set_color( &(g_config.custom_color[index]), &(value_data[1]) );
|
_set_color( &(g_config.custom_color[index]), &(value_data[1]) );
|
||||||
}
|
}
|
||||||
|
@ -2368,11 +2518,11 @@ void backlight_config_get_value( uint8_t *data )
|
||||||
*(value_data+i*2+1) = g_config.alphas_mods[i] & 0xFF;
|
*(value_data+i*2+1) = g_config.alphas_mods[i] & 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C)
|
||||||
case id_custom_color:
|
case id_custom_color:
|
||||||
{
|
{
|
||||||
uint8_t index = value_data[0];
|
uint8_t index = value_data[0];
|
||||||
if ( index >= 0 && index <= 6 )
|
if ( index >= 0 && index < RGB_BACKLIGHT_CUSTOM_COLORS_COUNT )
|
||||||
{
|
{
|
||||||
_get_color( &(g_config.custom_color[index]), &(value_data[1]) );
|
_get_color( &(g_config.custom_color[index]), &(value_data[1]) );
|
||||||
}
|
}
|
||||||
|
@ -2459,10 +2609,13 @@ void backlight_init_drivers(void)
|
||||||
IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 );
|
IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 );
|
||||||
IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 );
|
IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 );
|
||||||
#else
|
#else
|
||||||
|
// Init the #1 driver
|
||||||
IS31FL3731_init( ISSI_ADDR_1 );
|
IS31FL3731_init( ISSI_ADDR_1 );
|
||||||
#if !defined(RGB_BACKLIGHT_NEBULA12)
|
// Init the #2 driver (if used)
|
||||||
|
#if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C)
|
||||||
IS31FL3731_init( ISSI_ADDR_2 );
|
IS31FL3731_init( ISSI_ADDR_2 );
|
||||||
#endif
|
#endif
|
||||||
|
// Init the #3 driver (if used)
|
||||||
#if defined(RGB_BACKLIGHT_U80_A)
|
#if defined(RGB_BACKLIGHT_U80_A)
|
||||||
IS31FL3731_init( ISSI_ADDR_3 );
|
IS31FL3731_init( ISSI_ADDR_3 );
|
||||||
#endif
|
#endif
|
||||||
|
@ -2484,6 +2637,15 @@ void backlight_init_drivers(void)
|
||||||
bool enabled = !( ( index == 36+15 ) || // LC15
|
bool enabled = !( ( index == 36+15 ) || // LC15
|
||||||
( index == 54+13 ) || // LD13
|
( index == 54+13 ) || // LD13
|
||||||
( index == 54+17 ) ); // LD17
|
( index == 54+17 ) ); // LD17
|
||||||
|
#elif defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX)
|
||||||
|
bool enabled = !(
|
||||||
|
// LB6 not present on M65-B
|
||||||
|
#if defined(RGB_BACKLIGHT_M65_B)
|
||||||
|
( index == 18+6 ) || // LB6
|
||||||
|
#endif
|
||||||
|
// LC15 LD13 not present on M65-B, M65-BX
|
||||||
|
( index == 36+15 ) || // LC15
|
||||||
|
( index == 54+13 ) ); // LD13
|
||||||
#elif defined(RGB_BACKLIGHT_M60_A)
|
#elif defined(RGB_BACKLIGHT_M60_A)
|
||||||
bool enabled = !(
|
bool enabled = !(
|
||||||
// LB6 LB7 LB8 LB15 LB16 LB17 not present on M60-A
|
// LB6 LB7 LB8 LB15 LB16 LB17 not present on M60-A
|
||||||
|
@ -2550,19 +2712,50 @@ void backlight_init_drivers(void)
|
||||||
( index == 47+15 && g_config.use_7u_spacebar ) ); //LD15
|
( index == 47+15 && g_config.use_7u_spacebar ) ); //LD15
|
||||||
#elif defined(RGB_BACKLIGHT_NEBULA12)
|
#elif defined(RGB_BACKLIGHT_NEBULA12)
|
||||||
bool enabled = !( ( index >= 9-1 && index <= 12-1 ) ); // A9-A12
|
bool enabled = !( ( index >= 9-1 && index <= 12-1 ) ); // A9-A12
|
||||||
|
#elif defined(RGB_BACKLIGHT_M50_A)
|
||||||
|
bool enabled = !(
|
||||||
|
// LA0, LA7, LA8, LA17
|
||||||
|
( index == 0+0 ) ||
|
||||||
|
( index == 0+7 ) ||
|
||||||
|
( index == 0+8 ) ||
|
||||||
|
( index == 0+17 ) ||
|
||||||
|
|
||||||
|
// LB0, LB7, LB8, LB15, LB16, LB17,
|
||||||
|
( index == 18+0 ) ||
|
||||||
|
( index == 18+7 ) ||
|
||||||
|
( index == 18+8 ) ||
|
||||||
|
( index == 18+15 ) ||
|
||||||
|
( index == 18+16 ) ||
|
||||||
|
( index == 18+17 ) ||
|
||||||
|
// LC0, LC8, LC16, LC17
|
||||||
|
( index == 36+0 ) ||
|
||||||
|
( index == 36+8 ) ||
|
||||||
|
( index == 36+16 ) ||
|
||||||
|
( index == 36+17 ) ||
|
||||||
|
// LD0, LD7, LD8, LD9, LD15, LD16, LD17
|
||||||
|
( index == 54+0 ) ||
|
||||||
|
( index == 54+7 ) ||
|
||||||
|
( index == 54+8 ) ||
|
||||||
|
( index == 54+9 ) ||
|
||||||
|
( index == 54+15 ) ||
|
||||||
|
( index == 54+16 ) ||
|
||||||
|
( index == 54+17 ) );
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
bool enabled = true;
|
||||||
#endif
|
#endif
|
||||||
// This only caches it for later
|
// This only caches it for later
|
||||||
IS31FL3731_set_led_control_register( index, enabled, enabled, enabled );
|
IS31FL3731_set_led_control_register( index, enabled, enabled, enabled );
|
||||||
}
|
}
|
||||||
// This actually updates the LED drivers
|
// This actually updates the LED drivers
|
||||||
|
// TODO: refactor this to use DRIVER_COUNT
|
||||||
IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 );
|
IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 );
|
||||||
#if !defined(RGB_BACKLIGHT_NEBULA12)
|
#if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C)
|
||||||
IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 );
|
IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 );
|
||||||
#endif
|
#endif
|
||||||
#if defined(RGB_BACKLIGHT_U80_A)
|
#if defined(RGB_BACKLIGHT_U80_A)
|
||||||
IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 );
|
IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 );
|
||||||
#endif
|
#endif
|
||||||
#endif // !defined(RGB_BACKLIGHT_M6_B)
|
#endif
|
||||||
|
|
||||||
// TODO: put the 1 second startup delay here?
|
// TODO: put the 1 second startup delay here?
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,12 @@ typedef struct
|
||||||
uint8_t index;
|
uint8_t index;
|
||||||
} backlight_config_indicator;
|
} backlight_config_indicator;
|
||||||
|
|
||||||
|
#if defined(RGB_BACKLIGHT_M6_B)
|
||||||
|
#define RGB_BACKLIGHT_CUSTOM_COLORS_COUNT 6
|
||||||
|
#elif defined(RGB_BACKLIGHT_M10_C)
|
||||||
|
#define RGB_BACKLIGHT_CUSTOM_COLORS_COUNT 10
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
bool use_split_backspace:1; // |
|
bool use_split_backspace:1; // |
|
||||||
|
@ -58,10 +64,10 @@ typedef struct
|
||||||
backlight_config_indicator layer_2_indicator; // 3 bytes
|
backlight_config_indicator layer_2_indicator; // 3 bytes
|
||||||
backlight_config_indicator layer_3_indicator; // 3 bytes
|
backlight_config_indicator layer_3_indicator; // 3 bytes
|
||||||
uint16_t alphas_mods[5]; // 10 bytes
|
uint16_t alphas_mods[5]; // 10 bytes
|
||||||
#if defined(RGB_BACKLIGHT_M6_B)
|
#if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C)
|
||||||
HS custom_color[6]; // 12 bytes
|
HS custom_color[RGB_BACKLIGHT_CUSTOM_COLORS_COUNT]; // 12 or 20 bytes
|
||||||
#endif
|
#endif
|
||||||
} backlight_config; // = 31 bytes (M6-B = 43 bytes)
|
} backlight_config; // = 31 bytes (M6-B = 43 bytes, M10-C 51 bytes)
|
||||||
|
|
||||||
void backlight_config_load(void);
|
void backlight_config_load(void);
|
||||||
void backlight_config_save(void);
|
void backlight_config_save(void);
|
||||||
|
|
Loading…
Reference in a new issue