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 0x1307
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 MOUSEKEY_DELAY 100
40 #define MOUSEKEY_INTERVAL 20
41 #define MOUSEKEY_MAX_SPEED 3
42 #define MOUSEKEY_TIME_TO_MAX 10
44 /* define if matrix has ghost */
45 //#define MATRIX_HAS_GHOST
47 /* Set 0 if debouncing isn't needed */
49 * This constant define not debouncing time in msecs, but amount of matrix
50 * scan loops which should be made to get stable debounced results.
52 * On Ergodox matrix scan rate is relatively low, because of slow I2C.
53 * Now it's only 317 scans/second, or about 3.15 msec/scan.
54 * According to Cherry specs, debouncing time is 5 msec.
56 * And so, there is no sense to have DEBOUNCE higher than 2.
59 #define TAPPING_TERM 230
61 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
62 #define LOCKING_SUPPORT_ENABLE
63 /* Locking resynchronize hack */
64 #define LOCKING_RESYNC_ENABLE
66 /* key combination for command */
67 #define IS_COMMAND() ( \
68 keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
69 keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
75 * Feature disable options
76 * These options are also useful to firmware size reduction.
79 /* disable debug print */
85 /* disable action features */
86 //#define NO_ACTION_LAYER
87 //#define NO_ACTION_TAPPING
88 //#define NO_ACTION_ONESHOT
89 //#define NO_ACTION_MACRO
90 //#define NO_ACTION_FUNCTION
91 //#define DEBUG_MATRIX_SCAN_RATE