150 lines
4.3 KiB
C
150 lines
4.3 KiB
C
#pragma once
|
|
#include "config_common.h"
|
|
|
|
|
|
|
|
// USB parameters
|
|
#define VENDOR_ID 0x3297 // ZSA Labs
|
|
#define PRODUCT_ID 0x4976 // Ergodox glow variant
|
|
#define DEVICE_VER 0x0002
|
|
#define MANUFACTURER Betalupi
|
|
#define PRODUCT Betalupi ErgoDox
|
|
#define WEBUSB_LANDING_PAGE_URL u8"betalupi.com"
|
|
#define USB_MAX_POWER_CONSUMPTION 500
|
|
#define USB_SUSPEND_WAKEUP_DELAY 0
|
|
|
|
// 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 RGB_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 DRIVER_LED_TOTAL (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 26
|
|
|
|
// turn off effects when suspended
|
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
|
|
|
|
|
|
|
// 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
|
|
|
|
|
|
|
|
// Disable unnecessary features
|
|
//#define NO_DEBUG
|
|
//#define NO_PRINT
|
|
//#define DEBUG_MATRIX_SCAN_RATE
|
|
|
|
//#define NO_ACTION_LAYER
|
|
//#define NO_ACTION_TAPPING
|
|
//#define NO_ACTION_ONESHOT
|
|
#define NO_ACTION_MACRO
|
|
#define NO_ACTION_FUNCTION
|
|
|