aboutsummaryrefslogtreecommitdiff
path: root/keyboards/bandominedoni/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/bandominedoni/config.h')
-rw-r--r--keyboards/bandominedoni/config.h270
1 files changed, 270 insertions, 0 deletions
diff --git a/keyboards/bandominedoni/config.h b/keyboards/bandominedoni/config.h
new file mode 100644
index 000000000..e1e4d8740
--- /dev/null
+++ b/keyboards/bandominedoni/config.h
@@ -0,0 +1,270 @@
1/* Copyright 2021 3araht
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#pragma once
17
18#include "config_common.h"
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xFEED
22#define PRODUCT_ID 0xF4B5
23#define DEVICE_VER 0x0001
24#define MANUFACTURER 3araht
25#define PRODUCT bandominedoni
26
27/* key matrix size */
28#define MATRIX_ROWS 12
29#define MATRIX_COLS 7
30
31/*
32 * Keyboard Matrix Assignments
33 *
34 * Change this to how you wired your keyboard
35 * COLS: AVR pins used for columns, left to right
36 * ROWS: AVR pins used for rows, top to bottom
37 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
38 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
39 *
40 */
41#define MATRIX_ROW_PINS { B5, B4, D7, F6, C6, D4 }
42#define MATRIX_COL_PINS { D1, E6, F7, B1, B3, B2, D0 }
43#define UNUSED_PINS
44
45#define MASTER_RIGHT
46#ifndef MASTER_RIGHT
47// SPLIT_HAND_MATRIX_GRID was initially designed to use with left hand side diode D35 mounted and not pressing K7 on the right hand side during boot. However when a USB cable is reconnected immediately, it fails. Decided to use "MASTER_RIGHT" to make it more reliable.
48# define SPLIT_HAND_MATRIX_GRID B5, D0
49#endif
50
51/* COL2ROW, ROW2COL */
52#define DIODE_DIRECTION COL2ROW
53
54/*
55 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
56 */
57#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6
58
59//#define LED_NUM_LOCK_PIN B0
60//#define LED_CAPS_LOCK_PIN B1
61//#define LED_SCROLL_LOCK_PIN B2
62//#define LED_COMPOSE_PIN B3
63//#define LED_KANA_PIN B4
64
65//#define BACKLIGHT_PIN B7
66//#define BACKLIGHT_LEVELS 3
67//#define BACKLIGHT_BREATHING
68
69#define RGB_DI_PIN D3
70//#ifdef RGB_DI_PIN
71//# define RGBLED_NUM 16
72//# define RGBLIGHT_HUE_STEP 8
73//# define RGBLIGHT_SAT_STEP 8
74//# define RGBLIGHT_VAL_STEP 8
75//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
76//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
77/*== all animations enable ==*/
78//# define RGBLIGHT_ANIMATIONS
79/*== or choose animations ==*/
80//# define RGBLIGHT_EFFECT_BREATHING
81//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
82//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
83//# define RGBLIGHT_EFFECT_SNAKE
84//# define RGBLIGHT_EFFECT_KNIGHT
85//# define RGBLIGHT_EFFECT_CHRISTMAS
86//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
87//# define RGBLIGHT_EFFECT_RGB_TEST
88//# define RGBLIGHT_EFFECT_ALTERNATING
89/*== customize breathing effect ==*/
90/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
91//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
92/*==== use exp() and sin() ====*/
93//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
94//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
95//#endif
96
97#ifdef RGB_MATRIX_ENABLE
98
99/* ws2812 RGB MATRIX */
100# define DRIVER_LED_TOTAL 76
101
102 // reacts to keypresses
103# define RGB_MATRIX_KEYPRESSES
104
105// for all fingers used at once.
106# define LED_HITS_TO_REMEMBER 10
107
108# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
109# define RGB_MATRIX_STARTUP_SPD 127
110// the above brighness setting has no effect on rgb_matrix_set_color().
111// Use darker colors instead.
112/* RGB darker COLORS */
113# define RGB_DARKWHITE 0x33, 0x33, 0x33
114# define RGB_DARKRED 0x33, 0x0, 0x0
115# define RGB_DARKCORAL 0x33, 0x18, 0xF
116# define RGB_DARKORANGE 0x33, 0x19, 0x0
117# define RGB_DARKGOLDENROD 0x2B, 0x21, 0x6
118# define RGB_DARKGOLD 0x33, 0x2B, 0x0
119# define RGB_DARKYELLOW 0x33, 0x33, 0x0
120# define RGB_DARKCHARTREUSE 0x19, 0x33, 0x0
121# define RGB_DARKGREEN 0x0, 0x33, 0x0
122# define RGB_DARKSPRINGGREEN 0x0, 0x33, 0x19
123# define RGB_DARKTURQUOISE 0xE, 0x16, 0x15
124# define RGB_DARKTEAL 0x0, 0x19, 0x19
125# define RGB_DARKCYAN 0x0, 0x33, 0x33
126# define RGB_DARKAZURE 0x1E, 0x31, 0x33
127# define RGB_DARKBLUE 0x0, 0x0, 0x33
128# define RGB_DARKPURPLE 0x18, 0x0, 0x33
129# define RGB_DARKMAGENTA 0x33, 0x0, 0x33
130# define RGB_DARKPINK 0x33, 0x19, 0x26
131
132// https://docs.qmk.fm/#/feature_rgb_matrix
133// Enable suspend mode.
134# define RGB_DISABLE_WHEN_USB_SUSPENDED true
135
136# ifdef CONSOLE_ENABLE
137# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
138# else
139// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
140# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
141# define ENABLE_RGB_MATRIX_BREATHING
142# define ENABLE_RGB_MATRIX_BAND_SAT
143# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
144# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
145# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
146# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
147// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
148# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
149# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
150# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
151# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
152# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
153# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
154# define ENABLE_RGB_MATRIX_SPLASH
155# define ENABLE_RGB_MATRIX_SOLID_SPLASH
156// RAINDROPS don't match well with layer LED indicator (oc) using rgb_matrix_set_color().
157// #define ENABLE_RGB_MATRIX_RAINDROPS
158// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
159// Recommendend not to use these.
160# ifndef VIA_ENABLE
161# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
162# define ENABLE_RGB_MATRIX_BAND_VAL
163# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
164# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
165# define ENABLE_RGB_MATRIX_CYCLE_ALL
166# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
167# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
168# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
169# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
170# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
171# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
172# define ENABLE_RGB_MATRIX_DUAL_BEACON
173# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
174# define ENABLE_RGB_MATRIX_HUE_BREATHING
175# define ENABLE_RGB_MATRIX_HUE_PENDULUM
176# define ENABLE_RGB_MATRIX_HUE_WAVE
177# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
178# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
179# define ENABLE_RGB_MATRIX_MULTISPLASH
180# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
181# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
182# endif
183# endif // CONSOLE_ENABLE
184#endif // RGB_MATRIX_ENABLE
185
186/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
187#define DEBOUNCE 5
188
189/* define if matrix has ghost (lacks anti-ghosting diodes) */
190//#define MATRIX_HAS_GHOST
191
192/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
193// #define LOCKING_SUPPORT_ENABLE
194/* Locking resynchronize hack */
195// #define LOCKING_RESYNC_ENABLE
196
197/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
198 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
199 */
200//#define GRAVE_ESC_CTRL_OVERRIDE
201
202/*
203 * Force NKRO
204 *
205 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
206 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
207 * makefile for this to work.)
208 *
209 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
210 * until the next keyboard reset.
211 *
212 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
213 * fully operational during normal computer usage.
214 *
215 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
216 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
217 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
218 * power-up.
219 *
220 */
221//#define FORCE_NKRO
222
223/*
224 * Feature disable options
225 * These options are also useful to firmware size reduction.
226 */
227
228/* disable debug print */
229//#define NO_DEBUG
230
231/* disable print */
232//#define NO_PRINT
233
234/* disable action features */
235//#define NO_ACTION_LAYER
236
237/* 2021/01/22 added to shrink firmware size */
238// NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods...
239// #define NO_ACTION_TAPPING
240// NO_ACTION_ONESHOT -388 bytes
241#define NO_ACTION_ONESHOT
242
243/* disable these deprecated features by default */
244#define NO_ACTION_MACRO
245#define NO_ACTION_FUNCTION
246
247/* Bootmagic Lite key configuration */
248//#define BOOTMAGIC_LITE_ROW 0
249//#define BOOTMAGIC_LITE_COLUMN 0
250
251#ifdef MIDI_ENABLE
252# define MIDI_ADVANCED
253// Initial velocity value (avoid using 127 since it is used as a special number in some sound sources.)
254# define MIDI_INITIAL_VELOCITY 117
255#endif // MIDI_ENABLE
256
257/*
258 * Encoder options
259 */
260#ifdef ENCODER_ENABLE
261# define ENCODERS_PAD_A { C7 } // dummy
262# define ENCODERS_PAD_B { B7 } // dummy
263# define ENCODERS_PAD_A_RIGHT { F5 }
264# define ENCODERS_PAD_B_RIGHT { F4 }
265# define ENCODER_RESOLUTION 4
266# define TAP_CODE_DELAY 10
267# define ENCODERS 2
268# define ENCODERS_CW_KEY { {4, 5}, {6, 5} }
269# define ENCODERS_CCW_KEY { {3, 5}, {5, 5} }
270#endif // ENCODER_ENABLE