qmk

QMK Firmware
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

config.h (4361B)


      1 /*
      2  * Copyright 2017 skully <skullydazed@gmail.com>
      3  *
      4  * This program is free software: you can redistribute it and/or modify
      5  * it under the terms of the GNU General Public License as published by
      6  * the Free Software Foundation, either version 2 of the License, or
      7  * (at your option) any later version.
      8  *
      9  * This program is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12  * GNU General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU General Public License
     15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     16  */
     17 
     18 #pragma once
     19 #include "config_common.h"
     20 
     21 /* USB Device descriptor parameter */
     22 #define VENDOR_ID       0xC1ED
     23 #define PRODUCT_ID      0x2391
     24 #define DEVICE_VER      0x0001
     25 #define MANUFACTURER    Clueboard
     26 
     27 /* Address for jumping to bootloader on STM32 chips. */
     28 /* It is chip dependent, the correct number can be looked up here:
     29  * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
     30  * This also requires a patch to chibios:
     31  *  <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
     32  */
     33 #define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
     34 
     35 /* key matrix size */
     36 #define MATRIX_ROWS 10
     37 #define MATRIX_COLS 8
     38 
     39 /*
     40  * Keyboard Matrix Assignments
     41  *
     42  * Change this to how you wired your keyboard
     43  * COLS: AVR pins used for columns, left to right
     44  * ROWS: AVR pins used for rows, top to bottom
     45  * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
     46  *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
     47  *
     48 */
     49 #define MATRIX_ROW_PINS { B11, A6, A3, A2, A1, B5, B6, C15, C14, C13 }
     50 #define MATRIX_COL_PINS { B10, B2, B1, B0, A7, B4, B3, B7 }
     51 #define UNUSED_PINS { A0, A8, A15, B12, B13, B14, B15 }
     52 #define DIODE_DIRECTION COL2ROW
     53 
     54 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
     55 // #define DEBOUNCE 6
     56 
     57 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
     58 //#define LOCKING_SUPPORT_ENABLE
     59 /* Locking resynchronize hack */
     60 //#define LOCKING_RESYNC_ENABLE
     61 
     62 /*
     63  * Force NKRO
     64  *
     65  * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
     66  * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
     67  * makefile for this to work.)
     68  *
     69  * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
     70  * until the next keyboard reset.
     71  *
     72  * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
     73  * fully operational during normal computer usage.
     74  *
     75  * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
     76  * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
     77  * bootmagic, NKRO mode will always be enabled until it is toggled again during a
     78  * power-up.
     79  *
     80  */
     81 //#define FORCE_NKRO
     82 
     83 /*
     84  * Feature disable options
     85  *  These options are also useful to firmware size reduction.
     86  */
     87 
     88 /* disable debug print */
     89 //#define NO_DEBUG
     90 
     91 /* disable print */
     92 //#define NO_PRINT
     93 
     94 /* disable action features */
     95 //#define NO_ACTION_LAYER
     96 //#define NO_ACTION_TAPPING
     97 //#define NO_ACTION_ONESHOT
     98 //#define NO_ACTION_MACRO
     99 //#define NO_ACTION_FUNCTION
    100 
    101 /*
    102  * MIDI options
    103  */
    104 
    105 /* Prevent use of disabled MIDI features in the keymap */
    106 //#define MIDI_ENABLE_STRICT 1
    107 
    108 /* enable basic MIDI features:
    109    - MIDI notes can be sent when in Music mode is on
    110 */
    111 //#define MIDI_BASIC
    112 
    113 /* enable advanced MIDI features:
    114    - MIDI notes can be added to the keymap
    115    - Octave shift and transpose
    116    - Virtual sustain, portamento, and modulation wheel
    117    - etc.
    118 */
    119 //#define MIDI_ADVANCED
    120 
    121 /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
    122 //#define MIDI_TONE_KEYCODE_OCTAVES 1
    123 
    124  /* Backlight configuration
    125  */
    126 #define BACKLIGHT_LEVELS 10
    127 
    128 // This is a 7-bit address, that gets left-shifted and bit 0
    129 // set to 0 for write, 1 for read (as per I2C protocol)
    130 // The address will vary depending on your wiring:
    131 // 0b1110100 AD <-> GND
    132 // 0b1110111 AD <-> VCC
    133 // 0b1110101 AD <-> SCL
    134 // 0b1110110 AD <-> SDA
    135 #define LED_DRIVER_ADDR_1 0b1110100
    136 #define I2C1_BANK GPIOB
    137 #define I2C1_SCL 8
    138 #define I2C1_SDA 9
    139 
    140 #define LED_DRIVER_COUNT 1
    141 #define LED_DRIVER_LED_COUNT 71