aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/lfkeyboards/smk65/info.json9
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/default/config.h3
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/default/keymap.c69
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/default/rules.mk26
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/iso/config.h8
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c67
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk41
-rw-r--r--keyboards/lfkeyboards/smk65/readme.md15
-rw-r--r--keyboards/lfkeyboards/smk65/revb/config.h (renamed from keyboards/lfkeyboards/smk65/config.h)75
-rw-r--r--keyboards/lfkeyboards/smk65/revb/revb.c (renamed from keyboards/lfkeyboards/smk65/smk65.c)21
-rw-r--r--keyboards/lfkeyboards/smk65/revb/revb.h134
-rw-r--r--keyboards/lfkeyboards/smk65/revb/rules.mk16
-rw-r--r--keyboards/lfkeyboards/smk65/revf/config.h134
-rw-r--r--keyboards/lfkeyboards/smk65/revf/keymaps/via/keymap.c46
-rw-r--r--keyboards/lfkeyboards/smk65/revf/keymaps/via/rules.mk1
-rw-r--r--keyboards/lfkeyboards/smk65/revf/revf.h71
-rw-r--r--keyboards/lfkeyboards/smk65/revf/rules.mk11
-rw-r--r--keyboards/lfkeyboards/smk65/rules.mk31
-rw-r--r--keyboards/lfkeyboards/smk65/smk65.h120
19 files changed, 565 insertions, 333 deletions
diff --git a/keyboards/lfkeyboards/smk65/info.json b/keyboards/lfkeyboards/smk65/info.json
index c81cc065e..dfba5737a 100644
--- a/keyboards/lfkeyboards/smk65/info.json
+++ b/keyboards/lfkeyboards/smk65/info.json
@@ -5,14 +5,11 @@
5 "width": 16, 5 "width": 16,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "layouts": {
8 "LAYOUT": { 8 "LAYOUT_65_ansi": {
9 "key_count": 68,
10 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] 9 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
11 }, 10 },
12 11 "LAYOUT_65_iso": {
13 "LAYOUT_iso": { 12 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
14 "key_count": 69,
15 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
16 } 13 }
17 } 14 }
18} 15}
diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/config.h b/keyboards/lfkeyboards/smk65/keymaps/default/config.h
deleted file mode 100644
index 271f48d00..000000000
--- a/keyboards/lfkeyboards/smk65/keymaps/default/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
1#pragma once
2
3// place overrides here
diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c b/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c
index 9c8ebdb63..996bee5f7 100644
--- a/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c
+++ b/keyboards/lfkeyboards/smk65/keymaps/default/keymap.c
@@ -1,12 +1,25 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
1#include QMK_KEYBOARD_H 15#include QMK_KEYBOARD_H
2 16
3enum keymap_layout { 17// Defines names for use in layer keycodes and the keymap
4 VANILLA = 0, 18enum layer_names {
5 FUNC, 19 _BASE,
6 SETTINGS, 20 _FN
7}; 21};
8 22
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11 /* Keymap VANILLA: (Base Layer) Default Layer 24 /* Keymap VANILLA: (Base Layer) Default Layer
12 * ,------------------------------------------------------------.----. 25 * ,------------------------------------------------------------.----.
@@ -21,12 +34,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig | 34 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
22 * `-----------------------------------------------------------------' 35 * `-----------------------------------------------------------------'
23 */ 36 */
24 [VANILLA] = LAYOUT( 37 [_BASE] = LAYOUT_65_ansi(
25 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, \ 38 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
26 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \ 39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
27 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ 40 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
28 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ 41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
29 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT \ 42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
30 ), 43 ),
31 44
32 /* Keymap VANILLA: Function Layer 45 /* Keymap VANILLA: Function Layer
@@ -42,35 +55,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig | 55 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
43 * `-----------------------------------------------------------------' 56 * `-----------------------------------------------------------------'
44 */ 57 */
45 [FUNC] = LAYOUT( 58 [_FN] = LAYOUT_65_ansi(
46 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ 59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14,
47 MU_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, \ 60 MU_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
48 AU_TOG, KC_FN1, KC_FN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, \ 61 AU_TOG, KC_FN1, KC_FN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD,
49 KC_FN5, KC_FN2, KC_FN4, _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, \ 62 KC_FN5, KC_FN2, KC_FN4, _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______,
50 _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI \ 63 _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI
51 ), 64 )
52}; 65};
53 66
67#ifndef NO_ACTION_FUNCTION
54const uint16_t PROGMEM fn_actions[] = { 68const uint16_t PROGMEM fn_actions[] = {
55 [1] = ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click 69 [1] = ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
56 [2] = ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click 70 [2] = ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
57 [3] = ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click 71 [3] = ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
58 [4] = ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click 72 [4] = ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
59 [5] = ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click 73 [5] = ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
60 }; 74};
61 75#endif
62void matrix_init_user(void) {
63
64}
65
66void matrix_scan_user(void) {
67
68}
69
70bool process_record_user(uint16_t keycode, keyrecord_t *record) {
71 return true;
72}
73
74void led_set_user(uint8_t usb_led) {
75
76}
diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
index d8fe33f6c..0cc9a7b76 100644
--- a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
@@ -1,26 +1,11 @@
1# Build Options 1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in 2# change yes to no to disable
3# the appropriate keymap folder that will get included automatically
4# 3#
4AUDIO_ENABLE = no # Audio output
5RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
5 6
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 7ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
7MOUSEKEY_ENABLE = no # Mouse keys 8WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
8EXTRAKEY_ENABLE = yes # Audio control and System control
9CONSOLE_ENABLE = no # Console for debug
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = yes # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Disable RGB underlight
18RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
19SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
20TAP_DANCE_ENABLE = no
21
22ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
23WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
24 9
25 10
26ifeq ($(strip $(ISSI_ENABLE)), yes) 11ifeq ($(strip $(ISSI_ENABLE)), yes)
@@ -30,4 +15,3 @@ endif
30ifeq ($(strip $(WATCHDOG_ENABLE)), yes) 15ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
31 TMK_COMMON_DEFS += -DWATCHDOG_ENABLE 16 TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
32endif 17endif
33
diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/config.h b/keyboards/lfkeyboards/smk65/keymaps/iso/config.h
deleted file mode 100644
index 8893d122e..000000000
--- a/keyboards/lfkeyboards/smk65/keymaps/iso/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6// place overrides here
7
8#endif
diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c b/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c
index ebf085122..c93abfd34 100644
--- a/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c
+++ b/keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c
@@ -1,12 +1,25 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
1#include QMK_KEYBOARD_H 15#include QMK_KEYBOARD_H
2 16
3enum keymap_layout { 17// Defines names for use in layer keycodes and the keymap
4 VANILLA = 0, 18enum layer_names {
5 FUNC, 19 _BASE,
6 SETTINGS, 20 _FN
7}; 21};
8 22
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11 /* Keymap VANILLA: (Base Layer) Default Layer 24 /* Keymap VANILLA: (Base Layer) Default Layer
12 * ,------------------------------------------------------------.----. 25 * ,------------------------------------------------------------.----.
@@ -21,12 +34,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig | 34 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
22 * `-----------------------------------------------------------------' 35 * `-----------------------------------------------------------------'
23 */ 36 */
24 [VANILLA] = LAYOUT_iso( 37 [_BASE] = LAYOUT_65_iso(
25 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, \ 38 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
26 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, \ 39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
27 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP, \ 40 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
28 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ 41 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
29 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT \ 42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
30 ), 43 ),
31 44
32 /* Keymap VANILLA: Function Layer 45 /* Keymap VANILLA: Function Layer
@@ -42,35 +55,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig | 55 * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
43 * `-----------------------------------------------------------------' 56 * `-----------------------------------------------------------------'
44 */ 57 */
45 [FUNC] = LAYOUT_iso( 58 [_FN] = LAYOUT_65_iso(
46 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ 59 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14,
47 MU_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_TOG, \ 60 MU_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
48 AU_TOG, KC_FN1, KC_FN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, \ 61 AU_TOG, KC_FN1, KC_FN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD,
49 KC_FN5, _______, KC_FN2, KC_FN4, _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, \ 62 KC_FN5, _______, KC_FN2, KC_FN4, _______, _______, _______, _______, MU_TOG, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______,
50 _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI \ 63 _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI
51 ), 64 ),
52}; 65};
53 66
67#ifndef NO_ACTION_FUNCTION
54const uint16_t PROGMEM fn_actions[] = { 68const uint16_t PROGMEM fn_actions[] = {
55 [1] = ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click 69 [1] = ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
56 [2] = ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click 70 [2] = ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
57 [3] = ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click 71 [3] = ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
58 [4] = ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click 72 [4] = ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
59 [5] = ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click 73 [5] = ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
60 }; 74};
61 75#endif
62void matrix_init_user(void) {
63
64}
65
66void matrix_scan_user(void) {
67
68}
69
70bool process_record_user(uint16_t keycode, keyrecord_t *record) {
71 return true;
72}
73
74void led_set_user(uint8_t usb_led) {
75
76}
diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
index 312dfbc51..0cc9a7b76 100644
--- a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
+++ b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
@@ -1,26 +1,11 @@
1# Build Options 1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in 2# change yes to no to disable
3# the appropriate keymap folder that will get included automatically
4# 3#
5 4AUDIO_ENABLE = no # Audio output
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 5RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
7MOUSEKEY_ENABLE = no # Mouse keys
8EXTRAKEY_ENABLE = yes # Audio control and System control
9CONSOLE_ENABLE = yes # Console for debug
10COMMAND_ENABLE = yes # Commands for debug and configuration
11NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12# BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = no # Disable RGB underlight
18RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
19SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
20TAP_DANCE_ENABLE = no
21 6
22ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled 7ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
23WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms 8WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
24 9
25 10
26ifeq ($(strip $(ISSI_ENABLE)), yes) 11ifeq ($(strip $(ISSI_ENABLE)), yes)
@@ -30,21 +15,3 @@ endif
30ifeq ($(strip $(WATCHDOG_ENABLE)), yes) 15ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
31 TMK_COMMON_DEFS += -DWATCHDOG_ENABLE 16 TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
32endif 17endif
33
34
35# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
36# #
37# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
38# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
39# #
40# # Set to B, C or D
41# LFK_REV = D
42
43# ifeq ($(LFK_REV), B)
44# MCU = atmega32u4
45# else
46# MCU = at90usb1286
47# endif
48# OPT_DEFS += -DLFK_REV_$(LFK_REV)
49# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
50
diff --git a/keyboards/lfkeyboards/smk65/readme.md b/keyboards/lfkeyboards/smk65/readme.md
index 0d04ac5f7..50d52472b 100644
--- a/keyboards/lfkeyboards/smk65/readme.md
+++ b/keyboards/lfkeyboards/smk65/readme.md
@@ -1,14 +1,17 @@
1SMK65 1# SMK65
2===
3 2
465% layout based on Mat3o's Whitefox, but with support for SMK switches. 365% layout based on Mat3o's Whitefox, but with support for SMK switches.
5 4
6Keyboard Maintainer: [LFKeyboards](https://github.com/lfkeyboards) 5* Keyboard Maintainer: [LFKeyboards](https://github.com/lfkeyboards)
7Hardware Supported: SMK65 6* Hardware Supported: SMK65
8Hardware Availability: [LFKeyboards.com](https://www.lfkeyboards.com/) 7* Hardware Availability: [LFKeyboards.com](https://www.lfkeyboards.com/)
9 8
10Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
11 10
12 make lfkeyboards/smk65:default 11 make lfkeyboards/smk65:default
13 12
14See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file 13Flashing example for this keyboard:
14
15 make lfkeyboards/smk65:default:flash
16
17See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/lfkeyboards/smk65/config.h b/keyboards/lfkeyboards/smk65/revb/config.h
index deca087bc..0d4fe40f3 100644
--- a/keyboards/lfkeyboards/smk65/config.h
+++ b/keyboards/lfkeyboards/smk65/revb/config.h
@@ -1,31 +1,27 @@
1/* 1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com> 2Copyright 2020 LFKeyboards
3
4This program is free software: you can redistribute it and/or modify 3This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 4it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or 5the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version. 6(at your option) any later version.
8
9This program is distributed in the hope that it will be useful, 7This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of 8but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details. 10GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License 11You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 12along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 13*/
17 14
18#ifndef CONFIG_H 15#pragma once
19#define CONFIG_H
20 16
21#include "config_common.h" 17#include "config_common.h"
22 18
23#define VENDOR_ID 0xFEED 19/* USB Device descriptor parameter */
24#define PRODUCT_ID 0x6062 20#define VENDOR_ID 0x4C46 // "LF"
25#define DEVICE_VER 0x0001 21#define PRODUCT_ID 0x565B // "s65b"
22#define DEVICE_VER 0x0006
26#define MANUFACTURER LFKeyboards 23#define MANUFACTURER LFKeyboards
27#define PRODUCT SMK65v2 24#define PRODUCT SMK65v2
28#define DESCRIPTION QMK keyboard firmware for SMK65
29 25
30// RevA 26// RevA
31// #define DIODE_DIRECTION COL2ROW 27// #define DIODE_DIRECTION COL2ROW
@@ -66,13 +62,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
66/* define if matrix has ghost (lacks anti-ghosting diodes) */ 62/* define if matrix has ghost (lacks anti-ghosting diodes) */
67//#define MATRIX_HAS_GHOST 63//#define MATRIX_HAS_GHOST
68 64
69/* number of backlight levels */
70
71/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 65/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
72#define LOCKING_SUPPORT_ENABLE 66#define LOCKING_SUPPORT_ENABLE
73/* Locking resynchronize hack */ 67/* Locking resynchronize hack */
74#define LOCKING_RESYNC_ENABLE 68#define LOCKING_RESYNC_ENABLE
75 69
70/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
71 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
72 */
73//#define GRAVE_ESC_CTRL_OVERRIDE
74
76/* 75/*
77 * Force NKRO 76 * Force NKRO
78 * 77 *
@@ -95,54 +94,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
95//#define FORCE_NKRO 94//#define FORCE_NKRO
96 95
97/* 96/*
98 * Magic Key Options
99 *
100 * Magic keys are hotkey commands that allow control over firmware functions of
101 * the keyboard. They are best used in combination with the HID Listen program,
102 * found here: https://www.pjrc.com/teensy/hid_listen.html
103 *
104 * The options below allow the magic key functionality to be changed. This is
105 * useful if your keyboard/keypad is missing keys and you want magic key support.
106 *
107 */
108
109/* control how magic key switches layers */
110//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
111//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
112//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
113
114/* override magic key keymap */
115//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
116//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
117//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
118//#define MAGIC_KEY_HELP1 H
119//#define MAGIC_KEY_HELP2 SLASH
120//#define MAGIC_KEY_DEBUG D
121//#define MAGIC_KEY_DEBUG_MATRIX X
122//#define MAGIC_KEY_DEBUG_KBD K
123//#define MAGIC_KEY_DEBUG_MOUSE M
124//#define MAGIC_KEY_VERSION V
125//#define MAGIC_KEY_STATUS S
126//#define MAGIC_KEY_CONSOLE C
127//#define MAGIC_KEY_LAYER0_ALT1 ESC
128//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
129//#define MAGIC_KEY_LAYER0 0
130//#define MAGIC_KEY_LAYER1 1
131//#define MAGIC_KEY_LAYER2 2
132//#define MAGIC_KEY_LAYER3 3
133//#define MAGIC_KEY_LAYER4 4
134//#define MAGIC_KEY_LAYER5 5
135//#define MAGIC_KEY_LAYER6 6
136//#define MAGIC_KEY_LAYER7 7
137//#define MAGIC_KEY_LAYER8 8
138//#define MAGIC_KEY_LAYER9 9
139//#define MAGIC_KEY_BOOTLOADER PAUSE
140//#define MAGIC_KEY_LOCK CAPS
141//#define MAGIC_KEY_EEPROM E
142//#define MAGIC_KEY_NKRO N
143//#define MAGIC_KEY_SLEEP_LED Z
144
145/*
146 * Feature disable options 97 * Feature disable options
147 * These options are also useful to firmware size reduction. 98 * These options are also useful to firmware size reduction.
148 */ 99 */
@@ -160,4 +111,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
160//#define NO_ACTION_MACRO 111//#define NO_ACTION_MACRO
161//#define NO_ACTION_FUNCTION 112//#define NO_ACTION_FUNCTION
162 113
163#endif 114/* Bootmagic Lite key configuration */
115//#define BOOTMAGIC_LITE_ROW 0
116//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lfkeyboards/smk65/smk65.c b/keyboards/lfkeyboards/smk65/revb/revb.c
index d3654b880..7498febeb 100644
--- a/keyboards/lfkeyboards/smk65/smk65.c
+++ b/keyboards/lfkeyboards/smk65/revb/revb.c
@@ -1,3 +1,17 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
1#include <avr/sfr_defs.h> 15#include <avr/sfr_defs.h>
2#include <avr/timer_avr.h> 16#include <avr/timer_avr.h>
3#include <avr/wdt.h> 17#include <avr/wdt.h>
@@ -132,13 +146,6 @@ void reset_keyboard_kb(){
132 reset_keyboard(); 146 reset_keyboard();
133} 147}
134 148
135void led_set_kb(uint8_t usb_led)
136{
137 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
138
139 led_set_user(usb_led);
140}
141
142// LFK lighting info 149// LFK lighting info
143const uint8_t switch_matrices[] = {0, 1}; 150const uint8_t switch_matrices[] = {0, 1};
144const uint8_t rgb_matrices[] = {6, 7}; 151const uint8_t rgb_matrices[] = {6, 7};
diff --git a/keyboards/lfkeyboards/smk65/revb/revb.h b/keyboards/lfkeyboards/smk65/revb/revb.h
new file mode 100644
index 000000000..3d3e5181f
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revb/revb.h
@@ -0,0 +1,134 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#pragma once
16
17/* if the kb.h file exists (because we're running from qmkbuilder) include it */
18#ifdef __has_include
19#if __has_include("kb.h")
20#include "kb.h"
21#endif
22#endif
23
24#include "quantum.h"
25#include "matrix.h"
26#include <avr/sfr_defs.h>
27
28#ifndef cbi
29#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
30#endif
31
32#ifndef sbi
33#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
34#endif
35
36
37typedef struct RGB_Color {
38 uint16_t red;
39 uint16_t green;
40 uint16_t blue;
41} RGB_Color;
42
43typedef struct Layer_Info {
44 uint32_t layer;
45 uint32_t mask;
46 RGB_Color color;
47} Layer_Info;
48
49extern const uint32_t layer_count;
50extern const Layer_Info layer_info[];
51
52enum action_functions {
53 LFK_CLEAR = 0, // Resets all layers
54 LFK_ESC_TILDE, // esc+lshift = ~
55 LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom
56 LFK_CLICK_TOGGLE, // Adjusts click duration
57 LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency
58 LFK_CLICK_FREQ_LOWER, // Adjusts click frequency
59 LFK_CLICK_TIME_LONGER, // Adjusts click duration
60 LFK_CLICK_TIME_SHORTER, // Adjusts click duration
61 LFK_DEBUG_SETTINGS, // prints LED and click settings to HID
62 LFK_LED_TEST // cycles through switch and RGB LEDs
63};
64
65#define CLICK_HZ 500
66#define CLICK_MS 2
67#define CLICK_ENABLED 0
68
69void reset_keyboard_kb(void);
70void click(uint16_t freq, uint16_t duration);
71
72// readability
73#define ___ KC_NO
74
75/* Vanilla Keymap */
76// This a shortcut to help you visually see your layout.
77/*
78* ,-------------------------------------------------------------------------------.
79* | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1G |
80* |-------------------------------------------------------------------------------|
81* | 21 | 22 |23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2F | 2G |
82* |-------------------------------------------------------------------------------|
83* | 31 | 32 |33 | 34 | 35 | 36 | 37 | 38 | 39 | 3A | 3B | 3C | 3F | 3G |
84* |-------------------------------------------------------------------------------|
85* | 41 | 42 |43 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C | 4D | 4F | 4G |
86* |-------------------------------------------------------------------------------|
87* | 51 | 52 | 53 | 57 | 5A | 5B | 5C | 5D | 5E | 3E | 4E |
88* `-------------------------------------------------------------------------------'
89*/
90// The first section contains all of the arguements
91// The second converts the arguments into a two-dimensional array
92#define LAYOUT_65_ansi( \
93 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, k1G, \
94 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
95 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \
96 k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
97 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
98) { \
99 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F, k1G }, \
100 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
101 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
102 { k41, ___, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
103 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
104}
105
106#define LAYOUT_65_iso( \
107 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, k1G, \
108 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2G, \
109 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k2F, k3G, \
110 k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
111 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
112) { \
113 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F, k1G }, \
114 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
115 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
116 { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
117 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
118}
119
120// TODO: remove backwards compatibility with previous keymaps
121#define LAYOUT LAYOUT_65_ansi
122#define LAYOUT_iso( \
123 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \
124 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
125 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \
126 k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
127 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
128) { \
129 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, ___, k1G }, \
130 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
131 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
132 { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
133 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
134}
diff --git a/keyboards/lfkeyboards/smk65/revb/rules.mk b/keyboards/lfkeyboards/smk65/revb/rules.mk
new file mode 100644
index 000000000..9e8237241
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revb/rules.mk
@@ -0,0 +1,16 @@
1# MCU name
2MCU = at90usb646
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
11RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
12RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
13AUDIO_ENABLE = no # Audio output
14
15# Extra source files for IS3731 lighting
16SRC += TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/smk65/revf/config.h b/keyboards/lfkeyboards/smk65/revf/config.h
new file mode 100644
index 000000000..d2cb5226d
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revf/config.h
@@ -0,0 +1,134 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#pragma once
16
17#include "config_common.h"
18
19/* USB Device descriptor parameter */
20#define VENDOR_ID 0x4C46 // "LF"
21#define PRODUCT_ID 0x565F // "s65f"
22#define DEVICE_VER 0x0006
23#define MANUFACTURER LFKeyboards
24#define PRODUCT SMK65v2
25
26/* key matrix size */
27#define MATRIX_ROWS 5
28#define MATRIX_COLS 16
29
30/*
31 * Keyboard Matrix Assignments
32 *
33 * Change this to how you wired your keyboard
34 * COLS: AVR pins used for columns, left to right
35 * ROWS: AVR pins used for rows, top to bottom
36 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
37 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
38 *
39 */
40#define MATRIX_ROW_PINS { B0, B3, B2, B1, F5 }
41#define MATRIX_COL_PINS { E6, F4, B7, D5, D3, D2, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 }
42#define UNUSED_PINS
43
44/* COL2ROW, ROW2COL */
45#define DIODE_DIRECTION COL2ROW
46
47//#define RGB_DI_PIN E2
48//#ifdef RGB_DI_PIN
49# define RGBLED_NUM 28
50//# define RGBLIGHT_HUE_STEP 8
51//# define RGBLIGHT_SAT_STEP 8
52//# define RGBLIGHT_VAL_STEP 8
53//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
54//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
55/*== all animations enable ==*/
56//# define RGBLIGHT_ANIMATIONS
57/*== or choose animations ==*/
58//# define RGBLIGHT_EFFECT_BREATHING
59//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
60//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
61//# define RGBLIGHT_EFFECT_SNAKE
62//# define RGBLIGHT_EFFECT_KNIGHT
63//# define RGBLIGHT_EFFECT_CHRISTMAS
64//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
65//# define RGBLIGHT_EFFECT_RGB_TEST
66//# define RGBLIGHT_EFFECT_ALTERNATING
67/*== customize breathing effect ==*/
68/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
69//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
70/*==== use exp() and sin() ====*/
71//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
72//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
73//#endif
74
75/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
76#define DEBOUNCE 5
77
78/* define if matrix has ghost (lacks anti-ghosting diodes) */
79//#define MATRIX_HAS_GHOST
80
81/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
82#define LOCKING_SUPPORT_ENABLE
83/* Locking resynchronize hack */
84#define LOCKING_RESYNC_ENABLE
85
86/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
87 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
88 */
89//#define GRAVE_ESC_CTRL_OVERRIDE
90
91/*
92 * Force NKRO
93 *
94 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
95 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
96 * makefile for this to work.)
97 *
98 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
99 * until the next keyboard reset.
100 *
101 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
102 * fully operational during normal computer usage.
103 *
104 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
105 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
106 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
107 * power-up.
108 *
109 */
110//#define FORCE_NKRO
111
112/*
113 * Feature disable options
114 * These options are also useful to firmware size reduction.
115 */
116
117/* disable debug print */
118//#define NO_DEBUG
119
120/* disable print */
121//#define NO_PRINT
122
123/* disable action features */
124//#define NO_ACTION_LAYER
125//#define NO_ACTION_TAPPING
126//#define NO_ACTION_ONESHOT
127
128/* disable these deprecated features by default */
129#define NO_ACTION_MACRO
130#define NO_ACTION_FUNCTION
131
132/* Bootmagic Lite key configuration */
133//#define BOOTMAGIC_LITE_ROW 0
134//#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file
diff --git a/keyboards/lfkeyboards/smk65/revf/keymaps/via/keymap.c b/keyboards/lfkeyboards/smk65/revf/keymaps/via/keymap.c
new file mode 100644
index 000000000..ca2fe748a
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revf/keymaps/via/keymap.c
@@ -0,0 +1,46 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#include QMK_KEYBOARD_H
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [0] = LAYOUT_all(
19 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
20 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
21 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_PGUP,
22 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
23 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
24 ),
25 [1] = LAYOUT_all(
26 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15,
27 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
31 ),
32 [2] = LAYOUT_all(
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
38 ),
39 [3] = LAYOUT_all(
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
45 )
46};
diff --git a/keyboards/lfkeyboards/smk65/revf/keymaps/via/rules.mk b/keyboards/lfkeyboards/smk65/revf/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revf/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/lfkeyboards/smk65/revf/revf.h b/keyboards/lfkeyboards/smk65/revf/revf.h
new file mode 100644
index 000000000..35238fdc7
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revf/revf.h
@@ -0,0 +1,71 @@
1/*
2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#pragma once
16
17#include "quantum.h"
18
19// readability
20#define ___ KC_NO
21
22/* This is a shortcut to help you visually see your layout.
23 *
24 * The first section contains all of the arguments representing the physical
25 * layout of the board and position of the keys.
26 *
27 * The second converts the arguments into a two-dimensional array which
28 * represents the switch matrix.
29 */
30
31#define LAYOUT_65_ansi( \
32 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, k1G, \
33 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
34 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \
35 k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
36 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
37) { \
38 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F, k1G }, \
39 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
40 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
41 { k41, ___, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
42 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
43}
44
45#define LAYOUT_65_iso( \
46 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, k1G, \
47 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2G, \
48 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k2F, k3G, \
49 k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
50 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
51) { \
52 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F, k1G }, \
53 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
54 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, ___, k3G }, \
55 { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
56 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
57}
58
59#define LAYOUT_all( \
60 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, \
61 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
62 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, k3G, \
63 k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
64 k51, k52, k53, k55, k57, k59, k5B, k5C, k5D, k5E, k3E, k4E \
65) { \
66 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G }, \
67 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
68 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G }, \
69 { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
70 { k51, k52, k53, ___, k55, ___, k57, ___, k59, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
71}
diff --git a/keyboards/lfkeyboards/smk65/revf/rules.mk b/keyboards/lfkeyboards/smk65/revf/rules.mk
new file mode 100644
index 000000000..1d20f1e28
--- /dev/null
+++ b/keyboards/lfkeyboards/smk65/revf/rules.mk
@@ -0,0 +1,11 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = halfkay
6
7# Build Options
8# change yes to no to disable
9#
10RGBLIGHT_ENABLE = no # TODO: Enable keyboard RGB underglow
11RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
diff --git a/keyboards/lfkeyboards/smk65/rules.mk b/keyboards/lfkeyboards/smk65/rules.mk
index d3f009e4d..26bf8cd8a 100644
--- a/keyboards/lfkeyboards/smk65/rules.mk
+++ b/keyboards/lfkeyboards/smk65/rules.mk
@@ -1,15 +1,20 @@
1# MCU name 1# Build Options
2MCU = at90usb646 2# change yes to no to disable
3#
4BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
5MOUSEKEY_ENABLE = yes # Mouse keys
6EXTRAKEY_ENABLE = yes # Audio control and System control
7CONSOLE_ENABLE = yes # Console for debug
8COMMAND_ENABLE = no # Commands for debug and configuration
9# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
10SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
11# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12NKRO_ENABLE = yes # USB Nkey Rollover
13BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
14RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
15BLUETOOTH_ENABLE = no # Enable Bluetooth
16AUDIO_ENABLE = no # Audio output
3 17
4# Bootloader selection 18DEFAULT_FOLDER = lfkeyboards/smk65/revb
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu
13 19
14# Extra source files for IS3731 lighting 20LAYOUTS = 65_ansi 65_iso
15SRC = TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/smk65/smk65.h b/keyboards/lfkeyboards/smk65/smk65.h
index 4fe5300c0..534b763de 100644
--- a/keyboards/lfkeyboards/smk65/smk65.h
+++ b/keyboards/lfkeyboards/smk65/smk65.h
@@ -1,107 +1,23 @@
1#ifndef SMK65_H 1/*
2#define SMK65_H 2Copyright 2020 LFKeyboards
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
3 14
4/* if the kb.h file exists (because we're running from qmkbuilder) include it */ 15#pragma once
5#ifdef __has_include
6#if __has_include("kb.h")
7#include "kb.h"
8#endif
9#endif
10 16
11#include "quantum.h" 17#include "quantum.h"
12#include "matrix.h"
13#include <avr/sfr_defs.h>
14
15#ifndef cbi
16#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
17#endif
18 18
19#ifndef sbi 19#ifdef KEYBOARD_lfkeyboards_smk65_revb
20#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) 20 #include "revb.h"
21#elif KEYBOARD_lfkeyboards_smk65_revf
22 #include "revf.h"
21#endif 23#endif
22
23
24typedef struct RGB_Color {
25 uint16_t red;
26 uint16_t green;
27 uint16_t blue;
28} RGB_Color;
29
30typedef struct Layer_Info {
31 uint32_t layer;
32 uint32_t mask;
33 RGB_Color color;
34} Layer_Info;
35
36extern const uint32_t layer_count;
37extern const Layer_Info layer_info[];
38
39enum action_functions {
40 LFK_CLEAR = 0, // Resets all layers
41 LFK_ESC_TILDE, // esc+lshift = ~
42 LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom
43 LFK_CLICK_TOGGLE, // Adjusts click duration
44 LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency
45 LFK_CLICK_FREQ_LOWER, // Adjusts click frequency
46 LFK_CLICK_TIME_LONGER, // Adjusts click duration
47 LFK_CLICK_TIME_SHORTER, // Adjusts click duration
48 LFK_DEBUG_SETTINGS, // prints LED and click settings to HID
49 LFK_LED_TEST // cycles through switch and RGB LEDs
50};
51
52#define CLICK_HZ 500
53#define CLICK_MS 2
54#define CLICK_ENABLED 0
55
56void reset_keyboard_kb(void);
57void click(uint16_t freq, uint16_t duration);
58
59// readability
60#define ___ KC_NO
61
62/* Vanilla Keymap */
63// This a shortcut to help you visually see your layout.
64/*
65* ,-------------------------------------------------------------------------------.
66* | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1G |
67* |-------------------------------------------------------------------------------|
68* | 21 | 22 |23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2F | 2G |
69* |-------------------------------------------------------------------------------|
70* | 31 | 32 |33 | 34 | 35 | 36 | 37 | 38 | 39 | 3A | 3B | 3C | 3F | 3G |
71* |-------------------------------------------------------------------------------|
72* | 41 | 42 |43 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C | 4D | 4F | 4G |
73* |-------------------------------------------------------------------------------|
74* | 51 | 52 | 53 | 57 | 5A | 5B | 5C | 5D | 5E | 3E | 4E |
75* `-------------------------------------------------------------------------------'
76*/
77// The first section contains all of the arguements
78// The second converts the arguments into a two-dimensional array
79#define LAYOUT( \
80 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, k1G, \
81 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
82 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \
83 k41, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
84 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
85) { \
86 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F, k1G }, \
87 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
88 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
89 { k41, ___, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
90 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
91}
92
93#define LAYOUT_iso( \
94 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \
95 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
96 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \
97 k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
98 k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
99) { \
100 { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, ___, k1G }, \
101 { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
102 { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
103 { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G }, \
104 { k51, k52, k53, ___, ___, ___, k57, ___, ___, ___, k5B, k5C, k5D, k5E, ___, ___ }, \
105}
106
107#endif //SMK65_H