qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

config.h (1673B)


      1 // Copyright 2024 splitkb.com (support@splitkb.com)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #pragma once
      5 
      6 // Make it easier to enter the bootloader
      7 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
      8 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
      9 
     10 // I2C0, onboard SSD1306 socket and I2C to Myriad module
     11 #define I2C_DRIVER   I2CD0
     12 #define I2C1_SDA_PIN GP0
     13 #define I2C1_SCL_PIN GP1
     14 // We need to slow down the I2C clock because the default of 400.000
     15 // fails to communicate with Zetta ZD24C02A EEPROM on a Myriad card.
     16 #define I2C1_CLOCK_SPEED 100000
     17 
     18 // SPI1, both for onboard matrix data and SPI to Myriad module
     19 #define SPI_DRIVER   SPID1
     20 #define SPI_SCK_PIN  GP10
     21 #define SPI_MOSI_PIN GP11
     22 #define SPI_MISO_PIN GP12
     23 
     24 // UART1, communication between the two halves
     25 #define SERIAL_USART_FULL_DUPLEX
     26 #define SERIAL_USART_DRIVER SIOD1
     27 #define SERIAL_USART_TX_PIN GP20
     28 #define SERIAL_USART_RX_PIN GP21
     29 
     30 // Potential onboard speaker, not populated by default
     31 #define AUDIO_PIN GP23
     32 
     33 // Transmitting pointing device status to the master side
     34 #define SPLIT_POINTING_ENABLE
     35 #define POINTING_DEVICE_COMBINED
     36 
     37 // VBUS detection
     38 #define USB_VBUS_PIN GP25
     39 
     40 // Define matrix size
     41 #define MATRIX_COLS 8
     42 #define MATRIX_ROWS 12
     43 
     44 // Encoders
     45 // 3 onboard, 1 for Myriad
     46 #define NUM_ENCODERS_LEFT 4
     47 #define NUM_ENCODERS_RIGHT 4
     48 #define ENCODER_RESOLUTION 2
     49 
     50 // OLED display
     51 #define OLED_DISPLAY_128X64
     52 // If someone has only one OLED display
     53 // and that display was on the slave side. 
     54 // It wouldn't work at all. This fixes that 
     55 // including some code in rev1.c but makes 
     56 // it so the timeout's are not synced
     57 // between halves.
     58 #undef SPLIT_OLED_ENABLE
     59 #define OLED_TIMEOUT 0
     60