summaryrefslogtreecommitdiffstats
path: root/keyboards/keychron/q3_pro
diff options
context:
space:
mode:
authorlalalademaxiya1 <2831039915@qq.com>2023-03-15 16:51:53 +0800
committerlalalademaxiya1 <2831039915@qq.com>2023-03-15 16:51:53 +0800
commitc6243da12f6643747a24a7aa761e103cc4a848c2 (patch)
tree82d29a9567d09c2d3845654c7e5b16b284b2bc30 /keyboards/keychron/q3_pro
parentee715fc26ade41e56f47e60527f17d5cbdfb584b (diff)
Update Keychron K Pro series keyboards
Diffstat (limited to 'keyboards/keychron/q3_pro')
-rwxr-xr-xkeyboards/keychron/q3_pro/ansi_encoder/ansi_encoder.c186
-rwxr-xr-xkeyboards/keychron/q3_pro/ansi_encoder/config.h7
-rwxr-xr-xkeyboards/keychron/q3_pro/ansi_encoder/keymaps/via/keymap.c16
-rwxr-xr-xkeyboards/keychron/q3_pro/config.h9
-rwxr-xr-xkeyboards/keychron/q3_pro/matrix.c54
-rwxr-xr-xkeyboards/keychron/q3_pro/q3_pro.c18
-rwxr-xr-xkeyboards/keychron/q3_pro/readme.md10
-rwxr-xr-xkeyboards/keychron/q3_pro/rules.mk3
8 files changed, 170 insertions, 133 deletions
diff --git a/keyboards/keychron/q3_pro/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q3_pro/ansi_encoder/ansi_encoder.c
index 0109bbd699..79a02ccfc5 100755
--- a/keyboards/keychron/q3_pro/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q3_pro/ansi_encoder/ansi_encoder.c
@@ -19,109 +19,109 @@
// clang-format off
#ifdef RGB_MATRIX_ENABLE
const ckled2001_led g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+/* Refer to CKLED2001 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
// {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_14, G_14, H_14},
- {0, I_15, G_15, H_15},
- {0, I_16, G_16, H_16},
- {1, C_4, A_4, B_4}, // 16
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+ {0, I_10, G_10, H_10},
+ {0, I_11, G_11, H_11},
+ {0, I_12, G_12, H_12},
+ {0, I_13, G_13, H_13},
+ {0, I_14, G_14, H_14},
+ {0, I_15, G_15, H_15},
+ {0, I_16, G_16, H_16},
+ {1, C_4, A_4, B_4}, // 16
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
- {1, C_2, A_2, B_2}, // 17
+ {0, C_1, A_1, B_1},
+ {0, C_2, A_2, B_2},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_13, A_13, B_13},
+ {0, C_14, A_14, B_14},
+ {0, C_15, A_15, B_15},
+ {0, C_16, A_16, B_16},
+ {1, C_2, A_2, B_2}, // 17
- {1, F_13, D_13, E_13},
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_15, D_15, E_15},
- {0, F_16, D_16, E_16},
- {1, C_1, A_1, B_1}, // 17
+ {1, F_13, D_13, E_13},
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+ {0, F_15, D_15, E_15},
+ {0, F_16, D_16, E_16},
+ {1, C_1, A_1, B_1}, // 17
- {1, F_12, D_12, E_12},
- {1, C_16, A_16, B_16},
- {1, C_15, A_15, B_15},
- {1, C_14, A_14, B_14},
- {1, C_13, A_13, B_13},
- {1, C_12, A_12, B_12},
- {1, C_11, A_11, B_11},
- {1, C_10, A_10, B_10},
- {1, C_9, A_9, B_9},
- {1, C_8, A_8, B_8},
- {1, C_7, A_7, B_7},
- {1, C_6, A_6, B_6},
- {1, C_5, A_5, B_5},
- {1, C_3, A_3, B_3}, // 13
+ {1, F_12, D_12, E_12},
+ {1, C_16, A_16, B_16},
+ {1, C_15, A_15, B_15},
+ {1, C_14, A_14, B_14},
+ {1, C_13, A_13, B_13},
+ {1, C_12, A_12, B_12},
+ {1, C_11, A_11, B_11},
+ {1, C_10, A_10, B_10},
+ {1, C_9, A_9, B_9},
+ {1, C_8, A_8, B_8},
+ {1, C_7, A_7, B_7},
+ {1, C_6, A_6, B_6},
+ {1, C_5, A_5, B_5},
+ {1, C_3, A_3, B_3}, // 13
- {1, F_8, D_8, E_8},
- {1, I_16, G_16, H_16},
- {1, I_14, G_14, H_14},
- {1, I_13, G_13, H_13},
- {1, I_12, G_12, H_12},
- {1, I_11, G_11, H_11},
- {1, I_10, G_10, H_10},
- {1, I_9, G_9, H_9},
- {1, I_8, G_8, H_8},
- {1, I_7, G_7, H_7},
- {1, I_6, G_6, H_6},
- {1, I_5, G_5, H_5},
- {1, I_3, G_3, H_3},
- {1, I_1, G_1, H_1}, // 13
+ {1, F_8, D_8, E_8},
+ {1, I_16, G_16, H_16},
+ {1, I_14, G_14, H_14},
+ {1, I_13, G_13, H_13},
+ {1, I_12, G_12, H_12},
+ {1, I_11, G_11, H_11},
+ {1, I_10, G_10, H_10},
+ {1, I_9, G_9, H_9},
+ {1, I_8, G_8, H_8},
+ {1, I_7, G_7, H_7},
+ {1, I_6, G_6, H_6},
+ {1, I_5, G_5, H_5},
+ {1, I_3, G_3, H_3},
+ {1, I_1, G_1, H_1}, // 13
- {1, F_7, D_7, E_7},
- {1, F_16, D_16, E_16},
- {1, F_15, D_15, E_15},
- {1, F_14, D_14, E_14},
- {1, F_10, D_10, E_10},
- {1, F_6, D_6, E_6},
- {1, F_5, D_5, E_5},
- {1, F_4, D_4, E_4},
- {1, F_3, D_3, E_3},
- {1, F_2, D_2, E_2},
- {1, F_1, D_1, E_1},
- {1, I_2, G_2, H_2},
+ {1, F_7, D_7, E_7},
+ {1, F_16, D_16, E_16},
+ {1, F_15, D_15, E_15},
+ {1, F_14, D_14, E_14},
+ {1, F_10, D_10, E_10},
+ {1, F_6, D_6, E_6},
+ {1, F_5, D_5, E_5},
+ {1, F_4, D_4, E_4},
+ {1, F_3, D_3, E_3},
+ {1, F_2, D_2, E_2},
+ {1, F_1, D_1, E_1},
+ {1, I_2, G_2, H_2},
};
#define __ NO_LED
@@ -148,7 +148,7 @@ led_config_t g_led_config = {
{
// RGB LED Index to Flag
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 4, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
diff --git a/keyboards/keychron/q3_pro/ansi_encoder/config.h b/keyboards/keychron/q3_pro/ansi_encoder/config.h
index ef89dd14b3..8c0fbb754c 100755
--- a/keyboards/keychron/q3_pro/ansi_encoder/config.h
+++ b/keyboards/keychron/q3_pro/ansi_encoder/config.h
@@ -26,13 +26,6 @@
# define DRIVER_2_LED_COUNT 44
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_COUNT + DRIVER_2_LED_COUNT)
-/* Increase I2C speed to 1000 KHz */
-# define I2C1_TIMINGR_PRESC 0U
-# define I2C1_TIMINGR_SCLDEL 3U
-# define I2C1_TIMINGR_SDADEL 0U
-# define I2C1_TIMINGR_SCLH 15U
-# define I2C1_TIMINGR_SCLL 30U
-
/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
# define PHASE_CHANNEL MSKPHASE_9CHANNEL
diff --git a/keyboards/keychron/q3_pro/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/q3_pro/ansi_encoder/keymaps/via/keymap.c
index c83f780278..7751eb94e5 100755
--- a/keyboards/keychron/q3_pro/ansi_encoder/keymaps/via/keymap.c
+++ b/keyboards/keychron/q3_pro/ansi_encoder/keymaps/via/keymap.c
@@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_BASE] = LAYOUT_ansi_92(
KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LNPD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_SNAP, KC_SIRI, RGB_MOD,
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,
- _______, 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_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+ MACRO01, 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,
+ MACRO02, 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,
+ MACRO03, 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,
+ MACRO04, KC_LCTL, KC_LOPTN, KC_LCMMD, KC_SPC, KC_RCMMD, KC_ROPTN, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[MAC_FN] = LAYOUT_ansi_92(
RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG,
@@ -45,10 +45,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_BASE] = LAYOUT_ansi_92(
KC_MUTE, 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_CTANA, RGB_MOD,
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,
- _______, 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+ MACRO01, 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,
+ MACRO02, 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,
+ MACRO03, 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,
+ MACRO04, KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[WIN_FN] = LAYOUT_ansi_92(
RGB_TOG, _______, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
diff --git a/keyboards/keychron/q3_pro/config.h b/keyboards/keychron/q3_pro/config.h
index 7dc65d60da..a4f7aca1a5 100755
--- a/keyboards/keychron/q3_pro/config.h
+++ b/keyboards/keychron/q3_pro/config.h
@@ -36,6 +36,13 @@
#define DIP_SWITCH_PINS \
{ A8 }
+/* Increase I2C speed to 1000 KHz */
+#define I2C1_TIMINGR_PRESC 0U
+#define I2C1_TIMINGR_SCLDEL 3U
+#define I2C1_TIMINGR_SDADEL 0U
+#define I2C1_TIMINGR_SCLH 15U
+#define I2C1_TIMINGR_SCLL 51U
+
#ifdef KC_BLUETOOTH_ENABLE
/* Hardware configuration */
# define USB_BT_MODE_SELECT_PIN C15
@@ -48,8 +55,6 @@
# define USB_POWER_CONNECTED_LEVEL 0
# define BAT_LOW_LED_PIN_STATE 1
-// # define BAT_LOW_LED_PIN NO_PIN
-// # define BAT_LOW_LED_PIN_ON_STATE 1
# define HOST_DEVICES_COUNT 3
diff --git a/keyboards/keychron/q3_pro/matrix.c b/keyboards/keychron/q3_pro/matrix.c
index 6dadb7cc27..f9d71e31a0 100755
--- a/keyboards/keychron/q3_pro/matrix.c
+++ b/keyboards/keychron/q3_pro/matrix.c
@@ -27,11 +27,9 @@ pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
extern indicator_config_t indicator_config;
static uint32_t power_on_indicator_timer_buffer;
-extern bool bat_low_led_pin_state;
+extern bool bat_low_led_pin_state;
-#ifndef POWER_ON_LED_DURATION
-# define POWER_ON_LED_DURATION 3000
-#endif
+#define POWER_ON_LED_DURATION 3000
static inline void HC595_delay(uint16_t n) {
while (n-- > 0) {
@@ -72,7 +70,7 @@ static inline void setPinOutput_writeLow(pin_t pin) {
}
}
-static inline void setPinInputHigh_atomic(pin_t pin) {
+static inline void setPinInput_high(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
setPinInputHigh(pin);
}
@@ -141,7 +139,11 @@ static void unselect_col(uint8_t col) {
uint32_t value = 0;
if (pin != NO_PIN) {
- setPinInputHigh_atomic(pin);
+#ifdef MATRIX_UNSELECT_DRIVE_HIGH
+ setPinOutput_writeHigh(pin);
+#else
+ setPinInput_high(pin);
+#endif
} else {
if (power_on_indicator_timer_buffer) {
if (sync_timer_elapsed32(power_on_indicator_timer_buffer) > POWER_ON_LED_DURATION) {
@@ -202,17 +204,37 @@ static void unselect_col(uint8_t col) {
}
static void unselect_cols(void) {
- if (col_pins[0] != NO_PIN) setPinInputHigh_atomic(col_pins[0]);
- HC595_output(0xFFFFFFFF);
- power_on_indicator_timer_buffer = sync_timer_read32() | 1;
+ for (uint8_t x = 0; x < MATRIX_COLS; x++) {
+ pin_t pin = col_pins[x];
+ if (pin != NO_PIN) {
+#ifdef MATRIX_UNSELECT_DRIVE_HIGH
+ setPinOutput_writeHigh(pin);
+#else
+ setPinInput_high(pin);
+#endif
+ } else {
+ if (x == 0) {
+ HC595_output(0xFFFFFFFF);
+ power_on_indicator_timer_buffer = sync_timer_read32() | 1;
+ }
+ }
+ }
}
void select_all_cols(void) {
- if (col_pins[0] != NO_PIN) setPinOutput_writeLow(col_pins[0]);
- if (host_keyboard_led_state().caps_lock) {
- HC595_output(0x00000000 | (2 << 0));
- } else {
- HC595_output(0x00000000);
+ for (uint8_t x = 0; x < MATRIX_COLS; x++) {
+ pin_t pin = col_pins[x];
+ if (pin != NO_PIN) {
+ setPinOutput_writeLow(pin);
+ } else {
+ if (x == 0) {
+ if (host_keyboard_led_state().caps_lock) {
+ HC595_output(0x00000000 | (2 << 0));
+ } else {
+ HC595_output(0x00000000);
+ }
+ }
+ }
}
}
@@ -245,11 +267,13 @@ void matrix_init_custom(void) {
setPinOutput(HC595_DS);
setPinOutput(HC595_STCP);
setPinOutput(HC595_SHCP);
+
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
if (row_pins[x] != NO_PIN) {
- setPinInputHigh_atomic(row_pins[x]);
+ setPinInput_high(row_pins[x]);
}
}
+
unselect_cols();
}
diff --git a/keyboards/keychron/q3_pro/q3_pro.c b/keyboards/keychron/q3_pro/q3_pro.c
index bd66427785..b6c9815d02 100755
--- a/keyboards/keychron/q3_pro/q3_pro.c
+++ b/keyboards/keychron/q3_pro/q3_pro.c
@@ -176,7 +176,8 @@ void matrix_scan_kb(void) {
#ifdef KC_BLUETOOTH_ENABLE
static void ckbt51_param_init(void) {
/* Set bluetooth device name */
- ckbt51_set_local_name(STR(PRODUCT));
+ // ckbt51_set_local_name(STR(PRODUCT));
+ ckbt51_set_local_name(PRODUCT);
/* Set bluetooth parameters */
module_param_t param = {.event_mode = 0x02,
.connected_idle_timeout = 7200,
@@ -204,6 +205,21 @@ void bluetooth_enter_disconnected_kb(uint8_t host_idx) {
}
}
+void ckbt51_default_ack_handler(uint8_t *data, uint8_t len) {
+ if (data[1] == 0x45) {
+ module_param_t param = {.event_mode = 0x02,
+ .connected_idle_timeout = 7200,
+ .pairing_timeout = 180,
+ .pairing_mode = 0,
+ .reconnect_timeout = 5,
+ .report_rate = 90,
+ .vendor_id_source = 1,
+ .verndor_id = 0, // Must be 0x3434
+ .product_id = PRODUCT_ID};
+ ckbt51_set_param(&param);
+ }
+}
+
void bluetooth_pre_task(void) {
static uint8_t mode = 1;
diff --git a/keyboards/keychron/q3_pro/readme.md b/keyboards/keychron/q3_pro/readme.md
index 0929ad417e..d3008e7690 100755
--- a/keyboards/keychron/q3_pro/readme.md
+++ b/keyboards/keychron/q3_pro/readme.md
@@ -1,18 +1,20 @@
# Keychron Q3 Pro
+![Keychron Q3 Pro]()
+
A customizable 80% TKL keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
-* Hardware Supported: Keychron K2 Pro
-* Hardware Availability: [Keychron K2 Pro QMK/VIA Wireless Mechanical Keyboard](https://www.keychron.com/products/keychron-k2-pro-qmk-via-wireless-mechanical-keyboard)
+* Hardware Supported: Keychron Q3 Pro
+* Hardware Availability: [Keychron Q3 Pro]()
Make example for this keyboard (after setting up your build environment):
- make keychron/q3_pro/encoder/ansi/rgb:default
+ make keychron/q3_pro/ansi_encoder:default
Flashing example for this keyboard:
- make keychron/q3_pro/encoder/ansi/rgb:default:flash
+ make keychron/q3_pro/ansi_encoder:default:flash
**Reset Key**: Connect the USB cable, toggle mode switch to "Off", hold down the *Esc* key or reset button underneath space bar, then toggle then switch to "Cable".
diff --git a/keyboards/keychron/q3_pro/rules.mk b/keyboards/keychron/q3_pro/rules.mk
index 1697bc331e..5f5fafa281 100755
--- a/keyboards/keychron/q3_pro/rules.mk
+++ b/keyboards/keychron/q3_pro/rules.mk
@@ -7,9 +7,6 @@ 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 # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
BLUETOOTH_ENABLE = no