Skip to content

Commit

Permalink
[Redragon K630] Sn32 develop redragon k630 bringup (qmk#317)
Browse files Browse the repository at this point in the history
* Initial support for Redragon K630

* Improve compliance with QMK's PR checklist

* Fix shared matrix misbehavior causing unresponsive keyboard

* Enable Bootmagic Lite and fix volume keys misalignment in layer L2

* fix accidentally flipped KC_BRID/KC_BRIU

* Overhaul keyboard layout implementing LAYOUT_60_ansi

* Enable emulated EEPROM support

* Enable typing heatmap RGB effect

* Initial VIA support

* Add proper spacing for VIA JSON

* Final pre-merge cleanup

* Enable mouse key emulation on VIA keymap for better user flexibility

* Normalize RGB matrix coordinates

* Enable extra RGB matrix effects

* Improve RGB matrix accuracy and enable some extra effects
  • Loading branch information
bausensi authored Feb 1, 2023
1 parent 4ebb7e6 commit 1dcc510
Show file tree
Hide file tree
Showing 9 changed files with 389 additions and 0 deletions.
54 changes: 54 additions & 0 deletions keyboards/redragon/k630/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/* Copyright (C) 2023 Benjamín Ausensi <[email protected]>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#include "config_common.h"

/* RGB matrix configuration can't be fully expressed in JSON as of now */
#define RGB_MATRIX_LED_COUNT 61
#define LED_MATRIX_ROWS MATRIX_ROWS
#define LED_MATRIX_COLS MATRIX_COLS
#define LED_MATRIX_ROW_CHANNELS 3
#define LED_MATRIX_ROWS_HW (LED_MATRIX_ROWS * LED_MATRIX_ROW_CHANNELS)
#define LED_MATRIX_ROW_PINS { C4, C5, C6, C7, C8, C9, C10, C11, C12, B6, B7, B8, B9, B10, B11 }
/* Usually, RGB matrix column configuration matches key matrix column */
/* configuration on Sonix boards */
#define LED_MATRIX_COL_PINS MATRIX_COL_PINS

/* Enable additional RGB effects */
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES

/* The effects: */
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT

#define ENABLE_RGB_MATRIX_SOLID_COLOR
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_RAINDROPS

#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN

#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
182 changes: 182 additions & 0 deletions keyboards/redragon/k630/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
{
"keyboard_name": "K630",
"manufacturer": "Redragon",
"url": "https://www.redragonzone.com/products/redragon-k630-gaming-mechanical-keyboard",
"maintainer": "bausensi",
"bootloader": "sn32-dfu",

"processor": "SN32F248BF",
"usb": {
"vid": "0x0C45",
"pid": "0x5004",
"device_version": "0.0.1",
"force_nkro": true
},

"features": {
"audio": false,
"backlight": false,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": false,
"nkro": true,
"rgb_matrix": true
},

"debounce": 3,
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13" ],
"rows": [ "D11", "D10", "D9", "D8", "D7" ]
},

"indicators": {
"caps_lock": "B14",
"on_state": 0
},

"rgb_matrix": {
"driver": "SN32F24xB",
"layout": [
{ "matrix":[0, 0], "flags":4, "x":0, "y":0 },
{ "matrix":[0, 1], "flags":4, "x":16, "y":0 },
{ "matrix":[0, 2], "flags":4, "x":32, "y":0 },
{ "matrix":[0, 3], "flags":4, "x":48, "y":0 },
{ "matrix":[0, 4], "flags":4, "x":64, "y":0 },
{ "matrix":[0, 5], "flags":4, "x":80, "y":0 },
{ "matrix":[0, 6], "flags":4, "x":96, "y":0 },
{ "matrix":[0, 7], "flags":4, "x":112, "y":0 },
{ "matrix":[0, 8], "flags":4, "x":128, "y":0 },
{ "matrix":[0, 9], "flags":4, "x":144, "y":0 },
{ "matrix":[0, 10], "flags":4, "x":160, "y":0 },
{ "matrix":[0, 11], "flags":4, "x":176, "y":0 },
{ "matrix":[0, 12], "flags":4, "x":192, "y":0 },
{ "matrix":[0, 13], "flags":4, "x":208, "y":0 },

{ "matrix":[1, 0], "flags":4, "x":4, "y":16 },
{ "matrix":[1, 1], "flags":4, "x":24, "y":16 },
{ "matrix":[1, 2], "flags":4, "x":40, "y":16 },
{ "matrix":[1, 3], "flags":4, "x":56, "y":16 },
{ "matrix":[1, 4], "flags":4, "x":72, "y":16 },
{ "matrix":[1, 5], "flags":4, "x":88, "y":16 },
{ "matrix":[1, 6], "flags":4, "x":104, "y":16 },
{ "matrix":[1, 7], "flags":4, "x":120, "y":16 },
{ "matrix":[1, 8], "flags":4, "x":136, "y":16 },
{ "matrix":[1, 9], "flags":4, "x":152, "y":16 },
{ "matrix":[1, 10], "flags":4, "x":168, "y":16 },
{ "matrix":[1, 11], "flags":4, "x":184, "y":16 },
{ "matrix":[1, 12], "flags":4, "x":200, "y":16 },
{ "matrix":[1, 13], "flags":4, "x":216, "y":16 },

{ "matrix":[2, 0], "flags":4, "x":6, "y":32 },
{ "matrix":[2, 1], "flags":4, "x":28, "y":32 },
{ "matrix":[2, 2], "flags":4, "x":44, "y":32 },
{ "matrix":[2, 3], "flags":4, "x":60, "y":32 },
{ "matrix":[2, 4], "flags":4, "x":76, "y":32 },
{ "matrix":[2, 5], "flags":4, "x":92, "y":32 },
{ "matrix":[2, 6], "flags":4, "x":108, "y":32 },
{ "matrix":[2, 7], "flags":4, "x":124, "y":32 },
{ "matrix":[2, 8], "flags":4, "x":140, "y":32 },
{ "matrix":[2, 9], "flags":4, "x":156, "y":32 },
{ "matrix":[2, 10], "flags":4, "x":172, "y":32 },
{ "matrix":[2, 11], "flags":4, "x":188, "y":32 },
{ "matrix":[2, 13], "flags":4, "x":204, "y":32 },

{ "matrix":[3, 0], "flags":4, "x":10, "y":48 },
{ "matrix":[3, 2], "flags":4, "x":36, "y":48 },
{ "matrix":[3, 3], "flags":4, "x":52, "y":48 },
{ "matrix":[3, 4], "flags":4, "x":68, "y":48 },
{ "matrix":[3, 5], "flags":4, "x":84, "y":48 },
{ "matrix":[3, 6], "flags":4, "x":100, "y":48 },
{ "matrix":[3, 7], "flags":4, "x":116, "y":48 },
{ "matrix":[3, 8], "flags":4, "x":132, "y":48 },
{ "matrix":[3, 9], "flags":4, "x":148, "y":48 },
{ "matrix":[3, 10], "flags":4, "x":164, "y":48 },
{ "matrix":[3, 11], "flags":4, "x":180, "y":48 },
{ "matrix":[3, 13], "flags":4, "x":196, "y":48 },

{ "matrix":[4, 0], "flags":4, "x":2, "y":64 },
{ "matrix":[4, 1], "flags":4, "x":22, "y":64 },
{ "matrix":[4, 2], "flags":4, "x":42, "y":64 },
{ "matrix":[4, 6], "flags":4, "x":102, "y":64 },
{ "matrix":[4, 10], "flags":4, "x":162, "y":64 },
{ "matrix":[4, 11], "flags":4, "x":182, "y":64 },
{ "matrix":[4, 12], "flags":4, "x":202, "y":64 },
{ "matrix":[4, 13], "flags":4, "x":222, "y":64 }
]
},

"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{ "matrix":[0, 0], "x":0, "y":0 },
{ "matrix":[0, 1], "x":1, "y":0 },
{ "matrix":[0, 2], "x":2, "y":0 },
{ "matrix":[0, 3], "x":3, "y":0 },
{ "matrix":[0, 4], "x":4, "y":0 },
{ "matrix":[0, 5], "x":5, "y":0 },
{ "matrix":[0, 6], "x":6, "y":0 },
{ "matrix":[0, 7], "x":7, "y":0 },
{ "matrix":[0, 8], "x":8, "y":0 },
{ "matrix":[0, 9], "x":9, "y":0 },
{ "matrix":[0, 10], "x":10, "y":0 },
{ "matrix":[0, 11], "x":11, "y":0 },
{ "matrix":[0, 12], "x":12, "y":0 },
{ "matrix":[0, 13], "x":13, "y":0, "w":2 },

{ "matrix":[1, 0], "x":0, "y":1, "w":1.5 },
{ "matrix":[1, 1], "x":1.5, "y":1 },
{ "matrix":[1, 2], "x":2.5, "y":1 },
{ "matrix":[1, 3], "x":3.5, "y":1 },
{ "matrix":[1, 4], "x":4.5, "y":1 },
{ "matrix":[1, 5], "x":5.5, "y":1 },
{ "matrix":[1, 6], "x":6.5, "y":1 },
{ "matrix":[1, 7], "x":7.5, "y":1 },
{ "matrix":[1, 8], "x":8.5, "y":1 },
{ "matrix":[1, 9], "x":9.5, "y":1 },
{ "matrix":[1, 10], "x":10.5, "y":1 },
{ "matrix":[1, 11], "x":11.5, "y":1 },
{ "matrix":[1, 12], "x":12.5, "y":1 },
{ "matrix":[1, 13], "x":13.5, "y":1, "w":1.5 },

{ "matrix":[2, 0], "x":0, "y":2, "w":1.75 },
{ "matrix":[2, 1], "x":1.75, "y":2 },
{ "matrix":[2, 2], "x":2.75, "y":2 },
{ "matrix":[2, 3], "x":3.75, "y":2 },
{ "matrix":[2, 4], "x":4.75, "y":2 },
{ "matrix":[2, 5], "x":5.75, "y":2 },
{ "matrix":[2, 6], "x":6.75, "y":2 },
{ "matrix":[2, 7], "x":7.75, "y":2 },
{ "matrix":[2, 8], "x":8.75, "y":2 },
{ "matrix":[2, 9], "x":9.75, "y":2 },
{ "matrix":[2, 10], "x":10.75, "y":2 },
{ "matrix":[2, 11], "x":11.75, "y":2 },
{ "matrix":[2, 13], "x":12.75, "y":2, "w":2.25 },

{ "matrix":[3, 0], "x":0, "y":3, "w":2.25 },
{ "matrix":[3, 2], "x":2.25, "y":3 },
{ "matrix":[3, 3], "x":3.25, "y":3 },
{ "matrix":[3, 4], "x":4.25, "y":3 },
{ "matrix":[3, 5], "x":5.25, "y":3 },
{ "matrix":[3, 6], "x":6.25, "y":3 },
{ "matrix":[3, 7], "x":7.25, "y":3 },
{ "matrix":[3, 8], "x":8.25, "y":3 },
{ "matrix":[3, 9], "x":9.25, "y":3 },
{ "matrix":[3, 10], "x":10.25, "y":3 },
{ "matrix":[3, 11], "x":11.25, "y":3 },
{ "matrix":[3, 13], "x":12.25, "y":3, "w":2.75 },

{ "matrix":[4, 0], "x":0, "y":4, "w":1.25 },
{ "matrix":[4, 1], "x":1.25, "y":4, "w":1.25 },
{ "matrix":[4, 2], "x":2.5, "y":4, "w":1.25 },
{ "matrix":[4, 6], "x":3.75, "y":4, "w":6.25 },
{ "matrix":[4, 10], "x":10, "y":4, "w":1.25 },
{ "matrix":[4, 11], "x":11.25, "y":4, "w":1.25 },
{ "matrix":[4, 12], "x":12.5, "y":4, "w":1.25 },
{ "matrix":[4, 13], "x":13.75, "y":4, "w":1.25 }
]
}
}
}
41 changes: 41 additions & 0 deletions keyboards/redragon/k630/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* Copyright (C) 2023 Benjamín Ausensi
*
* 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

enum layer_names {
L0,
L1,
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[L0] = LAYOUT_60_ansi(
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,
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,
LT(L1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(L1), KC_APP, KC_RCTL
),
[L1] = LAYOUT_60_ansi(
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, QK_BOOT,
_______, KC_VOLD, KC_UP, KC_VOLU, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, XXXXXXX, XXXXXXX, KC_PSCR, KC_INS, KC_DEL, KC_PAUS,
_______, KC_LEFT, KC_DOWN, KC_RGHT, RGB_SAD, RGB_SAI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______,
_______, RGB_MOD, RGB_TOG, KC_MUTE, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______
)
};

/* vim: set noai ts=4 sw=4: */
20 changes: 20 additions & 0 deletions keyboards/redragon/k630/keymaps/via/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/* Copyright (C) 2023 Benjamín Ausensi
*
* 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

/* Enable VIA RGB matrix and configure EEPROM emulation for VIA */
#define VIA_QMK_RGBLIGHT_ENABLE
16 changes: 16 additions & 0 deletions keyboards/redragon/k630/keymaps/via/k630_via.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "Redragon K630",
"vendorId": "0x0C45",
"productId": "0x5004",
"menus": ["qmk_rgb_matrix"],
"matrix": {"rows": 5, "cols": 14},
"layouts": {
"keymap": [
[ "0,0", "0,1", "0,2", "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", "0,9", "0,10", "0,11", "0,12", {"w":2}, "0,13" ],
[ {"w":1.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w":1.5}, "1,13" ],
[ {"w":1.75}, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", {"w":2.25}, "2,13" ],
[ {"w":2.25}, "3,0", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", {"w":2.75}, "3,13" ],
[ {"w":1.25}, "4,0", {"w":1.25}, "4,1", {"w":1.25},"4,2", {"w":6.25}, "4,6", {"w":1.25},"4,10", {"w":1.25},"4,11", {"w":1.25},"4,12", {"w":1.25},"4,13" ]
]
}
}
51 changes: 51 additions & 0 deletions keyboards/redragon/k630/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/* Copyright (C) 2023 Benjamín Ausensi
*
* 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

/* Includes empty layers for VIA */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi(
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,
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,
LT(1, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL
),
[1] = LAYOUT_60_ansi(
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, QK_BOOT,
_______, KC_VOLD, KC_UP, KC_VOLU, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, XXXXXXX, XXXXXXX, KC_PSCR, KC_INS, KC_DEL, KC_PAUS,
_______, KC_LEFT, KC_DOWN, KC_RGHT, RGB_SAD, RGB_SAI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______,
_______, RGB_MOD, RGB_TOG, KC_MUTE, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______
),
[2] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_60_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

/* vim: set noai ts=4 sw=4: */
2 changes: 2 additions & 0 deletions keyboards/redragon/k630/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
MOUSEKEY_ENABLE = yes
20 changes: 20 additions & 0 deletions keyboards/redragon/k630/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Redragon K630 Dragonborn (RGB)

![K630](https://redragon.es/content/uploads/2021/07/DRAGONBORN.png)

A value 60% keyboard from Redragon, budget version of the K530 Draconic.
Only the older revision 1 is supported due to hardware limitations in revision 2.

* Keyboard Maintainer: [Benjamin Ausensi](https://github.com/bausensi)
* Hardware Supported: Redragon K630 rev 1 (VS11K09A-1)
* Hardware Availability: [Redragon official website](https://www.redragonzone.com/products/redragon-k630rgb-gaming-mechanical-keyboard)

Make example for this keyboard (after setting up your build environment):

make redragon/k630:default

Flashing example for this keyboard:

This keyboard must be flashed with an external tool (https://github.com/SonixQMK/sonix-flasher)

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).
3 changes: 3 additions & 0 deletions keyboards/redragon/k630/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Data-driven structure doesn't support EEPROM yet
EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = sn32_flash

0 comments on commit 1dcc510

Please sign in to comment.