qmk

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

config.h (8530B)


      1 /*
      2 Copyright %YEAR% %YOUR_NAME%
      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 
     20 #include "config_common.h"
     21 
     22 /* USB Device descriptor parameter */
     23 #define VENDOR_ID 0xFEED
     24 #define PRODUCT_ID 0x0000
     25 #define DEVICE_VER 0x0001
     26 #define MANUFACTURER % YOUR_NAME %
     27 #define PRODUCT % KEYBOARD %
     28 #define DESCRIPTION A custom keyboard
     29 
     30 /* key matrix size */
     31 #define MATRIX_ROWS 2
     32 #define MATRIX_COLS 3
     33 
     34 /*
     35  * Keyboard Matrix Assignments
     36  *
     37  * Change this to how you wired your keyboard
     38  * COLS: AVR pins used for columns, left to right
     39  * ROWS: AVR pins used for rows, top to bottom
     40  * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
     41  *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
     42  *
     43  */
     44 #define MATRIX_ROW_PINS \
     45     { D0, D5 }
     46 #define MATRIX_COL_PINS \
     47     { F1, F0, B0 }
     48 #define UNUSED_PINS
     49 
     50 /* COL2ROW, ROW2COL*/
     51 #define DIODE_DIRECTION COL2ROW
     52 
     53 /*
     54  * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
     55  */
     56 #define SOFT_SERIAL_PIN D0  // or D1, D2, D3, E6
     57 
     58 // #define BACKLIGHT_PIN B7
     59 // #define BACKLIGHT_BREATHING
     60 // #define BACKLIGHT_LEVELS 3
     61 
     62 // #define RGB_DI_PIN E2
     63 // #ifdef RGB_DI_PIN
     64 //   #define RGBLED_NUM 16
     65 //   #define RGBLIGHT_HUE_STEP 8
     66 //   #define RGBLIGHT_SAT_STEP 8
     67 //   #define RGBLIGHT_VAL_STEP 8
     68 //   #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
     69 //   #define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
     70 // /*== all animations enable ==*/
     71 //   #define RGBLIGHT_ANIMATIONS
     72 // /*== or choose animations ==*/
     73 //   #define RGBLIGHT_EFFECT_BREATHING
     74 //   #define RGBLIGHT_EFFECT_RAINBOW_MOOD
     75 //   #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
     76 //   #define RGBLIGHT_EFFECT_SNAKE
     77 //   #define RGBLIGHT_EFFECT_KNIGHT
     78 //   #define RGBLIGHT_EFFECT_CHRISTMAS
     79 //   #define RGBLIGHT_EFFECT_STATIC_GRADIENT
     80 //   #define RGBLIGHT_EFFECT_RGB_TEST
     81 //   #define RGBLIGHT_EFFECT_ALTERNATING
     82 // /*== customize breathing effect ==*/
     83 //   /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
     84 //   #define RGBLIGHT_BREATHE_TABLE_SIZE 256      // 256(default) or 128 or 64
     85 //   /*==== use exp() and sin() ====*/
     86 //   #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85  // 1 to 2.7
     87 //   #define RGBLIGHT_EFFECT_BREATHE_MAX    255   // 0 to 255
     88 // #endif
     89 
     90 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
     91 #define DEBOUNCE 5
     92 
     93 /* define if matrix has ghost (lacks anti-ghosting diodes) */
     94 //#define MATRIX_HAS_GHOST
     95 
     96 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
     97 #define LOCKING_SUPPORT_ENABLE
     98 /* Locking resynchronize hack */
     99 #define LOCKING_RESYNC_ENABLE
    100 
    101 /* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
    102  * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
    103  */
    104 // #define GRAVE_ESC_CTRL_OVERRIDE
    105 
    106 /*
    107  * Force NKRO
    108  *
    109  * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
    110  * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
    111  * makefile for this to work.)
    112  *
    113  * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
    114  * until the next keyboard reset.
    115  *
    116  * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
    117  * fully operational during normal computer usage.
    118  *
    119  * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
    120  * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
    121  * bootmagic, NKRO mode will always be enabled until it is toggled again during a
    122  * power-up.
    123  *
    124  */
    125 //#define FORCE_NKRO
    126 
    127 /*
    128  * Magic Key Options
    129  *
    130  * Magic keys are hotkey commands that allow control over firmware functions of
    131  * the keyboard. They are best used in combination with the HID Listen program,
    132  * found here: https://www.pjrc.com/teensy/hid_listen.html
    133  *
    134  * The options below allow the magic key functionality to be changed. This is
    135  * useful if your keyboard/keypad is missing keys and you want magic key support.
    136  *
    137  */
    138 
    139 /* key combination for magic key command */
    140 /* defined by default; to change, uncomment and set to the combination you want */
    141 // #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
    142 
    143 /* control how magic key switches layers */
    144 //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
    145 //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
    146 //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
    147 
    148 /* override magic key keymap */
    149 //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
    150 //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
    151 //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
    152 //#define MAGIC_KEY_HELP           H
    153 //#define MAGIC_KEY_HELP_ALT       SLASH
    154 //#define MAGIC_KEY_DEBUG          D
    155 //#define MAGIC_KEY_DEBUG_MATRIX   X
    156 //#define MAGIC_KEY_DEBUG_KBD      K
    157 //#define MAGIC_KEY_DEBUG_MOUSE    M
    158 //#define MAGIC_KEY_VERSION        V
    159 //#define MAGIC_KEY_STATUS         S
    160 //#define MAGIC_KEY_CONSOLE        C
    161 //#define MAGIC_KEY_LAYER0         0
    162 //#define MAGIC_KEY_LAYER0_ALT     GRAVE
    163 //#define MAGIC_KEY_LAYER1         1
    164 //#define MAGIC_KEY_LAYER2         2
    165 //#define MAGIC_KEY_LAYER3         3
    166 //#define MAGIC_KEY_LAYER4         4
    167 //#define MAGIC_KEY_LAYER5         5
    168 //#define MAGIC_KEY_LAYER6         6
    169 //#define MAGIC_KEY_LAYER7         7
    170 //#define MAGIC_KEY_LAYER8         8
    171 //#define MAGIC_KEY_LAYER9         9
    172 //#define MAGIC_KEY_BOOTLOADER     B
    173 //#define MAGIC_KEY_BOOTLOADER_ALT ESC
    174 //#define MAGIC_KEY_LOCK           CAPS
    175 //#define MAGIC_KEY_EEPROM         E
    176 //#define MAGIC_KEY_EEPROM_CLEAR   BSPACE
    177 //#define MAGIC_KEY_NKRO           N
    178 //#define MAGIC_KEY_SLEEP_LED      Z
    179 
    180 /*
    181  * Feature disable options
    182  *  These options are also useful to firmware size reduction.
    183  */
    184 
    185 /* disable debug print */
    186 //#define NO_DEBUG
    187 
    188 /* disable print */
    189 //#define NO_PRINT
    190 
    191 /* disable action features */
    192 //#define NO_ACTION_LAYER
    193 //#define NO_ACTION_TAPPING
    194 //#define NO_ACTION_ONESHOT
    195 //#define NO_ACTION_MACRO
    196 //#define NO_ACTION_FUNCTION
    197 
    198 /*
    199  * MIDI options
    200  */
    201 
    202 /* Prevent use of disabled MIDI features in the keymap */
    203 //#define MIDI_ENABLE_STRICT 1
    204 
    205 /* enable basic MIDI features:
    206    - MIDI notes can be sent when in Music mode is on
    207 */
    208 //#define MIDI_BASIC
    209 
    210 /* enable advanced MIDI features:
    211    - MIDI notes can be added to the keymap
    212    - Octave shift and transpose
    213    - Virtual sustain, portamento, and modulation wheel
    214    - etc.
    215 */
    216 //#define MIDI_ADVANCED
    217 
    218 /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
    219 //#define MIDI_TONE_KEYCODE_OCTAVES 1
    220 
    221 /*
    222  * HD44780 LCD Display Configuration
    223  */
    224 /*
    225 #define LCD_LINES           2     //< number of visible lines of the display
    226 #define LCD_DISP_LENGTH    16     //< visibles characters per line of the display
    227 
    228 #define LCD_IO_MODE      1            //< 0: memory mapped mode, 1: IO port mode
    229 
    230 #if LCD_IO_MODE
    231 #define LCD_PORT         PORTB        //< port for the LCD lines
    232 #define LCD_DATA0_PORT   LCD_PORT     //< port for 4bit data bit 0
    233 #define LCD_DATA1_PORT   LCD_PORT     //< port for 4bit data bit 1
    234 #define LCD_DATA2_PORT   LCD_PORT     //< port for 4bit data bit 2
    235 #define LCD_DATA3_PORT   LCD_PORT     //< port for 4bit data bit 3
    236 #define LCD_DATA0_PIN    4            //< pin for 4bit data bit 0
    237 #define LCD_DATA1_PIN    5            //< pin for 4bit data bit 1
    238 #define LCD_DATA2_PIN    6            //< pin for 4bit data bit 2
    239 #define LCD_DATA3_PIN    7            //< pin for 4bit data bit 3
    240 #define LCD_RS_PORT      LCD_PORT     //< port for RS line
    241 #define LCD_RS_PIN       3            //< pin  for RS line
    242 #define LCD_RW_PORT      LCD_PORT     //< port for RW line
    243 #define LCD_RW_PIN       2            //< pin  for RW line
    244 #define LCD_E_PORT       LCD_PORT     //< port for Enable line
    245 #define LCD_E_PIN        1            //< pin  for Enable line
    246 #endif
    247 */
    248 
    249 /* Bootmagic Lite key configuration */
    250 // #define BOOTMAGIC_LITE_ROW 0
    251 // #define BOOTMAGIC_LITE_COLUMN 0