Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		| @@ -18,87 +18,90 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #undef PRODUCT | ||||
| #define PRODUCT "Charybdis Nano (Blackpill)" | ||||
| #ifdef KEYBOARD_bastardkb_charybdis_3x5_blackpill | ||||
|  | ||||
| #undef MATRIX_ROW_PINS | ||||
| #define MATRIX_ROW_PINS \ | ||||
|     { B12, B13, B14, B15 } | ||||
| #undef MATRIX_COL_PINS | ||||
| #define MATRIX_COL_PINS \ | ||||
|     { A15, B3, B4, B5, B6 } | ||||
| #    undef MATRIX_ROW_PINS | ||||
| #    define MATRIX_ROW_PINS \ | ||||
|         { B12, B13, B14, B15 } | ||||
| #    undef MATRIX_COL_PINS | ||||
| #    define MATRIX_COL_PINS \ | ||||
|         { A15, B3, B4, B5, B6 } | ||||
|  | ||||
| #    undef MATRIX_ROW_PINS_RIGHT | ||||
| #    define MATRIX_ROW_PINS_RIGHT \ | ||||
|         { B12, B13, B14, B15 } | ||||
| #    undef MATRIX_COL_PINS_RIGHT | ||||
| #    define MATRIX_COL_PINS_RIGHT \ | ||||
|         { A15, B3, B4, B5, B6 } | ||||
|  | ||||
| #undef MATRIX_ROW_PINS_RIGHT | ||||
| #define MATRIX_ROW_PINS_RIGHT \ | ||||
|     { B12, B13, B14, B15 } | ||||
| #undef MATRIX_COL_PINS_RIGHT | ||||
| #define MATRIX_COL_PINS_RIGHT \ | ||||
|     { A15, B3, B4, B5, B6 } | ||||
|  | ||||
| #define USB_VBUS_PIN        B10 | ||||
| #define SPLIT_HAND_PIN      C14  // high = left, low = right | ||||
| #    define USB_VBUS_PIN B10 | ||||
| #    undef SPLIT_HAND_PIN | ||||
| #    define SPLIT_HAND_PIN C14 // high = left, low = right | ||||
|  | ||||
| // WS2812 RGB LED strip input and number of LEDs | ||||
| #undef RGB_DI_PIN | ||||
| #define RGB_DI_PIN          A1 | ||||
| #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | ||||
| #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | ||||
| #define WS2812_PWM_DRIVER   PWMD2  // default: PWMD2 | ||||
| #define WS2812_PWM_CHANNEL  2      // default: 2 | ||||
| #define WS2812_PWM_PAL_MODE 1      // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 | ||||
| #define WS2812_EXTERNAL_PULLUP | ||||
| #    undef RGB_DI_PIN | ||||
| #    define RGB_DI_PIN A1 | ||||
| #    undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | ||||
| #    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | ||||
| #    define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 | ||||
| #    define WS2812_PWM_CHANNEL 2    // default: 2 | ||||
| #    define WS2812_PWM_PAL_MODE 1   // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 | ||||
| #    define WS2812_EXTERNAL_PULLUP | ||||
| //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). | ||||
| #define WS2812_DMA_STREAM   STM32_DMA1_STREAM7  // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||||
| #define WS2812_DMA_CHANNEL  3                   // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||||
| #define WS2812_PWM_TARGET_PERIOD 800000 | ||||
| #    undef WS2812_DMA_STREAM | ||||
| #    define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||||
| #    define WS2812_DMA_CHANNEL 3                 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||||
| #    define WS2812_PWM_TARGET_PERIOD 800000 | ||||
|  | ||||
| #define DEBUG_LED_PIN     C13 | ||||
| #    define DEBUG_LED_PIN C13 | ||||
|  | ||||
| /* Audio config */ | ||||
| #define AUDIO_PIN          B1 | ||||
| #define AUDIO_PWM_DRIVER   PWMD3 | ||||
| #define AUDIO_PWM_CHANNEL  4 | ||||
| #define AUDIO_PWM_PAL_MODE 2 | ||||
| #    define AUDIO_PIN B1 | ||||
| #    define AUDIO_PWM_DRIVER PWMD3 | ||||
| #    define AUDIO_PWM_CHANNEL 4 | ||||
| #    define AUDIO_PWM_PAL_MODE 2 | ||||
|  | ||||
| /* serial.c configuration for split keyboard */ | ||||
| #undef SOFT_SERIAL_PIN | ||||
| #define SERIAL_USART_FULL_DUPLEX  // Enable full duplex operation mode. | ||||
| #define SERIAL_USART_TX_PIN      A2 | ||||
| #define SERIAL_USART_RX_PIN      A3 | ||||
| #define SERIAL_USART_DRIVER      SD2 | ||||
| #define SERIAL_USART_TX_PAL_MODE 7    // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||||
| #define SERIAL_USART_RX_PAL_MODE 7    // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||||
| #define SERIAL_USART_TIMEOUT     100  // USART driver timeout. default 100 | ||||
| #define SERIAL_USART_SPEED       921600 | ||||
| #    undef SOFT_SERIAL_PIN | ||||
| #    define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. | ||||
| #    undef SERIAL_USART_TX_PIN | ||||
| #    define SERIAL_USART_TX_PIN A2 | ||||
| #    undef SERIAL_USART_RX_PIN | ||||
| #    define SERIAL_USART_RX_PIN A3 | ||||
| #    define SERIAL_USART_DRIVER SD2 | ||||
| #    define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||||
| #    define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||||
| #    define SERIAL_USART_TIMEOUT 100   // USART driver timeout. default 100 | ||||
| #    define SERIAL_USART_SPEED 921600 | ||||
| // #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master | ||||
| // To use the highest possible baudrate (3.75Mbit/s) uncomment the following | ||||
| // line, this can result in dropped communications so lower the speed if there | ||||
| // are many timeouts. | ||||
| // #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4) | ||||
|  | ||||
| #define CRC8_USE_TABLE | ||||
| #define CRC8_OPTIMIZE_SPEED | ||||
| #    define CRC8_USE_TABLE | ||||
| #    define CRC8_OPTIMIZE_SPEED | ||||
|  | ||||
| /* spi config for eeprom and pmw3360 sensor */ | ||||
| #define SPI_DRIVER                           SPID1 | ||||
| #define SPI_SCK_PIN                          A5 | ||||
| #define SPI_SCK_PAL_MODE                     5 | ||||
| #define SPI_MOSI_PIN                         A7 | ||||
| #define SPI_MOSI_PAL_MODE                    5 | ||||
| #define SPI_MISO_PIN                         A6 | ||||
| #define SPI_MISO_PAL_MODE                    5 | ||||
| #    define SPI_DRIVER SPID1 | ||||
| #    define SPI_SCK_PIN A5 | ||||
| #    define SPI_SCK_PAL_MODE 5 | ||||
| #    define SPI_MOSI_PIN A7 | ||||
| #    define SPI_MOSI_PAL_MODE 5 | ||||
| #    define SPI_MISO_PIN A6 | ||||
| #    define SPI_MISO_PAL_MODE 5 | ||||
|  | ||||
| /* eeprom config */ | ||||
| #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 | ||||
| #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR    64 | ||||
| #    define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 | ||||
| #    define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64 | ||||
| // #define EXTERNAL_EEPROM_BYTE_COUNT           8196 | ||||
| // #define EXTERNAL_EEPROM_PAGE_SIZE            32 | ||||
| // #define EXTERNAL_EEPROM_ADDRESS_SIZE         2 | ||||
|  | ||||
| /* pmw3360 config  */ | ||||
| #undef PMW33XX_CS_PIN | ||||
| #define PMW33XX_CS_PIN                       B0 | ||||
| #    undef PMW33XX_CS_PIN | ||||
| #    define PMW33XX_CS_PIN B0 | ||||
| #endif | ||||
|  | ||||
| #define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 | ||||
| #define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 | ||||
|   | ||||
| @@ -15,11 +15,13 @@ | ||||
|  */ | ||||
| #pragma once | ||||
|  | ||||
| #define HAL_USE_PWM     TRUE | ||||
| #define HAL_USE_SERIAL  TRUE | ||||
| #define HAL_USE_I2C     TRUE | ||||
| #define HAL_USE_SPI     TRUE | ||||
| #define SPI_USE_WAIT    TRUE | ||||
| #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) | ||||
| #    define HAL_USE_PWM TRUE | ||||
| #    define HAL_USE_SERIAL TRUE | ||||
| #    define HAL_USE_I2C TRUE | ||||
| #    define HAL_USE_SPI TRUE | ||||
| #    define SPI_USE_WAIT TRUE | ||||
| #    define SPI_SELECT_MODE SPI_SELECT_MODE_PAD | ||||
| #endif | ||||
|  | ||||
| #include_next <halconf.h> | ||||
|   | ||||
| @@ -83,24 +83,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|     ), | ||||
| }; | ||||
|  | ||||
| void matrix_init_keyemap(void) { setPinInputHigh(A0); } | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) | ||||
| void keyboard_pre_init_keymap(void) { | ||||
|     setPinInputHigh(A0); | ||||
| } | ||||
|  | ||||
| void matrix_scan_keymap(void) { | ||||
| void housekeeping_task_keymap(void) { | ||||
|     if (!readPin(A0)) { | ||||
|         reset_keyboard(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| #ifdef USB_VBUS_PIN | ||||
| #    ifdef USB_VBUS_PIN | ||||
| bool usb_vbus_state(void) { | ||||
|     setPinInputLow(USB_VBUS_PIN); | ||||
|     wait_us(5); | ||||
|     return readPin(USB_VBUS_PIN); | ||||
| } | ||||
| #endif | ||||
| #    endif | ||||
|  | ||||
| void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | ||||
|     for (int32_t i = 0; i < 40; i++) { | ||||
|         __asm__ volatile("nop" ::: "memory"); | ||||
|     } | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -18,25 +18,27 @@ | ||||
|  | ||||
| #include_next "mcuconf.h" | ||||
|  | ||||
| #undef STM32_I2C_USE_I2C1 | ||||
| #define STM32_I2C_USE_I2C1 TRUE | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) | ||||
| #    undef STM32_I2C_USE_I2C1 | ||||
| #    define STM32_I2C_USE_I2C1 TRUE | ||||
|  | ||||
| // #undef STM32_I2C_I2C1_RX_DMA_STREAM | ||||
| // #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) | ||||
| #undef STM32_I2C_I2C1_TX_DMA_STREAM | ||||
| #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) | ||||
| #    undef STM32_I2C_I2C1_TX_DMA_STREAM | ||||
| #    define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) | ||||
|  | ||||
| #undef STM32_PWM_USE_TIM2 | ||||
| #define STM32_PWM_USE_TIM2 TRUE | ||||
| #    undef STM32_PWM_USE_TIM2 | ||||
| #    define STM32_PWM_USE_TIM2 TRUE | ||||
|  | ||||
| #undef STM32_PWM_USE_TIM3 | ||||
| #define STM32_PWM_USE_TIM3 TRUE | ||||
| #    undef STM32_PWM_USE_TIM3 | ||||
| #    define STM32_PWM_USE_TIM3 TRUE | ||||
|  | ||||
| #undef STM32_SPI_USE_SPI1 | ||||
| #define STM32_SPI_USE_SPI1           TRUE | ||||
| #    undef STM32_SPI_USE_SPI1 | ||||
| #    define STM32_SPI_USE_SPI1 TRUE | ||||
|  | ||||
| #undef STM32_SERIAL_USE_USART2 | ||||
| #define STM32_SERIAL_USE_USART2 TRUE | ||||
| #    undef STM32_SERIAL_USE_USART2 | ||||
| #    define STM32_SERIAL_USE_USART2 TRUE | ||||
|  | ||||
| #undef STM32_ST_USE_TIMER | ||||
| #define STM32_ST_USE_TIMER 5 | ||||
| #    undef STM32_ST_USE_TIMER | ||||
| #    define STM32_ST_USE_TIMER 5 | ||||
| #endif | ||||
|   | ||||
| @@ -1,28 +1,45 @@ | ||||
| # MCU name | ||||
| MCU = STM32F411 | ||||
| BOARD = BLACKPILL_STM32_F411 | ||||
| RGB_MATRIX_ENABLE = no | ||||
| CUSTOM_UNICODE_ENABLE = no | ||||
| CUSTOM_POINTING_DEVICE = no | ||||
| CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||
|  | ||||
| # Bootloader selection | ||||
| # BOOTLOADER = stm32-dfu | ||||
| BOOTLOADER := tinyuf2 | ||||
|  | ||||
| LTO_ENABLE := no | ||||
| ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/blackpill) | ||||
|     # Bootloader selection | ||||
|     BOOTLOADER := tinyuf2 | ||||
|  | ||||
| BOOTMAGIC_ENABLE = yes     # Enable Bootmagic Lite | ||||
| KEYBOARD_SHARED_EP = yes | ||||
| MOUSE_SHARED_EP = yes | ||||
|     LTO_ENABLE := no | ||||
|  | ||||
| EEPROM_DRIVER = spi | ||||
| WS2812_DRIVER = pwm | ||||
| SERIAL_DRIVER = usart | ||||
| AUDIO_DRIVER = pwm_hardware | ||||
|     AUDIO_SUPPORTED = yes | ||||
|     AUDIO_ENABLE = yes | ||||
|     AUDIO_DRIVER = pwm_hardware | ||||
|  | ||||
| AUDIO_SUPPORTED = yes | ||||
| AUDIO_ENABLE = yes | ||||
| MOUSEKEY_ENABLE = yes | ||||
| NKRO_ENABLE = yes | ||||
| CONSOLE_ENABLE = yes | ||||
|     OVERLOAD_FEATURES = yes | ||||
| endif | ||||
|  | ||||
| AUTOCORRECT_ENABLE = yes | ||||
| ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/stemcell) | ||||
|     OVERLOAD_FEATURES = yes | ||||
| endif | ||||
| ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/splinky) | ||||
|     OVERLOAD_FEATURES = yes | ||||
| endif | ||||
|  | ||||
| DEBOUNCE_TYPE = asym_eager_defer_pk | ||||
|  | ||||
| ifeq ($(strip $(OVERLOAD_FEATURES)), yes) | ||||
|     BOOTMAGIC_ENABLE = yes     # Enable Bootmagic Lite | ||||
|     KEYBOARD_SHARED_EP = yes | ||||
|     MOUSE_SHARED_EP = yes | ||||
|  | ||||
|     MOUSEKEY_ENABLE = yes | ||||
|     NKRO_ENABLE = yes | ||||
|     CONSOLE_ENABLE = yes | ||||
|     RGB_MATRIX_ENABLE = yes | ||||
|  | ||||
|     AUTOCORRECT_ENABLE = yes | ||||
|  | ||||
|     CUSTOM_UNICODE_ENABLE = yes | ||||
|     CUSTOM_POINTING_DEVICE = yes | ||||
|     CUSTOM_SPLIT_TRANSPORT_SYNC = yes | ||||
|  | ||||
|     DEBOUNCE_TYPE = asym_eager_defer_pk | ||||
| endif | ||||
|   | ||||
| @@ -16,99 +16,49 @@ | ||||
|  */ | ||||
| #pragma once | ||||
|  | ||||
| #undef PRODUCT | ||||
| #define PRODUCT "Charybdis (4x6) Blackpill" | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||
| #    undef MATRIX_COL_PINS | ||||
| #    define MATRIX_COL_PINS \ | ||||
|         { B0, B1, B12, B3, B4, B5 } | ||||
|  | ||||
| #undef MATRIX_COL_PINS | ||||
| #define MATRIX_COL_PINS \ | ||||
|     { B0, B1, B12, B3, B4, B5 } | ||||
| #undef MATRIX_COL_PINS_RIGHT | ||||
| #define MATRIX_COL_PINS_RIGHT \ | ||||
|     { B0, B1, B12, B3, B4, B5 } | ||||
| #    define USB_VBUS_PIN B10 | ||||
| #    define DEBUG_LED_PIN C13 | ||||
|  | ||||
| #undef MATRIX_ROW_PINS | ||||
| #define MATRIX_ROW_PINS \ | ||||
|     { B15, A2, B8, A8, B9 } | ||||
| #undef MATRIX_ROW_PINS_RIGHT | ||||
| #define MATRIX_ROW_PINS_RIGHT \ | ||||
|     { B15, A2, B8, A8, B9 } | ||||
| #    define AUDIO_PIN B7 | ||||
| #    define AUDIO_PWM_DRIVER PWMD4 | ||||
| #    define AUDIO_PWM_CHANNEL 2 | ||||
| #    define AUDIO_PWM_PAL_MODE 2 | ||||
| #    define AUDIO_INIT_DELAY | ||||
| #    define AUDIO_ENABLE_TONE_MULTIPLEXING | ||||
| #    define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 | ||||
|  | ||||
| #    define SERIAL_USART_SPEED (1 * 1024 * 1024) | ||||
|  | ||||
| #define DIODE_DIRECTION ROW2COL | ||||
| #define SPLIT_HAND_PIN A3 | ||||
| #undef MASTER_RIGHT | ||||
| #define USB_VBUS_PIN B10 | ||||
| #    undef POINTING_DEVICE_CS_PIN | ||||
| #    define POINTING_DEVICE_CS_PIN A15 // b14 | ||||
| #    define PMW33XX_LIFTOFF_DISTANCE 0b1111 | ||||
| #endif | ||||
|  | ||||
| #undef RGB_DI_PIN | ||||
| #define RGB_DI_PIN A1 | ||||
| #define WS2812_EXTERNAL_PULLUP | ||||
| #define WS2812_PWM_DRIVER PWMD2 | ||||
| #define WS2812_PWM_CHANNEL 2 | ||||
| #define WS2812_PWM_PAL_MODE 1 | ||||
| #define WS2812_EXTERNAL_PULLUP | ||||
| #define WS2812_DMA_STREAM STM32_DMA1_STREAM1 | ||||
| #define WS2812_DMA_CHANNEL 3 | ||||
| #define WS2812_PWM_TARGET_PERIOD 800000 | ||||
|  | ||||
| #define DEBUG_LED_PIN     C13 | ||||
|  | ||||
| #define AUDIO_PIN          B7 | ||||
| #define AUDIO_PWM_DRIVER   PWMD4 | ||||
| #define AUDIO_PWM_CHANNEL  2 | ||||
| #define AUDIO_PWM_PAL_MODE 2 | ||||
| #define AUDIO_INIT_DELAY | ||||
| #define AUDIO_ENABLE_TONE_MULTIPLEXING | ||||
| #define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 | ||||
|  | ||||
| #undef SOFT_SERIAL_PIN | ||||
| // #define SERIAL_USART_FULL_DUPLEX  // Enable full duplex operation mode. | ||||
| #define SERIAL_USART_TX_PIN      A9 | ||||
| // #define SERIAL_USART_RX_PIN      A3 | ||||
| // #define SERIAL_USART_DRIVER      SD2 | ||||
| // #define SERIAL_USART_TX_PAL_MODE 7    // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||||
| // #define SERIAL_USART_RX_PAL_MODE 7    // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 | ||||
| // #define SERIAL_USART_TIMEOUT     100  // USART driver timeout. default 100 | ||||
| // #define SERIAL_USART_SPEED       921600 | ||||
| #define SERIAL_USART_SPEED (1.5 * 1024 * 1024) | ||||
|  | ||||
| #define CRC8_USE_TABLE | ||||
| #define CRC8_OPTIMIZE_SPEED | ||||
|  | ||||
| /* spi config for eeprom and pmw3360 sensor */ | ||||
| #define SPI_DRIVER                           SPID1 | ||||
| #define SPI_SCK_PIN                          A5 | ||||
| #define SPI_SCK_PAL_MODE                     5 | ||||
| #define SPI_MOSI_PIN                         A7 | ||||
| #define SPI_MOSI_PAL_MODE                    5 | ||||
| #define SPI_MISO_PIN                         A6 | ||||
| #define SPI_MISO_PAL_MODE                    5 | ||||
|  | ||||
| #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 | ||||
| #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR    64 | ||||
|  | ||||
| #undef PMW33XX_CS_PIN | ||||
| #define PMW33XX_CS_PIN                       A15  // b14 | ||||
| #define PMW33XX_LIFTOFF_DISTANCE 0b1111 | ||||
| #undef ROTATIONAL_TRANSFORM_ANGLE | ||||
| #define ROTATIONAL_TRANSFORM_ANGLE -65 | ||||
|  | ||||
| #define CHARYBDIS_MINIMUM_DEFAULT_DPI     1200 | ||||
| #define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 | ||||
| #define CHARYBDIS_MINIMUM_SNIPING_DPI     200 | ||||
| #define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100 | ||||
| #define ROTATIONAL_TRANSFORM_ANGLE 25 | ||||
| #define POINTING_DEVICE_ROTATION_270 | ||||
|  | ||||
| /* RGB Matrix. */ | ||||
|  | ||||
| #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | ||||
| #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | ||||
|  | ||||
| #define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 | ||||
| #define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 | ||||
| #define CHARYBDIS_MINIMUM_SNIPING_DPI 200 | ||||
| #define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100 | ||||
|  | ||||
| #define CHARYBDIS_CONFIG_SYNC | ||||
|  | ||||
| #define BOOTMAGIC_LITE_ROW    0 | ||||
| #define BOOTMAGIC_LITE_ROW 0 | ||||
| #define BOOTMAGIC_LITE_COLUMN 0 | ||||
| #define BOOTMAGIC_LITE_ROW_RIGHT    5 | ||||
| #define BOOTMAGIC_LITE_ROW_RIGHT 5 | ||||
| #define BOOTMAGIC_LITE_COLUMN_RIGHT 0 | ||||
| #define BOOTMAGIC_LITE_EEPROM_ROW    1 | ||||
| #define BOOTMAGIC_LITE_EEPROM_ROW 1 | ||||
| #define BOOTMAGIC_LITE_EEPROM_COLUMN 0 | ||||
| #define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT    1 | ||||
| #define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1 | ||||
| #define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0 | ||||
|   | ||||
| @@ -1,26 +0,0 @@ | ||||
| /* Copyright 2020 Nick Brassel (tzarc) | ||||
|  * | ||||
|  *  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 3 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 <https://www.gnu.org/licenses/>. | ||||
|  */ | ||||
| #pragma once | ||||
|  | ||||
| #define HAL_USE_PWM     TRUE | ||||
| #define HAL_USE_PAL     TRUE | ||||
| #define HAL_USE_SERIAL  TRUE | ||||
| // #define HAL_USE_I2C     TRUE | ||||
| #define HAL_USE_SPI     TRUE | ||||
| #define SPI_USE_WAIT    TRUE | ||||
| #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD | ||||
|  | ||||
| #include_next <halconf.h> | ||||
| @@ -83,12 +83,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|                                SFT_T(KC_SPACE),  ALT_T(KC_Q),      _______ | ||||
|     ), | ||||
|     [_MOUSE] = LAYOUT_charybdis_4x6( | ||||
|         _______, _______, _______, _______, _______, _______,   _______, _______, _______, _______, _______, _______, | ||||
|         _______, _______, _______, _______, _______, _______,   KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______, | ||||
|         _______, _______, _______, _______, _______, _______,   _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______, | ||||
|         _______, _______, _______, _______, _______, _______,   KC_WH_U, _______, _______, _______, _______, DRGSCRL, | ||||
|         _______, _______, _______, _______, _______, _______,   KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, | ||||
|         _______, _______, _______, _______, _______, _______,   KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, DRGSCRL, _______, | ||||
|                                    _______, SNIPING, SNIPING,    _______, _______, | ||||
|                                            _______, _______,      _______ | ||||
|         _______, _______, _______, _______, _______, _______,   KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, | ||||
|                                    _______, _______, _______,   _______, _______, | ||||
|                                            _______, _______,     _______ | ||||
|     ), | ||||
|  | ||||
|     [_LOWER] = LAYOUT_charybdis_4x6_wrapper( | ||||
| @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|     ), | ||||
|  | ||||
|     [_ADJUST] = LAYOUT_charybdis_4x6_wrapper( | ||||
|         QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT, | ||||
|         QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_COMIC,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT, | ||||
|         VRSN,    _________________ADJUST_L1_________________,    _________________ADJUST_R1_________________, EE_CLR, | ||||
|         KEYLOCK, _________________ADJUST_L2_________________,    _________________ADJUST_R2_________________, TG_MODS, | ||||
|         UC_NEXT, _________________ADJUST_L3_________________,    _________________ADJUST_R3_________________, KC_MPLY, | ||||
| @@ -121,8 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| // clang-format on | ||||
|  | ||||
|  | ||||
| void matrix_init_keymap(void) { | ||||
|     setPinInputHigh(A0); | ||||
| void keyboard_post_init_keymap(void) { | ||||
| #ifdef RGB_MATRIX_ENABLE | ||||
|      g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] = | ||||
|         g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] = | ||||
| @@ -131,11 +130,17 @@ void matrix_init_keymap(void) { | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void matrix_scan_keymap(void) { | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||
| void keyboard_pre_init_keymap(void) { | ||||
|     setPinInputHigh(A0); | ||||
| } | ||||
|  | ||||
| void housekeeping_task_keymap(void) { | ||||
|     if (!readPin(A0)) { | ||||
|         reset_keyboard(); | ||||
|     } | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #ifdef USB_VBUS_PIN | ||||
| bool usb_vbus_state(void) { | ||||
| @@ -145,12 +150,13 @@ bool usb_vbus_state(void) { | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||
| void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | ||||
|     for (int32_t i = 0; i < 40; i++) { | ||||
|         __asm__ volatile("nop" ::: "memory"); | ||||
|     } | ||||
| } | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifdef SWAP_HANDS_ENABLE | ||||
| const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { | ||||
|   | ||||
| @@ -18,23 +18,10 @@ | ||||
|  | ||||
| #include_next "mcuconf.h" | ||||
|  | ||||
| #undef STM32_PWM_USE_ADVANCED | ||||
| #define STM32_PWM_USE_ADVANCED TRUE | ||||
| #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||
| #    undef STM32_PWM_USE_ADVANCED | ||||
| #    define STM32_PWM_USE_ADVANCED TRUE | ||||
|  | ||||
| #undef STM32_PWM_USE_TIM1 | ||||
| #define STM32_PWM_USE_TIM1 TRUE | ||||
|  | ||||
| #undef STM32_PWM_USE_TIM2 | ||||
| #define STM32_PWM_USE_TIM2 TRUE | ||||
|  | ||||
| #undef STM32_PWM_USE_TIM4 | ||||
| #define STM32_PWM_USE_TIM4 TRUE | ||||
|  | ||||
| #undef STM32_SPI_USE_SPI1 | ||||
| #define STM32_SPI_USE_SPI1 TRUE | ||||
|  | ||||
| #undef STM32_SERIAL_USE_USART1 | ||||
| #define STM32_SERIAL_USE_USART1 TRUE | ||||
|  | ||||
| #undef STM32_ST_USE_TIMER | ||||
| #define STM32_ST_USE_TIMER 5 | ||||
| #    undef STM32_PWM_USE_TIM4 | ||||
| #    define STM32_PWM_USE_TIM4 TRUE | ||||
| #endif | ||||
|   | ||||
| @@ -1,34 +1,56 @@ | ||||
| # MCU name | ||||
| MCU = STM32F411 | ||||
| BOARD = BLACKPILL_STM32_F411 | ||||
| CUSTOM_UNICODE_ENABLE = no | ||||
| CUSTOM_POINTING_DEVICE = no | ||||
| CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||
|  | ||||
| # Bootloader selection | ||||
| BOOTLOADER := tinyuf2 | ||||
| ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill) | ||||
|     # MCU name | ||||
|     # Bootloader selection | ||||
|     BOOTLOADER := tinyuf2 | ||||
|  | ||||
| BOOTMAGIC_ENABLE      = yes # Enable Bootmagic Lite | ||||
| MOUSEKEY_ENABLE       = yes # Mouse keys | ||||
| EXTRAKEY_ENABLE       = yes # Audio control and System control | ||||
| CONSOLE_ENABLE        = yes # Console for debug | ||||
| COMMAND_ENABLE        = no  # Commands for debug and configuration | ||||
| NKRO_ENABLE           = yes # Enable N-Key Rollover | ||||
| RGBLIGHT_ENABLE       = no  # Enable keyboard RGB underglow | ||||
| AUDIO_ENABLE          = yes # Audio output | ||||
| AUDIO_SUPPORTED       = yes # is set to no in kb, needs to be forcibly enabled | ||||
|     AUDIO_ENABLE          = yes # Audio output | ||||
|     AUDIO_SUPPORTED       = yes # is set to no in kb, needs to be forcibly enabled | ||||
|     AUDIO_DRIVER          = pwm_hardware | ||||
|  | ||||
| KEYBOARD_SHARED_EP    = yes | ||||
| MOUSE_SHARED_EP       = yes | ||||
|     BACKLIGHT_DRIVER      = pwm | ||||
|  | ||||
| EEPROM_DRIVER         = spi | ||||
| WS2812_DRIVER         = pwm | ||||
| SERIAL_DRIVER         = usart | ||||
| AUDIO_DRIVER          = pwm_hardware | ||||
| BACKLIGHT_DRIVER      = pwm | ||||
|     OVERLOAD_FEATURES = yes | ||||
| endif | ||||
|  | ||||
| AUTOCORRECT_ENABLE = yes | ||||
| CAPS_WORD_ENABLE      = yes | ||||
| SWAP_HANDS_ENABLE     = yes | ||||
| TAP_DANCE_ENABLE      = yes | ||||
| DEBOUNCE_TYPE         = asym_eager_defer_pk | ||||
| WPM_ENABLE            = yes | ||||
| LTO_ENABLE            = no | ||||
| # OPT                   = 3 | ||||
| ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/stemcell) | ||||
|     OVERLOAD_FEATURES = yes | ||||
| endif | ||||
| ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/splinky) | ||||
|     OVERLOAD_FEATURES = yes | ||||
| endif | ||||
| ifeq ($(strip $(MCU)), atmega32u4) | ||||
|     LTO_ENABLE = yes | ||||
|     BOOTLOADER = qmk-hid | ||||
|     BOOTLOADER_SIZE = 512 | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(OVERLOAD_FEATURES)), yes) | ||||
|     BOOTMAGIC_ENABLE      = yes # Enable Bootmagic Lite | ||||
|     MOUSEKEY_ENABLE       = yes # Mouse keys | ||||
|     EXTRAKEY_ENABLE       = yes # Audio control and System control | ||||
|     CONSOLE_ENABLE        = yes # Console for debug | ||||
|     COMMAND_ENABLE        = no  # Commands for debug and configuration | ||||
|     NKRO_ENABLE           = yes # Enable N-Key Rollover | ||||
|     RGBLIGHT_ENABLE       = no  # Enable keyboard RGB underglow | ||||
|  | ||||
|     KEYBOARD_SHARED_EP    = yes | ||||
|     MOUSE_SHARED_EP       = yes | ||||
|  | ||||
|     AUTOCORRECT_ENABLE    = yes | ||||
|     CAPS_WORD_ENABLE      = yes | ||||
|     SWAP_HANDS_ENABLE     = yes | ||||
|     TAP_DANCE_ENABLE      = yes | ||||
|     DEBOUNCE_TYPE         = asym_eager_defer_pk | ||||
|     WPM_ENABLE            = yes | ||||
|     LTO_ENABLE            = no | ||||
|     # OPT                   = 3 | ||||
|  | ||||
|     CUSTOM_UNICODE_ENABLE = yes | ||||
|     CUSTOM_POINTING_DEVICE = yes | ||||
|     CUSTOM_SPLIT_TRANSPORT_SYNC = yes | ||||
|  | ||||
| endif | ||||
|   | ||||
							
								
								
									
										23
									
								
								keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| /** | ||||
|  * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) | ||||
|  * | ||||
|  * 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 <http://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #define HAL_USE_SPI TRUE | ||||
| #define HAL_USE_I2C TRUE | ||||
|  | ||||
| #include_next "halconf.h" | ||||
| @@ -112,7 +112,7 @@ bool oled_task_keymap(void) { | ||||
|     }; | ||||
|     oled_write_raw_P(header_image, sizeof(header_image)); | ||||
|     oled_set_cursor(7, 0); | ||||
|     oled_write_P(PSTR("Rock On"), true); | ||||
|     oled_write_P(PSTR("Dilemma"), true); | ||||
|  | ||||
|     render_default_layer_state(1, 1); | ||||
|     render_layer_state(1, 2); | ||||
| @@ -158,3 +158,19 @@ bool oled_task_keymap(void) { | ||||
|     return false; | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifdef SWAP_HANDS_ENABLE | ||||
| const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { | ||||
|     /* Left hand, matrix positions */ | ||||
|     {{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}}, | ||||
|     {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}}, | ||||
|     {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}}, | ||||
|     {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}}, | ||||
|     /* Right hand, matrix positions */ | ||||
|     {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}}, | ||||
|     {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}}, | ||||
|     {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}}, | ||||
|     {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}}, | ||||
|     }; | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										26
									
								
								keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| /** | ||||
|  * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) | ||||
|  * | ||||
|  * 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 <http://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include_next "mcuconf.h" | ||||
|  | ||||
| #undef RP_SPI_USE_SPI1 | ||||
| #define RP_SPI_USE_SPI1 TRUE | ||||
|  | ||||
| #undef RP_I2C_USE_I2C1 | ||||
| #define RP_I2C_USE_I2C1 TRUE | ||||
| @@ -60,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|     ), | ||||
|  | ||||
|     [_MOUSE] = LAYOUT_4x6_right( | ||||
|         _______, _______, _______, _______, _______, _______,                        KC_WH_U, _______, _______, _______, DPI_CONFIG, _______, | ||||
|         _______, _______, _______, _______, _______, _______,                        KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______, | ||||
|         _______, _______, _______, _______, _______, _______,                        KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG, | ||||
|         _______, _______, _______, _______, _______, _______,                        KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, | ||||
|         _______, _______, _______, _______, _______, _______,                        KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, | ||||
|                           _______, _______,                                                            _______, _______, | ||||
|                                             _______, _______,                                 _______, | ||||
|   | ||||
| @@ -132,6 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| }; | ||||
|  | ||||
|  | ||||
| #ifdef ENCODER_ENABLE | ||||
| #ifdef ENCODER_MAP_ENABLE | ||||
| const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { | ||||
|     [_DEFAULT_LAYER_1] = { { KC_VOLD, KC_VOLU }, { KC_WH_D, KC_WH_U } }, | ||||
| @@ -185,6 +186,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { | ||||
|     return false; | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #ifdef OLED_ENABLE | ||||
| #    include "keyrecords/unicode.h" | ||||
| @@ -209,36 +211,7 @@ void oled_render_large_display(bool side) { | ||||
|         // clang-format on | ||||
|         oled_write_P(logo, false); | ||||
|  | ||||
| #    ifdef CUSTOM_UNICODE_ENABLE | ||||
|         oled_set_cursor(1, 14); | ||||
|         oled_write_ln_P(PSTR("Unicode:"), false); | ||||
|         switch (typing_mode) { | ||||
|             case UCTM_WIDE: | ||||
|                 oled_write_P(PSTR("        Wide"), false); | ||||
|                 break; | ||||
|             case UCTM_SCRIPT: | ||||
|                 oled_write_P(PSTR("      Script"), false); | ||||
|                 break; | ||||
|             case UCTM_BLOCKS: | ||||
|                 oled_write_P(PSTR("      Blocks"), false); | ||||
|                 break; | ||||
|             case UCTM_REGIONAL: | ||||
|                 oled_write_P(PSTR("    Regional"), false); | ||||
|                 break; | ||||
|             case UCTM_AUSSIE: | ||||
|                 oled_write_P(PSTR("      Aussie"), false); | ||||
|                 break; | ||||
|             case UCTM_ZALGO: | ||||
|                 oled_write_P(PSTR("       Zalgo"), false); | ||||
|                 break; | ||||
|             case UCTM_NO_MODE: | ||||
|                 oled_write_P(PSTR("      Normal"), false); | ||||
|                 break; | ||||
|             default: | ||||
|                 oled_write_P(PSTR("     Unknown"), false); | ||||
|                 break; | ||||
|         } | ||||
| #    endif | ||||
|         render_unicode_mode(1, 14); | ||||
|     } | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -1,40 +1,52 @@ | ||||
| COMMAND_ENABLE                   = no | ||||
| RGBLIGHT_ENABLE                  = yes | ||||
| RGBLIGHT_STARTUP_ANIMATION       = yes | ||||
| AUDIO_ENABLE                     = yes | ||||
| AUTOCORRECT_ENABLE               = no | ||||
| AUDIO_ENABLE                     = no | ||||
| ENCODER_ENABLE                   = no | ||||
| CUSTOM_BOOTMAGIC_ENABLE          = no | ||||
| CUSTOM_UNICODE_ENABLE            = no | ||||
| HAPTIC_ENABLE                    = no | ||||
| TAP_DANCE_ENABLE                 = yes | ||||
| OLED_ENABLE                      = yes | ||||
| WPM_ENABLE                       = yes | ||||
| ENCODER_ENABLE                   = yes | ||||
| ENCODER_MAP_ENABLE               = yes | ||||
| AUTOCORRECT_ENABLE               = yes | ||||
| CAPS_WORD_ENABLE                 = yes | ||||
| DEFERRED_EXEC_ENABLE             = yes | ||||
| OLED_ENABLE                      = no | ||||
| OLED_DRIVER                      = custom | ||||
| RGBLIGHT_ENABLE                  = no | ||||
| SWAP_HANDS_ENABLE                = no | ||||
| TAP_DANCE_ENABLE                 = no | ||||
| WPM_ENABLE                       = no | ||||
|  | ||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c) | ||||
|     RGBLIGHT_ENABLE              = no | ||||
|     AUDIO_ENABLE                 = no | ||||
|     HAPTIC_ENABLE                = no | ||||
|     TAP_DANCE_ENABLE             = no | ||||
|     OLED_ENABLE                  = no | ||||
|     WPM_ENABLE                   = no | ||||
|     ENCODER_ENABLE               = no | ||||
|     AUTOCORRECT_ENABLE           = no | ||||
|     LTO_SUPPORTED                = yes | ||||
|     SWAP_HANDS_ENABLE            = no | ||||
|     CUSTOM_UNICODE_ENABLE        = no | ||||
|     CAPS_WORD_ENABLE             = no | ||||
|     BOOTLOADER                   = qmk-hid | ||||
|     BOOTLOADER_SIZE              = 512 | ||||
|     BOOTLOADER                       = qmk-hid | ||||
|     BOOTLOADER_SIZE                  = 512 | ||||
|     CUSTOM_SPLIT_TRANSPORT_SYNC      = no | ||||
|     LTO_ENABLE                       = yes | ||||
| endif | ||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/arduinomicro) | ||||
|     BOOTLOADER                       = qmk-hid | ||||
|     BOOTLOADER_SIZE                  = 512 | ||||
|     CUSTOM_SPLIT_TRANSPORT_SYNC      = no | ||||
|     LTO_ENABLE                       = yes | ||||
| endif | ||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp) | ||||
|     AUTOCORRECT_ENABLE           = no | ||||
|     CAPS_WORD_ENABLE             = yes | ||||
|     AUTOCORRECT_ENABLE               = no | ||||
|     OVERLOAD_FEATURES                = yes | ||||
|     LTO_ENABLE                       = yes | ||||
| endif | ||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411) | ||||
|     BOOTLOADER = tinyuf2 | ||||
|     BOOTLOADER                       = tinyuf2 | ||||
|     AUTOCORRECT_ENABLE               = yes | ||||
|     LTO_SUPPORTED                    = no | ||||
|     OVERLOAD_FEATURES                = yes | ||||
| endif | ||||
| # DEBOUNCE_TYPE = sym_eager_pk | ||||
|  | ||||
| OLED_DRIVER = custom | ||||
| ifeq ($(strip $(OVERLOAD_FEATURES)), yes) | ||||
|     AUDIO_ENABLE                     = yes | ||||
|     CAPS_WORD_ENABLE                 = yes | ||||
|     CUSTOM_BOOTMAGIC_ENABLE          = yes | ||||
|     CUSTOM_UNICODE_ENABLE            = yes | ||||
|     ENCODER_ENABLE                   = yes | ||||
|     ENCODER_MAP_ENABLE               = yes | ||||
|     OLED_ENABLE                      = yes | ||||
|     RGBLIGHT_ENABLE                  = yes | ||||
|     RGBLIGHT_STARTUP_ANIMATION       = yes | ||||
|     TAP_DANCE_ENABLE                 = yes | ||||
|     SWAP_HANDS_ENABLE                = yes | ||||
|     WPM_ENABLE                       = yes | ||||
| endif | ||||
|   | ||||
| @@ -30,7 +30,9 @@ | ||||
| #    define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 | ||||
| #    define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 | ||||
|  | ||||
| #    define RGBLIGHT_LIMIT_VAL 225 | ||||
| #    ifndef RGBLIGHT_LIMIT_VAL | ||||
| #       define RGBLIGHT_LIMIT_VAL 225 | ||||
| #    endif | ||||
| #endif  // RGBLIGHT_ENABLE | ||||
|  | ||||
| #ifdef AUDIO_ENABLE | ||||
| @@ -49,12 +51,14 @@ | ||||
| #    define QMK_SPEAKER C6 | ||||
| #endif | ||||
|  | ||||
| #undef PRODUCT | ||||
| #if defined(KEYBOARD_keebio_iris_rev2) | ||||
| #    undef PRODUCT | ||||
| #    define PRODUCT "Drashna Hacked Iris Rev 2" | ||||
| #elif defined(KEYBOARD_keebio_iris_rev3) | ||||
| #    undef PRODUCT | ||||
| #    define PRODUCT "Drashna Hacked Iris Rev 3" | ||||
| #elif defined(KEYBOARD_keebio_iris_rev4) | ||||
| #    undef PRODUCT | ||||
| #    define PRODUCT "Drashna Hacked Iris Rev 4" | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -101,16 +101,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| }; | ||||
| // clang-format on | ||||
|  | ||||
| void matrix_init_keymap(void) { | ||||
| #ifndef CONVERT_TO_PROTON_C | ||||
|     setPinOutput(D5); | ||||
|     writePinHigh(D5); | ||||
|  | ||||
|     setPinOutput(B0); | ||||
|     writePinHigh(B0); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void keyboard_post_init_keymap(void) { | ||||
| #if BACKLIGHT_ENABLE | ||||
|     backlight_enable(); | ||||
|   | ||||
| @@ -14,7 +14,3 @@ INDICATOR_LIGHTS            = no | ||||
| RGBLIGHT_STARTUP_ANIMATION  = no | ||||
| CUSTOM_UNICODE_ENABLE       = no | ||||
| CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||
|  | ||||
| ifneq ($(strip $(KEYBOARD)), keebio/iris/rev6) | ||||
|    RGBLIGHT_ENABLE    = yes | ||||
| endif | ||||
|   | ||||
| @@ -74,13 +74,3 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||||
|     //} | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| void matrix_init_keymap(void) { | ||||
| #ifndef CONVERT_TO_PROTON_C | ||||
|     setPinOutput(D5); | ||||
|     writePinHigh(D5); | ||||
|  | ||||
|     setPinOutput(B0); | ||||
|     writePinHigh(B0); | ||||
| #endif | ||||
| } | ||||
|   | ||||
| @@ -21,4 +21,5 @@ LAYOUTS = ortho_5x7 | ||||
| # SRC := $(filter-out split_util.c,$(SRC)) | ||||
| # SRC += quantum/matrix.c | ||||
|  | ||||
| BOOTLOADER        = qmk-dfu | ||||
| BOOTLOADER        = qmk-hid | ||||
| BOOTLOADER_SIZE   = 512 | ||||
|   | ||||
| @@ -53,10 +53,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| #    endif | ||||
| #endif  // AUDIO_ENABLE | ||||
|  | ||||
| #undef PRODUCT | ||||
| #ifdef KEYBOARD_orthodox_rev1 | ||||
| #    undef PRODUCT | ||||
| #    define PRODUCT "Drashna Hacked Orthodox Rev .1" | ||||
| #elif KEYBOARD_orthodox_rev3 | ||||
| #    undef PRODUCT | ||||
| #    define PRODUCT "Drashna Hacked Orthodox Rev .3" | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -68,13 +68,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|  | ||||
| }; | ||||
| // clang-format on | ||||
|  | ||||
| void matrix_init_keymap(void) { | ||||
| #ifndef CONVERT_TO_PROTON_C | ||||
|     setPinOutput(D5); | ||||
|     writePinHigh(D5); | ||||
|  | ||||
|     setPinOutput(B0); | ||||
|     writePinHigh(B0); | ||||
| #endif | ||||
| } | ||||
|   | ||||
| @@ -144,6 +144,7 @@ void oled_render_large_display(bool side) { | ||||
|             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  3,  7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15,  7,  3,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 | ||||
|         }; | ||||
|         // clang-format on | ||||
|         oled_set_cursor(0,7); | ||||
|         oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); | ||||
|     } | ||||
| } | ||||
| @@ -157,9 +158,11 @@ const rgblight_segment_t PROGMEM gui_layers[]     = RGBLIGHT_LAYER_SEGMENTS({7, | ||||
|  | ||||
| const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(shift_layers, control_layers, alt_layers, gui_layers); | ||||
|  | ||||
| void keyboard_post_init_keymap(void) { rgblight_layers = my_rgb_layers; } | ||||
| void keyboard_post_init_keymap(void) { | ||||
|     rgblight_layers = my_rgb_layers; | ||||
| } | ||||
|  | ||||
| void matrix_scan_keymap(void) { | ||||
| void housekeeping_task_keymap(void) { | ||||
|     uint8_t mods = mod_config(get_mods() | get_oneshot_mods()); | ||||
|     rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT); | ||||
|     rgblight_set_layer_state(1, mods & MOD_MASK_CTRL); | ||||
|   | ||||
| @@ -268,7 +268,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| void matrix_scan_keymap(void) {  // runs frequently to update info | ||||
| void housekeeping_task_keymap(void) {  // runs frequently to update info | ||||
|     uint8_t modifiers     = get_mods(); | ||||
|     uint8_t led_usb_state = host_keyboard_leds(); | ||||
|     uint8_t one_shot      = get_oneshot_mods(); | ||||
|   | ||||
| @@ -66,12 +66,14 @@ | ||||
| #endif  // KEYBOARD_planck_light | ||||
|  | ||||
| #if defined(KEYBOARD_planck) | ||||
| #    undef PRODUCT | ||||
| #    if defined(KEYBOARD_planck_light) | ||||
| #        undef PRODUCT | ||||
| #        define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)" | ||||
| #    elif defined(KEYBOARD_planck_rev6) | ||||
| #        undef PRODUCT | ||||
| #        define PRODUCT "Drashna Hacked Planck Rev6" | ||||
| #    elif defined(KEYBOARD_planck_ez) | ||||
| #        undef PRODUCT | ||||
| #        define PRODUCT "Drashna Hacked Planck EZ" | ||||
| #        define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 | ||||
| #    endif | ||||
|   | ||||
| @@ -249,23 +249,12 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| void matrix_init_keymap(void) { | ||||
| void keyboard_post_init_keymap(void) { | ||||
| #    ifdef KEYBOARD_planck_light | ||||
|     writePinLow(D6); | ||||
| #    endif | ||||
|     // rgblight_mode(RGB_MATRIX_MULTISPLASH); | ||||
| } | ||||
| #else  // RGB_MATRIX_INIT | ||||
|  | ||||
| void matrix_init_keymap(void) { | ||||
| #    if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck) | ||||
|     setPinOutput(D5); | ||||
|     writePinHigh(D5); | ||||
|  | ||||
|     setPinOutput(B0); | ||||
|     writePinHigh(B0); | ||||
| #    endif | ||||
| } | ||||
| #endif  // RGB_MATRIX_INIT | ||||
|  | ||||
| #ifdef ENCODER_ENABLE | ||||
|   | ||||
| @@ -20,7 +20,7 @@ ifeq ($(strip $(KEYBOARD)), planck/rev6) | ||||
|     AUDIO_ENABLE                = yes | ||||
|     EEPROM_DRIVER               = i2c | ||||
|     ENCODER_MAP_ENABLE          = yes | ||||
|     AUTOCORRECTION_ENABLE       = yes | ||||
|     AUTOCORRECT_ENABLE          = yes | ||||
|     CAPS_WORD_ENABLE            = yes | ||||
| endif | ||||
| ifeq ($(strip $(KEYBOARD)), planck/light) | ||||
| @@ -39,6 +39,13 @@ ifeq ($(strip $(KEYBOARD)), planck/ez) | ||||
|     CONSOLE_ENABLE              = yes | ||||
|     COMMAND_ENABLE              = yes | ||||
|     AUDIO_ENABLE                = yes | ||||
|     AUTOCORRECTION_ENABLE       = yes | ||||
|     AUTOCORRECT_ENABLE          = yes | ||||
|     CAPS_WORD_ENABLE            = yes | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(MCU)), atmega32u4) | ||||
|     BOOTLOADER = qmk-hid | ||||
|     BOOTLOADER_SIZE = 512 | ||||
|     LTO_ENABLE = yes | ||||
|     CUSTOM_UNICODE_ENABLE = no | ||||
| endif | ||||
|   | ||||
| @@ -16,3 +16,9 @@ ifeq ($(strip $(KEYBOARD)), fractal) | ||||
|     BOOTLOADER                  = qmk-dfu | ||||
|     CUSTOM_UNICODE_ENABLE       = no | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(MCU)), atmega32u4) | ||||
|     BOOTLOADER                  = qmk-dfu | ||||
|     BOOTLOADER_SIZE             = 512 | ||||
|     LTO_ENABLE                  = yes | ||||
| endif | ||||
|   | ||||
| @@ -1,6 +1,8 @@ | ||||
|  | ||||
| #define CH_CFG_ST_RESOLUTION                16 | ||||
| #define CH_CFG_ST_FREQUENCY                 10000 | ||||
| #if defined(KEYBOARD_crkbd) | ||||
| #    define CH_CFG_ST_RESOLUTION 16 | ||||
| #    define CH_CFG_ST_FREQUENCY 10000 | ||||
| #endif | ||||
|  | ||||
| #if __has_include("platforms/chibios/common/configs/chconf.h") | ||||
| #    include_next "platforms/chibios/common/configs/chconf.h" | ||||
|   | ||||
| @@ -80,8 +80,13 @@ | ||||
| #    define NO_MUSIC_MODE | ||||
| #endif | ||||
|  | ||||
| #ifdef HAPTIC_ENABLE | ||||
| #    define SOLENOID_PIN B7 | ||||
| #if defined(HAPTIC_ENABLE) | ||||
| #    if defined(CONVERT_TO_PROTON_C) | ||||
| #        define A13 PAL_LINE(GPIOA, 13) | ||||
| #        define SOLENOID_PIN A13 | ||||
| #    else | ||||
| #        define SOLENOID_PIN B7 | ||||
| #    endif | ||||
| #endif | ||||
|  | ||||
| #undef PRODUCT | ||||
|   | ||||
| @@ -15,8 +15,9 @@ | ||||
|  */ | ||||
| #pragma once | ||||
|  | ||||
| // #define HAL_USE_DAC TRUE | ||||
| #define HAL_USE_PWM TRUE | ||||
| #define HAL_USE_SERIAL TRUE | ||||
| #if defined(KEYBOARD_crkbd) | ||||
| #    define HAL_USE_PWM TRUE | ||||
| #    define HAL_USE_SERIAL TRUE | ||||
| #endif | ||||
|  | ||||
| #include_next <halconf.h> | ||||
|   | ||||
| @@ -238,8 +238,7 @@ void render_small_kitty(void) { | ||||
| void oled_driver_render_logo_right(void) { | ||||
|     render_small_kitty(); | ||||
|  | ||||
|     oled_set_cursor(0, 4); | ||||
|     render_default_layer_state(); | ||||
|     render_default_layer_state(0, 4); | ||||
| } | ||||
| #    endif | ||||
| #endif | ||||
|   | ||||
| @@ -17,20 +17,16 @@ | ||||
|  | ||||
| #include_next <mcuconf.h> | ||||
|  | ||||
| // #undef STM32_HSE_ENABLED | ||||
| // #define STM32_HSE_ENABLED FALSE | ||||
| // #undef STM32_GPT_USE_TIM15 | ||||
| // #define STM32_GPT_USE_TIM15                  FALSE | ||||
| #if defined(KEYBOARD_crkbd) | ||||
|  | ||||
| #undef STM32_PWM_USE_TIM2 | ||||
| #define STM32_PWM_USE_TIM2                  TRUE | ||||
| #undef STM32_PWM_USE_TIM3 | ||||
| #define STM32_PWM_USE_TIM3                  FALSE | ||||
| #    undef STM32_PWM_USE_TIM2 | ||||
| #    define STM32_PWM_USE_TIM2 TRUE | ||||
| #    undef STM32_PWM_USE_TIM3 | ||||
| #    define STM32_PWM_USE_TIM3 FALSE | ||||
|  | ||||
| #undef STM32_SERIAL_USE_USART1 | ||||
| #define STM32_SERIAL_USE_USART1 TRUE | ||||
| #    undef STM32_SERIAL_USE_USART1 | ||||
| #    define STM32_SERIAL_USE_USART1 TRUE | ||||
|  | ||||
| // #undef STM32_PWM_TIM15_IRQ_PRIORITY | ||||
| // #define STM32_PWM_TIM15_IRQ_PRIORITY         16 | ||||
| #undef STM32_ST_USE_TIMER | ||||
| #define STM32_ST_USE_TIMER 3 | ||||
| #    undef STM32_ST_USE_TIMER | ||||
| #    define STM32_ST_USE_TIMER 3 | ||||
| #endif | ||||
|   | ||||
| @@ -13,6 +13,10 @@ AUDIO_ENABLE               = no  # Audio output | ||||
| UNICODE_ENABLE             = no  # Unicode | ||||
| RGBLIGHT_ENABLE            = no  # Enable WS2812 RGB underlight. | ||||
| SWAP_HANDS_ENABLE          = no  # Enable one-hand typing | ||||
| OS_DETECTION_ENABLE        = no | ||||
| CUSTOM_UNICODE_ENABLE      = no | ||||
| CUSTOM_POINTING_DEVICE     = no | ||||
| CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||
|  | ||||
| USE_ARM_CONFIG ?= no | ||||
| ifeq ($(strip $(CONVERT_TO)), proton_c) | ||||
| @@ -27,19 +31,26 @@ endif | ||||
| ifeq ($(strip $(MCU)), STM32F401) | ||||
|     USE_ARM_CONFIG = yes | ||||
| endif | ||||
| ifeq ($(strip $(MCU)), STM32F411) | ||||
|     USE_ARM_CONFIG = yes | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(MCU)), atmega32u4) | ||||
|     BOOTLOADER             = qmk-hid | ||||
|     BOOTLOADER_SIZE        = 512 | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(USE_ARM_CONFIG)), yes) | ||||
|     HAPTIC_ENABLE          = no | ||||
|     WS2812_DRIVER          = pwm # won't work without a patch to the ctpc mk file | ||||
|     SERIAL_DRIVER          = usart | ||||
|     SWAP_HANDS_ENABLE      = yes | ||||
|     WPM_ENABLE             = yes | ||||
|     AUTOCORRECTION_ENABLE  = yes | ||||
|     AUTOCORRECT_ENABLE     = yes | ||||
|     CAPS_WORD_ENABLE       = yes | ||||
| else | ||||
|     CUSTOM_UNICODE_ENABLE  = no | ||||
|     BOOTLOADER             = qmk-hid | ||||
|     BOOTLOADER_SIZE        = 512 | ||||
|     OS_DETECTION_ENABLE    = yes | ||||
|     CUSTOM_UNICODE_ENABLE      = no | ||||
|     CUSTOM_POINTING_DEVICE     = no | ||||
|     CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(KEYBOARD)), crkbd/rev1) | ||||
| @@ -47,7 +58,3 @@ ifeq ($(strip $(KEYBOARD)), crkbd/rev1) | ||||
|     RGB_MATRIX_ENABLE      = yes | ||||
|     HAPTIC_ENABLE          = no | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(KEYBOARD)), cantor) | ||||
|     SWAP_HANDS_ENABLE      = no | ||||
| endif | ||||
|   | ||||
| @@ -44,7 +44,7 @@ void bootmagic_lite(void) { | ||||
|     if (matrix_get_row(row) & (1 << col)) { | ||||
|         perform_reset = true; | ||||
|     } | ||||
| #ifdef STM32F411xE | ||||
| #if defined(STM32F411xE) && !defined(CONVERTER_ENABLED) | ||||
|     if (!readPin(A0)) { | ||||
|         perform_reset = true; | ||||
|     } | ||||
|   | ||||
| @@ -20,22 +20,6 @@ void                       keyboard_pre_init_user(void) { | ||||
| // functions in the keymaps | ||||
| // Call user matrix init, set default RGB colors and then | ||||
| // call the keymap's init function | ||||
| __attribute__((weak)) void matrix_init_keymap(void) {} | ||||
| __attribute__((weak)) void matrix_init_secret(void) {} | ||||
| void                       matrix_init_user(void) { | ||||
| #if defined(BOOTLOADER_CATERINA) && defined(__AVR__) && defined(__AVR_ATmega32U4__) | ||||
|     DDRD &= ~(1 << 5); | ||||
|     PORTD &= ~(1 << 5); | ||||
|  | ||||
|     DDRB &= ~(1 << 0); | ||||
|     PORTB &= ~(1 << 0); | ||||
| #endif | ||||
| #ifdef CUSTOM_UNICODE_ENABLE | ||||
|     matrix_init_unicode(); | ||||
| #endif | ||||
|     matrix_init_secret(); | ||||
|     matrix_init_keymap(); | ||||
| } | ||||
|  | ||||
| __attribute__((weak)) void keyboard_post_init_keymap(void) {} | ||||
| void                       keyboard_post_init_user(void) { | ||||
| @@ -51,6 +35,17 @@ void                       keyboard_post_init_user(void) { | ||||
| #ifdef I2C_SCANNER_ENABLE | ||||
|     keyboard_post_init_i2c(); | ||||
| #endif | ||||
| #ifdef CUSTOM_UNICODE_ENABLE | ||||
|     keyboard_post_init_unicode(); | ||||
| #endif | ||||
|  | ||||
| #if defined(BOOTLOADER_CATERINA) && defined(__AVR__) && defined(__AVR_ATmega32U4__) | ||||
|     DDRD &= ~(1 << 5); | ||||
|     PORTD &= ~(1 << 5); | ||||
|  | ||||
|     DDRB &= ~(1 << 0); | ||||
|     PORTB &= ~(1 << 0); | ||||
| #endif | ||||
|  | ||||
|     keyboard_post_init_keymap(); | ||||
| } | ||||
| @@ -106,7 +101,6 @@ void                       suspend_wakeup_init_user(void) { | ||||
| // No global matrix scan code, so just run keymap's matrix | ||||
| // scan function | ||||
| __attribute__((weak)) void matrix_scan_keymap(void) {} | ||||
| __attribute__((weak)) void matrix_scan_secret(void) {} | ||||
| void                       matrix_scan_user(void) { | ||||
|     static bool has_ran_yet; | ||||
|     if (!has_ran_yet) { | ||||
| @@ -117,9 +111,6 @@ void                       matrix_scan_user(void) { | ||||
| #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. | ||||
|     run_diablo_macro_check(); | ||||
| #endif // TAP_DANCE_ENABLE | ||||
| #ifdef CAPS_WORD_ENABLE | ||||
|     caps_word_task(); | ||||
| #endif | ||||
| #if defined(CUSTOM_RGB_MATRIX) | ||||
|     matrix_scan_rgb_matrix(); | ||||
| #endif | ||||
| @@ -129,7 +120,6 @@ void                       matrix_scan_user(void) { | ||||
| #ifdef CUSTOM_OLED_DRIVER | ||||
|     matrix_scan_oled(); | ||||
| #endif | ||||
|     matrix_scan_secret(); | ||||
|  | ||||
|     matrix_scan_keymap(); | ||||
| } | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| #include "quantum.h" | ||||
|  | ||||
| void          matrix_init_keymap(void); | ||||
| void          keyboard_post_init_keymap(void); | ||||
| void          matrix_init_secret(void); | ||||
| void          shutdown_keymap(void); | ||||
| void          suspend_power_down_keymap(void); | ||||
| @@ -19,7 +19,7 @@ void          eeconfig_init_keymap(void); | ||||
| void          housekeeping_task_keymap(void); | ||||
|  | ||||
| #ifdef CUSTOM_UNICODE_ENABLE | ||||
| void matrix_init_unicode(void); | ||||
| void keyboard_post_init_unicode(void); | ||||
| #endif | ||||
| #ifdef SPLIT_KEYBOARD | ||||
| void matrix_slave_scan_keymap(void); | ||||
|   | ||||
| @@ -15,11 +15,6 @@ My [Ergodox EZ Keymap](https://github.com/qmk/qmk_firmware/blob/master/layouts/c | ||||
| You can see a list of these files in [callbacks.c](callbacks.c), or a shortend list here  | ||||
|  | ||||
| ```c | ||||
| __attribute__((weak)) void matrix_init_keymap(void) {} | ||||
| void                       matrix_init_user(void) { | ||||
|     matrix_init_keymap(); | ||||
| } | ||||
|  | ||||
| __attribute__((weak)) void keyboard_post_init_keymap(void) {} | ||||
| void                       keyboard_post_init_user(void) { | ||||
|     keyboard_post_init_keymap(); | ||||
|   | ||||
| @@ -130,14 +130,35 @@ void keyboard_post_init_i2c(void) { | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #if defined(AUTOCORRECT_ENABLE) && defined(AUDIO_ENABLE) | ||||
| #    ifdef USER_SONG_LIST | ||||
| #if defined(AUTOCORRECT_ENABLE) | ||||
| #    if defined(AUDIO_ENABLE) | ||||
| #        ifdef USER_SONG_LIST | ||||
| float autocorrect_song[][2] = SONG(MARIO_GAMEOVER); | ||||
| #    else | ||||
| #        else | ||||
| float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||||
| #        endif | ||||
| #    endif | ||||
|  | ||||
| bool apply_autocorrect(uint8_t backspaces, const char *str) { | ||||
|     if (layer_state_is(_GAMEPAD)) { | ||||
|         return false; | ||||
|     } | ||||
|     // TO-DO use unicode stuff for this.  Will probably have to reverse engineer | ||||
|     // send string to get working properly, to send char string. | ||||
|  | ||||
| #    if defined(AUDIO_ENABLE) | ||||
|     PLAY_SONG(autocorrect_song); | ||||
| #    endif | ||||
|     return true; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #if defined(CAPS_WORD_ENABLE) && !defined(NO_ACTION_ONESHOT) | ||||
| void oneshot_locked_mods_changed_user(uint8_t mods) { | ||||
|     if (mods & MOD_MASK_SHIFT) { | ||||
|         del_mods(MOD_MASK_SHIFT); | ||||
|         set_oneshot_locked_mods(~MOD_MASK_SHIFT & get_oneshot_locked_mods()); | ||||
|         caps_word_on(); | ||||
|     } | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -45,6 +45,7 @@ enum userspace_custom_keycodes { | ||||
|     KC_AUSSIE, | ||||
|     KC_ZALGO, | ||||
|     KC_SUPER, | ||||
|     KC_COMIC, | ||||
|     KC_ACCEL, | ||||
|     NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes | ||||
| }; | ||||
|   | ||||
| @@ -7,7 +7,18 @@ | ||||
| #include "unicode.h" | ||||
| #include "process_unicode_common.h" | ||||
|  | ||||
| uint8_t typing_mode = UCTM_NO_MODE; | ||||
| uint8_t unicode_typing_mode = UCTM_NO_MODE; | ||||
| const char unicode_mode_str[UNCODES_MODE_END][13] PROGMEM = { | ||||
|     "      Normal\0", | ||||
|     "        Wide\0", | ||||
|     "      Script\0", | ||||
|     "      Blocks\0", | ||||
|     "    Regional\0", | ||||
|     "      Aussie\0", | ||||
|     "       Zalgo\0", | ||||
|     "Super Script\0", | ||||
|     "       Comic\0", | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * @brief Registers the unicode keystrokes based on desired unicode | ||||
| @@ -91,6 +102,45 @@ DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_script, 0x1D4EA, 0x1D4D | ||||
| DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_boxes, 0x1F170, 0x1F170, '0', '1', 0x2002); | ||||
| DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003); | ||||
|  | ||||
| // DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_normal, | ||||
| //                               'a', // a | ||||
| //                               'b', // b | ||||
| //                               'c', // c | ||||
| //                               'd', // d | ||||
| //                               'e', // e | ||||
| //                               'f', // f | ||||
| //                               'g', // g | ||||
| //                               'h', // h | ||||
| //                               'i', // i | ||||
| //                               'j', // j | ||||
| //                               'k', // k | ||||
| //                               'l', // l | ||||
| //                               'm', // m | ||||
| //                               'n', // n | ||||
| //                               'o', // o | ||||
| //                               'p', // p | ||||
| //                               'q', // q | ||||
| //                               'r', // r | ||||
| //                               's', // s | ||||
| //                               't', // t | ||||
| //                               'u', // u | ||||
| //                               'v', // v | ||||
| //                               'w', // w | ||||
| //                               'x', // x | ||||
| //                               'y', // y | ||||
| //                               'z', // z | ||||
| //                               '1', // 1 | ||||
| //                               '2', // 2 | ||||
| //                               '3', // 3 | ||||
| //                               '4', // 4 | ||||
| //                               '5', // 5 | ||||
| //                               '6', // 6 | ||||
| //                               '7', // 7 | ||||
| //                               '8', // 8 | ||||
| //                               '9', // 9 | ||||
| //                               '0'  // 0 | ||||
| // ); | ||||
|  | ||||
| DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie, | ||||
|                               0x0250, // a | ||||
|                               'q',    // b | ||||
| @@ -169,6 +219,45 @@ DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_super, | ||||
|                               0x2070  // 0 | ||||
| ); | ||||
|  | ||||
| DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_comic, | ||||
|                               0x212B, // a | ||||
|                               0x212C, // b | ||||
|                               0x2102, // c | ||||
|                               0x2145, // d | ||||
|                               0x2107, // e | ||||
|                               0x2132, // f | ||||
|                               0x2141, // g | ||||
|                               0x210D, // h | ||||
|                               0x2148, // i | ||||
|                               0x2111, // j | ||||
|                               'k', // k | ||||
|                               0x2143, // l | ||||
|                               'm', // m | ||||
|                               0x2115, // n | ||||
|                               0x2134, // o | ||||
|                               0x2119, // p | ||||
|                               0x211A, // q | ||||
|                               0x211B, // r | ||||
|                               0x20B7, // s | ||||
|                               0x20B8, // t | ||||
|                               0x2127, // u | ||||
|                               'v', // v | ||||
|                               0x20A9, // w | ||||
|                               'x', // x | ||||
|                               0x213D, // y | ||||
|                               'z', // z | ||||
|                               '1', // 1 | ||||
|                               '2', // 2 | ||||
|                               '3', // 3 | ||||
|                               '4', // 4 | ||||
|                               '5', // 5 | ||||
|                               '6', // 6 | ||||
|                               '7', // 7 | ||||
|                               '8', // 8 | ||||
|                               '9', // 9 | ||||
|                               '0'  // 0 | ||||
| ); | ||||
|  | ||||
| bool process_record_aussie(uint16_t keycode, keyrecord_t *record) { | ||||
|     bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT; | ||||
|     if ((KC_A <= keycode) && (keycode <= KC_0)) { | ||||
| @@ -280,12 +369,12 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { | ||||
|                 register_unicode(0x203D); | ||||
|             } | ||||
|             break; | ||||
|         case KC_NOMODE ... KC_SUPER: | ||||
|         case KC_NOMODE ... KC_COMIC: | ||||
|             if (record->event.pressed) { | ||||
|                 if (typing_mode != keycode - KC_NOMODE) { | ||||
|                     typing_mode = keycode - KC_NOMODE; | ||||
|                 if (unicode_typing_mode != keycode - KC_NOMODE) { | ||||
|                     unicode_typing_mode = keycode - KC_NOMODE; | ||||
|                 } else { | ||||
|                     typing_mode = UCTM_NO_MODE; | ||||
|                     unicode_typing_mode = UCTM_NO_MODE; | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
| @@ -295,23 +384,26 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     if (((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) && record->tap.count) { | ||||
|         keycode &= 0xFF; | ||||
|     if (IS_QK_MOD_TAP(keycode) && record->tap.count) { | ||||
|         keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); | ||||
|     } | ||||
|     if (IS_QK_LAYER_TAP(keycode) && record->tap.count) { | ||||
|         keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); | ||||
|     } | ||||
|  | ||||
|     if (typing_mode == UCTM_WIDE) { | ||||
|     if (unicode_typing_mode == UCTM_WIDE) { | ||||
|         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||
|             return process_record_glyph_replacement(keycode, record, unicode_range_translator_wide); | ||||
|         } | ||||
|     } else if (typing_mode == UCTM_SCRIPT) { | ||||
|     } else if (unicode_typing_mode == UCTM_SCRIPT) { | ||||
|         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||
|             return process_record_glyph_replacement(keycode, record, unicode_range_translator_script); | ||||
|         } | ||||
|     } else if (typing_mode == UCTM_BLOCKS) { | ||||
|     } else if (unicode_typing_mode == UCTM_BLOCKS) { | ||||
|         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||
|             return process_record_glyph_replacement(keycode, record, unicode_range_translator_boxes); | ||||
|         } | ||||
|     } else if (typing_mode == UCTM_REGIONAL) { | ||||
|     } else if (unicode_typing_mode == UCTM_REGIONAL) { | ||||
|         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||
|             if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) { | ||||
|                 wait_us(500); | ||||
| @@ -319,22 +411,26 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|     } else if (typing_mode == UCTM_SUPER) { | ||||
|     } else if (unicode_typing_mode == UCTM_SUPER) { | ||||
|         if (((KC_A <= keycode) && (keycode <= KC_0))) { | ||||
|             return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super); | ||||
|         } | ||||
|     } else if (typing_mode == UCTM_AUSSIE) { | ||||
|     } else if (unicode_typing_mode == UCTM_COMIC) { | ||||
|         if (((KC_A <= keycode) && (keycode <= KC_0))) { | ||||
|             return process_record_glyph_replacement(keycode, record, unicode_lut_translator_comic); | ||||
|         } | ||||
|     } else if (unicode_typing_mode == UCTM_AUSSIE) { | ||||
|         return process_record_aussie(keycode, record); | ||||
|     } else if (typing_mode == UCTM_ZALGO) { | ||||
|     } else if (unicode_typing_mode == UCTM_ZALGO) { | ||||
|         return process_record_zalgo(keycode, record); | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * @brief Initialize the default unicode mode on firmware startu | ||||
|  * @brief Initialize the default unicode mode on firmware startup | ||||
|  * | ||||
|  */ | ||||
| void matrix_init_unicode(void) { | ||||
| void keyboard_post_init_unicode(void) { | ||||
|     unicode_input_mode_init(); | ||||
| } | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| enum unicode_typing_mode { | ||||
| enum unicode_typing_modes { | ||||
|     UCTM_NO_MODE, | ||||
|     UCTM_WIDE, | ||||
|     UCTM_SCRIPT, | ||||
| @@ -12,6 +12,9 @@ enum unicode_typing_mode { | ||||
|     UCTM_AUSSIE, | ||||
|     UCTM_ZALGO, | ||||
|     UCTM_SUPER, | ||||
|     UCTM_COMIC, | ||||
|     UNCODES_MODE_END, | ||||
| }; | ||||
|  | ||||
| extern uint8_t typing_mode; | ||||
| extern uint8_t unicode_typing_mode; | ||||
| extern const PROGMEM char unicode_mode_str[UNCODES_MODE_END][13]; | ||||
|   | ||||
| @@ -67,18 +67,22 @@ static const char PROGMEM code_to_name[256] = { | ||||
|  * @param record keyrecord_t data structure | ||||
|  */ | ||||
| void add_keylog(uint16_t keycode, keyrecord_t *record) { | ||||
|     if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { | ||||
|         if (((keycode & 0xFF) == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) { | ||||
|             memset(keylog_str, ' ', OLED_KEYLOGGER_LENGTH); | ||||
|             return; | ||||
|         } | ||||
|         if (record->tap.count) { | ||||
|             keycode &= 0xFF; | ||||
|         } else if (keycode > 0xFF) { | ||||
|             return; | ||||
|         } | ||||
|     if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) { | ||||
|         keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); | ||||
|     } else if (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) { | ||||
|         keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); | ||||
|     } else if (keycode >= QK_MODS && keycode <= QK_MODS_MAX) { | ||||
|         keycode = QK_MODS_GET_BASIC_KEYCODE(keycode); | ||||
|     } | ||||
|     if (keycode > 0xFF) { | ||||
|  | ||||
|  | ||||
|     if ((keycode == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) { | ||||
|         memset(keylog_str, ' ', OLED_KEYLOGGER_LENGTH); | ||||
|         return; | ||||
|     } | ||||
|     if (record->tap.count) { | ||||
|         keycode &= 0xFF; | ||||
|     } else if (keycode > 0xFF) { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
| @@ -426,13 +430,14 @@ void render_bootmagic_status(uint8_t col, uint8_t line) { | ||||
|         oled_write_P(logo[0][0], !is_bootmagic_on); | ||||
|     } | ||||
| #ifndef OLED_DISPLAY_VERBOSE | ||||
|     oled_write_P(PSTR(" "), false); | ||||
|     oled_write_P(logo[1][1], is_bootmagic_on); | ||||
|     oled_write_P(logo[0][1], !is_bootmagic_on); | ||||
| #endif | ||||
|     oled_write_P(PSTR(" "), false); | ||||
|     oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro); | ||||
|     oled_write_P(PSTR(" "), false); | ||||
| #if defined(AUTOCORRECTION_ENABLE) || defined(AUTOCORRECT_ENABLE) | ||||
| #if defined(AUTOCORRECT_ENABLE) | ||||
|     oled_write_P(PSTR("CRCT"), autocorrect_is_enabled()); | ||||
|     oled_write_P(PSTR(" "), false); | ||||
| #else | ||||
| @@ -732,33 +737,8 @@ void render_kitty(uint8_t col, uint8_t line) { | ||||
| void render_unicode_mode(uint8_t col, uint8_t line) { | ||||
| #ifdef CUSTOM_UNICODE_ENABLE | ||||
|     oled_set_cursor(col, line); | ||||
|     oled_write_ln_P(PSTR("Unicode:"), false); | ||||
|     switch (typing_mode) { | ||||
|         case UCTM_WIDE: | ||||
|             oled_write_P(PSTR("        Wide"), false); | ||||
|             break; | ||||
|         case UCTM_SCRIPT: | ||||
|             oled_write_P(PSTR("      Script"), false); | ||||
|             break; | ||||
|         case UCTM_BLOCKS: | ||||
|             oled_write_P(PSTR("      Blocks"), false); | ||||
|             break; | ||||
|         case UCTM_REGIONAL: | ||||
|             oled_write_P(PSTR("    Regional"), false); | ||||
|             break; | ||||
|         case UCTM_AUSSIE: | ||||
|             oled_write_P(PSTR("      Aussie"), false); | ||||
|             break; | ||||
|         case UCTM_ZALGO: | ||||
|             oled_write_P(PSTR("       Zalgo"), false); | ||||
|             break; | ||||
|         case UCTM_NO_MODE: | ||||
|             oled_write_P(PSTR("      Normal"), false); | ||||
|             break; | ||||
|         default: | ||||
|             oled_write_P(PSTR("     Unknown"), false); | ||||
|             break; | ||||
|     } | ||||
|     oled_write_P(PSTR("Unicode:"), false); | ||||
|     oled_write_P(unicode_mode_str[unicode_typing_mode], false); | ||||
| #endif | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -43,6 +43,7 @@ | ||||
| #            define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN | ||||
| #        endif | ||||
| #    endif | ||||
| #    undef RGB_MATRIX_DEFAULT_MODE | ||||
| #    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_REST_MODE | ||||
| #endif | ||||
|  | ||||
| @@ -128,15 +129,15 @@ | ||||
| #    define TAPPING_TERM 175 | ||||
| #endif | ||||
|  | ||||
| #ifndef SECURE_UNLOCK_SEQUENCE | ||||
| #    define SECURE_UNLOCK_SEQUENCE    \ | ||||
|         {                             \ | ||||
|             {2, 1}, {2, 2}, {2, 3}, { \ | ||||
|                 2, 4                  \ | ||||
|             }                         \ | ||||
|         } | ||||
| #if (__has_include("../../../qmk_secrets/config.h") && !defined(NO_SECRETS)) | ||||
| #    include "../../../qmk_secrets/config.h" | ||||
| #endif | ||||
|  | ||||
| #if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY) | ||||
| #    define USB_SUSPEND_WAKEUP_DELAY 200 | ||||
| #endif | ||||
|  | ||||
| #ifdef XAP_ENABLE | ||||
| #    undef DYNAMIC_KEYMAP_LAYER_COUNT | ||||
| #    define DYNAMIC_KEYMAP_LAYER_COUNT 12 | ||||
| #endif | ||||
|   | ||||
| @@ -3,6 +3,10 @@ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #    define RGBLIGHT_SLEEP | ||||
| #    define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 | ||||
| #    define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24 | ||||
| #define RGBLIGHT_SLEEP | ||||
| #define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 | ||||
| #define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24 | ||||
|  | ||||
| #ifdef RGBLIGHT_DEFAULT_MODE | ||||
| #    undef RGBLIGHT_DEFAULT_MODE | ||||
| #endif | ||||
|   | ||||
| @@ -132,6 +132,9 @@ ifeq ($(strip $(AUTOCORRECTION_ENABLE)), yes) | ||||
|    AUTOCORRECT_ENABLE = yes | ||||
| endif | ||||
|  | ||||
| ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) | ||||
|     SRC += bootmagic_better.c | ||||
| CUSTOM_BOOTMAGIC_ENABLE ?= yes | ||||
| ifeq ($(strip $(CUSTOM_BOOTMAGIC_ENABLE)), yes) | ||||
|     ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) | ||||
|         SRC += bootmagic_better.c | ||||
|     endif | ||||
| endif | ||||
|   | ||||
| @@ -7,6 +7,9 @@ | ||||
| #define SPLIT_LAYER_STATE_ENABLE | ||||
| #define SPLIT_LED_STATE_ENABLE | ||||
| #define SPLIT_MODS_ENABLE | ||||
| #ifndef POINTING_DEVICE_ENABLE | ||||
| #    define SPLIT_WATCHDOG_ENABLE | ||||
| #endif | ||||
| #ifdef WPM_ENABLE | ||||
| #    define SPLIT_WPM_ENABLE | ||||
| #endif | ||||
| @@ -17,5 +20,5 @@ | ||||
| #    define SELECT_SOFT_SERIAL_SPEED 1 | ||||
| #endif | ||||
| #ifdef CUSTOM_SPLIT_TRANSPORT_SYNC | ||||
| #    define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_STATE_SYNC, RPC_ID_USER_KEYMAP_SYNC, RPC_ID_USER_CONFIG_SYNC, RPC_ID_USER_WATCHDOG_SYNC, RPC_ID_USER_KEYLOG_STR | ||||
| #    define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_STATE_SYNC, RPC_ID_USER_KEYMAP_SYNC, RPC_ID_USER_CONFIG_SYNC, RPC_ID_USER_PLACEHOLDER, RPC_ID_USER_KEYLOG_STR | ||||
| #endif | ||||
|   | ||||
| @@ -25,11 +25,6 @@ extern bool tap_toggling; | ||||
| extern bool swap_hands; | ||||
| #endif | ||||
|  | ||||
| #if defined(SPLIT_WATCHDOG_TIMEOUT) | ||||
| static bool     watchdog_ping_done = false; | ||||
| static uint32_t watchdog_timer     = 0; | ||||
| #endif | ||||
|  | ||||
| extern userspace_config_t userspace_config; | ||||
| extern bool               host_driver_disabled; | ||||
|  | ||||
| @@ -54,12 +49,6 @@ void user_config_sync(uint8_t initiator2target_buffer_size, const void* initiato | ||||
|     } | ||||
| } | ||||
|  | ||||
| #if defined(SPLIT_WATCHDOG_TIMEOUT) | ||||
| void watchdog_handler(uint8_t in_buflen, const void* in_data, uint8_t out_buflen, void* out_data) { | ||||
|     watchdog_ping_done = true; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #ifdef CUSTOM_OLED_DRIVER | ||||
| #    include "oled/oled_stuff.h" | ||||
| void keylogger_string_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { | ||||
| @@ -77,14 +66,6 @@ void keyboard_post_init_transport_sync(void) { | ||||
| #ifdef CUSTOM_OLED_DRIVER | ||||
|     transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_string_sync); | ||||
| #endif | ||||
|  | ||||
| #if defined(SPLIT_WATCHDOG_TIMEOUT) | ||||
| #    if defined(PROTOCOL_LUFA) | ||||
|     wdt_disable(); | ||||
| #    endif | ||||
|     transaction_register_rpc(RPC_ID_USER_WATCHDOG_SYNC, watchdog_handler); | ||||
|     watchdog_timer = timer_read32(); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void user_transport_update(void) { | ||||
| @@ -103,7 +84,7 @@ void user_transport_update(void) { | ||||
| #endif | ||||
| #ifdef UNICODE_COMMON_ENABLE | ||||
|         user_state.unicode_mode        = unicode_config.input_mode; | ||||
|         user_state.unicode_typing_mode = typing_mode; | ||||
|         user_state.unicode_typing_mode = unicode_typing_mode; | ||||
| #endif | ||||
| #ifdef SWAP_HANDS_ENABLE | ||||
|         user_state.swap_hands = swap_hands; | ||||
| @@ -117,7 +98,7 @@ void user_transport_update(void) { | ||||
|         user_state.raw       = transport_user_state; | ||||
| #ifdef UNICODE_COMMON_ENABLE | ||||
|         unicode_config.input_mode = user_state.unicode_mode; | ||||
|         typing_mode               = user_state.unicode_typing_mode; | ||||
|         unicode_typing_mode       = user_state.unicode_typing_mode; | ||||
| #endif | ||||
| #if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER) | ||||
|         is_oled_enabled = user_state.is_oled_enabled; | ||||
| @@ -219,28 +200,6 @@ void user_transport_sync(void) { | ||||
|         } | ||||
| #endif | ||||
|     } | ||||
|  | ||||
| #if defined(SPLIT_WATCHDOG_TIMEOUT) | ||||
|     if (!watchdog_ping_done) { | ||||
|         if (is_keyboard_master()) { | ||||
|             if (timer_elapsed32(watchdog_timer) > 100) { | ||||
|                 uint8_t any_data = 1; | ||||
|                 if (transaction_rpc_send(RPC_ID_USER_WATCHDOG_SYNC, sizeof(any_data), &any_data)) { | ||||
|                     watchdog_ping_done = true; // successful ping | ||||
|                 } else { | ||||
|                     dprint("Watchdog ping failed!\n"); | ||||
|                 } | ||||
|                 watchdog_timer = timer_read32(); | ||||
|             } | ||||
|         } else { | ||||
|             if (timer_elapsed32(watchdog_timer) > 3500) { | ||||
|                 mcu_reset(); | ||||
|                 while (1) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void housekeeping_task_transport_sync(void) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user