diff options
| author | Wilba <Jason.S.Williams@gmail.com> | 2020-08-18 16:44:35 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-17 23:44:35 -0700 |
| commit | 70acf36d1641cad1337eb714ae56145d949ff423 (patch) | |
| tree | bbc0788982dca0c017622b47e7252898d4dd62a5 /keyboards/wilba_tech | |
| parent | c59a81b792ffbe0629183cf1e84f869e9a8d5471 (diff) | |
| download | qmk_firmware-70acf36d1641cad1337eb714ae56145d949ff423.tar.gz qmk_firmware-70acf36d1641cad1337eb714ae56145d949ff423.zip | |
[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
Diffstat (limited to 'keyboards/wilba_tech')
40 files changed, 1595 insertions, 31 deletions
diff --git a/keyboards/wilba_tech/rama_works_m10_b/config.h b/keyboards/wilba_tech/rama_works_m10_b/config.h index d2e67e0c9..1d380df37 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/config.h +++ b/keyboards/wilba_tech/rama_works_m10_b/config.h | |||
| @@ -179,3 +179,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 179 | 179 | ||
| 180 | /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | 180 | /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ |
| 181 | //#define MIDI_TONE_KEYCODE_OCTAVES 1 | 181 | //#define MIDI_TONE_KEYCODE_OCTAVES 1 |
| 182 | |||
| 183 | #define DYNAMIC_KEYMAP_LAYER_COUNT 10 | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_b/keymaps/via/keymap.c b/keyboards/wilba_tech/rama_works_m10_b/keymaps/via/keymap.c index 8c97a5cfb..7a1dee39d 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/keymaps/via/keymap.c +++ b/keyboards/wilba_tech/rama_works_m10_b/keymaps/via/keymap.c | |||
| @@ -1,13 +1,14 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 2 | 2 | ||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 4 | 4 | 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 ), | |
| 5 | LAYOUT( | 5 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 6 | 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 ), | 6 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 7 | LAYOUT( | 7 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 8 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | 8 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 9 | LAYOUT( | 9 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 10 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | 10 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 11 | LAYOUT( | 11 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 12 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) | 12 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 13 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) | ||
| 13 | }; | 14 | }; |
diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h new file mode 100644 index 000000000..08ae1d081 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h | |||
| @@ -0,0 +1,120 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | /* USB Device descriptor parameter */ | ||
| 21 | #define VENDOR_ID 0x5241 // "RA" | ||
| 22 | #define PRODUCT_ID 0x00AC // 10-C | ||
| 23 | #define DEVICE_VER 0x0001 | ||
| 24 | #define MANUFACTURER RAMA WORKS | ||
| 25 | #define PRODUCT RAMA WORKS M10-C | ||
| 26 | |||
| 27 | /* key matrix size */ | ||
| 28 | #define MATRIX_ROWS 1 | ||
| 29 | #define MATRIX_COLS 10 | ||
| 30 | |||
| 31 | /* | ||
| 32 | * Keyboard Matrix Assignments | ||
| 33 | * | ||
| 34 | * Change this to how you wired your keyboard | ||
| 35 | * COLS: AVR pins used for columns, left to right | ||
| 36 | * ROWS: AVR pins used for rows, top to bottom | ||
| 37 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 38 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 39 | * | ||
| 40 | */ | ||
| 41 | #define MATRIX_ROW_PINS { E6 } | ||
| 42 | #define MATRIX_COL_PINS { D7, B6, F0, D6, B5, F1, D4, B4, F4, F5 } | ||
| 43 | #define UNUSED_PINS | ||
| 44 | |||
| 45 | /* COL2ROW, ROW2COL*/ | ||
| 46 | #define DIODE_DIRECTION COL2ROW | ||
| 47 | |||
| 48 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 49 | #define DEBOUNCE 5 | ||
| 50 | |||
| 51 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 52 | #define LOCKING_SUPPORT_ENABLE | ||
| 53 | /* Locking resynchronize hack */ | ||
| 54 | #define LOCKING_RESYNC_ENABLE | ||
| 55 | |||
| 56 | /* disable these deprecated features by default */ | ||
| 57 | #define NO_ACTION_MACRO | ||
| 58 | #define NO_ACTION_FUNCTION | ||
| 59 | |||
| 60 | // IS31FL3731 driver | ||
| 61 | #define DRIVER_COUNT 1 | ||
| 62 | #define DRIVER_LED_TOTAL 12 | ||
| 63 | |||
| 64 | // Enable WT RGB backlight | ||
| 65 | #define RGB_BACKLIGHT_ENABLED 1 | ||
| 66 | |||
| 67 | // This conditionally compiles the backlight code for M10-C specifics | ||
| 68 | #define RGB_BACKLIGHT_M10_C | ||
| 69 | |||
| 70 | // enable/disable LEDs based on layout | ||
| 71 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 | ||
| 72 | #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 | ||
| 73 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 | ||
| 74 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 | ||
| 75 | #define RGB_BACKLIGHT_USE_ISO_ENTER 0 | ||
| 76 | #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 | ||
| 77 | |||
| 78 | // disable backlight when USB suspended (PC sleep/hibernate/shutdown) | ||
| 79 | #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 | ||
| 80 | |||
| 81 | // disable backlight after timeout in minutes, 0 = no timeout | ||
| 82 | #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 | ||
| 83 | |||
| 84 | // the default brightness | ||
| 85 | #define RGB_BACKLIGHT_BRIGHTNESS 255 | ||
| 86 | |||
| 87 | // the default effect (RGB test) | ||
| 88 | #define RGB_BACKLIGHT_EFFECT 255 | ||
| 89 | |||
| 90 | // the default effect speed (0-3) | ||
| 91 | #define RGB_BACKLIGHT_EFFECT_SPEED 0 | ||
| 92 | |||
| 93 | // the default color1 and color2 | ||
| 94 | #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } | ||
| 95 | #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } | ||
| 96 | |||
| 97 | // These define which keys in the matrix are alphas/mods | ||
| 98 | // Used for backlight effects so colors are different for | ||
| 99 | // alphas vs. mods | ||
| 100 | // Each value is for a row, bit 0 is column 0 | ||
| 101 | // Alpha=0 Mod=1 | ||
| 102 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000000 | ||
| 103 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000000 | ||
| 104 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0000000000000000 | ||
| 105 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0000000000000000 | ||
| 106 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0000000000000000 | ||
| 107 | |||
| 108 | #define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 109 | #define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 110 | #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 111 | #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 112 | |||
| 113 | #define DYNAMIC_KEYMAP_LAYER_COUNT 10 | ||
| 114 | |||
| 115 | // Backlight config starts after VIA's EEPROM usage, | ||
| 116 | // dynamic keymaps start after this. | ||
| 117 | #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 51 | ||
| 118 | |||
| 119 | // VIA lighting is handled by the keyboard-level code | ||
| 120 | #define VIA_CUSTOM_LIGHTING_ENABLE | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/info.json b/keyboards/wilba_tech/rama_works_m10_c/info.json new file mode 100644 index 000000000..95439938e --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/info.json | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "RAMA WORKS M10-C", | ||
| 3 | "url": "http://rama.works", | ||
| 4 | "maintainer": "Wilba", | ||
| 5 | "width": 3, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT": { | ||
| 9 | "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}] | ||
| 10 | } | ||
| 11 | } | ||
| 12 | } \ No newline at end of file | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m10_c/keymaps/default/keymap.c new file mode 100644 index 000000000..24536df36 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/keymaps/default/keymap.c | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | 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 ), | ||
| 20 | /* | ||
| 21 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 22 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 23 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) | ||
| 24 | */ | ||
| 25 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/keymaps/via/keymap.c b/keyboards/wilba_tech/rama_works_m10_c/keymaps/via/keymap.c new file mode 100644 index 000000000..91b08e8c2 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/keymaps/via/keymap.c | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | 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 ), | ||
| 20 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 21 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 22 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 23 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 24 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 25 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 26 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 27 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | ||
| 28 | LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) | ||
| 29 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/keymaps/via/rules.mk b/keyboards/wilba_tech/rama_works_m10_c/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c new file mode 100644 index 000000000..17fa921db --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #ifndef RGB_BACKLIGHT_M10_C | ||
| 17 | #error RGB_BACKLIGHT_M10_C not defined | ||
| 18 | #endif \ No newline at end of file | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.h b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.h new file mode 100644 index 000000000..382cef1a6 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "quantum.h" | ||
| 19 | #include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" | ||
| 20 | #include "via.h" | ||
| 21 | |||
| 22 | |||
| 23 | /* This is a shortcut to help you visually see your layout. | ||
| 24 | * | ||
| 25 | * The first section contains all of the arguments representing the physical | ||
| 26 | * layout of the board and position of the keys. | ||
| 27 | * | ||
| 28 | * The second converts the arguments into a two-dimensional array which | ||
| 29 | * represents the switch matrix. | ||
| 30 | */ | ||
| 31 | #define LAYOUT( \ | ||
| 32 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 \ | ||
| 33 | ) { \ | ||
| 34 | {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09}, \ | ||
| 35 | } | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/readme.md b/keyboards/wilba_tech/rama_works_m10_c/readme.md new file mode 100644 index 000000000..be7e22573 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/readme.md | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | # RAMA WORKS M10-C | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | The RAMA WORKS M10-C is an ortholinear keyboard made by Rama Works. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) | ||
| 8 | * Hardware Supported: RAMA WORKS M10-C PCB | ||
| 9 | * Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make wilba_tech/rama_works_m10_c:default | ||
| 14 | |||
| 15 | Flashing example for this keyboard: | ||
| 16 | |||
| 17 | make wilba_tech/rama_works_m10_c:default:flash | ||
| 18 | |||
| 19 | 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). \ No newline at end of file | ||
diff --git a/keyboards/wilba_tech/rama_works_m10_c/rules.mk b/keyboards/wilba_tech/rama_works_m10_c/rules.mk new file mode 100644 index 000000000..9f4cc186e --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m10_c/rules.mk | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | CIE1931_CURVE = yes | ||
| 24 | |||
| 25 | # Do not put the microcontroller into power saving mode | ||
| 26 | # when we get USB suspend event. We want it to keep updating | ||
| 27 | # backlight effects. | ||
| 28 | OPT_DEFS += -DNO_SUSPEND_POWER_DOWN | ||
| 29 | |||
| 30 | # project specific files | ||
| 31 | SRC = keyboards/wilba_tech/wt_main.c \ | ||
| 32 | keyboards/wilba_tech/wt_rgb_backlight.c \ | ||
| 33 | quantum/color.c \ | ||
| 34 | drivers/issi/is31fl3731.c \ | ||
| 35 | drivers/avr/i2c_master.c | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h new file mode 100644 index 000000000..c16afd790 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/config.h | |||
| @@ -0,0 +1,118 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | /* USB Device descriptor parameter */ | ||
| 21 | #define VENDOR_ID 0x5241 // "RA" | ||
| 22 | #define PRODUCT_ID 0x050A // 50-A | ||
| 23 | #define DEVICE_VER 0x0001 | ||
| 24 | #define MANUFACTURER RAMA WORKS | ||
| 25 | #define PRODUCT RAMA WORKS M50-A | ||
| 26 | |||
| 27 | /* key matrix size */ | ||
| 28 | #define MATRIX_ROWS 4 | ||
| 29 | #define MATRIX_COLS 13 | ||
| 30 | |||
| 31 | /* | ||
| 32 | * Keyboard Matrix Assignments | ||
| 33 | * | ||
| 34 | * Change this to how you wired your keyboard | ||
| 35 | * COLS: AVR pins used for columns, left to right | ||
| 36 | * ROWS: AVR pins used for rows, top to bottom | ||
| 37 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 38 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 39 | * | ||
| 40 | */ | ||
| 41 | #define MATRIX_ROW_PINS { F0, F1, F5, F6 } | ||
| 42 | #define MATRIX_COL_PINS { F4, B5, C7, C6, B6, B2, B3, B1, B4, D7, D6, D4, D3 } | ||
| 43 | #define UNUSED_PINS | ||
| 44 | |||
| 45 | /* COL2ROW, ROW2COL */ | ||
| 46 | #define DIODE_DIRECTION COL2ROW | ||
| 47 | |||
| 48 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 49 | #define DEBOUNCE 5 | ||
| 50 | |||
| 51 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 52 | #define LOCKING_SUPPORT_ENABLE | ||
| 53 | /* Locking resynchronize hack */ | ||
| 54 | #define LOCKING_RESYNC_ENABLE | ||
| 55 | |||
| 56 | /* disable these deprecated features by default */ | ||
| 57 | #define NO_ACTION_MACRO | ||
| 58 | #define NO_ACTION_FUNCTION | ||
| 59 | |||
| 60 | // IS31FL3731 driver | ||
| 61 | #define DRIVER_COUNT 2 | ||
| 62 | #define DRIVER_LED_TOTAL 72 | ||
| 63 | |||
| 64 | // Enable WT RGB backlight | ||
| 65 | #define RGB_BACKLIGHT_ENABLED 1 | ||
| 66 | |||
| 67 | // This conditionally compiles the backlight code for M50-A specifics | ||
| 68 | #define RGB_BACKLIGHT_M50_A | ||
| 69 | |||
| 70 | // enable/disable LEDs based on layout | ||
| 71 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 | ||
| 72 | #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 | ||
| 73 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 | ||
| 74 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 | ||
| 75 | #define RGB_BACKLIGHT_USE_ISO_ENTER 0 | ||
| 76 | #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 | ||
| 77 | |||
| 78 | // disable backlight when USB suspended (PC sleep/hibernate/shutdown) | ||
| 79 | #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 | ||
| 80 | |||
| 81 | // disable backlight after timeout in minutes, 0 = no timeout | ||
| 82 | #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 | ||
| 83 | |||
| 84 | // the default brightness | ||
| 85 | #define RGB_BACKLIGHT_BRIGHTNESS 255 | ||
| 86 | |||
| 87 | // the default effect (RGB test) | ||
| 88 | #define RGB_BACKLIGHT_EFFECT 255 | ||
| 89 | |||
| 90 | // the default effect speed (0-3) | ||
| 91 | #define RGB_BACKLIGHT_EFFECT_SPEED 0 | ||
| 92 | |||
| 93 | // the default color1 and color2 | ||
| 94 | #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } | ||
| 95 | #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } | ||
| 96 | |||
| 97 | // These define which keys in the matrix are alphas/mods | ||
| 98 | // Used for backlight effects so colors are different for | ||
| 99 | // alphas vs. mods | ||
| 100 | // Each value is for a row, bit 0 is column 0 | ||
| 101 | // Alpha=0 Mod=1 | ||
| 102 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0001000000000011 | ||
| 103 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0001000000000011 | ||
| 104 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0001000000000011 | ||
| 105 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0001111111111111 | ||
| 106 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0000000000000000 | ||
| 107 | |||
| 108 | #define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 109 | #define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 110 | #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 111 | #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 112 | |||
| 113 | // Backlight config starts after VIA's EEPROM usage, | ||
| 114 | // dynamic keymaps start after this. | ||
| 115 | #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 | ||
| 116 | |||
| 117 | // VIA lighting is handled by the keyboard-level code | ||
| 118 | #define VIA_CUSTOM_LIGHTING_ENABLE | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/info.json b/keyboards/wilba_tech/rama_works_m50_a/info.json new file mode 100644 index 000000000..5b8031c7f --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/info.json | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "RAMA WORKS M50-A", | ||
| 3 | "url": "http://rama.works", | ||
| 4 | "maintainer": "Wilba", | ||
| 5 | "width": 13.25, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT": { | ||
| 9 | "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}] | ||
| 10 | } | ||
| 11 | } | ||
| 12 | } \ No newline at end of file | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m50_a/keymaps/default/keymap.c new file mode 100644 index 000000000..491ac55b6 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/keymaps/default/keymap.c | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | |||
| 20 | /* Qwerty | ||
| 21 | * ,------------------------------------------------------------------------------------------. | ||
| 22 | * | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 23 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 24 | * | | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
| 25 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 26 | * | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 27 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 28 | * | | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 29 | * `------------------------------------------------------------------------------------------' | ||
| 30 | */ | ||
| 31 | [0] = LAYOUT( | ||
| 32 | _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
| 33 | _______, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
| 34 | _______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, | ||
| 35 | _______, _______, KC_LCTL, KC_LALT, KC_LGUI, FN_MO13, KC_SPC, KC_SPC, FN_MO23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT | ||
| 36 | ), | ||
| 37 | |||
| 38 | |||
| 39 | /* Lower | ||
| 40 | * ,------------------------------------------------------------------------------------------. | ||
| 41 | * | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 42 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 43 | * | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 44 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 45 | * | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
| 46 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 47 | * | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 48 | * `------------------------------------------------------------------------------------------' | ||
| 49 | */ | ||
| 50 | [1] = LAYOUT( | ||
| 51 | _______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, | ||
| 52 | _______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
| 53 | _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, | ||
| 54 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 55 | ), | ||
| 56 | |||
| 57 | /* Raise | ||
| 58 | * ,------------------------------------------------------------------------------------------. | ||
| 59 | * | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 60 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 61 | * | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 62 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 63 | * | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | | ||
| 64 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 65 | * | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 66 | * `------------------------------------------------------------------------------------------' | ||
| 67 | */ | ||
| 68 | [2] = LAYOUT( | ||
| 69 | _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
| 70 | _______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 71 | _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
| 72 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 73 | ), | ||
| 74 | |||
| 75 | /* Adjust (Lower + Raise) | ||
| 76 | * ,------------------------------------------------------------------------------------------. | ||
| 77 | * | | | | | | | | | | | | | | | ||
| 78 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 79 | * | | | | | | | | | | | | | | | ||
| 80 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 81 | * | | | | | | | | | | | | | | | ||
| 82 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 83 | * | | | | | | | | | | | | | | ||
| 84 | * `------------------------------------------------------------------------------------------' | ||
| 85 | */ | ||
| 86 | /* | ||
| 87 | [3] = LAYOUT( | ||
| 88 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 89 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 90 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 91 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 92 | ) | ||
| 93 | */ | ||
| 94 | |||
| 95 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/keymaps/via/keymap.c b/keyboards/wilba_tech/rama_works_m50_a/keymaps/via/keymap.c new file mode 100644 index 000000000..37f9bc94d --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/keymaps/via/keymap.c | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | |||
| 20 | /* Qwerty | ||
| 21 | * ,------------------------------------------------------------------------------------------. | ||
| 22 | * | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 23 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 24 | * | | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
| 25 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 26 | * | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 27 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 28 | * | | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 29 | * `------------------------------------------------------------------------------------------' | ||
| 30 | */ | ||
| 31 | [0] = LAYOUT( | ||
| 32 | _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
| 33 | _______, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
| 34 | _______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, | ||
| 35 | _______, _______, KC_LCTL, KC_LALT, KC_LGUI, FN_MO13, KC_SPC, KC_SPC, FN_MO23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT | ||
| 36 | ), | ||
| 37 | |||
| 38 | |||
| 39 | /* Lower | ||
| 40 | * ,------------------------------------------------------------------------------------------. | ||
| 41 | * | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 42 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 43 | * | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 44 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 45 | * | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
| 46 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 47 | * | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 48 | * `------------------------------------------------------------------------------------------' | ||
| 49 | */ | ||
| 50 | [1] = LAYOUT( | ||
| 51 | _______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, | ||
| 52 | _______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
| 53 | _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, | ||
| 54 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 55 | ), | ||
| 56 | |||
| 57 | /* Raise | ||
| 58 | * ,------------------------------------------------------------------------------------------. | ||
| 59 | * | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 60 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 61 | * | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 62 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 63 | * | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | | ||
| 64 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 65 | * | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 66 | * `------------------------------------------------------------------------------------------' | ||
| 67 | */ | ||
| 68 | [2] = LAYOUT( | ||
| 69 | _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
| 70 | _______, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 71 | _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
| 72 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 73 | ), | ||
| 74 | |||
| 75 | /* Adjust (Lower + Raise) | ||
| 76 | * ,------------------------------------------------------------------------------------------. | ||
| 77 | * | | | | | | | | | | | | | | | ||
| 78 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 79 | * | | | | | | | | | | | | | | | ||
| 80 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 81 | * | | | | | | | | | | | | | | | ||
| 82 | * |------+------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 83 | * | | | | | | | | | | | | | | ||
| 84 | * `------------------------------------------------------------------------------------------' | ||
| 85 | */ | ||
| 86 | [3] = LAYOUT( | ||
| 87 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 88 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 89 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 90 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 91 | ) | ||
| 92 | |||
| 93 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/keymaps/via/rules.mk b/keyboards/wilba_tech/rama_works_m50_a/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c new file mode 100644 index 000000000..ee5ebf93f --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #ifndef RGB_BACKLIGHT_M50_A | ||
| 17 | #error RGB_BACKLIGHT_M50_A not defined | ||
| 18 | #endif | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.h b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.h new file mode 100644 index 000000000..bd92ea3cf --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "quantum.h" | ||
| 19 | #include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" | ||
| 20 | #include "via.h" | ||
| 21 | |||
| 22 | /* This is a shortcut to help you visually see your layout. | ||
| 23 | * | ||
| 24 | * The first section contains all of the arguments representing the physical | ||
| 25 | * layout of the board and position of the keys. | ||
| 26 | * | ||
| 27 | * The second converts the arguments into a two-dimensional array which | ||
| 28 | * represents the switch matrix. | ||
| 29 | */ | ||
| 30 | #define LAYOUT( \ | ||
| 31 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ | ||
| 32 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ | ||
| 33 | K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ | ||
| 34 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \ | ||
| 35 | ) { \ | ||
| 36 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | ||
| 37 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ | ||
| 38 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ | ||
| 39 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C } \ | ||
| 40 | } | ||
| 41 | |||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/readme.md b/keyboards/wilba_tech/rama_works_m50_a/readme.md new file mode 100644 index 000000000..4842bb70f --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/readme.md | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | # RAMA WORKS M50-A | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | The RAMA WORKS M50-A is an ortholinear keyboard made by Rama Works. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) | ||
| 8 | * Hardware Supported: RAMA WORKS M50-A PCB | ||
| 9 | * Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make wilba_tech/rama_works_m50_a:default | ||
| 14 | |||
| 15 | Flashing example for this keyboard: | ||
| 16 | |||
| 17 | make wilba_tech/rama_works_m50_a:default:flash | ||
| 18 | |||
| 19 | 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). | ||
diff --git a/keyboards/wilba_tech/rama_works_m50_a/rules.mk b/keyboards/wilba_tech/rama_works_m50_a/rules.mk new file mode 100644 index 000000000..9f4cc186e --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m50_a/rules.mk | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | CIE1931_CURVE = yes | ||
| 24 | |||
| 25 | # Do not put the microcontroller into power saving mode | ||
| 26 | # when we get USB suspend event. We want it to keep updating | ||
| 27 | # backlight effects. | ||
| 28 | OPT_DEFS += -DNO_SUSPEND_POWER_DOWN | ||
| 29 | |||
| 30 | # project specific files | ||
| 31 | SRC = keyboards/wilba_tech/wt_main.c \ | ||
| 32 | keyboards/wilba_tech/wt_rgb_backlight.c \ | ||
| 33 | quantum/color.c \ | ||
| 34 | drivers/issi/is31fl3731.c \ | ||
| 35 | drivers/avr/i2c_master.c | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h new file mode 100644 index 000000000..550617e58 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/config.h | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | /* USB Device descriptor parameter */ | ||
| 21 | #define VENDOR_ID 0x5241 // "RA" | ||
| 22 | #define PRODUCT_ID 0x065B // 65-B | ||
| 23 | #define DEVICE_VER 0x0001 | ||
| 24 | #define MANUFACTURER RAMA WORKS | ||
| 25 | #define PRODUCT RAMA WORKS M65-B | ||
| 26 | |||
| 27 | /* key matrix size */ | ||
| 28 | #define MATRIX_ROWS 5 | ||
| 29 | #define MATRIX_COLS 15 | ||
| 30 | |||
| 31 | /* | ||
| 32 | * Keyboard Matrix Assignments | ||
| 33 | * | ||
| 34 | * Change this to how you wired your keyboard | ||
| 35 | * COLS: AVR pins used for columns, left to right | ||
| 36 | * ROWS: AVR pins used for rows, top to bottom | ||
| 37 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 38 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 39 | * | ||
| 40 | */ | ||
| 41 | #define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 } | ||
| 42 | #define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 } | ||
| 43 | #define UNUSED_PINS | ||
| 44 | |||
| 45 | /* COL2ROW, ROW2COL */ | ||
| 46 | #define DIODE_DIRECTION COL2ROW | ||
| 47 | |||
| 48 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 49 | #define DEBOUNCE 5 | ||
| 50 | |||
| 51 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 52 | #define LOCKING_SUPPORT_ENABLE | ||
| 53 | /* Locking resynchronize hack */ | ||
| 54 | #define LOCKING_RESYNC_ENABLE | ||
| 55 | |||
| 56 | // IS31FL3731 driver | ||
| 57 | #define DRIVER_COUNT 2 | ||
| 58 | #define DRIVER_LED_TOTAL 72 | ||
| 59 | |||
| 60 | // Enable WT RGB backlight | ||
| 61 | #define RGB_BACKLIGHT_ENABLED 1 | ||
| 62 | |||
| 63 | // This conditionally compiles the backlight code for M65-B specifics | ||
| 64 | #define RGB_BACKLIGHT_M65_B | ||
| 65 | |||
| 66 | // enable/disable LEDs based on layout | ||
| 67 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1 | ||
| 68 | #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 | ||
| 69 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 | ||
| 70 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 1 | ||
| 71 | #define RGB_BACKLIGHT_USE_ISO_ENTER 0 | ||
| 72 | #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 | ||
| 73 | |||
| 74 | // disable backlight when USB suspended (PC sleep/hibernate/shutdown) | ||
| 75 | #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 | ||
| 76 | |||
| 77 | // disable backlight after timeout in minutes, 0 = no timeout | ||
| 78 | #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 | ||
| 79 | |||
| 80 | // the default brightness | ||
| 81 | #define RGB_BACKLIGHT_BRIGHTNESS 255 | ||
| 82 | |||
| 83 | // the default effect (RGB test) | ||
| 84 | #define RGB_BACKLIGHT_EFFECT 255 | ||
| 85 | |||
| 86 | // the default effect speed (0-3) | ||
| 87 | #define RGB_BACKLIGHT_EFFECT_SPEED 0 | ||
| 88 | |||
| 89 | // the default color1 and color2 | ||
| 90 | #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } | ||
| 91 | #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } | ||
| 92 | |||
| 93 | // These define which keys in the matrix are alphas/mods | ||
| 94 | // Used for backlight effects so colors are different for | ||
| 95 | // alphas vs. mods | ||
| 96 | // Each value is for a row, bit 0 is column 0 | ||
| 97 | // Alpha=0 Mod=1 | ||
| 98 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001 | ||
| 99 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0110000000000001 | ||
| 100 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0111000000000001 | ||
| 101 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001 | ||
| 102 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0111100000000111 | ||
| 103 | |||
| 104 | #define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 105 | #define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 106 | #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 107 | #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 108 | |||
| 109 | // Backlight config starts after VIA's EEPROM usage, | ||
| 110 | // dynamic keymaps start after this. | ||
| 111 | #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 | ||
| 112 | |||
| 113 | // VIA lighting is handled by the keyboard-level code | ||
| 114 | #define VIA_CUSTOM_LIGHTING_ENABLE | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/info.json b/keyboards/wilba_tech/rama_works_m65_b/info.json new file mode 100644 index 000000000..fd712fafe --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/info.json | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "RAMA WORKS M65-B", | ||
| 3 | "url": "http://rama.works", | ||
| 4 | "maintainer": "Wilba", | ||
| 5 | "width": 16, | ||
| 6 | "height": 5, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_all": { | ||
| 9 | "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}] | ||
| 10 | } | ||
| 11 | } | ||
| 12 | } \ No newline at end of file | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m65_b/keymaps/default/keymap.c new file mode 100644 index 000000000..6af46ab13 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/keymaps/default/keymap.c | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 4 | |||
| 5 | // Default layer | ||
| 6 | [0] = LAYOUT_all( | ||
| 7 | 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, | ||
| 8 | 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, | ||
| 9 | 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, | ||
| 10 | 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, | ||
| 11 | MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT), | ||
| 12 | |||
| 13 | // Fn1 Layer | ||
| 14 | [1] = LAYOUT_all( | ||
| 15 | 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, | ||
| 16 | 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, | ||
| 17 | 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, | ||
| 18 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 19 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 20 | |||
| 21 | // Fn2 Layer | ||
| 22 | [2] = LAYOUT_all( | ||
| 23 | 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, | ||
| 24 | 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, | ||
| 25 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 26 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 27 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 28 | |||
| 29 | // Fn3 Layer | ||
| 30 | /* | ||
| 31 | [3] = LAYOUT_all( | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, 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 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 37 | */ | ||
| 38 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/keymaps/via/keymap.c b/keyboards/wilba_tech/rama_works_m65_b/keymaps/via/keymap.c new file mode 100644 index 000000000..f6bc94fbd --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/keymaps/via/keymap.c | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 4 | |||
| 5 | // Default layer | ||
| 6 | [0] = LAYOUT_all( | ||
| 7 | 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, | ||
| 8 | 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, | ||
| 9 | 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, | ||
| 10 | 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, | ||
| 11 | MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT), | ||
| 12 | |||
| 13 | // Fn1 Layer | ||
| 14 | [1] = LAYOUT_all( | ||
| 15 | 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, | ||
| 16 | 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, | ||
| 17 | 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, | ||
| 18 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 19 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 20 | |||
| 21 | // Fn2 Layer | ||
| 22 | [2] = LAYOUT_all( | ||
| 23 | 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, | ||
| 24 | 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, | ||
| 25 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 26 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 27 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 28 | |||
| 29 | // Fn3 Layer | ||
| 30 | [3] = LAYOUT_all( | ||
| 31 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 36 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/keymaps/via/rules.mk b/keyboards/wilba_tech/rama_works_m65_b/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c new file mode 100644 index 000000000..62546fbfc --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #ifndef RGB_BACKLIGHT_M65_B | ||
| 17 | #error RGB_BACKLIGHT_M65_B not defined | ||
| 18 | #endif | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.h b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.h new file mode 100644 index 000000000..eb77d5441 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.h | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "quantum.h" | ||
| 20 | #include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" | ||
| 21 | #include "via.h" | ||
| 22 | |||
| 23 | #define ____ KC_NO | ||
| 24 | |||
| 25 | /* This is a shortcut to help you visually see your layout. | ||
| 26 | * | ||
| 27 | * The first section contains all of the arguments representing the physical | ||
| 28 | * layout of the board and position of the keys. | ||
| 29 | * | ||
| 30 | * The second converts the arguments into a two-dimensional array which | ||
| 31 | * represents the switch matrix. | ||
| 32 | */ | ||
| 33 | #define LAYOUT_all( \ | ||
| 34 | K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \ | ||
| 35 | K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
| 36 | K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ | ||
| 37 | K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ | ||
| 38 | K400, K401, K402, K407, K411, K412, K413, K414 \ | ||
| 39 | ) { \ | ||
| 40 | { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
| 41 | { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
| 42 | { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ | ||
| 43 | { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ | ||
| 44 | { K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413, K414 } \ | ||
| 45 | } | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/readme.md b/keyboards/wilba_tech/rama_works_m65_b/readme.md new file mode 100644 index 000000000..320bb594a --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/readme.md | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | # RAMA WORKS M65-B | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | The RAMA WORKS M65-B is a 65% keyboard made by Rama Works. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) | ||
| 8 | * Hardware Supported: RAMA WORKS M65-B PCB | ||
| 9 | * Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make wilba_tech/rama_works_m65_b:default | ||
| 14 | |||
| 15 | Flashing example for this keyboard: | ||
| 16 | |||
| 17 | make wilba_tech/rama_works_m65_b:default:flash | ||
| 18 | |||
| 19 | 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). | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_b/rules.mk b/keyboards/wilba_tech/rama_works_m65_b/rules.mk new file mode 100644 index 000000000..9f4cc186e --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_b/rules.mk | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | CIE1931_CURVE = yes | ||
| 24 | |||
| 25 | # Do not put the microcontroller into power saving mode | ||
| 26 | # when we get USB suspend event. We want it to keep updating | ||
| 27 | # backlight effects. | ||
| 28 | OPT_DEFS += -DNO_SUSPEND_POWER_DOWN | ||
| 29 | |||
| 30 | # project specific files | ||
| 31 | SRC = keyboards/wilba_tech/wt_main.c \ | ||
| 32 | keyboards/wilba_tech/wt_rgb_backlight.c \ | ||
| 33 | quantum/color.c \ | ||
| 34 | drivers/issi/is31fl3731.c \ | ||
| 35 | drivers/avr/i2c_master.c | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h new file mode 100644 index 000000000..f840f4243 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | /* USB Device descriptor parameter */ | ||
| 21 | #define VENDOR_ID 0x5241 // "RA" | ||
| 22 | #define PRODUCT_ID 0x165B // 65-BX | ||
| 23 | #define DEVICE_VER 0x0001 | ||
| 24 | #define MANUFACTURER RAMA WORKS | ||
| 25 | #define PRODUCT RAMA WORKS M65-BX | ||
| 26 | |||
| 27 | /* key matrix size */ | ||
| 28 | #define MATRIX_ROWS 5 | ||
| 29 | #define MATRIX_COLS 15 | ||
| 30 | |||
| 31 | /* | ||
| 32 | * Keyboard Matrix Assignments | ||
| 33 | * | ||
| 34 | * Change this to how you wired your keyboard | ||
| 35 | * COLS: AVR pins used for columns, left to right | ||
| 36 | * ROWS: AVR pins used for rows, top to bottom | ||
| 37 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 38 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 39 | * | ||
| 40 | */ | ||
| 41 | #define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 } | ||
| 42 | #define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 } | ||
| 43 | #define UNUSED_PINS | ||
| 44 | |||
| 45 | /* COL2ROW, ROW2COL */ | ||
| 46 | #define DIODE_DIRECTION COL2ROW | ||
| 47 | |||
| 48 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 49 | #define DEBOUNCE 5 | ||
| 50 | |||
| 51 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 52 | #define LOCKING_SUPPORT_ENABLE | ||
| 53 | /* Locking resynchronize hack */ | ||
| 54 | #define LOCKING_RESYNC_ENABLE | ||
| 55 | |||
| 56 | // IS31FL3731 driver | ||
| 57 | #define DRIVER_COUNT 2 | ||
| 58 | #define DRIVER_LED_TOTAL 72 | ||
| 59 | |||
| 60 | // Enable WT RGB backlight | ||
| 61 | #define RGB_BACKLIGHT_ENABLED 1 | ||
| 62 | |||
| 63 | // This conditionally compiles the backlight code for M65-BX specifics | ||
| 64 | #define RGB_BACKLIGHT_M65_BX | ||
| 65 | |||
| 66 | // enable/disable LEDs based on layout | ||
| 67 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1 | ||
| 68 | #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 | ||
| 69 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1 | ||
| 70 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 1 | ||
| 71 | #define RGB_BACKLIGHT_USE_ISO_ENTER 0 | ||
| 72 | #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 | ||
| 73 | |||
| 74 | // disable backlight when USB suspended (PC sleep/hibernate/shutdown) | ||
| 75 | #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 | ||
| 76 | |||
| 77 | // disable backlight after timeout in minutes, 0 = no timeout | ||
| 78 | #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 | ||
| 79 | |||
| 80 | // the default brightness | ||
| 81 | #define RGB_BACKLIGHT_BRIGHTNESS 255 | ||
| 82 | |||
| 83 | // the default effect (RGB test) | ||
| 84 | #define RGB_BACKLIGHT_EFFECT 255 | ||
| 85 | |||
| 86 | // the default effect speed (0-3) | ||
| 87 | #define RGB_BACKLIGHT_EFFECT_SPEED 0 | ||
| 88 | |||
| 89 | // the default color1 and color2 | ||
| 90 | #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } | ||
| 91 | #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } | ||
| 92 | |||
| 93 | // These define which keys in the matrix are alphas/mods | ||
| 94 | // Used for backlight effects so colors are different for | ||
| 95 | // alphas vs. mods | ||
| 96 | // Each value is for a row, bit 0 is column 0 | ||
| 97 | // Alpha=0 Mod=1 | ||
| 98 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001 | ||
| 99 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0110000000000001 | ||
| 100 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0111000000000001 | ||
| 101 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001 | ||
| 102 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0111100000000111 | ||
| 103 | |||
| 104 | #define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 105 | #define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 106 | #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 107 | #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 108 | |||
| 109 | // Backlight config starts after VIA's EEPROM usage, | ||
| 110 | // dynamic keymaps start after this. | ||
| 111 | #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 | ||
| 112 | |||
| 113 | // VIA lighting is handled by the keyboard-level code | ||
| 114 | #define VIA_CUSTOM_LIGHTING_ENABLE | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/info.json b/keyboards/wilba_tech/rama_works_m65_bx/info.json new file mode 100644 index 000000000..2da84248e --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/info.json | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "RAMA WORKS M65-BX", | ||
| 3 | "url": "http://rama.works", | ||
| 4 | "maintainer": "Wilba", | ||
| 5 | "width": 16, | ||
| 6 | "height": 5, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_all": { | ||
| 9 | "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}] | ||
| 10 | } | ||
| 11 | } | ||
| 12 | } \ No newline at end of file | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/keymaps/default/keymap.c b/keyboards/wilba_tech/rama_works_m65_bx/keymaps/default/keymap.c new file mode 100644 index 000000000..6af46ab13 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/keymaps/default/keymap.c | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 4 | |||
| 5 | // Default layer | ||
| 6 | [0] = LAYOUT_all( | ||
| 7 | 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, | ||
| 8 | 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, | ||
| 9 | 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, | ||
| 10 | 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, | ||
| 11 | MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT), | ||
| 12 | |||
| 13 | // Fn1 Layer | ||
| 14 | [1] = LAYOUT_all( | ||
| 15 | 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, | ||
| 16 | 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, | ||
| 17 | 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, | ||
| 18 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 19 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 20 | |||
| 21 | // Fn2 Layer | ||
| 22 | [2] = LAYOUT_all( | ||
| 23 | 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, | ||
| 24 | 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, | ||
| 25 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 26 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 27 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 28 | |||
| 29 | // Fn3 Layer | ||
| 30 | /* | ||
| 31 | [3] = LAYOUT_all( | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, 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 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 37 | */ | ||
| 38 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/keymap.c b/keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/keymap.c new file mode 100644 index 000000000..f6bc94fbd --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/keymap.c | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 4 | |||
| 5 | // Default layer | ||
| 6 | [0] = LAYOUT_all( | ||
| 7 | 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, | ||
| 8 | 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, | ||
| 9 | 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, | ||
| 10 | 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, | ||
| 11 | MO(1), KC_LGUI, KC_LALT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RGHT), | ||
| 12 | |||
| 13 | // Fn1 Layer | ||
| 14 | [1] = LAYOUT_all( | ||
| 15 | 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, | ||
| 16 | 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, | ||
| 17 | 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, | ||
| 18 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 19 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 20 | |||
| 21 | // Fn2 Layer | ||
| 22 | [2] = LAYOUT_all( | ||
| 23 | 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, | ||
| 24 | 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, | ||
| 25 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 26 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 27 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 28 | |||
| 29 | // Fn3 Layer | ||
| 30 | [3] = LAYOUT_all( | ||
| 31 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 36 | }; | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/rules.mk b/keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c new file mode 100644 index 000000000..f390540a4 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #ifndef RGB_BACKLIGHT_M65_BX | ||
| 17 | #error RGB_BACKLIGHT_M65_BX not defined | ||
| 18 | #endif | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.h b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.h new file mode 100644 index 000000000..eb77d5441 --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.h | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* Copyright 2020 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "quantum.h" | ||
| 20 | #include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" | ||
| 21 | #include "via.h" | ||
| 22 | |||
| 23 | #define ____ KC_NO | ||
| 24 | |||
| 25 | /* This is a shortcut to help you visually see your layout. | ||
| 26 | * | ||
| 27 | * The first section contains all of the arguments representing the physical | ||
| 28 | * layout of the board and position of the keys. | ||
| 29 | * | ||
| 30 | * The second converts the arguments into a two-dimensional array which | ||
| 31 | * represents the switch matrix. | ||
| 32 | */ | ||
| 33 | #define LAYOUT_all( \ | ||
| 34 | K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \ | ||
| 35 | K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
| 36 | K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ | ||
| 37 | K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ | ||
| 38 | K400, K401, K402, K407, K411, K412, K413, K414 \ | ||
| 39 | ) { \ | ||
| 40 | { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
| 41 | { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
| 42 | { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ | ||
| 43 | { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ | ||
| 44 | { K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413, K414 } \ | ||
| 45 | } | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/readme.md b/keyboards/wilba_tech/rama_works_m65_bx/readme.md new file mode 100644 index 000000000..4d81f8a4d --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/readme.md | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | # RAMA WORKS M65-BX | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | 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. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582) | ||
| 8 | * Hardware Supported: RAMA WORKS M65-BX PCB | ||
| 9 | * Hardware Availability: [RAMA WORKS Store](https://ramaworks.store/) | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make wilba_tech/rama_works_m65_bx:default | ||
| 14 | |||
| 15 | Flashing example for this keyboard: | ||
| 16 | |||
| 17 | make wilba_tech/rama_works_m65_bx:default:flash | ||
| 18 | |||
| 19 | 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). | ||
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk new file mode 100644 index 000000000..9f4cc186e --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | CIE1931_CURVE = yes | ||
| 24 | |||
| 25 | # Do not put the microcontroller into power saving mode | ||
| 26 | # when we get USB suspend event. We want it to keep updating | ||
| 27 | # backlight effects. | ||
| 28 | OPT_DEFS += -DNO_SUSPEND_POWER_DOWN | ||
| 29 | |||
| 30 | # project specific files | ||
| 31 | SRC = keyboards/wilba_tech/wt_main.c \ | ||
| 32 | keyboards/wilba_tech/wt_rgb_backlight.c \ | ||
| 33 | quantum/color.c \ | ||
| 34 | drivers/issi/is31fl3731.c \ | ||
| 35 | drivers/avr/i2c_master.c | ||
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 92e14165e..24d9d85ec 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c | |||
| @@ -18,7 +18,10 @@ | |||
| 18 | defined(RGB_BACKLIGHT_ZEAL65) || \ | 18 | defined(RGB_BACKLIGHT_ZEAL65) || \ |
| 19 | defined(RGB_BACKLIGHT_M60_A) || \ | 19 | defined(RGB_BACKLIGHT_M60_A) || \ |
| 20 | defined(RGB_BACKLIGHT_M6_B) || \ | 20 | defined(RGB_BACKLIGHT_M6_B) || \ |
| 21 | defined(RGB_BACKLIGHT_M10_C) || \ | ||
| 21 | defined(RGB_BACKLIGHT_KOYU) || \ | 22 | defined(RGB_BACKLIGHT_KOYU) || \ |
| 23 | defined(RGB_BACKLIGHT_M65_B) || \ | ||
| 24 | defined(RGB_BACKLIGHT_M65_BX) || \ | ||
| 22 | defined(RGB_BACKLIGHT_HS60) || \ | 25 | defined(RGB_BACKLIGHT_HS60) || \ |
| 23 | defined(RGB_BACKLIGHT_NK65) || \ | 26 | defined(RGB_BACKLIGHT_NK65) || \ |
| 24 | defined(RGB_BACKLIGHT_NEBULA12) || \ | 27 | defined(RGB_BACKLIGHT_NEBULA12) || \ |
| @@ -27,7 +30,8 @@ | |||
| 27 | defined(RGB_BACKLIGHT_DAWN60) || \ | 30 | defined(RGB_BACKLIGHT_DAWN60) || \ |
| 28 | defined(RGB_BACKLIGHT_WT60_B) || \ | 31 | defined(RGB_BACKLIGHT_WT60_B) || \ |
| 29 | defined(RGB_BACKLIGHT_WT60_BX) || \ | 32 | defined(RGB_BACKLIGHT_WT60_BX) || \ |
| 30 | defined(RGB_BACKLIGHT_WT60_C) | 33 | defined(RGB_BACKLIGHT_WT60_C) || \ |
| 34 | defined(RGB_BACKLIGHT_M50_A) | ||
| 31 | #else | 35 | #else |
| 32 | #error wt_rgb_backlight.c compiled without setting configuration symbol | 36 | #error wt_rgb_backlight.c compiled without setting configuration symbol |
| 33 | #endif | 37 | #endif |
| @@ -87,6 +91,8 @@ LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; | |||
| 87 | #define BACKLIGHT_LED_COUNT 84 //64 + 20 | 91 | #define BACKLIGHT_LED_COUNT 84 //64 + 20 |
| 88 | #elif defined(RGB_BACKLIGHT_NEBULA12) | 92 | #elif defined(RGB_BACKLIGHT_NEBULA12) |
| 89 | #define BACKLIGHT_LED_COUNT 16 | 93 | #define BACKLIGHT_LED_COUNT 16 |
| 94 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 95 | #define BACKLIGHT_LED_COUNT 12 | ||
| 90 | #else | 96 | #else |
| 91 | #define BACKLIGHT_LED_COUNT 72 | 97 | #define BACKLIGHT_LED_COUNT 72 |
| 92 | #endif | 98 | #endif |
| @@ -120,6 +126,8 @@ backlight_config g_config = { | |||
| 120 | RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 }, | 126 | RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 }, |
| 121 | #if defined(RGB_BACKLIGHT_M6_B) | 127 | #if defined(RGB_BACKLIGHT_M6_B) |
| 122 | .custom_color = { { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 }, { 171, 255 }, { 213, 255 } } | 128 | .custom_color = { { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 }, { 171, 255 }, { 213, 255 } } |
| 129 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 130 | .custom_color = { { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 }, { 171, 255 }, { 213, 255 }, { 0, 255 }, { 43, 255 }, { 85, 255 }, { 128, 255 } } | ||
| 123 | #endif | 131 | #endif |
| 124 | }; | 132 | }; |
| 125 | 133 | ||
| @@ -600,7 +608,29 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||
| 600 | {1, C9_15, C8_15, C6_14}, //D15 | 608 | {1, C9_15, C8_15, C6_14}, //D15 |
| 601 | {1, C9_16, C7_15, C6_15} //D16 | 609 | {1, C9_16, C7_15, C6_15} //D16 |
| 602 | }; | 610 | }; |
| 603 | #elif !defined(RGB_BACKLIGHT_M6_B) | 611 | #elif defined(RGB_BACKLIGHT_M6_B) |
| 612 | // Driver has fixed mapping of index to the red, green and blue LEDs | ||
| 613 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 614 | // This is a 7-bit address, that gets left-shifted and bit 0 | ||
| 615 | // set to 0 for write, 1 for read (as per I2C protocol) | ||
| 616 | #define ISSI_ADDR_1 0x74 | ||
| 617 | #define ISSI_ADDR_2 | ||
| 618 | |||
| 619 | const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | ||
| 620 | {0, C1_9, C3_10, C4_10}, // LB1 | ||
| 621 | {0, C1_10, C2_10, C4_11}, // LB2 | ||
| 622 | {0, C1_11, C2_11, C3_11}, // LB3 | ||
| 623 | {0, C1_12, C2_12, C3_12}, // LB4 | ||
| 624 | {0, C1_13, C2_13, C3_13}, // LB5 | ||
| 625 | {0, C1_14, C2_14, C3_14}, // LB6 | ||
| 626 | {0, C9_11, C8_11, C7_11}, // LB11 | ||
| 627 | {0, C9_12, C8_12, C7_12}, // LB12 | ||
| 628 | {0, C9_13, C8_13, C7_13}, // LB13 | ||
| 629 | {0, C9_14, C8_14, C7_14}, // LB14 | ||
| 630 | {0, C9_15, C8_15, C6_14}, // LB15 | ||
| 631 | {0, C9_16, C7_15, C6_15} // LB16 | ||
| 632 | }; | ||
| 633 | #else | ||
| 604 | // This is a 7-bit address, that gets left-shifted and bit 0 | 634 | // This is a 7-bit address, that gets left-shifted and bit 0 |
| 605 | // set to 0 for write, 1 for read (as per I2C protocol) | 635 | // set to 0 for write, 1 for read (as per I2C protocol) |
| 606 | #define ISSI_ADDR_1 0x74 | 636 | #define ISSI_ADDR_1 0x74 |
| @@ -689,7 +719,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||
| 689 | {1, C9_16, C7_15, C6_15}, // LD16 | 719 | {1, C9_16, C7_15, C6_15}, // LD16 |
| 690 | {1, C8_16, C7_16, C6_16}, // LD17 | 720 | {1, C8_16, C7_16, C6_16}, // LD17 |
| 691 | }; | 721 | }; |
| 692 | #endif // !defined(RGB_BACKLIGHT_M6_B) | 722 | #endif |
| 693 | 723 | ||
| 694 | 724 | ||
| 695 | typedef struct Point { | 725 | typedef struct Point { |
| @@ -759,6 +789,35 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | |||
| 759 | {0,9}, {0,43}, {0,77}, {0,111}, {0,145}, {0,201}, {224,181}, {230,217}, {235,255}, | 789 | {0,9}, {0,43}, {0,77}, {0,111}, {0,145}, {0,201}, {224,181}, {230,217}, {235,255}, |
| 760 | {189,128}, {200,131}, {210,141}, {218,159}, {255,255}, {207,238}, {211,255}, {218,255}, {255,255} | 790 | {189,128}, {200,131}, {210,141}, {218,159}, {255,255}, {207,238}, {211,255}, {218,255}, {255,255} |
| 761 | }; | 791 | }; |
| 792 | #elif defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX) | ||
| 793 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 794 | // LA0..LA17 | ||
| 795 | {120,16}, {104,16}, {88,16}, {72,16}, {56,16}, {40,16}, {24,16}, {4,16}, {4,32}, | ||
| 796 | {128,0}, {112,0}, {96,0}, {80,0}, {64,0}, {48,0}, {32,0}, {16,0}, {0,0}, | ||
| 797 | // LB0..LB17 | ||
| 798 | {144,0}, {160,0}, {176,0}, {192,0}, {208,0}, {224,0}, {216,0}, {240,0}, {240,16}, | ||
| 799 | {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {220,16}, {240,32}, {240,48}, {240,64}, | ||
| 800 | // LC0..LC17 | ||
| 801 | {112,64}, {100,48}, {84,48}, {68,48}, {52,48}, {36,48}, {64,60}, {44,60}, {24,64}, | ||
| 802 | {108,32}, {92,32}, {76,32}, {60,32}, {44,32}, {28,32}, {255,255}, {10,48}, {4,64}, | ||
| 803 | // LD0..LD17 | ||
| 804 | {124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32}, {180,48}, {202,48}, {224,48}, | ||
| 805 | {116,48}, {132,48}, {148,48}, {164,48}, {255,255}, {160,60}, {180,64}, {208,64}, {224,64} | ||
| 806 | }; | ||
| 807 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 808 | // LA0..LA17 | ||
| 809 | {64,128}, {75,132}, {84,145}, {91,164}, {97,187}, {102,213}, {105,242}, {109,255}, {128,243}, | ||
| 810 | {61,255}, {67,255}, {72,255}, {77,255}, {82,255}, {86,255}, {90,255}, {93,255}, {96,255}, | ||
| 811 | // LB0..LB17 | ||
| 812 | {56,255}, {51,255}, {46,255}, {42,255}, {38,255}, {35,255}, {37,255}, {32,255}, {19,255}, | ||
| 813 | {53,132}, {44,145}, {37,164}, {31,187}, {26,213}, {22,249}, {0,255}, {237,255}, {224,255}, | ||
| 814 | // LC0..LC17 | ||
| 815 | {189,255}, {179,135}, {170,149}, {163,169}, {157,193}, {153,220}, {172,252}, {169,255}, {165,255}, | ||
| 816 | {128,26}, {128,60}, {128,94}, {128,128}, {128,162}, {128,196}, {255,255}, {148,255}, {161,255}, | ||
| 817 | // LD0..LD17 | ||
| 818 | {0,9}, {0,43}, {0,77}, {0,111}, {0,145}, {0,201}, {224,181}, {230,217}, {235,255}, | ||
| 819 | {189,128}, {200,131}, {210,141}, {218,159}, {255,255}, {207,238}, {211,255}, {218,255}, {221,255} | ||
| 820 | }; | ||
| 762 | #elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A) | 821 | #elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A) |
| 763 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | 822 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { |
| 764 | // LA0..LA17 | 823 | // LA0..LA17 |
| @@ -1010,6 +1069,24 @@ const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | |||
| 1010 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | 1069 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { |
| 1011 | {160,255}, {96,255}, {77,255}, {179,255}, {51,255}, {205,255} | 1070 | {160,255}, {96,255}, {77,255}, {179,255}, {51,255}, {205,255} |
| 1012 | }; | 1071 | }; |
| 1072 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 1073 | // M10-C is really simple: | ||
| 1074 | // 0 1 2 | ||
| 1075 | // 3 4 5 | ||
| 1076 | // 8 7 6 | ||
| 1077 | // 11 10 9 | ||
| 1078 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 1079 | {0,0}, {16,0}, {32,0}, | ||
| 1080 | {0,16}, {16,16}, {32,16}, | ||
| 1081 | {32,32}, {16,32}, {0,32}, | ||
| 1082 | {32,48}, {24,48}, {16,48} | ||
| 1083 | }; | ||
| 1084 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 1085 | {160,255}, {192,255}, {224,255}, | ||
| 1086 | {128,255}, {0,0}, {0,255}, | ||
| 1087 | {32,255}, {64,255}, {96,255}, | ||
| 1088 | {45,255}, {54,255}, {64,255} | ||
| 1089 | }; | ||
| 1013 | #elif defined(RGB_BACKLIGHT_DAWN60) | 1090 | #elif defined(RGB_BACKLIGHT_DAWN60) |
| 1014 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | 1091 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { |
| 1015 | // LA1..LA16 | 1092 | // LA1..LA16 |
| @@ -1053,7 +1130,35 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | |||
| 1053 | //11 - 20 | 1130 | //11 - 20 |
| 1054 | {234,255}, {222,255}, {213,255}, {197,255}, {180,255}, {167,255}, {152,255}, {147,255}, {128,255}, {101,255} | 1131 | {234,255}, {222,255}, {213,255}, {197,255}, {180,255}, {167,255}, {152,255}, {147,255}, {128,255}, {101,255} |
| 1055 | }; | 1132 | }; |
| 1056 | 1133 | #elif defined(RGB_BACKLIGHT_M50_A) | |
| 1134 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 1135 | // LA0..LA17 | ||
| 1136 | {255,255}, {104,16}, {88,16}, {72,16}, {56,16}, {40,16}, {24,16}, {255,255}, {255,255}, | ||
| 1137 | {104,0}, {88,0}, {72,0}, {56,0}, {40,0}, {24,0}, {0,0}, {0,16}, {255,255}, | ||
| 1138 | // LB0..LB17 | ||
| 1139 | {255,255}, {120,0}, {136,0}, {152,0}, {168,0}, {184,0}, {200,0}, {255,255}, {255,255}, | ||
| 1140 | {120,16}, {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {255,255}, {255,255}, {255,255}, | ||
| 1141 | // LC0..LC17 | ||
| 1142 | {255,255}, {112,48}, {88,48}, {72,48}, {56,48}, {40,48}, {24,48}, {0,48}, {255,255}, | ||
| 1143 | {104,32}, {88,32}, {72,32}, {56,32}, {40,32}, {24,32}, {0,32}, {255,255}, {255,255}, | ||
| 1144 | // LD0..LD17 | ||
| 1145 | {255,255}, {120,32}, {136,32}, {152,32}, {168,32}, {184,32}, {200,32}, {255,255}, {255,255}, | ||
| 1146 | {255,255}, {136,48}, {152,48}, {168,48}, {184,48}, {200,48}, {255,255}, {255,255}, {255,255} | ||
| 1147 | }; | ||
| 1148 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 1149 | // LA0..LA17 | ||
| 1150 | {255,255}, {73,88}, {89,104}, {99,130}, {105,162}, {110,197}, {113,233}, {255,255}, {255,255}, | ||
| 1151 | {67,255}, {73,255}, {79,255}, {84,255}, {89,255}, {93,255}, {98,255}, {116,255}, {255,255}, | ||
| 1152 | // LB0..LB17 | ||
| 1153 | {0,0}, {61,255}, {55,255}, {49,255}, {44,255}, {39,255}, {35,255}, {255,255}, {255,255}, | ||
| 1154 | {55,88}, {39,104}, {29,130}, {23,162}, {18,197}, {15,233}, {255,255}, {255,255}, {255,255}, | ||
| 1155 | // LC0..LC17 | ||
| 1156 | {255,255}, {192,255}, {183,255}, {177,255}, {172,255}, {167,255}, {163,255}, {158,255}, {255,255}, | ||
| 1157 | {183,88}, {167,104}, {157,130}, {151,162}, {146,197}, {143,233}, {140,255}, {255,255}, {255,255}, | ||
| 1158 | // LD0..LD17 | ||
| 1159 | {255,255}, {201,88}, {217,104}, {227,130}, {233,162}, {238,197}, {241,233}, {255,255}, {255,255}, | ||
| 1160 | {255,255}, {201,255}, {207,255}, {212,255}, {217,255}, {221,255}, {255,255}, {255,255}, {255,255} | ||
| 1161 | }; | ||
| 1057 | #endif | 1162 | #endif |
| 1058 | 1163 | ||
| 1059 | // This may seem counter-intuitive, but it's quite flexible. | 1164 | // This may seem counter-intuitive, but it's quite flexible. |
| @@ -1067,7 +1172,7 @@ void map_led_to_point( uint8_t index, Point *point ) | |||
| 1067 | point->x = pgm_read_byte(addr); | 1172 | point->x = pgm_read_byte(addr); |
| 1068 | point->y = pgm_read_byte(addr+1); | 1173 | point->y = pgm_read_byte(addr+1); |
| 1069 | 1174 | ||
| 1070 | #if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA65) || defined(RGB_BACKLIGHT_NEBULA12) | 1175 | #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) |
| 1071 | return; | 1176 | return; |
| 1072 | #endif | 1177 | #endif |
| 1073 | 1178 | ||
| @@ -1177,6 +1282,22 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | |||
| 1177 | { 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 }, | 1282 | { 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 }, |
| 1178 | { 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 } | 1283 | { 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 } |
| 1179 | }; | 1284 | }; |
| 1285 | #elif defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX) | ||
| 1286 | // Note: Left spacebar stab is at 4,4 (LC6) | ||
| 1287 | // Right spacebar stab is at 4,10 (D14) | ||
| 1288 | // (B6) | ||
| 1289 | // A17, A16, A15, A14, A13, A12, A11, A10, A9, B0, B1, B2, B3, B4, B7 | ||
| 1290 | // A7, A6, A5, A4, A3, A2, A1, A0, B9, B10, B11, B12, B13, B14, B8 | ||
| 1291 | // A8, C14, C13, C12, C11, C10, C9, D0, D1, D2, D3, D4, D5, B5, B15 | ||
| 1292 | // C16, C15, C5, C4, C3, C2, C1, D9, D10, D11, D12, D6, D7, D8, B16 | ||
| 1293 | // C17, C8, C7, C6, ---, ---, ---, C0, ---, ---, D14, D15, D16, D17, B17 | ||
| 1294 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | ||
| 1295 | { 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 }, | ||
| 1296 | { 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 }, | ||
| 1297 | { 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 }, | ||
| 1298 | { 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 }, | ||
| 1299 | { 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 } | ||
| 1300 | }; | ||
| 1180 | #elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A) | 1301 | #elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A) |
| 1181 | // Note: Left spacebar stab is at 4,3 (LC6) | 1302 | // Note: Left spacebar stab is at 4,3 (LC6) |
| 1182 | // Right spacebar stab is at 4,9 (LD13) or 4,10 (LD14) | 1303 | // 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 = { | |||
| 1287 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | 1408 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { |
| 1288 | { 0, 3, 5, 1, 2, 4 } | 1409 | { 0, 3, 5, 1, 2, 4 } |
| 1289 | }; | 1410 | }; |
| 1411 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 1412 | // M10-C is really simple: | ||
| 1413 | // 0 1 2 | ||
| 1414 | // 3 4 5 | ||
| 1415 | // 8 7 6 | ||
| 1416 | // 11 10 9 | ||
| 1417 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | ||
| 1418 | { 0, 1, 2, 3, 4, 5, 8, 7, 6, 10 } | ||
| 1419 | }; | ||
| 1290 | #elif defined(RGB_BACKLIGHT_DAWN60) | 1420 | #elif defined(RGB_BACKLIGHT_DAWN60) |
| 1291 | //Dawn60 | 1421 | //Dawn60 |
| 1292 | // A16, A15, A14, A13, A12, A11, A10, A9, B1, B2, B3, B4, B5, B6, | 1422 | // 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 = { | |||
| 1300 | { -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 }, | 1430 | { -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 }, |
| 1301 | { 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}, | 1431 | { 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}, |
| 1302 | { 31+16, 31+8 , 31+7 , 255 , 255 , 31+6 , 255 , 255 , 255 , 47+13, 47+14, 47+15, 47+16, 47+8 } | 1432 | { 31+16, 31+8 , 31+7 , 255 , 255 , 31+6 , 255 , 255 , 255 , 47+13, 47+14, 47+15, 47+16, 47+8 } |
| 1433 | #elif defined(RGB_BACKLIGHT_M50_A) | ||
| 1434 | // LA15, LA14, LA13, LA12, LA11, LA10, LA9, LB1, LB2, LB3, LB4, LB5, LB6 | ||
| 1435 | // LA16, LA6, LA5, LA4, LA3, LA2, LA1, LB9, LB10, LB11, LB12, LB13, LB14 | ||
| 1436 | // LC15, LC14, LC13, LC12, LC11, LC10, LC9, LD1, LD2, LD3, LD4, LD5, LD6 | ||
| 1437 | // LC7, LC6, LC5, LC4, LC3, LC2, LC1, ----, LD10, LD11, LD12, LD13, LD14 | ||
| 1438 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | ||
| 1439 | { 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 }, | ||
| 1440 | { 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 }, | ||
| 1441 | { 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 }, | ||
| 1442 | { 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 }, | ||
| 1303 | }; | 1443 | }; |
| 1304 | #endif | 1444 | #endif |
| 1305 | 1445 | ||
| @@ -1316,6 +1456,9 @@ void backlight_update_pwm_buffers(void) | |||
| 1316 | { | 1456 | { |
| 1317 | #if defined(RGB_BACKLIGHT_M6_B) | 1457 | #if defined(RGB_BACKLIGHT_M6_B) |
| 1318 | IS31FL3218_update_pwm_buffers(); | 1458 | IS31FL3218_update_pwm_buffers(); |
| 1459 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 1460 | IS31FL3731_update_pwm_buffers( ISSI_ADDR_1, 0 ); | ||
| 1461 | IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); | ||
| 1319 | #elif defined(RGB_BACKLIGHT_HS60) | 1462 | #elif defined(RGB_BACKLIGHT_HS60) |
| 1320 | IS31FL3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); | 1463 | IS31FL3733_update_pwm_buffers( ISSI_ADDR_1, 0 ); |
| 1321 | IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); | 1464 | IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); |
| @@ -1856,17 +1999,24 @@ void backlight_effect_cycle_radial2(void) | |||
| 1856 | } | 1999 | } |
| 1857 | } | 2000 | } |
| 1858 | 2001 | ||
| 1859 | #if defined(RGB_BACKLIGHT_M6_B) | 2002 | #if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) |
| 1860 | void backlight_effect_custom_colors(void) | 2003 | void backlight_effect_custom_colors(void) |
| 1861 | { | 2004 | { |
| 1862 | RGB rgb; | 2005 | RGB rgb; |
| 1863 | for ( uint8_t i = 0; i < 6; i++ ) | 2006 | for ( uint8_t i = 0; i < RGB_BACKLIGHT_CUSTOM_COLORS_COUNT; i++ ) |
| 1864 | { | 2007 | { |
| 1865 | HSV hsv = { .h = g_config.custom_color[i].h, .s = g_config.custom_color[i].s, .v = g_config.brightness }; | 2008 | HSV hsv = { .h = g_config.custom_color[i].h, .s = g_config.custom_color[i].s, .v = g_config.brightness }; |
| 1866 | rgb = hsv_to_rgb( hsv ); | 2009 | rgb = hsv_to_rgb( hsv ); |
| 1867 | uint8_t led; | 2010 | uint8_t led; |
| 1868 | map_row_column_to_led( 0, i, &led ); | 2011 | map_row_column_to_led( 0, i, &led ); |
| 1869 | backlight_set_color( led, rgb.r, rgb.g, rgb.b ); | 2012 | backlight_set_color( led, rgb.r, rgb.g, rgb.b ); |
| 2013 | #if defined(RGB_BACKLIGHT_M10_C) | ||
| 2014 | // Set stab LEDs with the same color | ||
| 2015 | if ( led == 10 ) { | ||
| 2016 | backlight_set_color( 9, rgb.r, rgb.g, rgb.b ); | ||
| 2017 | backlight_set_color( 11, rgb.r, rgb.g, rgb.b ); | ||
| 2018 | } | ||
| 2019 | #endif | ||
| 1870 | } | 2020 | } |
| 1871 | } | 2021 | } |
| 1872 | #endif | 2022 | #endif |
| @@ -1887,10 +2037,10 @@ void backlight_effect_indicators_set_colors( uint8_t index, HS color ) | |||
| 1887 | // do the same for the spacebar stabilizers | 2037 | // do the same for the spacebar stabilizers |
| 1888 | if ( index == 36+0 ) // LC0 | 2038 | if ( index == 36+0 ) // LC0 |
| 1889 | { | 2039 | { |
| 1890 | #if defined(RGB_BACKLIGHT_ZEAL65) | 2040 | #if defined(RGB_BACKLIGHT_ZEAL65) |
| 1891 | backlight_set_color( 36+7, rgb.r, rgb.g, rgb.b ); // LC7 | 2041 | backlight_set_color( 36+7, rgb.r, rgb.g, rgb.b ); // LC7 |
| 1892 | backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14 | 2042 | backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14 |
| 1893 | #elif defined(RGB_BACKLIGHT_KOYU) | 2043 | #elif defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX) |
| 1894 | backlight_set_color( 36+6, rgb.r, rgb.g, rgb.b ); // LC6 | 2044 | backlight_set_color( 36+6, rgb.r, rgb.g, rgb.b ); // LC6 |
| 1895 | backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14 | 2045 | backlight_set_color( 54+14, rgb.r, rgb.g, rgb.b ); // LD14 |
| 1896 | #elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A) | 2046 | #elif defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_M60_A) |
| @@ -2008,7 +2158,7 @@ static void gpt_backlight_timer_task(GPTDriver *gptp) | |||
| 2008 | backlight_effect_solid_color(); | 2158 | backlight_effect_solid_color(); |
| 2009 | break; | 2159 | break; |
| 2010 | case 2: | 2160 | case 2: |
| 2011 | #if defined(RGB_BACKLIGHT_M6_B) | 2161 | #if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) |
| 2012 | backlight_effect_custom_colors(); | 2162 | backlight_effect_custom_colors(); |
| 2013 | #else | 2163 | #else |
| 2014 | backlight_effect_alphas_mods(); | 2164 | backlight_effect_alphas_mods(); |
| @@ -2045,7 +2195,7 @@ static void gpt_backlight_timer_task(GPTDriver *gptp) | |||
| 2045 | 2195 | ||
| 2046 | if ( ! suspend_backlight ) | 2196 | if ( ! suspend_backlight ) |
| 2047 | { | 2197 | { |
| 2048 | #if !defined(RGB_BACKLIGHT_M6_B) | 2198 | #if !defined(RGB_BACKLIGHT_M6_B) && !defined(RGB_BACKLIGHT_M10_C) |
| 2049 | backlight_effect_indicators(); | 2199 | backlight_effect_indicators(); |
| 2050 | #endif | 2200 | #endif |
| 2051 | } | 2201 | } |
| @@ -2231,11 +2381,11 @@ void backlight_config_set_value( uint8_t *data ) | |||
| 2231 | g_config.alphas_mods[i] = ( *(value_data+i*2) << 8 ) | ( *(value_data+i*2+1) ); | 2381 | g_config.alphas_mods[i] = ( *(value_data+i*2) << 8 ) | ( *(value_data+i*2+1) ); |
| 2232 | } | 2382 | } |
| 2233 | } | 2383 | } |
| 2234 | #if defined(RGB_BACKLIGHT_M6_B) | 2384 | #if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) |
| 2235 | case id_custom_color: | 2385 | case id_custom_color: |
| 2236 | { | 2386 | { |
| 2237 | uint8_t index = value_data[0]; | 2387 | uint8_t index = value_data[0]; |
| 2238 | if ( index >= 0 && index <= 6 ) | 2388 | if ( index >= 0 && index < RGB_BACKLIGHT_CUSTOM_COLORS_COUNT ) |
| 2239 | { | 2389 | { |
| 2240 | _set_color( &(g_config.custom_color[index]), &(value_data[1]) ); | 2390 | _set_color( &(g_config.custom_color[index]), &(value_data[1]) ); |
| 2241 | } | 2391 | } |
| @@ -2368,11 +2518,11 @@ void backlight_config_get_value( uint8_t *data ) | |||
| 2368 | *(value_data+i*2+1) = g_config.alphas_mods[i] & 0xFF; | 2518 | *(value_data+i*2+1) = g_config.alphas_mods[i] & 0xFF; |
| 2369 | } | 2519 | } |
| 2370 | } | 2520 | } |
| 2371 | #if defined(RGB_BACKLIGHT_M6_B) | 2521 | #if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) |
| 2372 | case id_custom_color: | 2522 | case id_custom_color: |
| 2373 | { | 2523 | { |
| 2374 | uint8_t index = value_data[0]; | 2524 | uint8_t index = value_data[0]; |
| 2375 | if ( index >= 0 && index <= 6 ) | 2525 | if ( index >= 0 && index < RGB_BACKLIGHT_CUSTOM_COLORS_COUNT ) |
| 2376 | { | 2526 | { |
| 2377 | _get_color( &(g_config.custom_color[index]), &(value_data[1]) ); | 2527 | _get_color( &(g_config.custom_color[index]), &(value_data[1]) ); |
| 2378 | } | 2528 | } |
| @@ -2459,10 +2609,13 @@ void backlight_init_drivers(void) | |||
| 2459 | IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); | 2609 | IS31FL3733_update_led_control_registers( ISSI_ADDR_1, 0 ); |
| 2460 | IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); | 2610 | IS31FL3733_update_led_control_registers( ISSI_ADDR_2, 1 ); |
| 2461 | #else | 2611 | #else |
| 2612 | // Init the #1 driver | ||
| 2462 | IS31FL3731_init( ISSI_ADDR_1 ); | 2613 | IS31FL3731_init( ISSI_ADDR_1 ); |
| 2463 | #if !defined(RGB_BACKLIGHT_NEBULA12) | 2614 | // Init the #2 driver (if used) |
| 2615 | #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) | ||
| 2464 | IS31FL3731_init( ISSI_ADDR_2 ); | 2616 | IS31FL3731_init( ISSI_ADDR_2 ); |
| 2465 | #endif | 2617 | #endif |
| 2618 | // Init the #3 driver (if used) | ||
| 2466 | #if defined(RGB_BACKLIGHT_U80_A) | 2619 | #if defined(RGB_BACKLIGHT_U80_A) |
| 2467 | IS31FL3731_init( ISSI_ADDR_3 ); | 2620 | IS31FL3731_init( ISSI_ADDR_3 ); |
| 2468 | #endif | 2621 | #endif |
| @@ -2484,6 +2637,15 @@ void backlight_init_drivers(void) | |||
| 2484 | bool enabled = !( ( index == 36+15 ) || // LC15 | 2637 | bool enabled = !( ( index == 36+15 ) || // LC15 |
| 2485 | ( index == 54+13 ) || // LD13 | 2638 | ( index == 54+13 ) || // LD13 |
| 2486 | ( index == 54+17 ) ); // LD17 | 2639 | ( index == 54+17 ) ); // LD17 |
| 2640 | #elif defined(RGB_BACKLIGHT_M65_B) || defined(RGB_BACKLIGHT_M65_BX) | ||
| 2641 | bool enabled = !( | ||
| 2642 | // LB6 not present on M65-B | ||
| 2643 | #if defined(RGB_BACKLIGHT_M65_B) | ||
| 2644 | ( index == 18+6 ) || // LB6 | ||
| 2645 | #endif | ||
| 2646 | // LC15 LD13 not present on M65-B, M65-BX | ||
| 2647 | ( index == 36+15 ) || // LC15 | ||
| 2648 | ( index == 54+13 ) ); // LD13 | ||
| 2487 | #elif defined(RGB_BACKLIGHT_M60_A) | 2649 | #elif defined(RGB_BACKLIGHT_M60_A) |
| 2488 | bool enabled = !( | 2650 | bool enabled = !( |
| 2489 | // LB6 LB7 LB8 LB15 LB16 LB17 not present on M60-A | 2651 | // LB6 LB7 LB8 LB15 LB16 LB17 not present on M60-A |
| @@ -2550,19 +2712,50 @@ void backlight_init_drivers(void) | |||
| 2550 | ( index == 47+15 && g_config.use_7u_spacebar ) ); //LD15 | 2712 | ( index == 47+15 && g_config.use_7u_spacebar ) ); //LD15 |
| 2551 | #elif defined(RGB_BACKLIGHT_NEBULA12) | 2713 | #elif defined(RGB_BACKLIGHT_NEBULA12) |
| 2552 | bool enabled = !( ( index >= 9-1 && index <= 12-1 ) ); // A9-A12 | 2714 | bool enabled = !( ( index >= 9-1 && index <= 12-1 ) ); // A9-A12 |
| 2715 | #elif defined(RGB_BACKLIGHT_M50_A) | ||
| 2716 | bool enabled = !( | ||
| 2717 | // LA0, LA7, LA8, LA17 | ||
| 2718 | ( index == 0+0 ) || | ||
| 2719 | ( index == 0+7 ) || | ||
| 2720 | ( index == 0+8 ) || | ||
| 2721 | ( index == 0+17 ) || | ||
| 2722 | |||
| 2723 | // LB0, LB7, LB8, LB15, LB16, LB17, | ||
| 2724 | ( index == 18+0 ) || | ||
| 2725 | ( index == 18+7 ) || | ||
| 2726 | ( index == 18+8 ) || | ||
| 2727 | ( index == 18+15 ) || | ||
| 2728 | ( index == 18+16 ) || | ||
| 2729 | ( index == 18+17 ) || | ||
| 2730 | // LC0, LC8, LC16, LC17 | ||
| 2731 | ( index == 36+0 ) || | ||
| 2732 | ( index == 36+8 ) || | ||
| 2733 | ( index == 36+16 ) || | ||
| 2734 | ( index == 36+17 ) || | ||
| 2735 | // LD0, LD7, LD8, LD9, LD15, LD16, LD17 | ||
| 2736 | ( index == 54+0 ) || | ||
| 2737 | ( index == 54+7 ) || | ||
| 2738 | ( index == 54+8 ) || | ||
| 2739 | ( index == 54+9 ) || | ||
| 2740 | ( index == 54+15 ) || | ||
| 2741 | ( index == 54+16 ) || | ||
| 2742 | ( index == 54+17 ) ); | ||
| 2743 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 2744 | bool enabled = true; | ||
| 2553 | #endif | 2745 | #endif |
| 2554 | // This only caches it for later | 2746 | // This only caches it for later |
| 2555 | IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); | 2747 | IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); |
| 2556 | } | 2748 | } |
| 2557 | // This actually updates the LED drivers | 2749 | // This actually updates the LED drivers |
| 2750 | // TODO: refactor this to use DRIVER_COUNT | ||
| 2558 | IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); | 2751 | IS31FL3731_update_led_control_registers( ISSI_ADDR_1, 0 ); |
| 2559 | #if !defined(RGB_BACKLIGHT_NEBULA12) | 2752 | #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) |
| 2560 | IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); | 2753 | IS31FL3731_update_led_control_registers( ISSI_ADDR_2, 1 ); |
| 2561 | #endif | 2754 | #endif |
| 2562 | #if defined(RGB_BACKLIGHT_U80_A) | 2755 | #if defined(RGB_BACKLIGHT_U80_A) |
| 2563 | IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 ); | 2756 | IS31FL3731_update_led_control_registers( ISSI_ADDR_3, 2 ); |
| 2564 | #endif | 2757 | #endif |
| 2565 | #endif // !defined(RGB_BACKLIGHT_M6_B) | 2758 | #endif |
| 2566 | 2759 | ||
| 2567 | // TODO: put the 1 second startup delay here? | 2760 | // TODO: put the 1 second startup delay here? |
| 2568 | 2761 | ||
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.h b/keyboards/wilba_tech/wt_rgb_backlight.h index 648465886..529f84636 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.h +++ b/keyboards/wilba_tech/wt_rgb_backlight.h | |||
| @@ -37,6 +37,12 @@ typedef struct | |||
| 37 | uint8_t index; | 37 | uint8_t index; |
| 38 | } backlight_config_indicator; | 38 | } backlight_config_indicator; |
| 39 | 39 | ||
| 40 | #if defined(RGB_BACKLIGHT_M6_B) | ||
| 41 | #define RGB_BACKLIGHT_CUSTOM_COLORS_COUNT 6 | ||
| 42 | #elif defined(RGB_BACKLIGHT_M10_C) | ||
| 43 | #define RGB_BACKLIGHT_CUSTOM_COLORS_COUNT 10 | ||
| 44 | #endif | ||
| 45 | |||
| 40 | typedef struct | 46 | typedef struct |
| 41 | { | 47 | { |
| 42 | bool use_split_backspace:1; // | | 48 | bool use_split_backspace:1; // | |
| @@ -58,10 +64,10 @@ typedef struct | |||
| 58 | backlight_config_indicator layer_2_indicator; // 3 bytes | 64 | backlight_config_indicator layer_2_indicator; // 3 bytes |
| 59 | backlight_config_indicator layer_3_indicator; // 3 bytes | 65 | backlight_config_indicator layer_3_indicator; // 3 bytes |
| 60 | uint16_t alphas_mods[5]; // 10 bytes | 66 | uint16_t alphas_mods[5]; // 10 bytes |
| 61 | #if defined(RGB_BACKLIGHT_M6_B) | 67 | #if defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_M10_C) |
| 62 | HS custom_color[6]; // 12 bytes | 68 | HS custom_color[RGB_BACKLIGHT_CUSTOM_COLORS_COUNT]; // 12 or 20 bytes |
| 63 | #endif | 69 | #endif |
| 64 | } backlight_config; // = 31 bytes (M6-B = 43 bytes) | 70 | } backlight_config; // = 31 bytes (M6-B = 43 bytes, M10-C 51 bytes) |
| 65 | 71 | ||
| 66 | void backlight_config_load(void); | 72 | void backlight_config_load(void); |
| 67 | void backlight_config_save(void); | 73 | void backlight_config_save(void); |
