QMK/keyboards/betalupi_ergodox/config.h

142 lines
4.1 KiB
C
Raw Normal View History

2022-02-06 12:00:50 -08:00
#pragma once
#include "config_common.h"
2022-06-16 11:12:10 -07:00
// USB parameters
#define VENDOR_ID 0x3297 // ZSA Labs
#define PRODUCT_ID 0x4976 // Ergodox glow variant
#define DEVICE_VER 0x0002
#define MANUFACTURER Betalupi
2022-02-06 12:21:05 -08:00
#define PRODUCT Betalupi ErgoDox
#define WEBUSB_LANDING_PAGE_URL u8"betalupi.com"
2022-06-16 11:12:10 -07:00
#define USB_MAX_POWER_CONSUMPTION 500
#define USB_SUSPEND_WAKEUP_DELAY 0
2022-02-06 12:00:50 -08:00
2022-07-08 10:50:17 -07:00
// raw HID params
#define RAW_USAGE_PAGE 0xFF60
#define RAW_USAGE_ID 0x61
2022-06-16 11:12:10 -07:00
// Key matrix info
2022-02-06 12:00:50 -08:00
#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 }
2022-06-16 11:12:10 -07:00
// 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
2022-02-06 12:00:50 -08:00
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
2022-06-16 11:12:10 -07:00
#define MOUSEKEY_TIME_TO_MAX 100
#define MOUSEKEY_MAX_SPEED 5
2022-02-06 12:00:50 -08:00
#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
2022-06-16 11:12:10 -07:00
// Ergodox indicator LEDs
2022-06-16 11:26:20 -07:00
#define LED_BRIGHTNESS_LO 5
#define LED_BRIGHTNESS_HI 100
#define LED_BRIGHTNESS_DEFAULT (LED_BRIGHTNESS_LO)
2022-02-06 12:00:50 -08:00
2022-06-16 11:12:10 -07:00
// RGBLight (Underglow) config
#define RGBLED_NUM 8
2022-02-06 12:00:50 -08:00
#define RGB_DI_PIN D7
2022-06-16 11:12:10 -07:00
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 16
#define RGBLIGHT_VAL_STEP 10
// Max brightness
#define RGBLIGHT_LIMIT_VAL 200
2022-06-16 12:32:42 -07:00
//#define RGBLIGHT_OFF_AT_START
//#define RGBLIGHT_NO_EEPROM
2022-06-16 11:12:10 -07:00
// 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
2022-02-06 12:00:50 -08:00
// The underglow LEDs I used for the backlight mod aren't RGBW,
// undef this just to be sure.
#undef RGBW
2022-02-06 12:00:50 -08:00
#define RGBLIGHT_SLEEP
2022-06-16 11:12:10 -07:00
// RGBMatrix (Key light) config
2022-02-06 12:00:50 -08:00
#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 DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
2022-06-16 11:12:10 -07:00
#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)
2022-02-06 12:00:50 -08:00
#define RGB_MATRIX_LED_PROCESS_LIMIT 5
2022-06-16 11:12:10 -07:00
// limits in milliseconds how frequently an animation will update the LEDs.
// 16 (16ms) is equivalent to limiting to 60fps
// (increases keyboard responsiveness)
2022-07-20 21:19:31 -07:00
#define RGB_MATRIX_LED_FLUSH_LIMIT 16
2022-06-16 11:12:10 -07:00
// turn off effects when suspended
2022-02-06 12:00:50 -08:00
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
2022-06-16 11:12:10 -07:00
// Misc
/* 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)) \
)
// Not sure what this does.
// ZSA says: "fixes space cadet rollover issue"
#define DISABLE_SPACE_CADET_ROLLOVER