/* Copyright 2012 Jun Wako Copyright 2013 Oleg Kostyuk Copyright 2015 ZSA Technology Labs Inc (@zsa) Copyright 2020 Christopher Courtney (@drashna) 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 . */ #pragma once /* key matrix size */ #define MATRIX_ROWS 14 #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) #define MATRIX_COLS 6 #define COL_EXPANDED { true, true, true, true, true, true, true, false, false, false, false, false, false, false } #define MATRIX_ONBOARD_ROW_PINS { 0, 0, 0, 0, 0, 0, 0, B0, B1, B2, B3, D2, D3, C6 } #define MATRIX_ONBOARD_COL_PINS { F0, F1, F4, F5, F6, F7 } #define DIODE_DIRECTION COL2ROW #define EXPANDER_COL_REGISTER GPIOB #define EXPANDER_ROW_REGISTER GPIOA #define MATRIX_EXPANDER_COL_PINS { 5, 4, 3, 2, 1, 0 } #define MATRIX_EXPANDER_ROW_PINS { 0, 1, 2, 3, 4, 5, 6 } #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 #define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 400 #define MOUSEKEY_WHEEL_INTERVAL MOUSEKEY_INTERVAL #define MOUSEKEY_WHEEL_MAX_SPEED MOUSEKEY_MAX_SPEED #define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX /* 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 /* key combination for command */ #define IS_COMMAND() ( \ get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ ) #ifndef LED_BRIGHTNESS_LO #define LED_BRIGHTNESS_LO 15 #endif #ifndef LED_BRIGHTNESS_HI #define LED_BRIGHTNESS_HI 255 #endif #define LED_BRIGHTNESS_DEFAULT (LED_BRIGHTNESS_HI) // Pick one of the modes // Defaults to 15 mirror, for legacy behavior // #define ERGODOX_LED_15 // Addresses 15 LEDs, but same position on both halves // #define ERGODOX_LED_15_MIRROR // Addresses 15 LEDs, but are mirrored // #define ERGODOX_LED_30 // Addresses all 30 LED individually /* fix space cadet rollover issue */ #define DISABLE_SPACE_CADET_ROLLOVER #define RGBW /* * The debounce filtering reports a key/switch change directly, * without any extra delay. After that the debounce logic will filter * all further changes, until the key/switch reports the same state for * the given count of scans. * So a perfect switch will get a short debounce period and * a bad key will get a much longer debounce period. * The result is an adaptive debouncing period for each switch. * * If you don't define it here, the matrix code will default to * 5, which is now closer to 10ms, but still plenty according to * manufacturer specs. */ // RGB backlight #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC #define DRIVER_1_LED_TOTAL 24 #define DRIVER_2_LED_TOTAL 24 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_LED_PROCESS_LIMIT 5 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_SLEEP // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT #define ENABLE_RGB_MATRIX_BREATHING #define ENABLE_RGB_MATRIX_BAND_SAT #define ENABLE_RGB_MATRIX_BAND_VAL #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL #define ENABLE_RGB_MATRIX_CYCLE_ALL #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL #define ENABLE_RGB_MATRIX_DUAL_BEACON #define ENABLE_RGB_MATRIX_RAINBOW_BEACON #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS #define ENABLE_RGB_MATRIX_RAINDROPS #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS #define ENABLE_RGB_MATRIX_HUE_BREATHING #define ENABLE_RGB_MATRIX_HUE_PENDULUM #define ENABLE_RGB_MATRIX_HUE_WAVE #define ENABLE_RGB_MATRIX_PIXEL_RAIN #define ENABLE_RGB_MATRIX_PIXEL_FLOW #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // #define ENABLE_RGB_MATRIX_SPLASH // #define ENABLE_RGB_MATRIX_MULTISPLASH // #define ENABLE_RGB_MATRIX_SOLID_SPLASH // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF /* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */ /* #define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 */ /* #define RGBLIGHT_COLOR_LAYER_3 0x00, 0xFF, 0x00 */ /* #define RGBLIGHT_COLOR_LAYER_4 0xFF, 0xFF, 0x00 */ /* #define RGBLIGHT_COLOR_LAYER_5 0x00, 0xFF, 0xFF */ /* #define RGBLIGHT_COLOR_LAYER_6 0xFF, 0x00, 0xFF */ /* #define RGBLIGHT_COLOR_LAYER_7 0xFF, 0xFF, 0xFF */ /* * 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 DEBUG_MATRIX_SCAN_RATE