qmk

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

config.h (6449B)


      1 /* Copyright 2018 Jason Williams (Wilba)
      2  *
      3  * This program is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published by
      5  * the Free Software Foundation, either version 2 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * This program is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     15  */
     16 
     17 #pragma once
     18 
     19 #include "config_common.h"
     20 
     21 /* USB Device descriptor parameter */
     22 #define VENDOR_ID       0x5241 // "RW"
     23 #define PRODUCT_ID      0x080A // 80-A
     24 #define DEVICE_VER      0x0001
     25 #define MANUFACTURER    RAMA.WORKS
     26 #define PRODUCT         RAMA U80-A
     27 #define DESCRIPTION     RAMA U80-A Keyboard
     28 
     29 /* key matrix size */
     30 #define MATRIX_ROWS 6
     31 #define MATRIX_COLS 17
     32 
     33 /*
     34  * Keyboard Matrix Assignments
     35  *
     36  * Change this to how you wired your keyboard
     37  * COLS: AVR pins used for columns, left to right
     38  * ROWS: AVR pins used for rows, top to bottom
     39  * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
     40  *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
     41  *
     42 */
     43 #define MATRIX_ROW_PINS { F1, F0, E6, F4, F6, F7 }
     44 #define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4, B7, B0 }
     45 #define UNUSED_PINS
     46 
     47 /* COL2ROW, ROW2COL*/
     48 #define DIODE_DIRECTION ROW2COL
     49  
     50 // #define BACKLIGHT_PIN B7
     51 // #define BACKLIGHT_BREATHING
     52 // #define BACKLIGHT_LEVELS 3
     53 
     54 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
     55 #define DEBOUNCE 5
     56 
     57 /* define if matrix has ghost (lacks anti-ghosting diodes) */
     58 //#define MATRIX_HAS_GHOST
     59 
     60 /* number of backlight levels */
     61 
     62 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
     63 #define LOCKING_SUPPORT_ENABLE
     64 /* Locking resynchronize hack */
     65 #define LOCKING_RESYNC_ENABLE
     66 
     67 /* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
     68  * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
     69  */
     70 // #define GRAVE_ESC_CTRL_OVERRIDE
     71 
     72 /*
     73  * Force NKRO
     74  *
     75  * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
     76  * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
     77  * makefile for this to work.)
     78  *
     79  * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
     80  * until the next keyboard reset.
     81  *
     82  * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
     83  * fully operational during normal computer usage.
     84  *
     85  * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
     86  * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
     87  * bootmagic, NKRO mode will always be enabled until it is toggled again during a
     88  * power-up.
     89  *
     90  */
     91 //#define FORCE_NKRO
     92 
     93 /*
     94  * Magic Key Options
     95  *
     96  * Magic keys are hotkey commands that allow control over firmware functions of
     97  * the keyboard. They are best used in combination with the HID Listen program,
     98  * found here: https://www.pjrc.com/teensy/hid_listen.html
     99  *
    100  * The options below allow the magic key functionality to be changed. This is
    101  * useful if your keyboard/keypad is missing keys and you want magic key support.
    102  *
    103  */
    104 
    105 /* control how magic key switches layers */
    106 //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
    107 //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
    108 //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
    109 
    110 /* override magic key keymap */
    111 //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
    112 //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
    113 //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
    114 //#define MAGIC_KEY_HELP1          H
    115 //#define MAGIC_KEY_HELP2          SLASH
    116 //#define MAGIC_KEY_DEBUG          D
    117 //#define MAGIC_KEY_DEBUG_MATRIX   X
    118 //#define MAGIC_KEY_DEBUG_KBD      K
    119 //#define MAGIC_KEY_DEBUG_MOUSE    M
    120 //#define MAGIC_KEY_VERSION        V
    121 //#define MAGIC_KEY_STATUS         S
    122 //#define MAGIC_KEY_CONSOLE        C
    123 //#define MAGIC_KEY_LAYER0_ALT1    ESC
    124 //#define MAGIC_KEY_LAYER0_ALT2    GRAVE
    125 //#define MAGIC_KEY_LAYER0         0
    126 //#define MAGIC_KEY_LAYER1         1
    127 //#define MAGIC_KEY_LAYER2         2
    128 //#define MAGIC_KEY_LAYER3         3
    129 //#define MAGIC_KEY_LAYER4         4
    130 //#define MAGIC_KEY_LAYER5         5
    131 //#define MAGIC_KEY_LAYER6         6
    132 //#define MAGIC_KEY_LAYER7         7
    133 //#define MAGIC_KEY_LAYER8         8
    134 //#define MAGIC_KEY_LAYER9         9
    135 //#define MAGIC_KEY_BOOTLOADER     PAUSE
    136 //#define MAGIC_KEY_LOCK           CAPS
    137 //#define MAGIC_KEY_EEPROM         E
    138 //#define MAGIC_KEY_NKRO           N
    139 //#define MAGIC_KEY_SLEEP_LED      Z
    140 
    141 /*
    142  * Feature disable options
    143  *  These options are also useful to firmware size reduction.
    144  */
    145 
    146 /* disable debug print */
    147 //#define NO_DEBUG
    148 
    149 /* disable print */
    150 //#define NO_PRINT
    151 
    152 /* disable action features */
    153 //#define NO_ACTION_LAYER
    154 //#define NO_ACTION_TAPPING
    155 //#define NO_ACTION_ONESHOT
    156 //#define NO_ACTION_MACRO
    157 //#define NO_ACTION_FUNCTION
    158 
    159 /*
    160  * MIDI options
    161  */
    162 
    163 /* Prevent use of disabled MIDI features in the keymap */
    164 //#define MIDI_ENABLE_STRICT 1
    165 
    166 /* enable basic MIDI features:
    167    - MIDI notes can be sent when in Music mode is on
    168 */
    169 //#define MIDI_BASIC
    170 
    171 /* enable advanced MIDI features:
    172    - MIDI notes can be added to the keymap
    173    - Octave shift and transpose
    174    - Virtual sustain, portamento, and modulation wheel
    175    - etc.
    176 */
    177 //#define MIDI_ADVANCED
    178 
    179 /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
    180 //#define MIDI_TONE_KEYCODE_OCTAVES 1
    181 
    182 #define WT_MONO_BACKLIGHT
    183 
    184 #define DYNAMIC_KEYMAP_LAYER_COUNT 4
    185 
    186 // EEPROM usage
    187 
    188 // TODO: refactor with new user EEPROM code (coming soon)
    189 #define EEPROM_MAGIC 0x451F
    190 #define EEPROM_MAGIC_ADDR 32
    191 // Bump this every time we change what we store
    192 // This will automatically reset the EEPROM with defaults
    193 // and avoid loading invalid data from the EEPROM
    194 #define EEPROM_VERSION 0x07
    195 #define EEPROM_VERSION_ADDR 34
    196 
    197 // Dynamic keymap starts after EEPROM version
    198 #define DYNAMIC_KEYMAP_EEPROM_ADDR 35
    199 // Dynamic macro starts after dynamic keymaps (35+(4*6*17*2)) = (35+816)
    200 #define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 851
    201 #define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 173
    202 #define DYNAMIC_KEYMAP_MACRO_COUNT 16