aboutsummaryrefslogtreecommitdiff
path: root/keyboards/monstargear
diff options
context:
space:
mode:
authordatafx <2432997+datafx@users.noreply.github.com>2021-03-05 13:04:14 -0500
committerGitHub <noreply@github.com>2021-03-05 10:04:14 -0800
commitaadea5ab97d4da9af1d75f39a15f5ce498034105 (patch)
tree4b30a5be44f7b15575dd1a0702c69be1543c14bd /keyboards/monstargear
parent54f7708eaadb838320443a66bb6b25b3969473b7 (diff)
downloadqmk_firmware-aadea5ab97d4da9af1d75f39a15f5ce498034105.tar.gz
qmk_firmware-aadea5ab97d4da9af1d75f39a15f5ce498034105.zip
[Keyboard] Monstargear XO87 Solderable support (#11716)
* Support for XO87 solderable version * cleanup * Remove abandoned code * replaced KEYMAP with LAYOUT and moved LAYOUT macro to solderable.h. deleted unneeded files. * Update keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c * update info.json with missing keys * Apply suggestions from code review * Apply suggestions from code review correct layout macro
Diffstat (limited to 'keyboards/monstargear')
-rw-r--r--keyboards/monstargear/xo87/solderable/config.h57
-rw-r--r--keyboards/monstargear/xo87/solderable/info.json12
-rw-r--r--keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c36
-rw-r--r--keyboards/monstargear/xo87/solderable/keymaps/default/readme.md1
-rw-r--r--keyboards/monstargear/xo87/solderable/keymaps/via/config.h18
-rw-r--r--keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c53
-rw-r--r--keyboards/monstargear/xo87/solderable/keymaps/via/readme.md1
-rw-r--r--keyboards/monstargear/xo87/solderable/keymaps/via/rules.mk1
-rw-r--r--keyboards/monstargear/xo87/solderable/readme.md23
-rw-r--r--keyboards/monstargear/xo87/solderable/rules.mk23
-rw-r--r--keyboards/monstargear/xo87/solderable/solderable.c76
-rw-r--r--keyboards/monstargear/xo87/solderable/solderable.h102
12 files changed, 403 insertions, 0 deletions
diff --git a/keyboards/monstargear/xo87/solderable/config.h b/keyboards/monstargear/xo87/solderable/config.h
new file mode 100644
index 000000000..d5d454051
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/config.h
@@ -0,0 +1,57 @@
1/* Copyright 2021 datafx
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#define brightnessMax 8
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0x4D47 // MG for Monstargear
25#define PRODUCT_ID 0x5344 // SD for Soldered
26#define DEVICE_VER 0x0001
27#define MANUFACTURER Monstargear
28#define PRODUCT XO87 Soldered
29
30/* key matrix size */
31#define MATRIX_ROWS 6
32#define MATRIX_COLS 16
33
34#define BACKLIGHT_PIN F0
35
36#define MATRIX_ROW_PINS { E6,E7,E3,B0,B1,A2}
37#define MATRIX_COL_PINS { C5,C3,C1,E1,D6,D2,B7,B3,F6,F7,F3,A5,A1,E2,C7,A6 }
38
39#define KEYLED_ROWS 6
40#define KEYLED_COLS 16
41#define KEYLED_ROW_PINS { E5,B4,B5,F0,C6,D5 }
42#define KEYLED_COL_PINS { C4,C2,C0,E0,D4,E4,B6,B2,F4,A0,F2,A4,F1,A7,D3,A3 }
43#define LED_DRIVER_LED_COUNT 93
44
45#define UNUSED_PINS
46#define DIODE_DIRECTION ROW2COL
47#define RGB_DI_PIN D7
48#define DRIVER_LED_TOTAL 21
49#define DRIVER_COUNT 2
50#define RGBLED_NUM 21
51#define RGBLIGHT_ANIMATIONS
52
53#define DEBOUNCE 5
54#define LOCKING_SUPPORT_ENABLE
55#define LOCKING_RESYNC_ENABLE
56
57#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/monstargear/xo87/solderable/info.json b/keyboards/monstargear/xo87/solderable/info.json
new file mode 100644
index 000000000..b007baafc
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/info.json
@@ -0,0 +1,12 @@
1{
2 "keyboard_name": "XO87 Solderable",
3 "url": "https://www.monstargears.com/",
4 "maintainer": "qmk",
5 "width": 18.25,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT_all": {
9 "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6.5, "y":0}, {"label":"0,6", "x":7.5, "y":0}, {"label":"0,7", "x":8.5, "y":0}, {"label":"0,8", "x":9.5, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,13", "x":15.25, "y":0}, {"label":"0,14", "x":16.25, "y":0}, {"label":"0,15", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.5}, {"label":"1,1", "x":1, "y":1.5}, {"label":"1,2", "x":2, "y":1.5}, {"label":"1,3", "x":3, "y":1.5}, {"label":"1,4", "x":4, "y":1.5}, {"label":"1,5", "x":5, "y":1.5}, {"label":"1,6", "x":6, "y":1.5}, {"label":"1,7", "x":7, "y":1.5}, {"label":"1,8", "x":8, "y":1.5}, {"label":"1,9", "x":9, "y":1.5}, {"label":"1,10", "x":10, "y":1.5}, {"label":"1,11", "x":11, "y":1.5}, {"label":"1,12", "x":12, "y":1.5}, {"label":"3,13", "x":13, "y":1.5, "w":2}, {"label":"1,13", "x":15.25, "y":1.5}, {"label":"1,14", "x":16.25, "y":1.5}, {"label":"1,15", "x":17.25, "y":1.5}, {"label":"2,0", "x":0, "y":2.5, "w":1.5}, {"label":"2,0", "x":1.5, "y":2.5}, {"label":"2,0", "x":2.5, "y":2.5}, {"label":"2,0", "x":3.5, "y":2.5}, {"label":"2,0", "x":4.5, "y":2.5}, {"label":"2,0", "x":5.5, "y":2.5}, {"label":"2,0", "x":6.5, "y":2.5}, {"label":"2,0", "x":7.5, "y":2.5}, {"label":"2,0", "x":8.5, "y":2.5}, {"label":"2,0", "x":9.5, "y":2.5}, {"label":"2,0", "x":10.5, "y":2.5}, {"label":"2,0", "x":11.5, "y":2.5}, {"label":"2,0", "x":12.5, "y":2.5}, {"label":"4,13", "x":13.5, "y":2.5, "w":1.5}, {"label":"2,0", "x":15.25, "y":2.5}, {"label":"2,0", "x":16.25, "y":2.5}, {"label":"2,0", "x":17.25, "y":2.5}, {"label":"3,0", "x":0, "y":3.5, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.5}, {"label":"3,2", "x":2.75, "y":3.5}, {"label":"3,3", "x":3.75, "y":3.5}, {"label":"3,4", "x":4.75, "y":3.5}, {"label":"3,5", "x":5.75, "y":3.5}, {"label":"3,6", "x":6.75, "y":3.5}, {"label":"3,7", "x":7.75, "y":3.5}, {"label":"3,8", "x":8.75, "y":3.5}, {"label":"3,9", "x":9.75, "y":3.5}, {"label":"3,10", "x":10.75, "y":3.5}, {"label":"3,11", "x":11.75, "y":3.5}, {"label":"3,12", "x":12.75, "y":3.5, "w":2.25}, {"label":"4,0", "x":0, "y":4.5, "w":1.25}, {"label":"4,1", "x":1.25, "y":4.5}, {"label":"4,2", "x":2.25, "y":4.5}, {"label":"4,3", "x":3.25, "y":4.5}, {"label":"4,4", "x":4.25, "y":4.5}, {"label":"4,5", "x":5.25, "y":4.5}, {"label":"4,6", "x":6.25, "y":4.5}, {"label":"4,7", "x":7.25, "y":4.5}, {"label":"4,8", "x":8.25, "y":4.5}, {"label":"4,9", "x":9.25, "y":4.5}, {"label":"4,10", "x":10.25, "y":4.5}, {"label":"4,11", "x":11.25, "y":4.5}, {"label":"4,12", "x":12.25, "y":4.5, "w":2.75}, {"label":"4,14", "x":16.25, "y":4.5}, {"label":"5,0", "x":0, "y":5.5, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.5, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.5, "w":1.25}, {"label":"5,4", "x":3.75, "y":5.5, "w":2.75}, {"label":"5,6", "x":6.5, "y":5.5, "w":1.25}, {"label":"5,8", "x":7.75, "y":5.5, "w":2.25}, {"label":"5,10", "x":10, "y":5.5, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.5, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.5, "w":1.25}, {"label":"4,15", "x":13.75, "y":5.5, "w":1.25}, {"label":"5,13", "x":15.25, "y":5.5}, {"label":"5,14", "x":16.25, "y":5.5}, {"label":"5,15", "x":17.25, "y":5.5}]
10 }
11 }
12}
diff --git a/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c b/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c
new file mode 100644
index 000000000..2627bed8f
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c
@@ -0,0 +1,36 @@
1/* Copyright 2021 datafx
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_all(
22 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_SLCK, KC_PAUS,
23 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_INS, KC_HOME, KC_PGUP,
24 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_DEL, KC_END, KC_PGDN,
25 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_BSPC,
26 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_BSLS, KC_UP, KC_RCTL,
27 KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
28
29 [1] = LAYOUT_all(
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP),
36};
diff --git a/keyboards/monstargear/xo87/solderable/keymaps/default/readme.md b/keyboards/monstargear/xo87/solderable/keymaps/default/readme.md
new file mode 100644
index 000000000..ed048bfee
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for the XO87 Solderable PCB
diff --git a/keyboards/monstargear/xo87/solderable/keymaps/via/config.h b/keyboards/monstargear/xo87/solderable/keymaps/via/config.h
new file mode 100644
index 000000000..54dda96c4
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/keymaps/via/config.h
@@ -0,0 +1,18 @@
1/* Copyright 2021 datafx
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#define VIA_QMK_RGBLIGHT_ENABLE
diff --git a/keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c b/keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c
new file mode 100644
index 000000000..2ca6015a2
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c
@@ -0,0 +1,53 @@
1/* Copyright 2021 datafx
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_all(
22 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_SLCK, KC_PAUS,
23 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_INS, KC_HOME, KC_PGUP,
24 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_DEL, KC_END, KC_PGDN,
25 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_BSPC,
26 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_BSLS, KC_UP, KC_RCTL,
27 KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
28
29 [1] = LAYOUT_all(
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_STEP),
36
37 [2] = LAYOUT_all(
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
44
45 [3] = LAYOUT_all(
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
52
53};
diff --git a/keyboards/monstargear/xo87/solderable/keymaps/via/readme.md b/keyboards/monstargear/xo87/solderable/keymaps/via/readme.md
new file mode 100644
index 000000000..e7edaf3f7
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/keymaps/via/readme.md
@@ -0,0 +1 @@
# The default VIA keymap for the XO87 Solderable PCB
diff --git a/keyboards/monstargear/xo87/solderable/keymaps/via/rules.mk b/keyboards/monstargear/xo87/solderable/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/monstargear/xo87/solderable/readme.md b/keyboards/monstargear/xo87/solderable/readme.md
new file mode 100644
index 000000000..c3f95d6a5
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/readme.md
@@ -0,0 +1,23 @@
1# XO87 Solderable PCB
2
3![XO87](https://cdn.imweb.me/thumbnail/20201120/c90a5bdb75264.png)
4
5A TKL custom keyboard made by Monstar Gear.
6
7* Keyboard Maintainer: The QMK Community
8* Hardware Supported: XO87 Solderable version
9* Hardware Availability: [Monstargear](https://monstargears.com)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make monstargear/xo87/solderable:default
14
15Flashing example for this keyboard:
16
17 make monstargear/xo87/solderable:default:flash
18
19The LED matrix is not yet working with this board. A temporary workaround to allow the caps/scroll/num lock LEDs to work has been added to allow this firmware to be functional without the led matrix.
20
21Please be aware that Monstar Gear has not yet switched to this firmware and any PCB that is running the pre-installed firmware will need to use ISP to flash their board for the first time.
22
23See 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/monstargear/xo87/solderable/rules.mk b/keyboards/monstargear/xo87/solderable/rules.mk
new file mode 100644
index 000000000..9ed17fc75
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/rules.mk
@@ -0,0 +1,23 @@
1# MCU name
2MCU = at90usb646
3
4# Bootloader selection
5BOOTLOADER = lufa-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = yes # 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 = yes # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23BACKLIGHT_DRIVER = custom
diff --git a/keyboards/monstargear/xo87/solderable/solderable.c b/keyboards/monstargear/xo87/solderable/solderable.c
new file mode 100644
index 000000000..f1fc65ea0
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/solderable.c
@@ -0,0 +1,76 @@
1/* Copyright 2021 datafx
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 "solderable.h"
18#include "quantum.h"
19
20#define noLed {255,255}
21
22#define ledSollSP (80+3)
23#define ledNumSP (80+7)
24#define ledCapSP (80+8)
25
26void backlight_init_ports(void) {
27 setPinOutput(Lseg0);
28 setPinOutput(Lseg1);
29 setPinOutput(Lseg2);
30 setPinOutput(Lseg3);
31 setPinOutput(Lseg4);
32 setPinOutput(Lseg5);
33 setPinOutput(Lcom0);
34 setPinOutput(Lcom1);
35 setPinOutput(Lcom2);
36 setPinOutput(Lcom3);
37 setPinOutput(Lcom4);
38 setPinOutput(Lcom5);
39 setPinOutput(Lcom6);
40 setPinOutput(Lcom7);
41 setPinOutput(Lcom8);
42 setPinOutput(Lcom9);
43 setPinOutput(Lcom10);
44 setPinOutput(Lcom11);
45 setPinOutput(Lcom12);
46 setPinOutput(Lcom13);
47 setPinOutput(Lcom14);
48 setPinOutput(Lcom15);
49}
50
51void backlight_set(uint8_t level) {
52}
53
54void backlight_task(void) {
55 // This is a temporary workaround to get the status LEDs working until we can figure out the LED matrix
56 led_t host_leds = host_keyboard_led_state();
57 if (host_leds.scroll_lock) {
58 writePinHigh(Lcom3);
59 writePinHigh(Lseg5);
60 } else {
61 writePinLow(Lcom3);
62 }
63 if (host_leds.num_lock) {
64 writePinHigh(Lcom7);
65 writePinHigh(Lseg5);
66 } else {
67 writePinLow(Lcom7);
68 }
69 if (host_leds.caps_lock) {
70 writePinHigh(Lcom8);
71 writePinHigh(Lseg5);
72 } else {
73 writePinLow(Lcom8);
74 }
75}
76
diff --git a/keyboards/monstargear/xo87/solderable/solderable.h b/keyboards/monstargear/xo87/solderable/solderable.h
new file mode 100644
index 000000000..ed992b463
--- /dev/null
+++ b/keyboards/monstargear/xo87/solderable/solderable.h
@@ -0,0 +1,102 @@
1/* Copyright 2021 datafx
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#define LAYOUT_all( \
18 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
19 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
20 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
21 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
22 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, \
23 K500, K501, K502, K505, K506, K509, K510, K511, K512, K513, K514, K515 \
24) { \
25 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
26 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
27 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
28 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \
29 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415 }, \
30 { K500, K501, K502, KC_NO, KC_NO, K505, K506, KC_NO, KC_NO, K509, K510, K511, K512, K513, K514, K515 } \
31}
32
33#define u8 uint8_t
34#define u16 uint16_t
35
36#pragma once
37
38#include "quantum.h"
39
40#define KEYLED_ROWS 6
41#define KEYLED_COLS 16
42
43#define XaxisMax 18
44#define YaxisMax 6
45
46#define RhythmLedColumMax 18
47
48typedef struct{
49 u8 onf;
50 u8 hightLevel;
51 u8 ColumHeight[RhythmLedColumMax];
52}
53
54RhythmLed_;
55
56typedef struct{
57 u8 r,g,b;
58}
59
60rgb_;
61#define colorAGSize 10
62#define colorBGSize RGBLED_NUM-10
63
64typedef struct{
65 rgb_ colorAG[colorAGSize];
66 rgb_ colorBG[RGBLED_NUM-10];
67}
68
69backLedRgbG_;
70
71#define Lseg0 E5
72#define Lseg1 B4
73#define Lseg2 B5
74#define Lseg3 F0
75#define Lseg4 C6
76#define Lseg5 D5
77
78#define Lcom0 C4
79#define Lcom1 C2
80#define Lcom2 C0
81#define Lcom3 E0
82#define Lcom4 D4
83#define Lcom5 E4
84#define Lcom6 B6
85#define Lcom7 B2
86#define Lcom8 F4
87#define Lcom9 A0
88#define Lcom10 F2
89#define Lcom11 A4
90#define Lcom12 F1
91#define Lcom13 A7
92#define Lcom14 D3
93#define Lcom15 A3
94
95extern void keyLedDriver(void);
96extern void KeyLedCom(void);
97u8 getKeyLedIndexForXY(u8 x,u8 y);
98
99extern void ledCapsSet(bool onf);
100extern void ledNumSet(bool onf);
101extern void ledSollSet(bool onf);
102void reflashLedState(void);