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 | #pragma once | ||||||
|  |  | ||||||
| #undef PRODUCT | #ifdef KEYBOARD_bastardkb_charybdis_3x5_blackpill | ||||||
| #define PRODUCT "Charybdis Nano (Blackpill)" |  | ||||||
|  |  | ||||||
| #undef MATRIX_ROW_PINS | #    undef MATRIX_ROW_PINS | ||||||
| #define MATRIX_ROW_PINS \ | #    define MATRIX_ROW_PINS \ | ||||||
|     { B12, B13, B14, B15 } |         { B12, B13, B14, B15 } | ||||||
| #undef MATRIX_COL_PINS | #    undef MATRIX_COL_PINS | ||||||
| #define MATRIX_COL_PINS \ | #    define MATRIX_COL_PINS \ | ||||||
|     { A15, B3, B4, B5, B6 } |         { 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 USB_VBUS_PIN B10 | ||||||
| #define MATRIX_ROW_PINS_RIGHT \ | #    undef SPLIT_HAND_PIN | ||||||
|     { B12, B13, B14, B15 } | #    define SPLIT_HAND_PIN C14 // high = left, low = right | ||||||
| #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 |  | ||||||
|  |  | ||||||
| // WS2812 RGB LED strip input and number of LEDs | // WS2812 RGB LED strip input and number of LEDs | ||||||
| #undef RGB_DI_PIN | #    undef RGB_DI_PIN | ||||||
| #define RGB_DI_PIN          A1 | #    define RGB_DI_PIN A1 | ||||||
| #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | #    undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | ||||||
| #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | #    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | ||||||
| #define WS2812_PWM_DRIVER   PWMD2  // default: PWMD2 | #    define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 | ||||||
| #define WS2812_PWM_CHANNEL  2      // default: 2 | #    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_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_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_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. | #    undef WS2812_DMA_STREAM | ||||||
| #define WS2812_DMA_CHANNEL  3                   // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | #    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_PWM_TARGET_PERIOD 800000 | #    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 */ | /* Audio config */ | ||||||
| #define AUDIO_PIN          B1 | #    define AUDIO_PIN B1 | ||||||
| #define AUDIO_PWM_DRIVER   PWMD3 | #    define AUDIO_PWM_DRIVER PWMD3 | ||||||
| #define AUDIO_PWM_CHANNEL  4 | #    define AUDIO_PWM_CHANNEL 4 | ||||||
| #define AUDIO_PWM_PAL_MODE 2 | #    define AUDIO_PWM_PAL_MODE 2 | ||||||
|  |  | ||||||
| /* serial.c configuration for split keyboard */ | /* serial.c configuration for split keyboard */ | ||||||
| #undef SOFT_SERIAL_PIN | #    undef SOFT_SERIAL_PIN | ||||||
| #define SERIAL_USART_FULL_DUPLEX  // Enable full duplex operation mode. | #    define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. | ||||||
| #define SERIAL_USART_TX_PIN      A2 | #    undef SERIAL_USART_TX_PIN | ||||||
| #define SERIAL_USART_RX_PIN      A3 | #    define SERIAL_USART_TX_PIN A2 | ||||||
| #define SERIAL_USART_DRIVER      SD2 | #    undef SERIAL_USART_RX_PIN | ||||||
| #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_PIN A3 | ||||||
| #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_DRIVER SD2 | ||||||
| #define SERIAL_USART_TIMEOUT     100  // USART driver timeout. default 100 | #    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_SPEED       921600 | #    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 | // #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master | ||||||
| // To use the highest possible baudrate (3.75Mbit/s) uncomment the following | // 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 | // line, this can result in dropped communications so lower the speed if there | ||||||
| // are many timeouts. | // are many timeouts. | ||||||
| // #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4) | // #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4) | ||||||
|  |  | ||||||
| #define CRC8_USE_TABLE | #    define CRC8_USE_TABLE | ||||||
| #define CRC8_OPTIMIZE_SPEED | #    define CRC8_OPTIMIZE_SPEED | ||||||
|  |  | ||||||
| /* spi config for eeprom and pmw3360 sensor */ | /* spi config for eeprom and pmw3360 sensor */ | ||||||
| #define SPI_DRIVER                           SPID1 | #    define SPI_DRIVER SPID1 | ||||||
| #define SPI_SCK_PIN                          A5 | #    define SPI_SCK_PIN A5 | ||||||
| #define SPI_SCK_PAL_MODE                     5 | #    define SPI_SCK_PAL_MODE 5 | ||||||
| #define SPI_MOSI_PIN                         A7 | #    define SPI_MOSI_PIN A7 | ||||||
| #define SPI_MOSI_PAL_MODE                    5 | #    define SPI_MOSI_PAL_MODE 5 | ||||||
| #define SPI_MISO_PIN                         A6 | #    define SPI_MISO_PIN A6 | ||||||
| #define SPI_MISO_PAL_MODE                    5 | #    define SPI_MISO_PAL_MODE 5 | ||||||
|  |  | ||||||
| /* eeprom config */ | /* eeprom config */ | ||||||
| #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 | #    define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 | ||||||
| #define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR    64 | #    define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64 | ||||||
| // #define EXTERNAL_EEPROM_BYTE_COUNT           8196 | // #define EXTERNAL_EEPROM_BYTE_COUNT           8196 | ||||||
| // #define EXTERNAL_EEPROM_PAGE_SIZE            32 | // #define EXTERNAL_EEPROM_PAGE_SIZE            32 | ||||||
| // #define EXTERNAL_EEPROM_ADDRESS_SIZE         2 | // #define EXTERNAL_EEPROM_ADDRESS_SIZE         2 | ||||||
|  |  | ||||||
| /* pmw3360 config  */ | /* pmw3360 config  */ | ||||||
| #undef PMW33XX_CS_PIN | #    undef PMW33XX_CS_PIN | ||||||
| #define PMW33XX_CS_PIN                       B0 | #    define PMW33XX_CS_PIN B0 | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 | #define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200 | ||||||
| #define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 | #define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400 | ||||||
|   | |||||||
| @@ -15,11 +15,13 @@ | |||||||
|  */ |  */ | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #define HAL_USE_PWM     TRUE | #if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) | ||||||
| #define HAL_USE_SERIAL  TRUE | #    define HAL_USE_PWM TRUE | ||||||
| #define HAL_USE_I2C     TRUE | #    define HAL_USE_SERIAL TRUE | ||||||
| #define HAL_USE_SPI     TRUE | #    define HAL_USE_I2C TRUE | ||||||
| #define SPI_USE_WAIT    TRUE | #    define HAL_USE_SPI TRUE | ||||||
| #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD | #    define SPI_USE_WAIT TRUE | ||||||
|  | #    define SPI_SELECT_MODE SPI_SELECT_MODE_PAD | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #include_next <halconf.h> | #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)) { |     if (!readPin(A0)) { | ||||||
|         reset_keyboard(); |         reset_keyboard(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef USB_VBUS_PIN | #    ifdef USB_VBUS_PIN | ||||||
| bool usb_vbus_state(void) { | bool usb_vbus_state(void) { | ||||||
|     setPinInputLow(USB_VBUS_PIN); |     setPinInputLow(USB_VBUS_PIN); | ||||||
|     wait_us(5); |     wait_us(5); | ||||||
|     return readPin(USB_VBUS_PIN); |     return readPin(USB_VBUS_PIN); | ||||||
| } | } | ||||||
| #endif | #    endif | ||||||
|  |  | ||||||
| void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | ||||||
|     for (int32_t i = 0; i < 40; i++) { |     for (int32_t i = 0; i < 40; i++) { | ||||||
|         __asm__ volatile("nop" ::: "memory"); |         __asm__ volatile("nop" ::: "memory"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | #endif | ||||||
|   | |||||||
| @@ -18,25 +18,27 @@ | |||||||
|  |  | ||||||
| #include_next "mcuconf.h" | #include_next "mcuconf.h" | ||||||
|  |  | ||||||
| #undef STM32_I2C_USE_I2C1 | #if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill) | ||||||
| #define STM32_I2C_USE_I2C1 TRUE | #    undef STM32_I2C_USE_I2C1 | ||||||
|  | #    define STM32_I2C_USE_I2C1 TRUE | ||||||
|  |  | ||||||
| // #undef STM32_I2C_I2C1_RX_DMA_STREAM | // #undef STM32_I2C_I2C1_RX_DMA_STREAM | ||||||
| // #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) | // #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) | ||||||
| #undef STM32_I2C_I2C1_TX_DMA_STREAM | #    undef STM32_I2C_I2C1_TX_DMA_STREAM | ||||||
| #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) | #    define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) | ||||||
|  |  | ||||||
| #undef STM32_PWM_USE_TIM2 | #    undef STM32_PWM_USE_TIM2 | ||||||
| #define STM32_PWM_USE_TIM2 TRUE | #    define STM32_PWM_USE_TIM2 TRUE | ||||||
|  |  | ||||||
| #undef STM32_PWM_USE_TIM3 | #    undef STM32_PWM_USE_TIM3 | ||||||
| #define STM32_PWM_USE_TIM3 TRUE | #    define STM32_PWM_USE_TIM3 TRUE | ||||||
|  |  | ||||||
| #undef STM32_SPI_USE_SPI1 | #    undef STM32_SPI_USE_SPI1 | ||||||
| #define STM32_SPI_USE_SPI1           TRUE | #    define STM32_SPI_USE_SPI1 TRUE | ||||||
|  |  | ||||||
| #undef STM32_SERIAL_USE_USART2 | #    undef STM32_SERIAL_USE_USART2 | ||||||
| #define STM32_SERIAL_USE_USART2 TRUE | #    define STM32_SERIAL_USE_USART2 TRUE | ||||||
|  |  | ||||||
| #undef STM32_ST_USE_TIMER | #    undef STM32_ST_USE_TIMER | ||||||
| #define STM32_ST_USE_TIMER 5 | #    define STM32_ST_USE_TIMER 5 | ||||||
|  | #endif | ||||||
|   | |||||||
| @@ -1,28 +1,45 @@ | |||||||
| # MCU name | RGB_MATRIX_ENABLE = no | ||||||
| MCU = STM32F411 | CUSTOM_UNICODE_ENABLE = no | ||||||
| BOARD = BLACKPILL_STM32_F411 | 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 |     LTO_ENABLE := no | ||||||
| KEYBOARD_SHARED_EP = yes |  | ||||||
| MOUSE_SHARED_EP = yes |  | ||||||
|  |  | ||||||
| EEPROM_DRIVER = spi |     AUDIO_SUPPORTED = yes | ||||||
| WS2812_DRIVER = pwm |     AUDIO_ENABLE = yes | ||||||
| SERIAL_DRIVER = usart |     AUDIO_DRIVER = pwm_hardware | ||||||
| AUDIO_DRIVER = pwm_hardware |  | ||||||
|  |  | ||||||
| AUDIO_SUPPORTED = yes |     OVERLOAD_FEATURES = yes | ||||||
| AUDIO_ENABLE = yes | endif | ||||||
| MOUSEKEY_ENABLE = yes |  | ||||||
| NKRO_ENABLE = yes |  | ||||||
| CONSOLE_ENABLE = yes |  | ||||||
|  |  | ||||||
| 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 | #pragma once | ||||||
|  |  | ||||||
| #undef PRODUCT | #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||||
| #define PRODUCT "Charybdis (4x6) Blackpill" | #    undef MATRIX_COL_PINS | ||||||
|  | #    define MATRIX_COL_PINS \ | ||||||
|  |         { B0, B1, B12, B3, B4, B5 } | ||||||
|  |  | ||||||
| #undef MATRIX_COL_PINS | #    define USB_VBUS_PIN B10 | ||||||
| #define MATRIX_COL_PINS \ | #    define DEBUG_LED_PIN C13 | ||||||
|     { B0, B1, B12, B3, B4, B5 } |  | ||||||
| #undef MATRIX_COL_PINS_RIGHT |  | ||||||
| #define MATRIX_COL_PINS_RIGHT \ |  | ||||||
|     { B0, B1, B12, B3, B4, B5 } |  | ||||||
|  |  | ||||||
| #undef MATRIX_ROW_PINS | #    define AUDIO_PIN B7 | ||||||
| #define MATRIX_ROW_PINS \ | #    define AUDIO_PWM_DRIVER PWMD4 | ||||||
|     { B15, A2, B8, A8, B9 } | #    define AUDIO_PWM_CHANNEL 2 | ||||||
| #undef MATRIX_ROW_PINS_RIGHT | #    define AUDIO_PWM_PAL_MODE 2 | ||||||
| #define MATRIX_ROW_PINS_RIGHT \ | #    define AUDIO_INIT_DELAY | ||||||
|     { B15, A2, B8, A8, B9 } | #    define AUDIO_ENABLE_TONE_MULTIPLEXING | ||||||
|  | #    define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 | ||||||
|  |  | ||||||
|  | #    define SERIAL_USART_SPEED (1 * 1024 * 1024) | ||||||
|  |  | ||||||
| #define DIODE_DIRECTION ROW2COL | #    undef POINTING_DEVICE_CS_PIN | ||||||
| #define SPLIT_HAND_PIN A3 | #    define POINTING_DEVICE_CS_PIN A15 // b14 | ||||||
| #undef MASTER_RIGHT | #    define PMW33XX_LIFTOFF_DISTANCE 0b1111 | ||||||
| #define USB_VBUS_PIN B10 | #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 | #undef ROTATIONAL_TRANSFORM_ANGLE | ||||||
| #define ROTATIONAL_TRANSFORM_ANGLE -65 | #define ROTATIONAL_TRANSFORM_ANGLE 25 | ||||||
|  | #define POINTING_DEVICE_ROTATION_270 | ||||||
| #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 |  | ||||||
|  |  | ||||||
| /* RGB Matrix. */ | /* RGB Matrix. */ | ||||||
|  |  | ||||||
| #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS | ||||||
| #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | #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 CHARYBDIS_CONFIG_SYNC | ||||||
|  |  | ||||||
| #define BOOTMAGIC_LITE_ROW    0 | #define BOOTMAGIC_LITE_ROW 0 | ||||||
| #define BOOTMAGIC_LITE_COLUMN 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_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_COLUMN 0 | ||||||
| #define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT    1 | #define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1 | ||||||
| #define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0 | #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),      _______ |                                SFT_T(KC_SPACE),  ALT_T(KC_Q),      _______ | ||||||
|     ), |     ), | ||||||
|     [_MOUSE] = LAYOUT_charybdis_4x6( |     [_MOUSE] = LAYOUT_charybdis_4x6( | ||||||
|         _______, _______, _______, _______, _______, _______,   _______, _______, _______, _______, _______, _______, |         _______, _______, _______, _______, _______, _______,   _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______, | ||||||
|         _______, _______, _______, _______, _______, _______,   KC_WH_U, 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_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, | ||||||
|         _______, _______, _______, _______, _______, _______,   KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, DRGSCRL, _______, |         _______, _______, _______, _______, _______, _______,   KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, | ||||||
|                                    _______, SNIPING, SNIPING,    _______, _______, |                                    _______, _______, _______,   _______, _______, | ||||||
|                                            _______, _______,      _______ |                                            _______, _______,     _______ | ||||||
|     ), |     ), | ||||||
|  |  | ||||||
|     [_LOWER] = LAYOUT_charybdis_4x6_wrapper( |     [_LOWER] = LAYOUT_charybdis_4x6_wrapper( | ||||||
| @@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
|     ), |     ), | ||||||
|  |  | ||||||
|     [_ADJUST] = LAYOUT_charybdis_4x6_wrapper( |     [_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, |         VRSN,    _________________ADJUST_L1_________________,    _________________ADJUST_R1_________________, EE_CLR, | ||||||
|         KEYLOCK, _________________ADJUST_L2_________________,    _________________ADJUST_R2_________________, TG_MODS, |         KEYLOCK, _________________ADJUST_L2_________________,    _________________ADJUST_R2_________________, TG_MODS, | ||||||
|         UC_NEXT, _________________ADJUST_L3_________________,    _________________ADJUST_R3_________________, KC_MPLY, |         UC_NEXT, _________________ADJUST_L3_________________,    _________________ADJUST_R3_________________, KC_MPLY, | ||||||
| @@ -121,8 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
| // clang-format on | // clang-format on | ||||||
|  |  | ||||||
|  |  | ||||||
| void matrix_init_keymap(void) { | void keyboard_post_init_keymap(void) { | ||||||
|     setPinInputHigh(A0); |  | ||||||
| #ifdef RGB_MATRIX_ENABLE | #ifdef RGB_MATRIX_ENABLE | ||||||
|      g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] = |      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] = |         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 | #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)) { |     if (!readPin(A0)) { | ||||||
|         reset_keyboard(); |         reset_keyboard(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef USB_VBUS_PIN | #ifdef USB_VBUS_PIN | ||||||
| bool usb_vbus_state(void) { | bool usb_vbus_state(void) { | ||||||
| @@ -145,12 +150,13 @@ bool usb_vbus_state(void) { | |||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||||
| void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | ||||||
|     for (int32_t i = 0; i < 40; i++) { |     for (int32_t i = 0; i < 40; i++) { | ||||||
|         __asm__ volatile("nop" ::: "memory"); |         __asm__ volatile("nop" ::: "memory"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef SWAP_HANDS_ENABLE | #ifdef SWAP_HANDS_ENABLE | ||||||
| const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { | const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|   | |||||||
| @@ -18,23 +18,10 @@ | |||||||
|  |  | ||||||
| #include_next "mcuconf.h" | #include_next "mcuconf.h" | ||||||
|  |  | ||||||
| #undef STM32_PWM_USE_ADVANCED | #if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill) | ||||||
| #define STM32_PWM_USE_ADVANCED TRUE | #    undef STM32_PWM_USE_ADVANCED | ||||||
|  | #    define STM32_PWM_USE_ADVANCED TRUE | ||||||
|  |  | ||||||
| #undef STM32_PWM_USE_TIM1 | #    undef STM32_PWM_USE_TIM4 | ||||||
| #define STM32_PWM_USE_TIM1 TRUE | #    define STM32_PWM_USE_TIM4 TRUE | ||||||
|  | #endif | ||||||
| #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 |  | ||||||
|   | |||||||
| @@ -1,34 +1,56 @@ | |||||||
| # MCU name | CUSTOM_UNICODE_ENABLE = no | ||||||
| MCU = STM32F411 | CUSTOM_POINTING_DEVICE = no | ||||||
| BOARD = BLACKPILL_STM32_F411 | CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||||
|  |  | ||||||
| # Bootloader selection | ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill) | ||||||
| BOOTLOADER := tinyuf2 |     # MCU name | ||||||
|  |     # Bootloader selection | ||||||
|  |     BOOTLOADER := tinyuf2 | ||||||
|  |  | ||||||
| BOOTMAGIC_ENABLE      = yes # Enable Bootmagic Lite |     AUDIO_ENABLE          = yes # Audio output | ||||||
| MOUSEKEY_ENABLE       = yes # Mouse keys |     AUDIO_SUPPORTED       = yes # is set to no in kb, needs to be forcibly enabled | ||||||
| EXTRAKEY_ENABLE       = yes # Audio control and System control |     AUDIO_DRIVER          = pwm_hardware | ||||||
| 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 |  | ||||||
|  |  | ||||||
| KEYBOARD_SHARED_EP    = yes |     BACKLIGHT_DRIVER      = pwm | ||||||
| MOUSE_SHARED_EP       = yes |  | ||||||
|  |  | ||||||
| EEPROM_DRIVER         = spi |     OVERLOAD_FEATURES = yes | ||||||
| WS2812_DRIVER         = pwm | endif | ||||||
| SERIAL_DRIVER         = usart |  | ||||||
| AUDIO_DRIVER          = pwm_hardware |  | ||||||
| BACKLIGHT_DRIVER      = pwm |  | ||||||
|  |  | ||||||
| AUTOCORRECT_ENABLE = yes | ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/stemcell) | ||||||
| CAPS_WORD_ENABLE      = yes |     OVERLOAD_FEATURES = yes | ||||||
| SWAP_HANDS_ENABLE     = yes | endif | ||||||
| TAP_DANCE_ENABLE      = yes | ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/splinky) | ||||||
| DEBOUNCE_TYPE         = asym_eager_defer_pk |     OVERLOAD_FEATURES = yes | ||||||
| WPM_ENABLE            = yes | endif | ||||||
| LTO_ENABLE            = no | ifeq ($(strip $(MCU)), atmega32u4) | ||||||
| # OPT                   = 3 |     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_write_raw_P(header_image, sizeof(header_image)); | ||||||
|     oled_set_cursor(7, 0); |     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_default_layer_state(1, 1); | ||||||
|     render_layer_state(1, 2); |     render_layer_state(1, 2); | ||||||
| @@ -158,3 +158,19 @@ bool oled_task_keymap(void) { | |||||||
|     return false; |     return false; | ||||||
| } | } | ||||||
| #endif | #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( |     [_MOUSE] = LAYOUT_4x6_right( | ||||||
|         _______, _______, _______, _______, _______, _______,                        KC_WH_U, _______, _______, _______, DPI_CONFIG, _______, |         _______, _______, _______, _______, _______, _______,                        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, _______, |         _______, _______, _______, _______, _______, _______,                        KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING, | ||||||
|         _______, _______, _______, _______, _______, _______,                        KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, |         _______, _______, _______, _______, _______, _______,                        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 | #ifdef ENCODER_MAP_ENABLE | ||||||
| const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { | const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { | ||||||
|     [_DEFAULT_LAYER_1] = { { KC_VOLD, KC_VOLU }, { KC_WH_D, KC_WH_U } }, |     [_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; |     return false; | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef OLED_ENABLE | #ifdef OLED_ENABLE | ||||||
| #    include "keyrecords/unicode.h" | #    include "keyrecords/unicode.h" | ||||||
| @@ -209,36 +211,7 @@ void oled_render_large_display(bool side) { | |||||||
|         // clang-format on |         // clang-format on | ||||||
|         oled_write_P(logo, false); |         oled_write_P(logo, false); | ||||||
|  |  | ||||||
| #    ifdef CUSTOM_UNICODE_ENABLE |         render_unicode_mode(1, 14); | ||||||
|         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 |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -1,40 +1,52 @@ | |||||||
| COMMAND_ENABLE                   = no | AUTOCORRECT_ENABLE               = no | ||||||
| RGBLIGHT_ENABLE                  = yes | AUDIO_ENABLE                     = no | ||||||
| RGBLIGHT_STARTUP_ANIMATION       = yes | ENCODER_ENABLE                   = no | ||||||
| AUDIO_ENABLE                     = yes | CUSTOM_BOOTMAGIC_ENABLE          = no | ||||||
|  | CUSTOM_UNICODE_ENABLE            = no | ||||||
| HAPTIC_ENABLE                    = no | HAPTIC_ENABLE                    = no | ||||||
| TAP_DANCE_ENABLE                 = yes | OLED_ENABLE                      = no | ||||||
| OLED_ENABLE                      = yes | OLED_DRIVER                      = custom | ||||||
| WPM_ENABLE                       = yes | RGBLIGHT_ENABLE                  = no | ||||||
| ENCODER_ENABLE                   = yes | SWAP_HANDS_ENABLE                = no | ||||||
| ENCODER_MAP_ENABLE               = yes | TAP_DANCE_ENABLE                 = no | ||||||
| AUTOCORRECT_ENABLE               = yes | WPM_ENABLE                       = no | ||||||
| CAPS_WORD_ENABLE                 = yes |  | ||||||
| DEFERRED_EXEC_ENABLE             = yes |  | ||||||
|  |  | ||||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c) | ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c) | ||||||
|     RGBLIGHT_ENABLE              = no |     BOOTLOADER                       = qmk-hid | ||||||
|     AUDIO_ENABLE                 = no |     BOOTLOADER_SIZE                  = 512 | ||||||
|     HAPTIC_ENABLE                = no |     CUSTOM_SPLIT_TRANSPORT_SYNC      = no | ||||||
|     TAP_DANCE_ENABLE             = no |     LTO_ENABLE                       = yes | ||||||
|     OLED_ENABLE                  = no | endif | ||||||
|     WPM_ENABLE                   = no | ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/arduinomicro) | ||||||
|     ENCODER_ENABLE               = no |     BOOTLOADER                       = qmk-hid | ||||||
|     AUTOCORRECT_ENABLE           = no |     BOOTLOADER_SIZE                  = 512 | ||||||
|     LTO_SUPPORTED                = yes |     CUSTOM_SPLIT_TRANSPORT_SYNC      = no | ||||||
|     SWAP_HANDS_ENABLE            = no |     LTO_ENABLE                       = yes | ||||||
|     CUSTOM_UNICODE_ENABLE        = no |  | ||||||
|     CAPS_WORD_ENABLE             = no |  | ||||||
|     BOOTLOADER                   = qmk-hid |  | ||||||
|     BOOTLOADER_SIZE              = 512 |  | ||||||
| endif | endif | ||||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp) | ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp) | ||||||
|     AUTOCORRECT_ENABLE           = no |     AUTOCORRECT_ENABLE               = no | ||||||
|     CAPS_WORD_ENABLE             = yes |     OVERLOAD_FEATURES                = yes | ||||||
|  |     LTO_ENABLE                       = yes | ||||||
| endif | endif | ||||||
| ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411) | ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411) | ||||||
|     BOOTLOADER = tinyuf2 |     BOOTLOADER                       = tinyuf2 | ||||||
|  |     AUTOCORRECT_ENABLE               = yes | ||||||
|  |     LTO_SUPPORTED                    = no | ||||||
|  |     OVERLOAD_FEATURES                = yes | ||||||
| endif | endif | ||||||
| # DEBOUNCE_TYPE = sym_eager_pk | # 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_KNIGHT_LENGTH 2 | ||||||
| #    define RGBLIGHT_EFFECT_SNAKE_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 | #endif  // RGBLIGHT_ENABLE | ||||||
|  |  | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
| @@ -49,12 +51,14 @@ | |||||||
| #    define QMK_SPEAKER C6 | #    define QMK_SPEAKER C6 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #undef PRODUCT |  | ||||||
| #if defined(KEYBOARD_keebio_iris_rev2) | #if defined(KEYBOARD_keebio_iris_rev2) | ||||||
|  | #    undef PRODUCT | ||||||
| #    define PRODUCT "Drashna Hacked Iris Rev 2" | #    define PRODUCT "Drashna Hacked Iris Rev 2" | ||||||
| #elif defined(KEYBOARD_keebio_iris_rev3) | #elif defined(KEYBOARD_keebio_iris_rev3) | ||||||
|  | #    undef PRODUCT | ||||||
| #    define PRODUCT "Drashna Hacked Iris Rev 3" | #    define PRODUCT "Drashna Hacked Iris Rev 3" | ||||||
| #elif defined(KEYBOARD_keebio_iris_rev4) | #elif defined(KEYBOARD_keebio_iris_rev4) | ||||||
|  | #    undef PRODUCT | ||||||
| #    define PRODUCT "Drashna Hacked Iris Rev 4" | #    define PRODUCT "Drashna Hacked Iris Rev 4" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -101,16 +101,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
| }; | }; | ||||||
| // clang-format on | // 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) { | void keyboard_post_init_keymap(void) { | ||||||
| #if BACKLIGHT_ENABLE | #if BACKLIGHT_ENABLE | ||||||
|     backlight_enable(); |     backlight_enable(); | ||||||
|   | |||||||
| @@ -14,7 +14,3 @@ INDICATOR_LIGHTS            = no | |||||||
| RGBLIGHT_STARTUP_ANIMATION  = no | RGBLIGHT_STARTUP_ANIMATION  = no | ||||||
| CUSTOM_UNICODE_ENABLE       = no | CUSTOM_UNICODE_ENABLE       = no | ||||||
| CUSTOM_SPLIT_TRANSPORT_SYNC = 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; |     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 := $(filter-out split_util.c,$(SRC)) | ||||||
| # SRC += quantum/matrix.c | # 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 | ||||||
| #endif  // AUDIO_ENABLE | #endif  // AUDIO_ENABLE | ||||||
|  |  | ||||||
| #undef PRODUCT |  | ||||||
| #ifdef KEYBOARD_orthodox_rev1 | #ifdef KEYBOARD_orthodox_rev1 | ||||||
|  | #    undef PRODUCT | ||||||
| #    define PRODUCT "Drashna Hacked Orthodox Rev .1" | #    define PRODUCT "Drashna Hacked Orthodox Rev .1" | ||||||
| #elif KEYBOARD_orthodox_rev3 | #elif KEYBOARD_orthodox_rev3 | ||||||
|  | #    undef PRODUCT | ||||||
| #    define PRODUCT "Drashna Hacked Orthodox Rev .3" | #    define PRODUCT "Drashna Hacked Orthodox Rev .3" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -68,13 +68,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
|  |  | ||||||
| }; | }; | ||||||
| // clang-format on | // 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 |             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 |         // clang-format on | ||||||
|  |         oled_set_cursor(0,7); | ||||||
|         oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); |         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); | 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()); |     uint8_t mods = mod_config(get_mods() | get_oneshot_mods()); | ||||||
|     rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT); |     rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT); | ||||||
|     rgblight_set_layer_state(1, mods & MOD_MASK_CTRL); |     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; |     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 modifiers     = get_mods(); | ||||||
|     uint8_t led_usb_state = host_keyboard_leds(); |     uint8_t led_usb_state = host_keyboard_leds(); | ||||||
|     uint8_t one_shot      = get_oneshot_mods(); |     uint8_t one_shot      = get_oneshot_mods(); | ||||||
|   | |||||||
| @@ -66,12 +66,14 @@ | |||||||
| #endif  // KEYBOARD_planck_light | #endif  // KEYBOARD_planck_light | ||||||
|  |  | ||||||
| #if defined(KEYBOARD_planck) | #if defined(KEYBOARD_planck) | ||||||
| #    undef PRODUCT |  | ||||||
| #    if defined(KEYBOARD_planck_light) | #    if defined(KEYBOARD_planck_light) | ||||||
|  | #        undef PRODUCT | ||||||
| #        define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)" | #        define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)" | ||||||
| #    elif defined(KEYBOARD_planck_rev6) | #    elif defined(KEYBOARD_planck_rev6) | ||||||
|  | #        undef PRODUCT | ||||||
| #        define PRODUCT "Drashna Hacked Planck Rev6" | #        define PRODUCT "Drashna Hacked Planck Rev6" | ||||||
| #    elif defined(KEYBOARD_planck_ez) | #    elif defined(KEYBOARD_planck_ez) | ||||||
|  | #        undef PRODUCT | ||||||
| #        define PRODUCT "Drashna Hacked Planck EZ" | #        define PRODUCT "Drashna Hacked Planck EZ" | ||||||
| #        define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 | #        define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 | ||||||
| #    endif | #    endif | ||||||
|   | |||||||
| @@ -249,23 +249,12 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { | |||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| void matrix_init_keymap(void) { | void keyboard_post_init_keymap(void) { | ||||||
| #    ifdef KEYBOARD_planck_light | #    ifdef KEYBOARD_planck_light | ||||||
|     writePinLow(D6); |     writePinLow(D6); | ||||||
| #    endif | #    endif | ||||||
|     // rgblight_mode(RGB_MATRIX_MULTISPLASH); |     // 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 | #endif  // RGB_MATRIX_INIT | ||||||
|  |  | ||||||
| #ifdef ENCODER_ENABLE | #ifdef ENCODER_ENABLE | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ ifeq ($(strip $(KEYBOARD)), planck/rev6) | |||||||
|     AUDIO_ENABLE                = yes |     AUDIO_ENABLE                = yes | ||||||
|     EEPROM_DRIVER               = i2c |     EEPROM_DRIVER               = i2c | ||||||
|     ENCODER_MAP_ENABLE          = yes |     ENCODER_MAP_ENABLE          = yes | ||||||
|     AUTOCORRECTION_ENABLE       = yes |     AUTOCORRECT_ENABLE          = yes | ||||||
|     CAPS_WORD_ENABLE            = yes |     CAPS_WORD_ENABLE            = yes | ||||||
| endif | endif | ||||||
| ifeq ($(strip $(KEYBOARD)), planck/light) | ifeq ($(strip $(KEYBOARD)), planck/light) | ||||||
| @@ -39,6 +39,13 @@ ifeq ($(strip $(KEYBOARD)), planck/ez) | |||||||
|     CONSOLE_ENABLE              = yes |     CONSOLE_ENABLE              = yes | ||||||
|     COMMAND_ENABLE              = yes |     COMMAND_ENABLE              = yes | ||||||
|     AUDIO_ENABLE                = yes |     AUDIO_ENABLE                = yes | ||||||
|     AUTOCORRECTION_ENABLE       = yes |     AUTOCORRECT_ENABLE          = yes | ||||||
|     CAPS_WORD_ENABLE            = yes |     CAPS_WORD_ENABLE            = yes | ||||||
| endif | 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 |     BOOTLOADER                  = qmk-dfu | ||||||
|     CUSTOM_UNICODE_ENABLE       = no |     CUSTOM_UNICODE_ENABLE       = no | ||||||
| endif | 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 | #if defined(KEYBOARD_crkbd) | ||||||
| #define CH_CFG_ST_FREQUENCY                 10000 | #    define CH_CFG_ST_RESOLUTION 16 | ||||||
|  | #    define CH_CFG_ST_FREQUENCY 10000 | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #if __has_include("platforms/chibios/common/configs/chconf.h") | #if __has_include("platforms/chibios/common/configs/chconf.h") | ||||||
| #    include_next "platforms/chibios/common/configs/chconf.h" | #    include_next "platforms/chibios/common/configs/chconf.h" | ||||||
|   | |||||||
| @@ -80,8 +80,13 @@ | |||||||
| #    define NO_MUSIC_MODE | #    define NO_MUSIC_MODE | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef HAPTIC_ENABLE | #if defined(HAPTIC_ENABLE) | ||||||
| #    define SOLENOID_PIN B7 | #    if defined(CONVERT_TO_PROTON_C) | ||||||
|  | #        define A13 PAL_LINE(GPIOA, 13) | ||||||
|  | #        define SOLENOID_PIN A13 | ||||||
|  | #    else | ||||||
|  | #        define SOLENOID_PIN B7 | ||||||
|  | #    endif | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #undef PRODUCT | #undef PRODUCT | ||||||
|   | |||||||
| @@ -15,8 +15,9 @@ | |||||||
|  */ |  */ | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| // #define HAL_USE_DAC TRUE | #if defined(KEYBOARD_crkbd) | ||||||
| #define HAL_USE_PWM TRUE | #    define HAL_USE_PWM TRUE | ||||||
| #define HAL_USE_SERIAL TRUE | #    define HAL_USE_SERIAL TRUE | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #include_next <halconf.h> | #include_next <halconf.h> | ||||||
|   | |||||||
| @@ -238,8 +238,7 @@ void render_small_kitty(void) { | |||||||
| void oled_driver_render_logo_right(void) { | void oled_driver_render_logo_right(void) { | ||||||
|     render_small_kitty(); |     render_small_kitty(); | ||||||
|  |  | ||||||
|     oled_set_cursor(0, 4); |     render_default_layer_state(0, 4); | ||||||
|     render_default_layer_state(); |  | ||||||
| } | } | ||||||
| #    endif | #    endif | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -17,20 +17,16 @@ | |||||||
|  |  | ||||||
| #include_next <mcuconf.h> | #include_next <mcuconf.h> | ||||||
|  |  | ||||||
| // #undef STM32_HSE_ENABLED | #if defined(KEYBOARD_crkbd) | ||||||
| // #define STM32_HSE_ENABLED FALSE |  | ||||||
| // #undef STM32_GPT_USE_TIM15 |  | ||||||
| // #define STM32_GPT_USE_TIM15                  FALSE |  | ||||||
|  |  | ||||||
| #undef STM32_PWM_USE_TIM2 | #    undef STM32_PWM_USE_TIM2 | ||||||
| #define STM32_PWM_USE_TIM2                  TRUE | #    define STM32_PWM_USE_TIM2 TRUE | ||||||
| #undef STM32_PWM_USE_TIM3 | #    undef STM32_PWM_USE_TIM3 | ||||||
| #define STM32_PWM_USE_TIM3                  FALSE | #    define STM32_PWM_USE_TIM3 FALSE | ||||||
|  |  | ||||||
| #undef STM32_SERIAL_USE_USART1 | #    undef STM32_SERIAL_USE_USART1 | ||||||
| #define STM32_SERIAL_USE_USART1 TRUE | #    define STM32_SERIAL_USE_USART1 TRUE | ||||||
|  |  | ||||||
| // #undef STM32_PWM_TIM15_IRQ_PRIORITY | #    undef STM32_ST_USE_TIMER | ||||||
| // #define STM32_PWM_TIM15_IRQ_PRIORITY         16 | #    define STM32_ST_USE_TIMER 3 | ||||||
| #undef STM32_ST_USE_TIMER | #endif | ||||||
| #define STM32_ST_USE_TIMER 3 |  | ||||||
|   | |||||||
| @@ -13,6 +13,10 @@ AUDIO_ENABLE               = no  # Audio output | |||||||
| UNICODE_ENABLE             = no  # Unicode | UNICODE_ENABLE             = no  # Unicode | ||||||
| RGBLIGHT_ENABLE            = no  # Enable WS2812 RGB underlight. | RGBLIGHT_ENABLE            = no  # Enable WS2812 RGB underlight. | ||||||
| SWAP_HANDS_ENABLE          = no  # Enable one-hand typing | 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 | USE_ARM_CONFIG ?= no | ||||||
| ifeq ($(strip $(CONVERT_TO)), proton_c) | ifeq ($(strip $(CONVERT_TO)), proton_c) | ||||||
| @@ -27,19 +31,26 @@ endif | |||||||
| ifeq ($(strip $(MCU)), STM32F401) | ifeq ($(strip $(MCU)), STM32F401) | ||||||
|     USE_ARM_CONFIG = yes |     USE_ARM_CONFIG = yes | ||||||
| endif | 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) | ifeq ($(strip $(USE_ARM_CONFIG)), yes) | ||||||
|     HAPTIC_ENABLE          = no |     HAPTIC_ENABLE          = no | ||||||
|     WS2812_DRIVER          = pwm # won't work without a patch to the ctpc mk file |     WS2812_DRIVER          = pwm # won't work without a patch to the ctpc mk file | ||||||
|     SERIAL_DRIVER          = usart |     SERIAL_DRIVER          = usart | ||||||
|     SWAP_HANDS_ENABLE      = yes |  | ||||||
|     WPM_ENABLE             = yes |     WPM_ENABLE             = yes | ||||||
|     AUTOCORRECTION_ENABLE  = yes |     AUTOCORRECT_ENABLE     = yes | ||||||
|     CAPS_WORD_ENABLE       = yes |     CAPS_WORD_ENABLE       = yes | ||||||
| else |     OS_DETECTION_ENABLE    = yes | ||||||
|     CUSTOM_UNICODE_ENABLE  = no |     CUSTOM_UNICODE_ENABLE      = no | ||||||
|     BOOTLOADER             = qmk-hid |     CUSTOM_POINTING_DEVICE     = no | ||||||
|     BOOTLOADER_SIZE        = 512 |     CUSTOM_SPLIT_TRANSPORT_SYNC = no | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifeq ($(strip $(KEYBOARD)), crkbd/rev1) | ifeq ($(strip $(KEYBOARD)), crkbd/rev1) | ||||||
| @@ -47,7 +58,3 @@ ifeq ($(strip $(KEYBOARD)), crkbd/rev1) | |||||||
|     RGB_MATRIX_ENABLE      = yes |     RGB_MATRIX_ENABLE      = yes | ||||||
|     HAPTIC_ENABLE          = no |     HAPTIC_ENABLE          = no | ||||||
| endif | 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)) { |     if (matrix_get_row(row) & (1 << col)) { | ||||||
|         perform_reset = true; |         perform_reset = true; | ||||||
|     } |     } | ||||||
| #ifdef STM32F411xE | #if defined(STM32F411xE) && !defined(CONVERTER_ENABLED) | ||||||
|     if (!readPin(A0)) { |     if (!readPin(A0)) { | ||||||
|         perform_reset = true; |         perform_reset = true; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -20,22 +20,6 @@ void                       keyboard_pre_init_user(void) { | |||||||
| // functions in the keymaps | // functions in the keymaps | ||||||
| // Call user matrix init, set default RGB colors and then | // Call user matrix init, set default RGB colors and then | ||||||
| // call the keymap's init function | // 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) {} | __attribute__((weak)) void keyboard_post_init_keymap(void) {} | ||||||
| void                       keyboard_post_init_user(void) { | void                       keyboard_post_init_user(void) { | ||||||
| @@ -51,6 +35,17 @@ void                       keyboard_post_init_user(void) { | |||||||
| #ifdef I2C_SCANNER_ENABLE | #ifdef I2C_SCANNER_ENABLE | ||||||
|     keyboard_post_init_i2c(); |     keyboard_post_init_i2c(); | ||||||
| #endif | #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(); |     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 | // No global matrix scan code, so just run keymap's matrix | ||||||
| // scan function | // scan function | ||||||
| __attribute__((weak)) void matrix_scan_keymap(void) {} | __attribute__((weak)) void matrix_scan_keymap(void) {} | ||||||
| __attribute__((weak)) void matrix_scan_secret(void) {} |  | ||||||
| void                       matrix_scan_user(void) { | void                       matrix_scan_user(void) { | ||||||
|     static bool has_ran_yet; |     static bool has_ran_yet; | ||||||
|     if (!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. | #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. | ||||||
|     run_diablo_macro_check(); |     run_diablo_macro_check(); | ||||||
| #endif // TAP_DANCE_ENABLE | #endif // TAP_DANCE_ENABLE | ||||||
| #ifdef CAPS_WORD_ENABLE |  | ||||||
|     caps_word_task(); |  | ||||||
| #endif |  | ||||||
| #if defined(CUSTOM_RGB_MATRIX) | #if defined(CUSTOM_RGB_MATRIX) | ||||||
|     matrix_scan_rgb_matrix(); |     matrix_scan_rgb_matrix(); | ||||||
| #endif | #endif | ||||||
| @@ -129,7 +120,6 @@ void                       matrix_scan_user(void) { | |||||||
| #ifdef CUSTOM_OLED_DRIVER | #ifdef CUSTOM_OLED_DRIVER | ||||||
|     matrix_scan_oled(); |     matrix_scan_oled(); | ||||||
| #endif | #endif | ||||||
|     matrix_scan_secret(); |  | ||||||
|  |  | ||||||
|     matrix_scan_keymap(); |     matrix_scan_keymap(); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
|  |  | ||||||
| #include "quantum.h" | #include "quantum.h" | ||||||
|  |  | ||||||
| void          matrix_init_keymap(void); | void          keyboard_post_init_keymap(void); | ||||||
| void          matrix_init_secret(void); | void          matrix_init_secret(void); | ||||||
| void          shutdown_keymap(void); | void          shutdown_keymap(void); | ||||||
| void          suspend_power_down_keymap(void); | void          suspend_power_down_keymap(void); | ||||||
| @@ -19,7 +19,7 @@ void          eeconfig_init_keymap(void); | |||||||
| void          housekeeping_task_keymap(void); | void          housekeeping_task_keymap(void); | ||||||
|  |  | ||||||
| #ifdef CUSTOM_UNICODE_ENABLE | #ifdef CUSTOM_UNICODE_ENABLE | ||||||
| void matrix_init_unicode(void); | void keyboard_post_init_unicode(void); | ||||||
| #endif | #endif | ||||||
| #ifdef SPLIT_KEYBOARD | #ifdef SPLIT_KEYBOARD | ||||||
| void matrix_slave_scan_keymap(void); | 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  | You can see a list of these files in [callbacks.c](callbacks.c), or a shortend list here  | ||||||
|  |  | ||||||
| ```c | ```c | ||||||
| __attribute__((weak)) void matrix_init_keymap(void) {} |  | ||||||
| void                       matrix_init_user(void) { |  | ||||||
|     matrix_init_keymap(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| __attribute__((weak)) void keyboard_post_init_keymap(void) {} | __attribute__((weak)) void keyboard_post_init_keymap(void) {} | ||||||
| void                       keyboard_post_init_user(void) { | void                       keyboard_post_init_user(void) { | ||||||
|     keyboard_post_init_keymap(); |     keyboard_post_init_keymap(); | ||||||
|   | |||||||
| @@ -130,14 +130,35 @@ void keyboard_post_init_i2c(void) { | |||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #if defined(AUTOCORRECT_ENABLE) && defined(AUDIO_ENABLE) | #if defined(AUTOCORRECT_ENABLE) | ||||||
| #    ifdef USER_SONG_LIST | #    if defined(AUDIO_ENABLE) | ||||||
|  | #        ifdef USER_SONG_LIST | ||||||
| float autocorrect_song[][2] = SONG(MARIO_GAMEOVER); | float autocorrect_song[][2] = SONG(MARIO_GAMEOVER); | ||||||
| #    else | #        else | ||||||
| float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND); | float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||||||
|  | #        endif | ||||||
| #    endif | #    endif | ||||||
|  |  | ||||||
| bool apply_autocorrect(uint8_t backspaces, const char *str) { | 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); |     PLAY_SONG(autocorrect_song); | ||||||
|  | #    endif | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
| #endif | #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_AUSSIE, | ||||||
|     KC_ZALGO, |     KC_ZALGO, | ||||||
|     KC_SUPER, |     KC_SUPER, | ||||||
|  |     KC_COMIC, | ||||||
|     KC_ACCEL, |     KC_ACCEL, | ||||||
|     NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes |     NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -7,7 +7,18 @@ | |||||||
| #include "unicode.h" | #include "unicode.h" | ||||||
| #include "process_unicode_common.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 |  * @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_boxes, 0x1F170, 0x1F170, '0', '1', 0x2002); | ||||||
| DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003); | 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, | DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie, | ||||||
|                               0x0250, // a |                               0x0250, // a | ||||||
|                               'q',    // b |                               'q',    // b | ||||||
| @@ -169,6 +219,45 @@ DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_super, | |||||||
|                               0x2070  // 0 |                               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 process_record_aussie(uint16_t keycode, keyrecord_t *record) { | ||||||
|     bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT; |     bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT; | ||||||
|     if ((KC_A <= keycode) && (keycode <= KC_0)) { |     if ((KC_A <= keycode) && (keycode <= KC_0)) { | ||||||
| @@ -280,12 +369,12 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { | |||||||
|                 register_unicode(0x203D); |                 register_unicode(0x203D); | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
|         case KC_NOMODE ... KC_SUPER: |         case KC_NOMODE ... KC_COMIC: | ||||||
|             if (record->event.pressed) { |             if (record->event.pressed) { | ||||||
|                 if (typing_mode != keycode - KC_NOMODE) { |                 if (unicode_typing_mode != keycode - KC_NOMODE) { | ||||||
|                     typing_mode = keycode - KC_NOMODE; |                     unicode_typing_mode = keycode - KC_NOMODE; | ||||||
|                 } else { |                 } else { | ||||||
|                     typing_mode = UCTM_NO_MODE; |                     unicode_typing_mode = UCTM_NO_MODE; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -295,23 +384,26 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { | |||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) && record->tap.count) { |     if (IS_QK_MOD_TAP(keycode) && record->tap.count) { | ||||||
|         keycode &= 0xFF; |         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) { |         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||||
|             return process_record_glyph_replacement(keycode, record, unicode_range_translator_wide); |             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) { |         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||||
|             return process_record_glyph_replacement(keycode, record, unicode_range_translator_script); |             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) { |         if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||||
|             return process_record_glyph_replacement(keycode, record, unicode_range_translator_boxes); |             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 (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) { | ||||||
|             if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) { |             if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) { | ||||||
|                 wait_us(500); |                 wait_us(500); | ||||||
| @@ -319,22 +411,26 @@ bool process_record_unicode(uint16_t keycode, keyrecord_t *record) { | |||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } else if (typing_mode == UCTM_SUPER) { |     } else if (unicode_typing_mode == UCTM_SUPER) { | ||||||
|         if (((KC_A <= keycode) && (keycode <= KC_0))) { |         if (((KC_A <= keycode) && (keycode <= KC_0))) { | ||||||
|             return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super); |             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); |         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 process_record_zalgo(keycode, record); | ||||||
|     } |     } | ||||||
|     return true; |     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(); |     unicode_input_mode_init(); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| enum unicode_typing_mode { | enum unicode_typing_modes { | ||||||
|     UCTM_NO_MODE, |     UCTM_NO_MODE, | ||||||
|     UCTM_WIDE, |     UCTM_WIDE, | ||||||
|     UCTM_SCRIPT, |     UCTM_SCRIPT, | ||||||
| @@ -12,6 +12,9 @@ enum unicode_typing_mode { | |||||||
|     UCTM_AUSSIE, |     UCTM_AUSSIE, | ||||||
|     UCTM_ZALGO, |     UCTM_ZALGO, | ||||||
|     UCTM_SUPER, |     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 |  * @param record keyrecord_t data structure | ||||||
|  */ |  */ | ||||||
| void add_keylog(uint16_t keycode, keyrecord_t *record) { | 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 >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) { | ||||||
|         if (((keycode & 0xFF) == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) { |         keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); | ||||||
|             memset(keylog_str, ' ', OLED_KEYLOGGER_LENGTH); |     } else if (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) { | ||||||
|             return; |         keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); | ||||||
|         } |     } else if (keycode >= QK_MODS && keycode <= QK_MODS_MAX) { | ||||||
|         if (record->tap.count) { |         keycode = QK_MODS_GET_BASIC_KEYCODE(keycode); | ||||||
|             keycode &= 0xFF; |  | ||||||
|         } else if (keycode > 0xFF) { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
|     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; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -426,13 +430,14 @@ void render_bootmagic_status(uint8_t col, uint8_t line) { | |||||||
|         oled_write_P(logo[0][0], !is_bootmagic_on); |         oled_write_P(logo[0][0], !is_bootmagic_on); | ||||||
|     } |     } | ||||||
| #ifndef OLED_DISPLAY_VERBOSE | #ifndef OLED_DISPLAY_VERBOSE | ||||||
|  |     oled_write_P(PSTR(" "), false); | ||||||
|     oled_write_P(logo[1][1], is_bootmagic_on); |     oled_write_P(logo[1][1], is_bootmagic_on); | ||||||
|     oled_write_P(logo[0][1], !is_bootmagic_on); |     oled_write_P(logo[0][1], !is_bootmagic_on); | ||||||
| #endif | #endif | ||||||
|     oled_write_P(PSTR(" "), false); |     oled_write_P(PSTR(" "), false); | ||||||
|     oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro); |     oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro); | ||||||
|     oled_write_P(PSTR(" "), false); |     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("CRCT"), autocorrect_is_enabled()); | ||||||
|     oled_write_P(PSTR(" "), false); |     oled_write_P(PSTR(" "), false); | ||||||
| #else | #else | ||||||
| @@ -732,33 +737,8 @@ void render_kitty(uint8_t col, uint8_t line) { | |||||||
| void render_unicode_mode(uint8_t col, uint8_t line) { | void render_unicode_mode(uint8_t col, uint8_t line) { | ||||||
| #ifdef CUSTOM_UNICODE_ENABLE | #ifdef CUSTOM_UNICODE_ENABLE | ||||||
|     oled_set_cursor(col, line); |     oled_set_cursor(col, line); | ||||||
|     oled_write_ln_P(PSTR("Unicode:"), false); |     oled_write_P(PSTR("Unicode:"), false); | ||||||
|     switch (typing_mode) { |     oled_write_P(unicode_mode_str[unicode_typing_mode], false); | ||||||
|         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 | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -43,6 +43,7 @@ | |||||||
| #            define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN | #            define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN | ||||||
| #        endif | #        endif | ||||||
| #    endif | #    endif | ||||||
|  | #    undef RGB_MATRIX_DEFAULT_MODE | ||||||
| #    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_REST_MODE | #    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_REST_MODE | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -128,15 +129,15 @@ | |||||||
| #    define TAPPING_TERM 175 | #    define TAPPING_TERM 175 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifndef SECURE_UNLOCK_SEQUENCE | #if (__has_include("../../../qmk_secrets/config.h") && !defined(NO_SECRETS)) | ||||||
| #    define SECURE_UNLOCK_SEQUENCE    \ | #    include "../../../qmk_secrets/config.h" | ||||||
|         {                             \ |  | ||||||
|             {2, 1}, {2, 2}, {2, 3}, { \ |  | ||||||
|                 2, 4                  \ |  | ||||||
|             }                         \ |  | ||||||
|         } |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY) | #if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY) | ||||||
| #    define USB_SUSPEND_WAKEUP_DELAY 200 | #    define USB_SUSPEND_WAKEUP_DELAY 200 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifdef XAP_ENABLE | ||||||
|  | #    undef DYNAMIC_KEYMAP_LAYER_COUNT | ||||||
|  | #    define DYNAMIC_KEYMAP_LAYER_COUNT 12 | ||||||
|  | #endif | ||||||
|   | |||||||
| @@ -3,6 +3,10 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #    define RGBLIGHT_SLEEP | #define RGBLIGHT_SLEEP | ||||||
| #    define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 | #define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 | ||||||
| #    define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24 | #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 |    AUTOCORRECT_ENABLE = yes | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) | CUSTOM_BOOTMAGIC_ENABLE ?= yes | ||||||
|     SRC += bootmagic_better.c | ifeq ($(strip $(CUSTOM_BOOTMAGIC_ENABLE)), yes) | ||||||
|  |     ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) | ||||||
|  |         SRC += bootmagic_better.c | ||||||
|  |     endif | ||||||
| endif | endif | ||||||
|   | |||||||
| @@ -7,6 +7,9 @@ | |||||||
| #define SPLIT_LAYER_STATE_ENABLE | #define SPLIT_LAYER_STATE_ENABLE | ||||||
| #define SPLIT_LED_STATE_ENABLE | #define SPLIT_LED_STATE_ENABLE | ||||||
| #define SPLIT_MODS_ENABLE | #define SPLIT_MODS_ENABLE | ||||||
|  | #ifndef POINTING_DEVICE_ENABLE | ||||||
|  | #    define SPLIT_WATCHDOG_ENABLE | ||||||
|  | #endif | ||||||
| #ifdef WPM_ENABLE | #ifdef WPM_ENABLE | ||||||
| #    define SPLIT_WPM_ENABLE | #    define SPLIT_WPM_ENABLE | ||||||
| #endif | #endif | ||||||
| @@ -17,5 +20,5 @@ | |||||||
| #    define SELECT_SOFT_SERIAL_SPEED 1 | #    define SELECT_SOFT_SERIAL_SPEED 1 | ||||||
| #endif | #endif | ||||||
| #ifdef CUSTOM_SPLIT_TRANSPORT_SYNC | #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 | #endif | ||||||
|   | |||||||
| @@ -25,11 +25,6 @@ extern bool tap_toggling; | |||||||
| extern bool swap_hands; | extern bool swap_hands; | ||||||
| #endif | #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 userspace_config_t userspace_config; | ||||||
| extern bool               host_driver_disabled; | 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 | #ifdef CUSTOM_OLED_DRIVER | ||||||
| #    include "oled/oled_stuff.h" | #    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) { | 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 | #ifdef CUSTOM_OLED_DRIVER | ||||||
|     transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_string_sync); |     transaction_register_rpc(RPC_ID_USER_KEYLOG_STR, keylogger_string_sync); | ||||||
| #endif | #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) { | void user_transport_update(void) { | ||||||
| @@ -103,7 +84,7 @@ void user_transport_update(void) { | |||||||
| #endif | #endif | ||||||
| #ifdef UNICODE_COMMON_ENABLE | #ifdef UNICODE_COMMON_ENABLE | ||||||
|         user_state.unicode_mode        = unicode_config.input_mode; |         user_state.unicode_mode        = unicode_config.input_mode; | ||||||
|         user_state.unicode_typing_mode = typing_mode; |         user_state.unicode_typing_mode = unicode_typing_mode; | ||||||
| #endif | #endif | ||||||
| #ifdef SWAP_HANDS_ENABLE | #ifdef SWAP_HANDS_ENABLE | ||||||
|         user_state.swap_hands = swap_hands; |         user_state.swap_hands = swap_hands; | ||||||
| @@ -117,7 +98,7 @@ void user_transport_update(void) { | |||||||
|         user_state.raw       = transport_user_state; |         user_state.raw       = transport_user_state; | ||||||
| #ifdef UNICODE_COMMON_ENABLE | #ifdef UNICODE_COMMON_ENABLE | ||||||
|         unicode_config.input_mode = user_state.unicode_mode; |         unicode_config.input_mode = user_state.unicode_mode; | ||||||
|         typing_mode               = user_state.unicode_typing_mode; |         unicode_typing_mode       = user_state.unicode_typing_mode; | ||||||
| #endif | #endif | ||||||
| #if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER) | #if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER) | ||||||
|         is_oled_enabled = user_state.is_oled_enabled; |         is_oled_enabled = user_state.is_oled_enabled; | ||||||
| @@ -219,28 +200,6 @@ void user_transport_sync(void) { | |||||||
|         } |         } | ||||||
| #endif | #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) { | void housekeeping_task_transport_sync(void) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user