2 Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
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.
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.
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/>.
18 This work is heavily based on initial firmware for Ergodox keyboard.
19 Copyright (c) 2012, 2013 Ben Blazak <benblazak.dev@gmail.com>
20 Released under The MIT License (see "doc/licenses/MIT.md")
21 Project located at <https://github.com/benblazak/ergodox-firmware>
28 /* USB Device descriptor parameter */
29 #define VENDOR_ID 0xFEED
30 #define PRODUCT_ID 0x1111
31 #define DEVICE_VER 0x0001
32 #define MANUFACTURER TMK/Cub
33 #define PRODUCT Ergodox
34 #define DESCRIPTION t.m.k. keyboard firmware for Ergodox
36 #define MATRIX_ROWS 14
39 /* define if matrix has ghost */
40 //#define MATRIX_HAS_GHOST
42 /* Set 0 if debouncing isn't needed */
44 * This constant define not debouncing time in msecs, but amount of matrix
45 * scan loops which should be made to get stable debounced results.
47 * On Ergodox matrix scan rate is relatively low, because of slow I2C.
48 * Now it's only 317 scans/second, or about 3.15 msec/scan.
49 * According to Cherry specs, debouncing time is 5 msec.
51 * And so, there is no sense to have DEBOUNCE higher than 2.
54 #define TAPPING_TERM 250
56 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
57 #define LOCKING_SUPPORT_ENABLE
58 /* Locking resynchronize hack */
59 #define LOCKING_RESYNC_ENABLE
61 /* key combination for command */
62 #define IS_COMMAND() ( \
63 keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
64 keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
70 * Feature disable options
71 * These options are also useful to firmware size reduction.
74 /* disable debug print */
80 /* disable action features */
81 //#define NO_ACTION_LAYER
82 //#define NO_ACTION_TAPPING
83 //#define NO_ACTION_ONESHOT
84 //#define NO_ACTION_MACRO
85 //#define NO_ACTION_FUNCTION
86 //#define DEBUG_MATRIX_SCAN_RATE