summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXelus22 <17491233+Xelus22@users.noreply.github.com>2022-01-16 00:17:01 +1100
committerGitHub <noreply@github.com>2022-01-15 15:17:01 +0200
commit4cc28a3ae4bfa93ada5af3198d96cc53f40bd41b (patch)
treedb153c1115a9abc92cae20667cdf5dc249aff9f9
parent1ca3981c14f0277cef57ace91d150e306a89192f (diff)
Add Rakk Lam Ang Pro - RGB Hotswap (#197)
* rakk lam ang pro initial commit * add default and clean up the code * fix RGB positioning
-rw-r--r--keyboards/rakk_lam_ang_pro/config.h107
-rw-r--r--keyboards/rakk_lam_ang_pro/info.json473
-rw-r--r--keyboards/rakk_lam_ang_pro/keymaps/default/keymap.c71
-rw-r--r--keyboards/rakk_lam_ang_pro/keymaps/via/keymap.c87
-rw-r--r--keyboards/rakk_lam_ang_pro/keymaps/via/rules.mk1
-rw-r--r--keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.c45
-rw-r--r--keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.h37
-rw-r--r--keyboards/rakk_lam_ang_pro/readme.md19
-rw-r--r--keyboards/rakk_lam_ang_pro/rules.mk25
9 files changed, 865 insertions, 0 deletions
diff --git a/keyboards/rakk_lam_ang_pro/config.h b/keyboards/rakk_lam_ang_pro/config.h
new file mode 100644
index 000000000..52904989b
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/config.h
@@ -0,0 +1,107 @@
+/* Copyright 2021 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x3434
+#define PRODUCT_ID 0xFE0E
+#define DEVICE_VER 0x0001
+#define MANUFACTURER RAKK LAM ANG
+#define PRODUCT RAKK LAM ANG PRO
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+#define DIODE_DIRECTION COL2ROW
+
+#define MATRIX_COL_PINS { A8, A9, A10, A11, A12, A13, A14, A15, B0, B1, B2, B3, B4, B5, B6, B7, B8 }
+#define MATRIX_ROW_PINS { C15, D11, D10, D9, D8, D7 }
+
+// Encoder Config
+#define ENCODERS_PAD_A { B10 }
+#define ENCODERS_PAD_B { B9 }
+#define ENCODER_RESOLUTION 2
+
+// LED Status Indicators
+#define LED_CAPS_LOCK_PIN D6
+#define LED_NUM_LOCK_PIN A6
+#define LED_SCROLL_LOCK_PIN A7
+#define LED_PIN_ON_STATE 1
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+// RGB Matrix Config
+#define LED_MATRIX_ROWS MATRIX_ROWS
+#define LED_MATRIX_ROW_CHANNELS 3
+#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS)
+#define LED_MATRIX_ROW_PINS { C3, C1, C0, C6, C5, C4, C9, C8, C7, C12, C11, C10, B13, C14, C13, B14, B15, D3 }
+
+#define LED_MATRIX_COLS MATRIX_COLS
+#define LED_MATRIX_COL_PINS MATRIX_COL_PINS
+
+#define DRIVER_LED_TOTAL 87
+
+// RGB Matrix Effects
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_MATRIX_KEYPRESSES
+
+#define ENABLE_RGB_MATRIX_ALPHAS_MODS
+#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_SAT
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+// #define ENABLE_RGB_MATRIX_RAINDROPS
+// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+#define ENABLE_RGB_MATRIX_HUE_BREATHING
+#define ENABLE_RGB_MATRIX_HUE_PENDULUM
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+#define ENABLE_RGB_MATRIX_PIXEL_RAIN
+#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+
+#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#define ENABLE_RGB_MATRIX_SPLASH
+#define ENABLE_RGB_MATRIX_MULTISPLASH
+#define ENABLE_RGB_MATRIX_SOLID_SPLASH
+#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
diff --git a/keyboards/rakk_lam_ang_pro/info.json b/keyboards/rakk_lam_ang_pro/info.json
new file mode 100644
index 000000000..33bc48a76
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/info.json
@@ -0,0 +1,473 @@
+{
+ "keyboard_name": "Rakk Lam Ang Pro RGB",
+ "url": "",
+ "maintainer": "xelus22",
+ "width": 17,
+ "height": 6,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {
+ "label": "Esc",
+ "x": 0,
+ "y": 0
+ },
+ {
+ "label": "F1",
+ "x": 2,
+ "y": 0
+ },
+ {
+ "label": "F2",
+ "x": 3,
+ "y": 0
+ },
+ {
+ "label": "F3",
+ "x": 4,
+ "y": 0
+ },
+ {
+ "label": "F4",
+ "x": 5,
+ "y": 0
+ },
+ {
+ "label": "F5",
+ "x": 6.5,
+ "y": 0
+ },
+ {
+ "label": "F6",
+ "x": 7.5,
+ "y": 0
+ },
+ {
+ "label": "F7",
+ "x": 8.5,
+ "y": 0
+ },
+ {
+ "label": "F8",
+ "x": 9.5,
+ "y": 0
+ },
+ {
+ "label": "F9",
+ "x": 11,
+ "y": 0
+ },
+ {
+ "label": "F10",
+ "x": 12,
+ "y": 0
+ },
+ {
+ "label": "F11",
+ "x": 13,
+ "y": 0
+ },
+ {
+ "label": "F12",
+ "x": 14,
+ "y": 0
+ },
+ {
+ "label": "PrtSc",
+ "x": 15.25,
+ "y": 0
+ },
+ {
+ "label": "Scroll Lock",
+ "x": 16.25,
+ "y": 0
+ },
+ {
+ "label": "Pause",
+ "x": 17.25,
+ "y": 0
+ },
+ {
+ "label": "~",
+ "x": 0,
+ "y": 1.5
+ },
+ {
+ "label": "!",
+ "x": 1,
+ "y": 1.5
+ },
+ {
+ "label": "@",
+ "x": 2,
+ "y": 1.5
+ },
+ {
+ "label": "#",
+ "x": 3,
+ "y": 1.5
+ },
+ {
+ "label": "$",
+ "x": 4,
+ "y": 1.5
+ },
+ {
+ "label": "%",
+ "x": 5,
+ "y": 1.5
+ },
+ {
+ "label": "^",
+ "x": 6,
+ "y": 1.5
+ },
+ {
+ "label": "&",
+ "x": 7,
+ "y": 1.5
+ },
+ {
+ "label": "*",
+ "x": 8,
+ "y": 1.5
+ },
+ {
+ "label": "(",
+ "x": 9,
+ "y": 1.5
+ },
+ {
+ "label": ")",
+ "x": 10,
+ "y": 1.5
+ },
+ {
+ "label": "_",
+ "x": 11,
+ "y": 1.5
+ },
+ {
+ "label": "+",
+ "x": 12,
+ "y": 1.5
+ },
+ {
+ "label": "Backspace",
+ "x": 13,
+ "y": 1.5,
+ "w": 2
+ },
+ {
+ "label": "Insert",
+ "x": 15.25,
+ "y": 1.5
+ },
+ {
+ "label": "Home",
+ "x": 16.25,
+ "y": 1.5
+ },
+ {
+ "label": "PgUp",
+ "x": 17.25,
+ "y": 1.5
+ },
+ {
+ "label": "Tab",
+ "x": 0,
+ "y": 2.5,
+ "w": 1.5
+ },
+ {
+ "label": "Q",
+ "x": 1.5,
+ "y": 2.5
+ },
+ {
+ "label": "W",
+ "x": 2.5,
+ "y": 2.5
+ },
+ {
+ "label": "E",
+ "x": 3.5,
+ "y": 2.5
+ },
+ {
+ "label": "R",
+ "x": 4.5,
+ "y": 2.5
+ },
+ {
+ "label": "T",
+ "x": 5.5,
+ "y": 2.5
+ },
+ {
+ "label": "Y",
+ "x": 6.5,
+ "y": 2.5
+ },
+ {
+ "label": "U",
+ "x": 7.5,
+ "y": 2.5
+ },
+ {
+ "label": "I",
+ "x": 8.5,
+ "y": 2.5
+ },
+ {
+ "label": "O",
+ "x": 9.5,
+ "y": 2.5
+ },
+ {
+ "label": "P",
+ "x": 10.5,
+ "y": 2.5
+ },
+ {
+ "label": "{",
+ "x": 11.5,
+ "y": 2.5
+ },
+ {
+ "label": "}",
+ "x": 12.5,
+ "y": 2.5
+ },
+ {
+ "label": "|",
+ "x": 13.5,
+ "y": 2.5,
+ "w": 1.5
+ },
+ {
+ "label": "Delete",
+ "x": 15.25,
+ "y": 2.5
+ },
+ {
+ "label": "End",
+ "x": 16.25,
+ "y": 2.5
+ },
+ {
+ "label": "PgDn",
+ "x": 17.25,
+ "y": 2.5
+ },
+ {
+ "label": "Caps Lock",
+ "x": 0,
+ "y": 3.5,
+ "w": 1.75
+ },
+ {
+ "label": "A",
+ "x": 1.75,
+ "y": 3.5
+ },
+ {
+ "label": "S",
+ "x": 2.75,
+ "y": 3.5
+ },
+ {
+ "label": "D",
+ "x": 3.75,
+ "y": 3.5
+ },
+ {
+ "label": "F",
+ "x": 4.75,
+ "y": 3.5
+ },
+ {
+ "label": "G",
+ "x": 5.75,
+ "y": 3.5
+ },
+ {
+ "label": "H",
+ "x": 6.75,
+ "y": 3.5
+ },
+ {
+ "label": "J",
+ "x": 7.75,
+ "y": 3.5
+ },
+ {
+ "label": "K",
+ "x": 8.75,
+ "y": 3.5
+ },
+ {
+ "label": "L",
+ "x": 9.75,
+ "y": 3.5
+ },
+ {
+ "label": ":",
+ "x": 10.75,
+ "y": 3.5
+ },
+ {
+ "label": "\"",
+ "x": 11.75,
+ "y": 3.5
+ },
+ {
+ "label": "Enter",
+ "x": 12.75,
+ "y": 3.5,
+ "w": 2.25
+ },
+ {
+ "label": "GUI_TOG",
+ "x": 15.25,
+ "y": 3.5
+ },
+ {
+ "label": "RGB_TOG",
+ "x": 16.25,
+ "y": 3.5
+ },
+ {
+ "label": "Shift",
+ "x": 0,
+ "y": 4.5,
+ "w": 2.25
+ },
+ {
+ "label": "Z",
+ "x": 2.25,
+ "y": 4.5
+ },
+ {
+ "label": "X",
+ "x": 3.25,
+ "y": 4.5
+ },
+ {
+ "label": "C",
+ "x": 4.25,
+ "y": 4.5
+ },
+ {
+ "label": "V",
+ "x": 5.25,
+ "y": 4.5
+ },
+ {
+ "label": "B",
+ "x": 6.25,
+ "y": 4.5
+ },
+ {
+ "label": "N",
+ "x": 7.25,
+ "y": 4.5
+ },
+ {
+ "label": "M",
+ "x": 8.25,
+ "y": 4.5
+ },
+ {
+ "label": "<",
+ "x": 9.25,
+ "y": 4.5
+ },
+ {
+ "label": ">",
+ "x": 10.25,
+ "y": 4.5
+ },
+ {
+ "label": "?",
+ "x": 11.25,
+ "y": 4.5
+ },
+ {
+ "label": "Shift",
+ "x": 12.25,
+ "y": 4.5,
+ "w": 2.75
+ },
+ {
+ "label": "\u2191",
+ "x": 16.25,
+ "y": 4.5
+ },
+ {
+ "label": "Ctrl",
+ "x": 0,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "Win",
+ "x": 1.25,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "Alt",
+ "x": 2.5,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "Space",
+ "x": 3.75,
+ "y": 5.5,
+ "w": 6.25
+ },
+ {
+ "label": "Alt",
+ "x": 10,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "Win",
+ "x": 11.25,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "Menu",
+ "x": 12.5,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "Ctrl",
+ "x": 13.75,
+ "y": 5.5,
+ "w": 1.25
+ },
+ {
+ "label": "\u2190",
+ "x": 15.25,
+ "y": 5.5
+ },
+ {
+ "label": "\u2193",
+ "x": 16.25,
+ "y": 5.5
+ },
+ {
+ "label": "\u2192",
+ "x": 17.25,
+ "y": 5.5
+ }
+ ]
+ }
+ }
+}
diff --git a/keyboards/rakk_lam_ang_pro/keymaps/default/keymap.c b/keyboards/rakk_lam_ang_pro/keymaps/default/keymap.c
new file mode 100644
index 000000000..c2bfee907
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/keymaps/default/keymap.c
@@ -0,0 +1,71 @@
+/* Copyright 2021 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* +--------------------------------------------------------------------------+----------------+
+ | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|????|PAUS|
+ +--------------------------------------------------------------------------+------|----|----|
+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |SCRL|PGUP|
+ +--------------------------------------------------------------------------+------|----|----|
+ | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN|
+ +--------------------------------------------------------------------------+------|----|----|
+ | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | |
+ +--------------------------------------------------------------------------+ |----| |
+ | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | |
+ +--------------------------------------------------------------------------+------|----|----|
+ |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT |
+ +--------------------------------------------------------------------------+----------------+
+*/
+
+ [0] = LAYOUT_ansi(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, GUI_TOG, RGB_TOG,
+ 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , RGB_SPI, RGB_SAI, RGB_HUI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SAD, RGB_HUD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD
+ )
+};
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+ return false;
+}
+
+void keyboard_post_init_user(void) {
+ // Customise these values to desired behaviour
+ //debug_enable=true;
+ //debug_matrix=true;
+ //debug_keyboard=true;
+ //debug_mouse=true;
+}
diff --git a/keyboards/rakk_lam_ang_pro/keymaps/via/keymap.c b/keyboards/rakk_lam_ang_pro/keymaps/via/keymap.c
new file mode 100644
index 000000000..3e3107241
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/keymaps/via/keymap.c
@@ -0,0 +1,87 @@
+/* Copyright 2021 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+/* +--------------------------------------------------------------------------+----------------+
+ | ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9| F10| F11| F12| | |PSCR|????|PAUS|
+ +--------------------------------------------------------------------------+------|----|----|
+ | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP | |INS |SCRL|PGUP|
+ +--------------------------------------------------------------------------+------|----|----|
+ | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |DEL |END |PGDN|
+ +--------------------------------------------------------------------------+------|----|----|
+ | CAPSLCK | A | S | D | F | G | H | J | K | L | ; | ' | RETURN | |
+ +--------------------------------------------------------------------------+ |----| |
+ | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | | UP | |
+ +--------------------------------------------------------------------------+------|----|----|
+ |LCTRL| LGUI| LALT | SPACE | RALT| RGUI | FN | RCTRL | |LFT |DWN |RGT |
+ +--------------------------------------------------------------------------+----------------+
+*/
+ [0] = LAYOUT_ansi(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, GUI_TOG, RGB_TOG,
+ 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , RGB_SPI, RGB_SAI, RGB_HUI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SAD, RGB_HUD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD
+ ),
+ [2] = LAYOUT_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+ return false;
+}
+
+void keyboard_post_init_user(void) {
+ // Customise these values to desired behaviour
+ //debug_enable=true;
+ //debug_matrix=true;
+ //debug_keyboard=true;
+ //debug_mouse=true;
+}
diff --git a/keyboards/rakk_lam_ang_pro/keymaps/via/rules.mk b/keyboards/rakk_lam_ang_pro/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.c b/keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.c
new file mode 100644
index 000000000..1dfe31e6f
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.c
@@ -0,0 +1,45 @@
+/* Copyright 2021 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "rakk_lam_ang_pro.h"
+
+#define XX NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+__attribute__ ((weak))
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, XX, 13, 14, 15},
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32},
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, XX, 62, XX, XX, XX},
+ { 63, XX, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, XX, 74, XX, 75, XX},
+ { 76, 77, 78, XX, XX, XX, 79, XX, XX, XX, 80, 81, 82, 83, 84, 85, 86}
+}, {
+ {0 , 0}, {26 , 0}, {39 , 0}, {52 , 0}, {65 , 0}, {84 , 0}, {97 , 0}, {110, 0}, {123, 0}, {143, 0}, {156, 0}, {169, 0}, {182, 0}, {198, 0}, {211, 0}, {224, 0},
+ {0 , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17},
+ {3 , 29}, {19 , 29}, {32 , 29}, {45 , 29}, {58 , 29}, {71 , 29}, {84 , 29}, {97 , 29}, {110, 29}, {123, 29}, {136, 29}, {149, 29}, {162, 29}, {179, 29}, {198, 29}, {211, 29}, {224, 29},
+ {5 , 41}, {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41},
+ {8 , 52}, {29 , 52}, {42 , 52}, {55 , 52}, {68 , 52}, {81 , 52}, {94 , 52}, {107, 52}, {120, 52}, {133, 52}, {146, 52}, {170, 52}, {211, 52},
+ {2 , 64}, {18 , 64}, {34 , 64}, {83 , 64}, {131, 64}, {148, 64}, {164, 64}, {180, 64}, {198, 64}, {211, 64}, {224, 64},
+}, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.h b/keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.h
new file mode 100644
index 000000000..cdd657ca4
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/rakk_lam_ang_pro.h
@@ -0,0 +1,37 @@
+/* Copyright 2021 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_ansi( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, k0g, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3f, k3e, \
+ k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4f, \
+ k50, k51, k52, k56, k5a, k5b, k5c, k5d, k5e, k5f, k5g \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e, k3f, XXX }, \
+ { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, XXX, k4d, XXX, k4f, XXX }, \
+ { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \
+}
diff --git a/keyboards/rakk_lam_ang_pro/readme.md b/keyboards/rakk_lam_ang_pro/readme.md
new file mode 100644
index 000000000..7421176bc
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/readme.md
@@ -0,0 +1,19 @@
+# Rakk Lam Ang Pro
+
+Rakk Lam Ang Pro Hotswap RGB
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rakk_lam_ang_pro:default
+
+* * *
+For more info and detailed flashing instructions, please visit https://github.com/alex-dinh/keychron-k8
+
+Reset your keyboard in 3 ways:
+<ol>
+<li>Software reset on Fn + Backspace</li>
+<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li>
+<li>Physical reset: Short Boot0 while plugging in the keyboard</li>
+</ol>
+
+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/rakk_lam_ang_pro/rules.mk b/keyboards/rakk_lam_ang_pro/rules.mk
new file mode 100644
index 000000000..c8120a461
--- /dev/null
+++ b/keyboards/rakk_lam_ang_pro/rules.mk
@@ -0,0 +1,25 @@
+# MCU name
+MCU = SN32F248BF
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+
+WAIT_FOR_USB = no
+CUSTOM_MATRIX = yes
+ENCODER_ENABLE = yes
+
+# Custom RGB matrix handling
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = SN32F24xB
+
+# project specific files
+SRC = ../../../drivers/led/sn32/matrix_sn32f24xx.c