aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeepeetee <43021794+peepeetee@users.noreply.github.com>2022-02-22 01:10:19 +0800
committerGitHub <noreply@github.com>2022-02-21 09:10:19 -0800
commit59f671744b7474cdc07830799053ba1d61edbf72 (patch)
treea8d93343c5e96c1780c2cf34b9ae1e141069bab0
parent7fb22706fdb41030bff7fc1bf480d8b002ec86c5 (diff)
downloadqmk_firmware-59f671744b7474cdc07830799053ba1d61edbf72.tar.gz
qmk_firmware-59f671744b7474cdc07830799053ba1d61edbf72.zip
[Keyboard] ID75 v2 (#16351)
-rw-r--r--keyboards/idobao/id75/v2/config.h152
-rw-r--r--keyboards/idobao/id75/v2/info.json10
-rw-r--r--keyboards/idobao/id75/v2/readme.md27
-rw-r--r--keyboards/idobao/id75/v2/rules.mk24
-rw-r--r--keyboards/idobao/id75/v2/v2.c49
-rw-r--r--keyboards/idobao/id75/v2/v2.h41
6 files changed, 303 insertions, 0 deletions
diff --git a/keyboards/idobao/id75/v2/config.h b/keyboards/idobao/id75/v2/config.h
new file mode 100644
index 000000000..c2b64649c
--- /dev/null
+++ b/keyboards/idobao/id75/v2/config.h
@@ -0,0 +1,152 @@
1/* Copyright 2022 peepeetee
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/* USB Device descriptor parameter */
22#define VENDOR_ID 0x6964 // ID
23#define PRODUCT_ID 0x0075
24#define DEVICE_VER 0x0002
25#define MANUFACTURER IDOBAO
26#define PRODUCT ID75
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 15
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41*/
42#define MATRIX_ROW_PINS { B0, B3, C7, B6, C6 }
43#define MATRIX_COL_PINS { F6, F5, F4, F1, E6, D5, D3, D2, D1, D0, D4, D6, D7, B4, B5 }
44#define UNUSED_PINS
45
46/* COL2ROW, ROW2COL*/
47#define DIODE_DIRECTION COL2ROW
48
49#undef RGB_DI_PIN
50#define RGB_DI_PIN F0
51#ifdef RGB_MATRIX_ENABLE
52# define DRIVER_LED_TOTAL 85 /* 10 Bottom 75 top*/
53// RGB Matrix Animation modes. Explicitly enabled
54// For full list of effects, see:
55// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
56# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
57# define RGB_MATRIX_KEYPRESSES
58# define ENABLE_RGB_MATRIX_ALPHAS_MODS
59# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
60# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
61# define ENABLE_RGB_MATRIX_BREATHING
62# define ENABLE_RGB_MATRIX_BAND_SAT
63# define ENABLE_RGB_MATRIX_BAND_VAL
64# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
65# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
66# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
67# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
68# define ENABLE_RGB_MATRIX_CYCLE_ALL
69# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
70# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
71# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
72# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
73# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
74# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
75// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
76# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
77# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
78// enabled only if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
79# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
80# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
81# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
82# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
83# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
84# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
85# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
86# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
87# define ENABLE_RGB_MATRIX_SPLASH
88# define ENABLE_RGB_MATRIX_MULTISPLASH
89# define ENABLE_RGB_MATRIX_SOLID_SPLASH
90# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
91#endif
92
93/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
94#define DEBOUNCE 5
95
96/* define if matrix has ghost (lacks anti-ghosting diodes) */
97//#define MATRIX_HAS_GHOST
98
99/* number of backlight levels */
100
101/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
102#define LOCKING_SUPPORT_ENABLE
103/* Locking resynchronize hack */
104#define LOCKING_RESYNC_ENABLE
105
106/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
107 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
108 */
109// #define GRAVE_ESC_CTRL_OVERRIDE
110
111/*
112 * Force NKRO
113 *
114 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
115 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
116 * makefile for this to work.)
117 *
118 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
119 * until the next keyboard reset.
120 *
121 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
122 * fully operational during normal computer usage.
123 *
124 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
125 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
126 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
127 * power-up.
128 *
129 */
130//#define FORCE_NKRO
131
132/*
133 * Feature disable options
134 * These options are also useful to firmware size reduction.
135 */
136
137/* disable debug print */
138//#define NO_DEBUG
139
140/* disable print */
141//#define NO_PRINT
142
143/* disable action features */
144//#define NO_ACTION_LAYER
145//#define NO_ACTION_TAPPING
146//#define NO_ACTION_ONESHOT
147//#define NO_ACTION_MACRO
148//#define NO_ACTION_FUNCTION
149
150/* Bootmagic Lite key configuration */
151#define BOOTMAGIC_LITE_ROW 0
152#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/idobao/id75/v2/info.json b/keyboards/idobao/id75/v2/info.json
new file mode 100644
index 000000000..fe24920f8
--- /dev/null
+++ b/keyboards/idobao/id75/v2/info.json
@@ -0,0 +1,10 @@
1{
2 "keyboard_name": "idobao/id75/v2",
3 "url": "",
4 "maintainer": "qmk",
5 "layouts": {
6 "LAYOUT_ortho_5x15": {
7 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
8 }
9 }
10}
diff --git a/keyboards/idobao/id75/v2/readme.md b/keyboards/idobao/id75/v2/readme.md
new file mode 100644
index 000000000..76a94ae38
--- /dev/null
+++ b/keyboards/idobao/id75/v2/readme.md
@@ -0,0 +1,27 @@
1# ID75 v2
2
3![ID75 v2](https://i.imgur.com/KdAjS5f.jpg)
4
5A 5x15 ortholinear keyboard with hotswap sockets and north facing in switch RGB LEDs and RGB underglow
6
7* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
8* Hardware Supported: ID75 v2
9* Hardware Availability: https://idobao.net/products/idobao-id75-crystal-hot-swap-keyboard-kit?_pos=1&_sid=8758d3561&_ss=r
10
11Make example for this keyboard (after setting up your build environment):
12
13 make idobao/id75/v2:default
14
15Flashing example for this keyboard:
16
17 make idobao/id75/v2:default:flash
18
19See 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).
20
21## Bootloader
22
23Enter the bootloader in 3 ways:
24
25* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
26* **Physical reset button**: Briefly press the button on the back of the PCB
27* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/idobao/id75/v2/rules.mk b/keyboards/idobao/id75/v2/rules.mk
new file mode 100644
index 000000000..303a814c3
--- /dev/null
+++ b/keyboards/idobao/id75/v2/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19LTO_ENABLE = yes # Use link time optimization
20
21RGB_MATRIX_ENABLE = yes
22RGB_MATRIX_DRIVER = WS2812
23
24LAYOUTS = ortho_5x15
diff --git a/keyboards/idobao/id75/v2/v2.c b/keyboards/idobao/id75/v2/v2.c
new file mode 100644
index 000000000..f65a9e336
--- /dev/null
+++ b/keyboards/idobao/id75/v2/v2.c
@@ -0,0 +1,49 @@
1/* Copyright 2022 peepeetee
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#include "v2.h"
17
18#ifdef RGB_MATRIX_ENABLE
19led_config_t g_led_config = { {
20 // Key Matrix to LED Index
21{ 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70 },
22{ 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 },
23{ 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 },
24{ 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25 },
25{ 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 }
26}, {
27 // LED Index to Physical Position
28{8, 12},{60, 12},{112, 12},{164, 12},{216, 12},
29{216, 60},{164, 60},{112, 60},{60, 60},{8, 60},
30
31
32{224, 64}, {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, {96, 64}, {80, 64}, {64, 64}, {48, 64}, {32, 64}, {16, 64}, {0, 64},
33{224, 48}, {208, 48}, {192, 48}, {176, 48}, {160, 48}, {144, 48}, {128, 48}, {112, 48}, {96, 48}, {80, 48}, {64, 48}, {48, 48}, {32, 48}, {16, 48}, {0, 48},
34{224, 32}, {208, 32}, {192, 32}, {176, 32}, {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {16, 32}, {0, 32},
35{224, 16}, {208, 16}, {192, 16}, {176, 16}, {160, 16}, {144, 16}, {128, 16}, {112, 16}, {96, 16}, {80, 16}, {64, 16}, {48, 16}, {32, 16}, {16, 16}, {0, 16},
36{224, 0}, {208, 0}, {192, 0}, {176, 0}, {160, 0}, {144, 0}, {128, 0}, {112, 0}, {96, 0}, {80, 0}, {64, 0}, {48, 0}, {32, 0}, {16, 0}, {0, 0},
37
38}, {
39 // LED Index to Flag
402,2,2,2,2,2,2,2,2,2,
414,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
424,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
434,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
444,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
454,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
46
47} };
48
49#endif
diff --git a/keyboards/idobao/id75/v2/v2.h b/keyboards/idobao/id75/v2/v2.h
new file mode 100644
index 000000000..9643a1efd
--- /dev/null
+++ b/keyboards/idobao/id75/v2/v2.h
@@ -0,0 +1,41 @@
1/* Copyright 2018 MechMerlin
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 "quantum.h"
20
21/* This a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29#define LAYOUT_ortho_5x15( \
30 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
31 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
32 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \
33 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
34 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E \
35) { \
36 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
37 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
38 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
39 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
40 { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E } \
41}