aboutsummaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-11-10 15:04:47 +0000
committerQMK Bot <hello@qmk.fm>2021-11-10 15:04:47 +0000
commit4ee91f236b91c99a27a845e7ec25e1f1829ec6c7 (patch)
tree04161e3f91bc33f21472518dacfc30fb29c2b3ca /keyboards
parent1ae9576f815f8845c243dcec9e0888f985322629 (diff)
parent474921d23187499751f14aee444cd78ae6b05a5a (diff)
downloadqmk_firmware-4ee91f236b91c99a27a845e7ec25e1f1829ec6c7.tar.gz
qmk_firmware-4ee91f236b91c99a27a845e7ec25e1f1829ec6c7.zip
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/playkbtw/pk64rgb/config.h99
-rw-r--r--keyboards/playkbtw/pk64rgb/info.json83
-rw-r--r--keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c44
-rw-r--r--keyboards/playkbtw/pk64rgb/keymaps/default/readme.md3
-rw-r--r--keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c55
-rw-r--r--keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk2
-rw-r--r--keyboards/playkbtw/pk64rgb/pk64rgb.c117
-rw-r--r--keyboards/playkbtw/pk64rgb/pk64rgb.h33
-rw-r--r--keyboards/playkbtw/pk64rgb/readme.md25
-rw-r--r--keyboards/playkbtw/pk64rgb/rules.mk28
10 files changed, 489 insertions, 0 deletions
diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h
new file mode 100644
index 000000000..302929ae9
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/config.h
@@ -0,0 +1,99 @@
1/* Copyright 2021 Play Keyboard
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 "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x706B // Play Keyboard
23#define PRODUCT_ID 0x3634
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Play Keyboard
26#define PRODUCT Play Keyboard 64 RGB
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 14
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41 */
42#define MATRIX_ROW_PINS { D7, D6, D5, D3, D2 }
43#define MATRIX_COL_PINS { B5, B6, C6, C7, F7, F6, F5, F4, F1, F0, B1, B2, B3, B7 }
44
45/* COL2ROW, ROW2COL*/
46#define DIODE_DIRECTION COL2ROW
47
48#ifdef RGB_MATRIX_ENABLE
49 #define RGB_MATRIX_KEYPRESSES
50 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
51 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
52 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
53 #define RGB_MATRIX_LED_PROCESS_LIMIT 20
54 #define RGB_MATRIX_LED_FLUSH_LIMIT 26
55 #define DRIVER_ADDR_1 0b1010000
56 #define DRIVER_COUNT 1
57 #define DRIVER_LED_TOTAL 64
58
59
60#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
61#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
62#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
63#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
64#define DISABLE_RGB_MATRIX_BAND_SAT
65#define DISABLE_RGB_MATRIX_BAND_VAL
66#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
67#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
68#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
69#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
70#endif
71
72#define RGB_DI_PIN B0
73#ifdef RGB_DI_PIN
74# define RGBLIGHT_EFFECT_BREATHING
75# define RGBLIGHT_EFFECT_RAINBOW_MOOD
76# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
77# define RGBLIGHT_EFFECT_SNAKE
78# define RGBLIGHT_EFFECT_KNIGHT
79# define RGBLIGHT_EFFECT_CHRISTMAS
80# define RGBLIGHT_EFFECT_STATIC_GRADIENT
81# define RGBLIGHT_EFFECT_ALTERNATING
82# define RGBLIGHT_EFFECT_TWINKLE
83# define RGBLED_NUM 18
84# define RGBLIGHT_HUE_STEP 5
85# define RGBLIGHT_SAT_STEP 5
86# define RGBLIGHT_VAL_STEP 5
87# define RGBLIGHT_SLEEP
88#endif
89
90/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
91#define DEBOUNCE 5
92
93/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
94#define LOCKING_SUPPORT_ENABLE
95/* Locking resynchronize hack */
96#define LOCKING_RESYNC_ENABLE
97
98/* VIA related config */
99#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/playkbtw/pk64rgb/info.json b/keyboards/playkbtw/pk64rgb/info.json
new file mode 100644
index 000000000..736560e06
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/info.json
@@ -0,0 +1,83 @@
1{
2 "keyboard_name": "PK64RGB",
3 "url": "",
4 "maintainer": "yj7272098",
5 "layouts": {
6 "LAYOUT_64_ansi":
7 [
8 {"x":0, "y":0},
9 {"x":1, "y":0},
10 {"x":2, "y":0},
11 {"x":3, "y":0},
12 {"x":4, "y":0},
13 {"x":5, "y":0},
14 {"x":6, "y":0},
15 {"x":7, "y":0},
16 {"x":8, "y":0},
17 {"x":9, "y":0},
18 {"x":10, "y":0},
19 {"x":11, "y":0},
20 {"x":12, "y":0},
21 {"x":13, "y":0, "w":2},
22
23
24 {"x":0, "y":1, "w":1.5},
25 {"x":1.5, "y":1},
26 {"x":2.5, "y":1},
27 {"x":3.5, "y":1},
28 {"x":4.5, "y":1},
29 {"x":5.5, "y":1},
30 {"x":6.5, "y":1},
31 {"x":7.5, "y":1},
32 {"x":8.5, "y":1},
33 {"x":9.5, "y":1},
34 {"x":10.5, "y":1},
35 {"x":11.5, "y":1},
36 {"x":12.5, "y":1},
37 {"x":13.5, "y":1, "w":1.5},
38
39
40 {"x":0, "y":2, "w":1.75},
41 {"x":1.75, "y":2},
42 {"x":2.75, "y":2},
43 {"x":3.75, "y":2},
44 {"x":4.75, "y":2},
45 {"x":5.75, "y":2},
46 {"x":6.75, "y":2},
47 {"x":7.75, "y":2},
48 {"x":8.75, "y":2},
49 {"x":9.75, "y":2},
50 {"x":10.75, "y":2},
51 {"x":11.75, "y":2},
52 {"x":12.75, "y":2, "w":2.25},
53
54
55 {"x":0, "y":3, "w":2},
56 {"x":2, "y":3},
57 {"x":3, "y":3},
58 {"x":4, "y":3},
59 {"x":5, "y":3},
60 {"x":6, "y":3},
61 {"x":7, "y":3},
62 {"x":8, "y":3},
63 {"x":9, "y":3},
64 {"x":10, "y":3},
65 {"x":11, "y":3},
66 {"x":12, "y":3},
67 {"x":13, "y":3},
68 {"x":14, "y":3},
69
70
71 {"x":0, "y":4, "w":1.25},
72 {"x":1.25, "y":4, "w":1.25},
73 {"x":2.5, "y":4, "w":1.25},
74 {"x":3.75, "y":4, "w":6.25},
75 {"x":10, "y":4},
76 {"x":11, "y":4},
77 {"x":12, "y":4},
78 {"x":13, "y":4},
79 {"x":14, "y":4},
80
81]
82}
83} \ No newline at end of file
diff --git a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c
new file mode 100644
index 000000000..9cfbc3c28
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
1/* Copyright 2021 Play Keyboard
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] = LAYOUT_64_ansi(
22 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_BSPC,
23 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,
24 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,
25 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_DEL,
26 KC_LCTL, KC_LALT, KC_LWIN, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] = LAYOUT_64_ansi(
29 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9 , KC_F10, KC_F11, KC_F12, _______,
30 _______, _______,_______,_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______,
31 RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______,
32 _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______
34 )
35};
36
37void rgb_matrix_indicators_user(void) {
38 if (layer_state_is(1)) {
39 rgb_matrix_set_color(77,0xFF, 0x80, 0x00);
40 }
41 if (host_keyboard_led_state().caps_lock) {
42 rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF);
43 }
44} \ No newline at end of file
diff --git a/keyboards/playkbtw/pk64rgb/keymaps/default/readme.md b/keyboards/playkbtw/pk64rgb/keymaps/default/readme.md
new file mode 100644
index 000000000..9875a6a41
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# Default PK64RGB Layout
2
3This is the default 64_ansi layout that comes flashed on every PK64RGB. \ No newline at end of file
diff --git a/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c
new file mode 100644
index 000000000..3d18f60dd
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c
@@ -0,0 +1,55 @@
1/* Copyright 2021 Play Keyboard
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] =LAYOUT_64_ansi(
22 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_BSPC,
23 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,
24 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,
25 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_DEL,
26 KC_LCTL, KC_LALT, KC_LWIN, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] =LAYOUT_64_ansi(
29 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_DEL,
30 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
31 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,RGB_VAI, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD),
34 [2] = LAYOUT_64_ansi(
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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
40 [3] = LAYOUT_64_ansi(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
46};
47
48void rgb_matrix_indicators_user(void) {
49 if (layer_state_is(1)) {
50 rgb_matrix_set_color(77,0xFF, 0x80, 0x00);
51 }
52 if (host_keyboard_led_state().caps_lock) {
53 rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF);
54 }
55} \ No newline at end of file
diff --git a/keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk b/keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk
new file mode 100644
index 000000000..7f1f849dc
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1LTO_ENABLE = yes
2VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c
new file mode 100644
index 000000000..244a47967
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c
@@ -0,0 +1,117 @@
1/* Copyright 2021 Play Keyboard
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#include "pk64rgb.h"
18
19#ifdef RGB_MATRIX_ENABLE
20const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
21 /* Refer to IS31 manual for these locations
22 * driver
23 * | R location
24 * | | G location
25 * | | | B location
26 * | | | | */
27
28 {0, A_1, B_1, C_1},
29 {0, D_1, E_1, F_1},
30 {0, G_1, H_1, I_1},
31 {0, J_1, K_1, L_1},
32 {0, A_6, B_6, C_6},
33 {0, D_6, E_6, F_6},
34 {0, G_6, H_6, I_6},
35 {0, J_6, K_6, L_6},
36 {0, A_11, B_11, C_11},
37 {0, D_11, E_11, F_11},
38 {0, G_11, H_11, I_11},
39 {0, J_11, K_11, L_11},
40 {0, A_16, B_16, C_16},
41 {0, D_16, E_16, F_16},
42
43 {0, A_2, B_2, C_2},
44 {0, D_2, E_2, F_2},
45 {0, G_2, H_2, I_2},
46 {0, J_2, K_2, L_2},
47 {0, A_7, B_7, C_7},
48 {0, D_7, E_7, F_7},
49 {0, G_7, H_7, I_7},
50 {0, J_7, K_7, L_7},
51 {0, A_12, B_12, C_12},
52 {0, D_12, E_12, F_12},
53 {0, G_12, H_12, I_12},
54 {0, J_12, K_12, L_12},
55 {0, G_16, H_16, I_16},
56 {0, J_16, K_16, L_16},
57
58 {0, A_3, B_3, C_3},
59 {0, D_3, E_3, F_3},
60 {0, G_3, H_3, I_3},
61 {0, J_3, K_3, L_3},
62 {0, A_8, B_8, C_8},
63 {0, D_8, E_8, F_8},
64 {0, G_8, H_8, I_8},
65 {0, J_8, K_8, L_8},
66 {0, A_13, B_13, C_13},
67 {0, D_13, E_13, F_13},
68 {0, G_13, H_13, I_13},
69 {0, J_13, K_13, L_13},
70 {0, A_15, B_15, C_15},
71
72 {0, A_4, B_4, C_4},
73 {0, D_4, E_4, F_4},
74 {0, G_4, H_4, I_4},
75 {0, J_4, K_4, L_4},
76 {0, A_9, B_9, C_9},
77 {0, D_9, E_9, F_9},
78 {0, G_9, H_9, I_9},
79 {0, J_9, K_9, L_9},
80 {0, A_14, B_14, C_14},
81 {0, D_14, E_14, F_14},
82 {0, G_14, H_14, I_14},
83 {0, J_14, K_14, L_14},
84 {0, D_15, E_15, F_15},
85 {0, G_15, H_15, I_15},
86
87 {0, A_5, B_5, C_5},
88 {0, D_5, E_5, F_5},
89 {0, G_5, H_5, I_5},
90 {0, J_5, K_5, L_5},
91 {0, A_10, B_10, C_10},
92 {0, D_10, E_10, F_10},
93 {0, G_10, H_10, I_10},
94 {0, J_10, K_10, L_10},
95 {0, J_15, K_15, L_15}
96};
97
98led_config_t g_led_config = {{
99 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
100 { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
101 { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40},
102 { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 },
103 { 55, 56, 57, 58, 59, 60, 61, 62, 63}
104}, {
105 { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 },
106 { 4, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 220, 16 },
107 { 6, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 212, 32 },
108 { 9, 48 }, { 27, 48 }, { 43, 48 }, { 59, 48 }, { 75, 48 }, { 91, 48 }, { 107, 48 }, { 123, 48 }, { 139, 48 }, { 155, 48 }, { 171, 48 }, { 187, 48 }, { 203, 48 }, { 219, 48 },
109 { 2, 64 }, { 16, 64 }, { 32, 64 }, { 64, 64 }, { 114, 64 }, { 130, 64 }, { 146, 64 }, { 204, 64 }, { 224, 64 }
110}, {
111 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
112 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
113 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
114 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
115 1, 1, 1, 4, 1, 1, 4, 4, 4,
116}};
117#endif \ No newline at end of file
diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.h b/keyboards/playkbtw/pk64rgb/pk64rgb.h
new file mode 100644
index 000000000..be0ee0a01
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/pk64rgb.h
@@ -0,0 +1,33 @@
1/* Copyright 2021 Play Keyboard
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
21#define LAYOUT_64_ansi( \
22 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
23 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
24 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
25 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
26 K40, K41, K42, K45, K48, K4A, K4B, K4C, K4D \
27) { \
28 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
29 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
30 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \
31 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
32 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K48, K4A, K4B, K4C, K4D } \
33}
diff --git a/keyboards/playkbtw/pk64rgb/readme.md b/keyboards/playkbtw/pk64rgb/readme.md
new file mode 100644
index 000000000..29871af7a
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/readme.md
@@ -0,0 +1,25 @@
1# Play Keyboard 64RGB
2
3![PK64RGB](https://cdn.store-assets.com/s/409567/i/25281841.png)
4
5A 60% RGB hotswap keyboard PCB made by Play Keyboard.
6
7* Keyboard Maintainer: [Barry Huang](https://github.com/yj7272098)
8* Hardware Supported: Play Keyboard 64 RGB
9* Hardware Availability: [Play Keyboard](http://play-keyboard.store/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make playkbtw/pk64rgb:default
14
15## Bootloader
16
17Enter the bootloader in 3 ways:
18
19* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
20* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
21* **Keycode in layout**: Press the key mapped to `RESET` if it is available
22
23You can get into bootloader by pressing the reset button from the back of PCB.
24
25See 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/playkbtw/pk64rgb/rules.mk b/keyboards/playkbtw/pk64rgb/rules.mk
new file mode 100644
index 000000000..b7e077924
--- /dev/null
+++ b/keyboards/playkbtw/pk64rgb/rules.mk
@@ -0,0 +1,28 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_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
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21RGB_MATRIX_ENABLE = yes # Use RGB matrix
22RGB_MATRIX_DRIVER = IS31FL3733
23
24AUDIO_ENABLE = no # Audio output
25
26LAYOUTS = 64_ansi
27
28LTO_ENABLE = yes \ No newline at end of file