summaryrefslogtreecommitdiff
path: root/keyboards/redox/rev1
diff options
context:
space:
mode:
authorxerootg <xerootg@users.noreply.github.com>2022-01-31 12:40:13 -0700
committerGitHub <noreply@github.com>2022-01-31 11:40:13 -0800
commit1111ff604d1b006ffd29a0c52d7f717b7879cd00 (patch)
tree07ff78851c3c4f9c8ee45c6e8c59e4d509ccffc6 /keyboards/redox/rev1
parent59ebe28cd5e50ffda700f127060f936c2d60ed0a (diff)
downloadqmk_firmware-1111ff604d1b006ffd29a0c52d7f717b7879cd00.tar.gz
qmk_firmware-1111ff604d1b006ffd29a0c52d7f717b7879cd00.zip
[Keyboard] Add the proton c as a controller for the redox (#16106)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com> Co-authored-by: xerootg <xerootg@github.com>
Diffstat (limited to 'keyboards/redox/rev1')
-rw-r--r--keyboards/redox/rev1/proton_c/config.h66
-rw-r--r--keyboards/redox/rev1/proton_c/halconf.h8
-rw-r--r--keyboards/redox/rev1/proton_c/mcuconf.h9
-rw-r--r--keyboards/redox/rev1/proton_c/proton_c.c4
-rw-r--r--keyboards/redox/rev1/proton_c/proton_c.h6
-rw-r--r--keyboards/redox/rev1/proton_c/rules.mk7
-rw-r--r--keyboards/redox/rev1/rev1.h7
7 files changed, 105 insertions, 2 deletions
diff --git a/keyboards/redox/rev1/proton_c/config.h b/keyboards/redox/rev1/proton_c/config.h
new file mode 100644
index 0000000000..4ec4a975a4
--- /dev/null
+++ b/keyboards/redox/rev1/proton_c/config.h
@@ -0,0 +1,66 @@
+// Copyright 2022 xerootg
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#undef DEVICE_VER
+#define DEVICE_VER 0x0101 // added 1 for the rev1 + proton c
+
+// wiring of each half
+#undef MATRIX_ROW_PINS
+#define MATRIX_ROW_PINS { B5, B3, B2, B1, B0 }
+#undef MATRIX_COL_PINS
+#define MATRIX_COL_PINS { A1, A0, B8, B13, B14, B15, B9 }
+
+// //we are using hardware serial, so lets undef the softserial used otherwise
+
+/* serial.c configuration for split keyboard */
+#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
+/*
+ Because the rev1 config defines SOFT_SERIAL_PIN, we need to undef it, redefine it, and also assign
+ it to avoid a redefine error.
+ */
+#undef SOFT_SERIAL_PIN
+#define SOFT_SERIAL_PIN B6 // USART TX pin
+
+#define SERIAL_USART_RX_PIN B7 // USART RX pin
+#define SERIAL_USART_TX_PIN SOFT_SERIAL_PIN // USART TX pin
+
+#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
+ // Check if this feature is necessary with your keyboard design and available on the mcu.
+#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5
+ // 0: 460800 baud
+ // 1: 230400 baud (default)
+ // 2: 115200 baud
+ // 3: 57600 baud
+ // 4: 38400 baud
+ // 5: 19200 baud
+#define SERIAL_USART_DRIVER SD1 // USART driver of TX and RX pin. default: SD1
+#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
+#define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
+#define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20
+
+/* ws2812 RGB LED */
+#undef RGB_DI_PIN
+#define RGB_DI_PIN A9
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/redox/rev1/proton_c/halconf.h b/keyboards/redox/rev1/proton_c/halconf.h
new file mode 100644
index 0000000000..0a2498a62f
--- /dev/null
+++ b/keyboards/redox/rev1/proton_c/halconf.h
@@ -0,0 +1,8 @@
+// Copyright 2022 xerootg
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_SERIAL TRUE
+
+#include_next <halconf.h> \ No newline at end of file
diff --git a/keyboards/redox/rev1/proton_c/mcuconf.h b/keyboards/redox/rev1/proton_c/mcuconf.h
new file mode 100644
index 0000000000..ba87dec13d
--- /dev/null
+++ b/keyboards/redox/rev1/proton_c/mcuconf.h
@@ -0,0 +1,9 @@
+// Copyright 2022 xerootg
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_SERIAL_USE_USART1
+#define STM32_SERIAL_USE_USART1 TRUE
diff --git a/keyboards/redox/rev1/proton_c/proton_c.c b/keyboards/redox/rev1/proton_c/proton_c.c
new file mode 100644
index 0000000000..796e2c8c3d
--- /dev/null
+++ b/keyboards/redox/rev1/proton_c/proton_c.c
@@ -0,0 +1,4 @@
+// Copyright 2022 xerootg
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "proton_c.h"
diff --git a/keyboards/redox/rev1/proton_c/proton_c.h b/keyboards/redox/rev1/proton_c/proton_c.h
new file mode 100644
index 0000000000..d8813d9c4d
--- /dev/null
+++ b/keyboards/redox/rev1/proton_c/proton_c.h
@@ -0,0 +1,6 @@
+// Copyright 2022 xerootg
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "rev1.h"
diff --git a/keyboards/redox/rev1/proton_c/rules.mk b/keyboards/redox/rev1/proton_c/rules.mk
new file mode 100644
index 0000000000..829c8365ef
--- /dev/null
+++ b/keyboards/redox/rev1/proton_c/rules.mk
@@ -0,0 +1,7 @@
+# Proton C
+MCU = STM32F303
+BOARD = QMK_PROTON_C
+BOOTLOADER = stm32-dfu
+
+# specific to using the serial serial driver
+SERIAL_DRIVER = usart
diff --git a/keyboards/redox/rev1/rev1.h b/keyboards/redox/rev1/rev1.h
index 1bc1531eed..5a24122048 100644
--- a/keyboards/redox/rev1/rev1.h
+++ b/keyboards/redox/rev1/rev1.h
@@ -1,9 +1,12 @@
#pragma once
-#include "../redox.h"
+#include "redox.h"
-#include "quantum.h"
+#if defined(KEYBOARD_redox_rev1_proton_c)
+# include "proton_c.h"
+#endif
+#include "quantum.h"
#ifdef USE_I2C
#include <stddef.h>