Keyboard: Add support for LFK65-HS - a hotswap 65% (#3009)
* Add support for LFK65-HS - a hotswap 65% * Add info.json for LFK65-HS * Clean up for new build system, remove uneeded code. * LFK65-HS cleanup. Fixed LAYOUT macros, etc
This commit is contained in:
		
							parent
							
								
									11773a5546
								
							
						
					
					
						commit
						7e9a7af672
					
				
					 8 changed files with 381 additions and 0 deletions
				
			
		
							
								
								
									
										141
									
								
								keyboards/lfkeyboards/lfk65_hs/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								keyboards/lfkeyboards/lfk65_hs/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,141 @@
 | 
			
		|||
#ifndef CONFIG_H
 | 
			
		||||
#define CONFIG_H
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
#define VENDOR_ID       0xFEED
 | 
			
		||||
#define PRODUCT_ID      0x6064
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    LFKeyboards
 | 
			
		||||
#define PRODUCT         LFK65_HS
 | 
			
		||||
#define DESCRIPTION     QMK keyboard firmware for LFK65_HS
 | 
			
		||||
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
#define MATRIX_ROWS 5
 | 
			
		||||
#define MATRIX_COLS 16
 | 
			
		||||
#define MATRIX_ROW_PINS {B0, B3, B2, B1, F5}
 | 
			
		||||
#define MATRIX_COL_PINS {E6, F4, B7, D5, D3, D2, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4}
 | 
			
		||||
#define UNUSED_PINS {}
 | 
			
		||||
#define RGBLED_NUM 20     // Number of LEDs
 | 
			
		||||
 | 
			
		||||
#define QMK_ESC_OUTPUT E6 // usually COL
 | 
			
		||||
#define QMK_ESC_INPUT B0 // usually ROW
 | 
			
		||||
#define QMK_LED F1
 | 
			
		||||
// #define QMK_SPEAKER C6
 | 
			
		||||
 | 
			
		||||
#define BACKLIGHT_LEVELS 8
 | 
			
		||||
#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255}
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN C7  // Have to set it to something to get the ws2812 code to compile
 | 
			
		||||
#define RGBLED_NUM 20     // Number of LEDs
 | 
			
		||||
#define RGBLIGHT_ANIMATIONS
 | 
			
		||||
#define RGBLIGHT_HUE_STEP 10
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 17
 | 
			
		||||
#define RGBLIGHT_VAL_STEP 17
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCING_DELAY 5
 | 
			
		||||
 | 
			
		||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
 | 
			
		||||
//#define MATRIX_HAS_GHOST
 | 
			
		||||
 | 
			
		||||
/* number of backlight levels */
 | 
			
		||||
 | 
			
		||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
			
		||||
#define LOCKING_SUPPORT_ENABLE
 | 
			
		||||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Force NKRO
 | 
			
		||||
 *
 | 
			
		||||
 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
 | 
			
		||||
 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
 | 
			
		||||
 * makefile for this to work.)
 | 
			
		||||
 *
 | 
			
		||||
 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
 | 
			
		||||
 * until the next keyboard reset.
 | 
			
		||||
 *
 | 
			
		||||
 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
 | 
			
		||||
 * fully operational during normal computer usage.
 | 
			
		||||
 *
 | 
			
		||||
 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
 | 
			
		||||
 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
 | 
			
		||||
 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
 | 
			
		||||
 * power-up.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
//#define FORCE_NKRO
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Magic Key Options
 | 
			
		||||
 *
 | 
			
		||||
 * Magic keys are hotkey commands that allow control over firmware functions of
 | 
			
		||||
 * the keyboard. They are best used in combination with the HID Listen program,
 | 
			
		||||
 * found here: https://www.pjrc.com/teensy/hid_listen.html
 | 
			
		||||
 *
 | 
			
		||||
 * The options below allow the magic key functionality to be changed. This is
 | 
			
		||||
 * useful if your keyboard/keypad is missing keys and you want magic key support.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* key combination for magic key command */
 | 
			
		||||
#define IS_COMMAND() ( \
 | 
			
		||||
    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
/* control how magic key switches layers */
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
 | 
			
		||||
 | 
			
		||||
/* override magic key keymap */
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
 | 
			
		||||
//#define MAGIC_KEY_HELP1          H
 | 
			
		||||
//#define MAGIC_KEY_HELP2          SLASH
 | 
			
		||||
//#define MAGIC_KEY_DEBUG          D
 | 
			
		||||
//#define MAGIC_KEY_DEBUG_MATRIX   X
 | 
			
		||||
//#define MAGIC_KEY_DEBUG_KBD      K
 | 
			
		||||
//#define MAGIC_KEY_DEBUG_MOUSE    M
 | 
			
		||||
//#define MAGIC_KEY_VERSION        V
 | 
			
		||||
//#define MAGIC_KEY_STATUS         S
 | 
			
		||||
//#define MAGIC_KEY_CONSOLE        C
 | 
			
		||||
//#define MAGIC_KEY_LAYER0_ALT1    ESC
 | 
			
		||||
//#define MAGIC_KEY_LAYER0_ALT2    GRAVE
 | 
			
		||||
//#define MAGIC_KEY_LAYER0         0
 | 
			
		||||
//#define MAGIC_KEY_LAYER1         1
 | 
			
		||||
//#define MAGIC_KEY_LAYER2         2
 | 
			
		||||
//#define MAGIC_KEY_LAYER3         3
 | 
			
		||||
//#define MAGIC_KEY_LAYER4         4
 | 
			
		||||
//#define MAGIC_KEY_LAYER5         5
 | 
			
		||||
//#define MAGIC_KEY_LAYER6         6
 | 
			
		||||
//#define MAGIC_KEY_LAYER7         7
 | 
			
		||||
//#define MAGIC_KEY_LAYER8         8
 | 
			
		||||
//#define MAGIC_KEY_LAYER9         9
 | 
			
		||||
//#define MAGIC_KEY_BOOTLOADER     PAUSE
 | 
			
		||||
//#define MAGIC_KEY_LOCK           CAPS
 | 
			
		||||
//#define MAGIC_KEY_EEPROM         E
 | 
			
		||||
//#define MAGIC_KEY_NKRO           N
 | 
			
		||||
//#define MAGIC_KEY_SLEEP_LED      Z
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* disable debug print */
 | 
			
		||||
//#define NO_DEBUG
 | 
			
		||||
 | 
			
		||||
/* disable print */
 | 
			
		||||
//#define NO_PRINT
 | 
			
		||||
 | 
			
		||||
/* disable action features */
 | 
			
		||||
//#define NO_ACTION_LAYER
 | 
			
		||||
//#define NO_ACTION_TAPPING
 | 
			
		||||
//#define NO_ACTION_ONESHOT
 | 
			
		||||
//#define NO_ACTION_MACRO
 | 
			
		||||
//#define NO_ACTION_FUNCTION
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										11
									
								
								keyboards/lfkeyboards/lfk65_hs/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								keyboards/lfkeyboards/lfk65_hs/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
{
 | 
			
		||||
  "keyboard_name": "LFK65-HS",
 | 
			
		||||
  "url": "https://github.com/lfkeyboards",
 | 
			
		||||
  "maintainer": "LFKeyboards",
 | 
			
		||||
  "width": 16,
 | 
			
		||||
  "height": 5,
 | 
			
		||||
  "layouts": {
 | 
			
		||||
    "LAYOUT_all": {"layout":[{"label": "~","x": 0,"y": 0},{"label": "!","x": 1,"y": 0},{"label": "@","x": 2,"y": 0},{"label": "#","x": 3,"y": 0},{"label": "$","x": 4,"y": 0},{"label": "%","x": 5,"y": 0},{"label": "^","x": 6,"y": 0},{"label": "&","x": 7,"y": 0},{"label": "*","x": 8,"y": 0},{"label": "(","x": 9,"y": 0},{"label": ")","x": 10,"y": 0},{"label": "_","x": 11,"y": 0},{"label": "+","x": 12,"y": 0},{"label": "","x": 13,"y": 0,"w": 1},{"label": "","x": 14,"y": 0,"w": 1},{"label": "Home","x": 15,"y": 0},{"label": "Tab","x": 0,"y": 1,"w": 1.5},{"label": "Q","x": 1.5,"y": 1},{"label": "W","x": 2.5,"y": 1},{"label": "E","x": 3.5,"y": 1},{"label": "R","x": 4.5,"y": 1},{"label": "T","x": 5.5,"y": 1},{"label": "Y","x": 6.5,"y": 1},{"label": "U","x": 7.5,"y": 1},{"label": "I","x": 8.5,"y": 1},{"label": "O","x": 9.5,"y": 1},{"label": "P","x": 10.5,"y": 1},{"label": "{","x": 11.5,"y": 1},{"label": "}","x": 12.5,"y": 1},{"label": "|","x": 13.5,"y": 1,"w": 1.5},{"label": "Page Up","x": 15,"y": 1},{"label": "Caps Lock","x": 0,"y": 2,"w": 1.75},{"label": "A","x": 1.75,"y": 2},{"label": "S","x": 2.75,"y": 2},{"label": "D","x": 3.75,"y": 2},{"label": "F","x": 4.75,"y": 2},{"label": "G","x": 5.75,"y": 2},{"label": "H","x": 6.75,"y": 2},{"label": "J","x": 7.75,"y": 2},{"label": "K","x": 8.75,"y": 2},{"label": "L","x": 9.75,"y": 2},{"label": ":","x": 10.75,"y": 2},{"label": "\"","x": 11.75,"y": 2},{"label": "","x": 12.75,"y": 2},{"label": "Enter","x": 13.75,"y": 2,"w": 1.25},{"label": "Page Down","x": 15,"y": 2},{"label": "Shift","x": 0,"y": 3,"w": 1.25},{"label": "","x": 1.25,"y": 3},{"label": "Z","x": 2.25,"y": 3},{"label": "X","x": 3.25,"y": 3},{"label": "C","x": 4.25,"y": 3},{"label": "V","x": 5.25,"y": 3},{"label": "B","x": 6.25,"y": 3},{"label": "N","x": 7.25,"y": 3},{"label": "M","x": 8.25,"y": 3},{"label": "<","x": 9.25,"y": 3},{"label": ">","x": 10.25,"y": 3},{"label": "?","x": 11.25,"y": 3},{"label": "Shift","x": 12.25,"y": 3,"w": 1.75},{"label": "↑","x": 14,"y": 3},{"label": "End","x": 15,"y": 3},{"label": "Ctrl","x": 0,"y": 4,"w": 1.25},{"label": "Win","x": 1.25,"y": 4,"w": 1.25},{"label": "Alt","x": 2.5,"y": 4,"w": 1.25},{"x": 3.75,"y": 4,"w": 6.25},{"label": "Alt","x": 10,"y": 4},{"label": "Fn","x": 11,"y": 4},{"label": "Ctrl","x": 12,"y": 4},{"label": "←","x": 13,"y": 4},{"label": "↓","x": 14,"y": 4},{"label": "→","x": 15,"y": 4}]},
 | 
			
		||||
    "LAYOUT_ansi": {"layout":[{"label": "~","x": 0,"y": 0},{"label": "!","x": 1,"y": 0},{"label": "@","x": 2,"y": 0},{"label": "#","x": 3,"y": 0},{"label": "$","x": 4,"y": 0},{"label": "%","x": 5,"y": 0},{"label": "^","x": 6,"y": 0},{"label": "&","x": 7,"y": 0},{"label": "*","x": 8,"y": 0},{"label": "(","x": 9,"y": 0},{"label": ")","x": 10,"y": 0},{"label": "_","x": 11,"y": 0},{"label": "+","x": 12,"y": 0},{"label": "Backspace","x": 13,"y": 0,"w": 2},{"label": "Home","x": 15,"y": 0},{"label": "Tab","x": 0,"y": 1,"w": 1.5},{"label": "Q","x": 1.5,"y": 1},{"label": "W","x": 2.5,"y": 1},{"label": "E","x": 3.5,"y": 1},{"label": "R","x": 4.5,"y": 1},{"label": "T","x": 5.5,"y": 1},{"label": "Y","x": 6.5,"y": 1},{"label": "U","x": 7.5,"y": 1},{"label": "I","x": 8.5,"y": 1},{"label": "O","x": 9.5,"y": 1},{"label": "P","x": 10.5,"y": 1},{"label": "{","x": 11.5,"y": 1},{"label": "}","x": 12.5,"y": 1},{"label": "|","x": 13.5,"y": 1,"w": 1.5},{"label": "Page Up","x": 15,"y": 1},{"label": "Caps Lock","x": 0,"y": 2,"w": 1.75},{"label": "A","x": 1.75,"y": 2},{"label": "S","x": 2.75,"y": 2},{"label": "D","x": 3.75,"y": 2},{"label": "F","x": 4.75,"y": 2},{"label": "G","x": 5.75,"y": 2},{"label": "H","x": 6.75,"y": 2},{"label": "J","x": 7.75,"y": 2},{"label": "K","x": 8.75,"y": 2},{"label": "L","x": 9.75,"y": 2},{"label": ":","x": 10.75,"y": 2},{"label": "\"","x": 11.75,"y": 2},{"label": "Enter","x": 12.75,"y": 2,"w": 2.25},{"label": "Page Down","x": 15,"y": 2},{"label": "Shift","x": 0,"y": 3,"w": 2.25},{"label": "Z","x": 2.25,"y": 3},{"label": "X","x": 3.25,"y": 3},{"label": "C","x": 4.25,"y": 3},{"label": "V","x": 5.25,"y": 3},{"label": "B","x": 6.25,"y": 3},{"label": "N","x": 7.25,"y": 3},{"label": "M","x": 8.25,"y": 3},{"label": "<","x": 9.25,"y": 3},{"label": ">","x": 10.25,"y": 3},{"label": "?","x": 11.25,"y": 3},{"label": "Shift","x": 12.25,"y": 3,"w": 1.75},{"label": "↑","x": 14,"y": 3},{"label": "End","x": 15,"y": 3},{"label": "Ctrl","x": 0,"y": 4,"w": 1.25},{"label": "Win","x": 1.25,"y": 4,"w": 1.25},{"label": "Alt","x": 2.5,"y": 4,"w": 1.25},{"x": 3.75,"y": 4,"w": 6.25},{"label": "Alt","x": 10,"y": 4},{"label": "Fn","x": 11,"y": 4},{"label": "Ctrl","x": 12,"y": 4},{"label": "←","x": 13,"y": 4},{"label": "↓","x": 14,"y": 4},{"label": "→","x": 15,"y": 4}]}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										79
									
								
								keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
//Define a shorter 'transparent' key code to make the keymaps more compact
 | 
			
		||||
#define KC_TR KC_TRNS
 | 
			
		||||
 | 
			
		||||
enum keymap_layout {
 | 
			
		||||
    BASE = 0,
 | 
			
		||||
    FUNC,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// #define uint16_t int
 | 
			
		||||
// #define uint8_t int
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
[BASE] = LAYOUT_ansi(
 | 
			
		||||
  /* Keymap VANILLA: (Base Layer) Default Layer
 | 
			
		||||
   * ,------------------------------------------------------------.----.
 | 
			
		||||
   * |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backspa| Ins|
 | 
			
		||||
   * |------------------------------------------------------------|----|
 | 
			
		||||
   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     \| Del|
 | 
			
		||||
   * |------------------------------------------------------------|----|
 | 
			
		||||
   * |CAPS    |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return |PgUp|
 | 
			
		||||
   * |------------------------------------------------------------|----|
 | 
			
		||||
   * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift  |Up |PgDn|
 | 
			
		||||
   * |-----------------------------------------------------------------|
 | 
			
		||||
   * |Ctrl|Win |Alt |       Space         |Alt |Ctrl|Func|Lft| Dn |Rig |
 | 
			
		||||
   * `-----------------------------------------------------------------'
 | 
			
		||||
   */
 | 
			
		||||
    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,
 | 
			
		||||
    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,
 | 
			
		||||
    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,
 | 
			
		||||
    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,
 | 
			
		||||
    KC_LCTL, KC_LGUI, KC_LALT,         KC_SPC,       KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN,  KC_RGHT),
 | 
			
		||||
 | 
			
		||||
[FUNC] = LAYOUT_ansi(
 | 
			
		||||
   /*Keymap VANILLA: Function Layer
 | 
			
		||||
   * ,------------------------------------------------------------.----.
 | 
			
		||||
   * |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backspa| Ins|
 | 
			
		||||
   * |------------------------------------------------------------|----|
 | 
			
		||||
   * |MuMode | |  |  |E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     \| Del|
 | 
			
		||||
   * |------------------------------------------------------------|----|
 | 
			
		||||
   * |AudTgl|Hz+|MS+| |  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return |PgUp|
 | 
			
		||||
   * |------------------------------------------------------------|----|
 | 
			
		||||
   * |ClickTgl|Hz-|MS-|| C|  V|  B| N|MuTgl|  ,|  .|  /|Shift |Up |PgDn|
 | 
			
		||||
   * |-----------------------------------------------------------------|
 | 
			
		||||
   * |Ctrl|Win |Alt |       Space         |Alt |Ctrl|Func|Lft| Dn |Rig |
 | 
			
		||||
   * `-----------------------------------------------------------------'
 | 
			
		||||
   */
 | 
			
		||||
    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,
 | 
			
		||||
    MU_MOD, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,     KC_TR,  RGB_TOG,
 | 
			
		||||
    AU_TOG,  KC_FN1,KC_FN3, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,           RESET,  RGB_MOD,
 | 
			
		||||
    KC_FN5,    KC_FN2,KC_FN4, KC_TR, KC_TR, KC_TR, KC_TR, MU_TOG, RGB_VAD, RGB_VAI, KC_TR, KC_TR,        RGB_HUI,  KC_TR,
 | 
			
		||||
    KC_TR, KC_TR, KC_TR,         KC_TR,       KC_TR, KC_TR, KC_TR, RGB_SAD, RGB_HUD,  RGB_SAI),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
      }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_user(uint8_t usb_led) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										0
									
								
								keyboards/lfkeyboards/lfk65_hs/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								keyboards/lfkeyboards/lfk65_hs/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										34
									
								
								keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
#include <avr/sfr_defs.h>
 | 
			
		||||
#include <avr/timer_avr.h>
 | 
			
		||||
#include <avr/wdt.h>
 | 
			
		||||
#include "lfk65_hs.h"
 | 
			
		||||
#include "keymap.h"
 | 
			
		||||
 | 
			
		||||
void matrix_init_kb(void)
 | 
			
		||||
{
 | 
			
		||||
    matrix_init_user();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_kb(void)
 | 
			
		||||
{
 | 
			
		||||
    matrix_scan_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
 | 
			
		||||
{
 | 
			
		||||
    if (keycode == RESET) {
 | 
			
		||||
        reset_keyboard_kb();
 | 
			
		||||
    } else {
 | 
			
		||||
    }
 | 
			
		||||
    return process_record_user(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void reset_keyboard_kb(){
 | 
			
		||||
#ifdef WATCHDOG_ENABLE
 | 
			
		||||
    MCUSR = 0;
 | 
			
		||||
    wdt_disable();
 | 
			
		||||
    wdt_reset();
 | 
			
		||||
#endif
 | 
			
		||||
    reset_keyboard();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
#ifndef LFK65_HS_H
 | 
			
		||||
#define LFK65_HS_H
 | 
			
		||||
 | 
			
		||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
 | 
			
		||||
#ifdef __has_include
 | 
			
		||||
#if __has_include("kb.h")
 | 
			
		||||
#include "kb.h"
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
#include "matrix.h"
 | 
			
		||||
#include <avr/sfr_defs.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
#ifndef cbi
 | 
			
		||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef sbi
 | 
			
		||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void reset_keyboard_kb(void);
 | 
			
		||||
 | 
			
		||||
/* All Keymap - contains every possible switch
 | 
			
		||||
* ,-------------------------------------------------------------------------------.
 | 
			
		||||
* | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | 1G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 21  | 22 |23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D |    2F   | 2G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 31   | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 3A | 3B | 3C |      3F    | 3G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 41     | 42 | 43 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C |    4D    | 4F | 4G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 51  |  52  | 53  |              57        | 5A | 5B | 5C | 5D |  5E | 3E | 4E |
 | 
			
		||||
* `-------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
// The first section contains all of the arguements
 | 
			
		||||
// The second converts the arguments into a two-dimensional array
 | 
			
		||||
#define LAYOUT_all( \
 | 
			
		||||
    k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, \
 | 
			
		||||
    k21,   k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,    k2F, k2G, \
 | 
			
		||||
    k31,    k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, K3D,   k3F, k3G, \
 | 
			
		||||
    k41, k42, k43, k44,  k45, k46, k47, k48, k49, k4A, k4B, k4C,     k4D, k4F, k4G, \
 | 
			
		||||
    k51, k52, k53,              k57,                   k5B, k5C, k5D, k5E, k3E, k4E \
 | 
			
		||||
) { \
 | 
			
		||||
    {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G}, \
 | 
			
		||||
    {k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, KC_NO, k2F, k2G}, \
 | 
			
		||||
    {k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G}, \
 | 
			
		||||
    {k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G}, \
 | 
			
		||||
    {k51, k52, k53, KC_NO, KC_NO, KC_NO, k57, KC_NO, KC_NO, KC_NO, k5B, k5C, k5D, k5E, KC_NO, KC_NO} \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ANSI Keymap
 | 
			
		||||
* ,-------------------------------------------------------------------------------.
 | 
			
		||||
* | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D |   1E    | 1G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 21   | 22 |23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D |   2F   | 2G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 31    | 32 |33 | 34 | 35 | 36 | 37 | 38 | 39 | 3A | 3B | 3C |      3F    | 3G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 41      | 42 |43 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C |    4D    | 4F | 4G |
 | 
			
		||||
* |-------------------------------------------------------------------------------|
 | 
			
		||||
* | 51  |  52  | 53  |              57        | 5A | 5B | 5C | 5D |  5E | 3E | 4E |
 | 
			
		||||
* `-------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
#define LAYOUT_ansi( \
 | 
			
		||||
    k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,         k1F, k1G, \
 | 
			
		||||
    k21,   k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,       k2F, k2G, \
 | 
			
		||||
    k31,    k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C,           k3F, k3G, \
 | 
			
		||||
    k41,     k43, k44,  k45, k46, k47, k48, k49, k4A, k4B, k4C,         k4D, k4F, k4G, \
 | 
			
		||||
    k51, k52, k53,              k57,                      k5B, k5C, k5D, k5E, k3E, k4E \
 | 
			
		||||
) { \
 | 
			
		||||
    {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, KC_NO, k1F, k1G}, \
 | 
			
		||||
    {k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, KC_NO, k2F, k2G}, \
 | 
			
		||||
    {k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E, k3F, k3G}, \
 | 
			
		||||
    {k41, KC_NO, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G}, \
 | 
			
		||||
    {k51, k52, k53, KC_NO, KC_NO, KC_NO, k57, KC_NO, KC_NO, KC_NO, k5B, k5C, k5D, k5E, KC_NO, KC_NO} \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif //LFK65_HS_H
 | 
			
		||||
							
								
								
									
										14
									
								
								keyboards/lfkeyboards/lfk65_hs/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								keyboards/lfkeyboards/lfk65_hs/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
LFK65-HS
 | 
			
		||||
===
 | 
			
		||||
 | 
			
		||||
65% layout based with hotswap support.
 | 
			
		||||
 | 
			
		||||
Keyboard Maintainer: [LFKeyboards](https://github.com/lfkeyboards)
 | 
			
		||||
Hardware Supported: LFK65-HS
 | 
			
		||||
Hardware Availability: [LFKeyboards.com](https://www.lfkeyboards.com/)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make lfkeyboards/lfk65_hs:default
 | 
			
		||||
 | 
			
		||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
 | 
			
		||||
							
								
								
									
										20
									
								
								keyboards/lfkeyboards/lfk65_hs/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								keyboards/lfkeyboards/lfk65_hs/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
MCU = atmega32u4
 | 
			
		||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
 | 
			
		||||
FLASH_SIZE_KB = 32
 | 
			
		||||
BOOT_SECTION_SIZE_KB = 4
 | 
			
		||||
BOOT_LOADER = BootloaderHID
 | 
			
		||||
 | 
			
		||||
# Extra source files for IS3731 lighting
 | 
			
		||||
SRC = TWIlib.c issi.c lighting.c
 | 
			
		||||
 | 
			
		||||
# Processor frequency.
 | 
			
		||||
F_CPU = 16000000
 | 
			
		||||
 | 
			
		||||
# Target architecture (see library "Board Types" documentation).
 | 
			
		||||
ARCH = AVR8
 | 
			
		||||
 | 
			
		||||
# Input clock frequency.
 | 
			
		||||
F_USB = $(F_CPU)
 | 
			
		||||
 | 
			
		||||
# Interrupt driven control endpoint task(+60)
 | 
			
		||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue