QMK/keyboards/betalupi_ergodox/config.h

124 lines
3.7 KiB
C

#pragma once
// USB parameters
#define USB_MAX_POWER_CONSUMPTION 500
#define USB_SUSPEND_WAKEUP_DELAY 0
// raw HID params
#define RAW_USAGE_PAGE 0xFF60
#define RAW_USAGE_ID 0x61
// Key matrix info
#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 }
// 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.
//
// A perfect switch will get a short debounce period and
// 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.
#define DEBOUNCE 30
// Feature parameters
#define TAPPING_TOGGLE 1
#define TAPPING_TERM 200
// This makes it possible to do rolling combos (zx)
// with keys that convert to other keys on hold
// (z becomes ctrl when you hold it, and when this option isn't
// enabled, z rapidly followed by x actually sends Ctrl-x)
//#define IGNORE_MOD_TAP_INTERRUPT
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_TIME_TO_MAX 100
#define MOUSEKEY_MAX_SPEED 5
#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
// Ergodox indicator LEDs
#define LED_BRIGHTNESS_LO 5
#define LED_BRIGHTNESS_HI 100
#define LED_BRIGHTNESS_DEFAULT (LED_BRIGHTNESS_LO)
// RGBLight (Underglow) config
#define RGBLED_NUM 8
#define WS2812_DI_PIN D7
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 16
#define RGBLIGHT_VAL_STEP 10
// Max brightness
#define RGBLIGHT_LIMIT_VAL 200
#define RGBLIGHT_OFF_AT_START
//#define RGBLIGHT_NO_EEPROM
// Prevents RGB keycodes from affecting underglow.
// This allows us to control RGBMatrix and RGBLight seperately
// with custom macros defined in betalupi_ergodox.c
#define RGBLIGHT_DISABLE_KEYCODES
// The underglow LEDs I used for the backlight mod aren't RGBW,
// undef this just to be sure.
#undef RGBW
#define RGBLIGHT_SLEEP
// RGBMatrix (Key light) config
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
#define DRIVER_COUNT 2
#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_HUE_STEP 10
#define RGB_MATRIX_SAT_STEP 16
#define RGB_MATRIX_VAL_STEP 16
#define RGB_MATRIX_STARTUP_SPD 60
// limits the number of LEDs to process in an animation per task run
// (increases keyboard responsiveness)
#define RGB_MATRIX_LED_PROCESS_LIMIT 5
// limits in milliseconds how frequently an animation will update the LEDs.
// 16 (16ms) is equivalent to limiting to 60fps
// (increases keyboard responsiveness)
#define RGB_MATRIX_LED_FLUSH_LIMIT 16
// turn off effects when suspended
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
// Not sure what this does.
// ZSA says: "fixes space cadet rollover issue"
#define DISABLE_SPACE_CADET_ROLLOVER