summaryrefslogtreecommitdiffstats
path: root/keyboards/primekb/meridian
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/primekb/meridian')
-rw-r--r--keyboards/primekb/meridian/ktr1010/config.h51
-rw-r--r--keyboards/primekb/meridian/ktr1010/rules.mk1
-rw-r--r--keyboards/primekb/meridian/readme.md24
-rw-r--r--keyboards/primekb/meridian/rules.mk1
-rw-r--r--keyboards/primekb/meridian/ws2812/config.h48
-rw-r--r--keyboards/primekb/meridian/ws2812/rules.mk1
6 files changed, 123 insertions, 3 deletions
diff --git a/keyboards/primekb/meridian/ktr1010/config.h b/keyboards/primekb/meridian/ktr1010/config.h
new file mode 100644
index 0000000000..bf91dc9715
--- /dev/null
+++ b/keyboards/primekb/meridian/ktr1010/config.h
@@ -0,0 +1,51 @@
+/*
+Copyright 2020 Holten Campbell
+
+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 0x5052
+#define PRODUCT_ID 0x004D
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Prime Keyboards
+#define PRODUCT Meridian
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, B9, B8, B7, B6, B5, B4, B3, A15 }
+#define MATRIX_ROW_PINS { A6, A5, A4, A3, A2 }
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN B15
+#define RGBLED_NUM 3
+// Special timing definitions for KTR101
+#define WS2812_TIMING 1325
+#define WS2812_T0H 350
+#define WS2812_T1H 975
+#define WS2812_T0L 975
+#define WS2812_T1L 350
+#define WS2812_RES_US 100
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/primekb/meridian/ktr1010/rules.mk b/keyboards/primekb/meridian/ktr1010/rules.mk
new file mode 100644
index 0000000000..1bc213906f
--- /dev/null
+++ b/keyboards/primekb/meridian/ktr1010/rules.mk
@@ -0,0 +1 @@
+WS2812_DRIVER = bitbang
diff --git a/keyboards/primekb/meridian/readme.md b/keyboards/primekb/meridian/readme.md
index 0e3339a597..01df9c5ba3 100644
--- a/keyboards/primekb/meridian/readme.md
+++ b/keyboards/primekb/meridian/readme.md
@@ -5,8 +5,28 @@
* Keyboard Maintainer: [Holten Campbell](https://github.com/holtenc)
* Hardware Supported: STM32F072CBT6
-Make example for this keyboard (after setting up your build environment):
+## Compiling firmware and flashing
- make primekb/meridian:default
+### Enter bootloader
+
+The DFU state in the bootloader can be accessed in 3 ways:
+
+* **Bootmagic reset**: hold down the key at (0,0) in the matrix (usually Escape) and plug in the keyboard; or
+* **Physical reset button**: press the button on the bottom of the PCB; or
+* **Keycode in layout**: press the key mapped to `RESET` if it is available (Escape key on layer 1 in the default layout).
+
+### Compile firmware
+
+The Meridian PCB was delivered in two variants, equal in design but using different RGB LED models: one using WS2812 and another using KTR1010 LEDs. Both can be compiled using
+
+ make primekb/meridian/ws1812:default
+ make primekb/meridian/ktr1010:default
+
+After compiling, enter bootloader in the PCB and flash the firmware using `dfu-util` or QMK Toolbox. For direct compile-and-flashing, put the PCB in DFU state and use
+
+ make primekb/meridian/ws1812:default:flash
+ make primekb/meridian/ktr1010:default:flash
+
+VIA-supported firmwares are also available.
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/primekb/meridian/rules.mk b/keyboards/primekb/meridian/rules.mk
index fe92253a9a..f6c9d4ee60 100644
--- a/keyboards/primekb/meridian/rules.mk
+++ b/keyboards/primekb/meridian/rules.mk
@@ -19,7 +19,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-WS2812_DRIVER = spi
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/primekb/meridian/ws2812/config.h b/keyboards/primekb/meridian/ws2812/config.h
new file mode 100644
index 0000000000..082392c6bd
--- /dev/null
+++ b/keyboards/primekb/meridian/ws2812/config.h
@@ -0,0 +1,48 @@
+/*
+Copyright 2020 Holten Campbell
+
+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 0x5052
+#define PRODUCT_ID 0x004D
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Prime Keyboards
+#define PRODUCT Meridian
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, B9, B8, B7, B6, B5, B4, B3, A15 }
+#define MATRIX_ROW_PINS { A6, A5, A4, A3, A2 }
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN B15
+#define RGBLED_NUM 3
+#define WS2812_SPI SPID2
+#define WS2812_SPI_MOSI_PAL_MODE 0
+#define WS2812_SPI_SCK_PAL_MODE 0
+#define WS2812_SPI_SCK_PIN B13
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/primekb/meridian/ws2812/rules.mk b/keyboards/primekb/meridian/ws2812/rules.mk
new file mode 100644
index 0000000000..c09c0d5fa4
--- /dev/null
+++ b/keyboards/primekb/meridian/ws2812/rules.mk
@@ -0,0 +1 @@
+WS2812_DRIVER = spi