diff --git a/keyboards/tronguylabs/m122_3270/blackpill/config.h b/keyboards/tronguylabs/m122_3270/blackpill/config.h index 95c94ef318..53c3ad73e4 100644 --- a/keyboards/tronguylabs/m122_3270/blackpill/config.h +++ b/keyboards/tronguylabs/m122_3270/blackpill/config.h @@ -16,8 +16,6 @@ #pragma once -// place overrides below - // Blackpill pin assignments: reversed the rows from the Teensy version for easier PCB layout // DO NOT USE the following pins: A9 (has pulldown on it), A11/A12 (USB lines), B2 (external pulldown) // C13 has an LED, and C13/C14/C15 are best used as inputs (with DIODE_DIRECTION set to ROW2COL, the @@ -26,4 +24,4 @@ #define MATRIX_ROW_PINS { C13, C14, C15, A0, A1, A2, A3, A4 } // The BlackPill version is version 2 -#define DEVICE_VER 0x0002 +#define DEVICE_VER 0x0002 diff --git a/keyboards/tronguylabs/m122_3270/blackpill/readme.md b/keyboards/tronguylabs/m122_3270/blackpill/readme.md index 08df795b13..1e47a447a3 100644 --- a/keyboards/tronguylabs/m122_3270/blackpill/readme.md +++ b/keyboards/tronguylabs/m122_3270/blackpill/readme.md @@ -1,2 +1,3 @@ # BlackPill controller for m122-3270 + This directory contains the BlackPill-specific definitions for the M122-3270 keyboard. diff --git a/keyboards/tronguylabs/m122_3270/blackpill/rules.mk b/keyboards/tronguylabs/m122_3270/blackpill/rules.mk index d3daefaebe..47e9c06f4f 100644 --- a/keyboards/tronguylabs/m122_3270/blackpill/rules.mk +++ b/keyboards/tronguylabs/m122_3270/blackpill/rules.mk @@ -1,7 +1,22 @@ -# Overrides for the Blackpill version - # MCU name MCU = STM32F411 # Bootloader selection BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/tronguylabs/m122_3270/config.h b/keyboards/tronguylabs/m122_3270/config.h index 0dd0187a1a..98359e6cc4 100644 --- a/keyboards/tronguylabs/m122_3270/config.h +++ b/keyboards/tronguylabs/m122_3270/config.h @@ -18,11 +18,10 @@ #include "config_common.h" -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x3270 -// DEVICE_VER is defined in each variant's config.h file -#define MANUFACTURER IBM -#define PRODUCT Model M PC/3270 122 key +#define VENDOR_ID 0x1209 +#define PRODUCT_ID 0x3270 +#define MANUFACTURER IBM +#define PRODUCT Model M PC/3270 122 key // Both controllers draw 100 mA or less #define USB_MAX_POWER_CONSUMPTION 100 @@ -31,41 +30,8 @@ #define MATRIX_ROWS 8 #define MATRIX_COLS 20 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define UNUSED_PINS - /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 15 - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * 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 diff --git a/keyboards/tronguylabs/m122_3270/info.json b/keyboards/tronguylabs/m122_3270/info.json index fd158eb46b..7bf6cb9e29 100644 --- a/keyboards/tronguylabs/m122_3270/info.json +++ b/keyboards/tronguylabs/m122_3270/info.json @@ -1,134 +1,157 @@ { - "keyboard_name": "IBM Model M PC/3270 122 key", - "maintainer": "jmaynard", - "width": 24.75, - "height": 8, - "layouts": { - "LAYOUT": { - "layout": [ - {"label":"F13", "x":3.25, "y":0}, - {"label":"F14", "x":4.25, "y":0}, - {"label":"F15", "x":5.25, "y":0}, - {"label":"F16", "x":6.25, "y":0}, - {"label":"F17", "x":7.25, "y":0}, - {"label":"F18", "x":8.25, "y":0}, - {"label":"F19", "x":9.25, "y":0}, - {"label":"F20", "x":10.25, "y":0}, - {"label":"F21", "x":11.25, "y":0}, - {"label":"F22", "x":12.25, "y":0}, - {"label":"F23", "x":13.25, "y":0}, - {"label":"F24", "x":14.25, "y":0}, - {"label":"F1", "x":3.25, "y":1}, - {"label":"F2", "x":4.25, "y":1}, - {"label":"F3", "x":5.25, "y":1}, - {"label":"F4", "x":6.25, "y":1}, - {"label":"F5", "x":7.25, "y":1}, - {"label":"F6", "x":8.25, "y":1}, - {"label":"F7", "x":9.25, "y":1}, - {"label":"F8", "x":10.25, "y":1}, - {"label":"F9", "x":11.25, "y":1}, - {"label":"F10", "x":12.25, "y":1}, - {"label":"F11", "x":13.25, "y":1}, - {"label":"F12", "x":14.25, "y":1}, - {"label":"Esc", "x":0, "y":3}, - {"x":1, "y":3}, - {"label":"`", "x":2.25, "y":3}, - {"label":"1", "x":3.25, "y":3}, - {"label":"2", "x":4.25, "y":3}, - {"label":"3", "x":5.25, "y":3}, - {"label":"4", "x":6.25, "y":3}, - {"label":"5", "x":7.25, "y":3}, - {"label":"6", "x":8.25, "y":3}, - {"label":"7", "x":9.25, "y":3}, - {"label":"8", "x":10.25, "y":3}, - {"label":"9", "x":11.25, "y":3}, - {"label":"0", "x":12.25, "y":3}, - {"label":"-", "x":13.25, "y":3}, - {"label":"=", "x":14.25, "y":3}, - {"label":"Backspace", "x":15.25, "y":3, "w":2}, - {"label":"Insert", "x":17.5, "y":3}, - {"label":"Home", "x":18.5, "y":3}, - {"label":"Page Up", "x":19.5, "y":3}, - {"label":"Num Lock", "x":20.75, "y":3}, - {"label":"/", "x":21.75, "y":3}, - {"label":"*", "x":22.75, "y":3}, - {"label":"-", "x":23.75, "y":3}, - {"x":0, "y":4}, - {"x":1, "y":4}, - {"label":"Tab", "x":2.25, "y":4, "w":1.5}, - {"label":"Q", "x":3.75, "y":4}, - {"label":"W", "x":4.75, "y":4}, - {"label":"E", "x":5.75, "y":4}, - {"label":"R", "x":6.75, "y":4}, - {"label":"T", "x":7.75, "y":4}, - {"label":"Y", "x":8.75, "y":4}, - {"label":"U", "x":9.75, "y":4}, - {"label":"I", "x":10.75, "y":4}, - {"label":"O", "x":11.75, "y":4}, - {"label":"P", "x":12.75, "y":4}, - {"label":"[", "x":13.75, "y":4}, - {"label":"]", "x":14.75, "y":4}, - {"label":"Enter", "x":16, "y":4, "w":1.25, "h":2}, - {"label":"Delete", "x":17.5, "y":4}, - {"label":"End", "x":18.5, "y":4}, - {"label":"Page Down", "x":19.5, "y":4}, - {"label":"7", "x":20.75, "y":4}, - {"label":"8", "x":21.75, "y":4}, - {"label":"9", "x":22.75, "y":4}, - {"label":"+", "x":23.75, "y":4}, - {"x":0, "y":5}, - {"x":1, "y":5}, - {"label":"Caps Lock", "x":2.25, "y":5, "w":1.75}, - {"label":"A", "x":4, "y":5}, - {"label":"S", "x":5, "y":5}, - {"label":"D", "x":6, "y":5}, - {"label":"F", "x":7, "y":5}, - {"label":"G", "x":8, "y":5}, - {"label":"H", "x":9, "y":5}, - {"label":"J", "x":10, "y":5}, - {"label":"K", "x":11, "y":5}, - {"label":"L", "x":12, "y":5}, - {"label":";", "x":13, "y":5}, - {"label":"'", "x":14, "y":5}, - {"label":"#", "x":15, "y":5}, - {"label":"Up", "x":18.5, "y":5}, - {"label":"4", "x":20.75, "y":5}, - {"label":"5", "x":21.75, "y":5}, - {"label":"6", "x":22.75, "y":5}, - {"x":23.75, "y":5}, - {"x":0, "y":6}, - {"x":1, "y":6}, - {"label":"Shift", "x":2.25, "y":6, "w":1.25}, - {"label":"\\", "x":3.5, "y":6}, - {"label":"Z", "x":4.5, "y":6}, - {"label":"X", "x":5.5, "y":6}, - {"label":"C", "x":6.5, "y":6}, - {"label":"V", "x":7.5, "y":6}, - {"label":"B", "x":8.5, "y":6}, - {"label":"N", "x":9.5, "y":6}, - {"label":"M", "x":10.5, "y":6}, - {"label":",", "x":11.5, "y":6}, - {"label":".", "x":12.5, "y":6}, - {"label":"/", "x":13.5, "y":6}, - {"label":"Shift", "x":14.5, "y":6, "w":2.75}, - {"label":"Left", "x":17.5, "y":6}, - {"x":18.5, "y":6}, - {"label":"Right", "x":19.5, "y":6}, - {"label":"1", "x":20.75, "y":6}, - {"label":"2", "x":21.75, "y":6}, - {"label":"3", "x":22.75, "y":6}, - {"label":"Enter", "x":23.75, "y":6, "h":2}, - {"x":0, "y":7}, - {"x":1, "y":7}, - {"label":"Ctrl", "x":2.25, "y":7, "w":1.5}, - {"label":"Alt", "x":4.75, "y":7, "w":1.5}, - {"x":6.25, "y":7, "w":7}, - {"label":"AltGr", "x":13.25, "y":7, "w":1.5}, - {"label":"Ctrl", "x":15.75, "y":7, "w":1.5}, - {"label":"Down", "x":18.5, "y":7}, - {"label":"0", "x":20.75, "y":7, "w":2}, - {"label":".", "x":22.75, "y":7} - ] + "keyboard_name": "IBM Model M PC/3270 122 key", + "maintainer": "jmaynard", + "width": 24.75, + "height": 8, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 3.25, "y": 0}, + {"x": 4.25, "y": 0}, + {"x": 5.25, "y": 0}, + {"x": 6.25, "y": 0}, + {"x": 7.25, "y": 0}, + {"x": 8.25, "y": 0}, + {"x": 9.25, "y": 0}, + {"x": 10.25, "y": 0}, + {"x": 11.25, "y": 0}, + {"x": 12.25, "y": 0}, + {"x": 13.25, "y": 0}, + {"x": 14.25, "y": 0}, + + {"x": 3.25, "y": 1}, + {"x": 4.25, "y": 1}, + {"x": 5.25, "y": 1}, + {"x": 6.25, "y": 1}, + {"x": 7.25, "y": 1}, + {"x": 8.25, "y": 1}, + {"x": 9.25, "y": 1}, + {"x": 10.25, "y": 1}, + {"x": 11.25, "y": 1}, + {"x": 12.25, "y": 1}, + {"x": 13.25, "y": 1}, + {"x": 14.25, "y": 1}, + + {"x": 0, "y": 3}, + {"x": 1, "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}, + {"x": 13.25, "y": 3}, + {"x": 14.25, "y": 3}, + {"x": 15.25, "y": 3, "w": 2}, + + {"x": 17.5, "y": 3}, + {"x": 18.5, "y": 3}, + {"x": 19.5, "y": 3}, + + {"x": 20.75, "y": 3}, + {"x": 21.75, "y": 3}, + {"x": 22.75, "y": 3}, + {"x": 23.75, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + + {"x": 2.25, "y": 4, "w": 1.5}, + {"x": 3.75, "y": 4}, + {"x": 4.75, "y": 4}, + {"x": 5.75, "y": 4}, + {"x": 6.75, "y": 4}, + {"x": 7.75, "y": 4}, + {"x": 8.75, "y": 4}, + {"x": 9.75, "y": 4}, + {"x": 10.75, "y": 4}, + {"x": 11.75, "y": 4}, + {"x": 12.75, "y": 4}, + {"x": 13.75, "y": 4}, + {"x": 14.75, "y": 4}, + {"x": 16, "y": 4, "w": 1.25, "h": 2}, + + {"x": 17.5, "y": 4}, + {"x": 18.5, "y": 4}, + {"x": 19.5, "y": 4}, + + {"x": 20.75, "y": 4}, + {"x": 21.75, "y": 4}, + {"x": 22.75, "y": 4}, + {"x": 23.75, "y": 4}, + + {"x": 0, "y": 5}, + {"x": 1, "y": 5}, + + {"x": 2.25, "y": 5, "w": 1.75}, + {"x": 4, "y": 5}, + {"x": 5, "y": 5}, + {"x": 6, "y": 5}, + {"x": 7, "y": 5}, + {"x": 8, "y": 5}, + {"x": 9, "y": 5}, + {"x": 10, "y": 5}, + {"x": 11, "y": 5}, + {"x": 12, "y": 5}, + {"x": 13, "y": 5}, + {"x": 14, "y": 5}, + {"x": 15, "y": 5}, + + {"x": 18.5, "y": 5}, + + {"x": 20.75, "y": 5}, + {"x": 21.75, "y": 5}, + {"x": 22.75, "y": 5}, + {"x": 23.75, "y": 5}, + + {"x": 0, "y": 6}, + {"x": 1, "y": 6}, + + {"x": 2.25, "y": 6, "w": 1.25}, + {"x": 3.5, "y": 6}, + {"x": 4.5, "y": 6}, + {"x": 5.5, "y": 6}, + {"x": 6.5, "y": 6}, + {"x": 7.5, "y": 6}, + {"x": 8.5, "y": 6}, + {"x": 9.5, "y": 6}, + {"x": 10.5, "y": 6}, + {"x": 11.5, "y": 6}, + {"x": 12.5, "y": 6}, + {"x": 13.5, "y": 6}, + {"x": 14.5, "y": 6, "w": 2.75}, + + {"x": 17.5, "y": 6}, + {"x": 18.5, "y": 6}, + {"x": 19.5, "y": 6}, + + {"x": 20.75, "y": 6}, + {"x": 21.75, "y": 6}, + {"x": 22.75, "y": 6}, + {"x": 23.75, "y": 6, "h": 2}, + + {"x": 0, "y": 7}, + {"x": 1, "y": 7}, + + {"x": 2.25, "y": 7, "w": 1.5}, + + {"x": 4.75, "y": 7, "w": 1.5}, + {"x": 6.25, "y": 7, "w": 7}, + {"x": 13.25, "y": 7, "w": 1.5}, + + {"x": 15.75, "y": 7, "w": 1.5}, + + {"x": 18.5, "y": 7}, + + {"x": 20.75, "y": 7, "w": 2}, + {"x": 22.75, "y": 7} + ] + } } - } } diff --git a/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c b/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c index a79d3c6372..fb4813f671 100644 --- a/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c +++ b/keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c @@ -17,58 +17,62 @@ enum custom_keycodes { JM_DOT = SAFE_RANGE, // . both shifted and unshifted - JM_COMM, // , both shifted and unshifted - JM_GRLS, // < and > on one key - JM_CBRC, // { and } on one key - JM_CENT, // cent sign and ! on one key - JM_JUMP, // JUMP/PA3, - JM_DEL // Delete + JM_COMM, // , both shifted and unshifted + JM_GRLS, // < and > on one key + JM_CBRC, // { and } on one key + JM_CENT, // cent sign and ! on one key + JM_JUMP, // JUMP/PA3, + JM_DEL // Delete }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // PC/3270 layout: PC legends (blue) + // PC/3270 layout: PC legends (blue) [0] = LAYOUT( - KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, - 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_NO, KC_NO, KC_GRV, 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_ESC, KC_PGUP, KC_PGDN, KC_NLCK, KC_SLCK, KC_PAST, KC_PSLS, - KC_NO, KC_PAUS, 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_END, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_NO, KC_NO, 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_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, - KC_PSCR, KC_NO, KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, - MO(10), KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_DOWN, KC_P0, KC_PDOT + KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, + 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_NO, KC_NO, KC_GRV, 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_ESC, KC_PGUP, KC_PGDN, KC_NLCK, KC_SLCK, KC_PAST, KC_PSLS, + KC_NO, KC_PAUS, 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_END, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_NO, KC_NO, 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_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_PSCR, KC_NO, KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_HOME, KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + MO(2), KC_LGUI, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_DOWN, KC_P0, KC_PDOT ), - // PC/3270 layout: 3270 legends (black), with x3270 keycodes + // PC/3270 layout: 3270 legends (black), with x3270 keycodes [1] = LAYOUT( - A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), A(KC_F5), A(KC_F6), A(KC_F7), A(KC_F8), A(KC_F9), A(KC_F10), A(KC_F11), A(KC_F12), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - A(KC_A), A(KC_C), KC_GRV, 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, A(KC_1), A(KC_2), JM_JUMP, KC_NO, KC_NO, KC_PCMM, KC_SPC, - KC_CRSEL, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JM_CENT, KC_BSLS, S(KC_ENT), S(KC_TAB), KC_INS, JM_DEL, KC_P7, KC_P8, KC_P9, KC_TAB, - KC_EXSEL, A(KC_E), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, JM_CBRC, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, - A(KC_B), C(KC_C), KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JM_COMM, JM_DOT, KC_SLSH, KC_RSFT, KC_LEFT, A(KC_H), KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, - MO(10), KC_LGUI, A(KC_R), KC_LALT, KC_SPC, KC_RALT, KC_ENT, KC_DOWN, KC_P0, KC_PDOT + A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), A(KC_F5), A(KC_F6), A(KC_F7), A(KC_F8), A(KC_F9), A(KC_F10), A(KC_F11), A(KC_F12), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + + A(KC_A), A(KC_C), KC_GRV, 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, A(KC_1), A(KC_2), JM_JUMP, KC_NO, KC_NO, KC_PCMM, KC_SPC, + KC_CRSEL, KC_PAUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JM_CENT, KC_BSLS, S(KC_ENT), S(KC_TAB), KC_INS, JM_DEL, KC_P7, KC_P8, KC_P9, KC_TAB, + KC_EXSEL, A(KC_E), KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, JM_CBRC, KC_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, + A(KC_B), C(KC_C), KC_LSFT, JM_GRLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JM_COMM, JM_DOT, KC_SLSH, KC_RSFT, KC_LEFT, A(KC_H), KC_RIGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + MO(2), KC_LGUI, A(KC_R), KC_LALT, KC_SPC, KC_RALT, KC_ENT, KC_DOWN, KC_P0, KC_PDOT ), -// Function layer, accessed by the Zoom key - [10] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - DF(0), DF(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(11), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + // Function layer, accessed by the Zoom key + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + DF(0), DF(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(3), _______, _______, _______, _______, _______ ), // Firmware layer, accessed by the Zoom/Space key pair (hold both down) - [11] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; bool left_shift_down = false; @@ -79,115 +83,84 @@ bool right_alt_down = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_LSHIFT: - if (record->event.pressed) { - left_shift_down = true; - return true; - } else { - left_shift_down = false; - return true; - } - break; + left_shift_down = record->event.pressed; + break; case KC_RSHIFT: - if (record->event.pressed) { - right_shift_down = true; - return true; - } else { - right_shift_down = false; - return true; - } - break; + right_shift_down = record->event.pressed; + break; case KC_LALT: - if (record->event.pressed) { - left_alt_down = true; - return true; - } else { - left_alt_down = false; - return true; - } - break; + left_alt_down = record->event.pressed; + break; case KC_RALT: - if (record->event.pressed) { - right_alt_down = true; - return true; - } else { - right_alt_down = false; - return true; - } - break; + right_alt_down = record->event.pressed; + break; case JM_GRLS: - if (left_shift_down || right_shift_down) { - if(record->event.pressed) { - SEND_STRING(">"); - } - return false; - } else { - if(record->event.pressed) { - SEND_STRING("<"); - } - return false; - } - break; - case JM_CBRC: - if (left_shift_down || right_shift_down) { - if (record->event.pressed) { - SEND_STRING("}"); - } - return false; - } else { - if(record->event.pressed) { - SEND_STRING("{"); - } - return false; - } - break; - case JM_CENT: - if (left_shift_down || right_shift_down) { - if (record->event.pressed) { - SEND_STRING("!"); - } - return false; - } else { - if (record->event.pressed) { - SEND_STRING("<"); // TODO: what does tn3270 want for a cent sign? - } - return false; - } - break; - case JM_COMM: - if (record->event.pressed){ - SEND_STRING(","); - } - return false; - case JM_DOT: - if (record->event.pressed) { - SEND_STRING("."); - } - return false; - case JM_JUMP: - if (record->event.pressed) { - if (left_alt_down || right_alt_down) { - SEND_STRING("3"); - } - } - return false; - case JM_DEL: - if (record->event.pressed) { - if (left_alt_down || right_alt_down) { - unregister_code(KC_LALT); - unregister_code(KC_RALT); - tap_code16(C(KC_W)); - if (left_alt_down) { - register_code(KC_LALT); - } - if (right_alt_down) { - register_code(KC_RALT); + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + SEND_STRING(">"); } } else { - tap_code16(KC_DEL); + if (record->event.pressed) { + SEND_STRING("<"); + } } - } - return false; + return false; + case JM_CBRC: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + SEND_STRING("}"); + } + } else { + if (record->event.pressed) { + SEND_STRING("{"); + } + } + return false; + case JM_CENT: + if (left_shift_down || right_shift_down) { + if (record->event.pressed) { + SEND_STRING("!"); + } + } else { + if (record->event.pressed) { + SEND_STRING("<"); // TODO: what does tn3270 want for a cent sign? + } + } + return false; + case JM_COMM: + if (record->event.pressed) { + SEND_STRING(","); + } + return false; + case JM_DOT: + if (record->event.pressed) { + SEND_STRING("."); + } + return false; + case JM_JUMP: + if (record->event.pressed) { + if (left_alt_down || right_alt_down) { + SEND_STRING("3"); + } + } + return false; + case JM_DEL: + if (record->event.pressed) { + if (left_alt_down || right_alt_down) { + unregister_code(KC_LALT); + unregister_code(KC_RALT); + tap_code16(C(KC_W)); + if (left_alt_down) { + register_code(KC_LALT); + } + if (right_alt_down) { + register_code(KC_RALT); + } + } else { + tap_code16(KC_DEL); + } + } + return false; } - return true; } diff --git a/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md b/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md index befa267fa1..3b59718ed8 100644 --- a/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md +++ b/keyboards/tronguylabs/m122_3270/keymaps/default/readme.md @@ -1,4 +1,5 @@ # Default keymap for m122-3270 + This keymap is intended to make the PC/3270 122-key IBM keyboard work as closely as possible to the standard PC/3270 keyboard's original mapping. Two layers are defined: layer 0 is the PC layout, using the blue legends on the PC/3270 keys (as shipped by Unicomp; I don't have the original keycaps, and I know there are a few diff --git a/keyboards/tronguylabs/m122_3270/m122_3270.c b/keyboards/tronguylabs/m122_3270/m122_3270.c index b206d66ae0..397d495c23 100644 --- a/keyboards/tronguylabs/m122_3270/m122_3270.c +++ b/keyboards/tronguylabs/m122_3270/m122_3270.c @@ -13,4 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include "m122_3270.h" diff --git a/keyboards/tronguylabs/m122_3270/m122_3270.h b/keyboards/tronguylabs/m122_3270/m122_3270.h index 71ccf7b66b..c18020ebcd 100644 --- a/keyboards/tronguylabs/m122_3270/m122_3270.h +++ b/keyboards/tronguylabs/m122_3270/m122_3270.h @@ -13,28 +13,28 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #pragma once + #include "quantum.h" -// This a shortcut to help you visually see your layout. -// The first section contains all of the arguments -// The second converts the arguments into a two-dimensional array +#define XXX KC_NO + #define LAYOUT( \ - k09, k19, k1A, k29, k39, k3A, k49, k59, k5A, k69, k79, k7A, \ - k0A, k0B, k1B, k2A, k2B, k3B, k4A, k4B, k5B, k6A, k6B, k7B, \ + k09, k19, k1A, k29, k39, k3A, k49, k59, k5A, k69, k79, k7A, \ + k0A, k0B, k1B, k2A, k2B, k3B, k4A, k4B, k5B, k6A, k6B, k7B, \ k31, k32, k34, k24, k25, k26, k27, k37, k38, k28, k2C, k2D, k2E, k3E, k3C, k3F, k3G, k3H, k2G, k2F, k2H, k2I, k20, \ k21, k41, k42, k44, k45, k46, k47, k57, k58, k48, k4C, k4D, k4E, k5E, k5C, k6F, k1G, k5G, k4G, k4F, k4H, k4I, k40, \ k51, k52, k62, k14, k15, k16, k17, k07, k08, k18, k1C, k1D, k1E, k0E, k6E, k0G, k1F, k1H, k1I, k10, \ k11, k12, k73, k74, k64, k65, k66, k67, k77, k78, k68, k6C, k6D, k7E, k63, k60, k0J, k1J, k61, k6H, k6I, k7J, \ - k02, k01, k00, k70, k71, k03, k72, k0F, k7H, k7I \ -) \ -{ \ - { k00, k01, k02, k03, KC_NO, KC_NO, KC_NO, k07, k08, k09, k0A, k0B, KC_NO, KC_NO, k0E, k0F, k0G, KC_NO, KC_NO, k0J }, \ - { k10, k11, k12, KC_NO, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1J }, \ - { k20, k21, KC_NO, KC_NO, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, KC_NO }, \ - { KC_NO, k31, k32, KC_NO, k34, KC_NO, KC_NO, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E, k3F, k3G, k3H, KC_NO, KC_NO }, \ - { k40, k41, k42, KC_NO, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, KC_NO }, \ - { KC_NO, k51, k52, KC_NO, KC_NO, KC_NO, KC_NO, k57, k58, k59, k5A, k5B, k5C, KC_NO, k5E, KC_NO, k5G, KC_NO, KC_NO, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, k6F, KC_NO, k6H, k6I, KC_NO }, \ - { k70, k71, k72, k73, k74, KC_NO, KC_NO, k77, k78, k79, k7A, k7B, KC_NO, KC_NO, k7E, KC_NO, KC_NO, k7H, k7I, k7J }, \ + k02, k01, k00, k70, k71, k03, k72, k0F, k7H, k7I \ +) { \ + { k00, k01, k02, k03, XXX, XXX, XXX, k07, k08, k09, k0A, k0B, XXX, XXX, k0E, k0F, k0G, XXX, XXX, k0J }, \ + { k10, k11, k12, XXX, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1J }, \ + { k20, k21, XXX, XXX, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, XXX }, \ + { XXX, k31, k32, XXX, k34, XXX, XXX, k37, k38, k39, k3A, k3B, k3C, XXX, k3E, k3F, k3G, k3H, XXX, XXX }, \ + { k40, k41, k42, XXX, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, XXX }, \ + { XXX, k51, k52, XXX, XXX, XXX, XXX, k57, k58, k59, k5A, k5B, k5C, XXX, k5E, XXX, k5G, XXX, XXX, XXX }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, k6F, XXX, k6H, k6I, XXX }, \ + { k70, k71, k72, k73, k74, XXX, XXX, k77, k78, k79, k7A, k7B, XXX, XXX, k7E, XXX, XXX, k7H, k7I, k7J } \ } diff --git a/keyboards/tronguylabs/m122_3270/readme.md b/keyboards/tronguylabs/m122_3270/readme.md index b8de846789..1dd1580bcd 100644 --- a/keyboards/tronguylabs/m122_3270/readme.md +++ b/keyboards/tronguylabs/m122_3270/readme.md @@ -2,8 +2,7 @@ ![IBM Model M 122 key](https://i.imgur.com/Oo3Ozqzh.jpg) -This is a replacement controller for the IBM Model M 122 key terminal keyboard running on a STM32F411 BlackPill, intended -to act as closely to the 3270 keyboard's functioning as possible while still being usable on a PC. +This is a replacement controller for the IBM Model M 122 key terminal keyboard running on a STM32F411 BlackPill, intended to act as closely to the 3270 keyboard's functioning as possible while still being usable on a PC. * Keyboard Maintainer: [Jay Maynard](https://github.com/jmaynard) * Hardware Supported: BlackPill STM32F411, Teensy++ 2.0 @@ -14,14 +13,10 @@ Make example for this keyboard (after setting up your build environment): make tronguylabs/m122_3270/blackpill:default make tronguylabs/m122_3270/teensy:default -See [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. +See 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). A schematic and Gerber files are publicly available for those wishing to have carrier boards made professionally instead of handwiring things. The M122 matrix connectors plug right into it. It can -be found at https://github.com/jmaynard/tronguylabs-m122-blackpill . +be found at https://github.com/jmaynard/tronguylabs-m122-blackpill. -This is derived from Luke Stanley's handwired/ibm122m keyboard, with my own keymapping and -rework of the I/O for the BlackPill. There's also a version for the Teensy++ 2.0, since that -was my original design and I still use one on one board, even though I switched to the -BlackPill for future-proofing. The Teensy++ 2.0 is not recommended for new designs. +This is derived from Luke Stanley's handwired/ibm122m keyboard, with my own keymapping and rework of the I/O for the BlackPill. There's also a version for the Teensy++ 2.0, since that was my original design and I still use one on one board, even though I switched to the BlackPill for future-proofing. The Teensy++ 2.0 is not recommended for new designs. diff --git a/keyboards/tronguylabs/m122_3270/rules.mk b/keyboards/tronguylabs/m122_3270/rules.mk deleted file mode 100644 index 2604f4818b..0000000000 --- a/keyboards/tronguylabs/m122_3270/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/tronguylabs/m122_3270/teensy/config.h b/keyboards/tronguylabs/m122_3270/teensy/config.h index c23c5931eb..33590b4064 100644 --- a/keyboards/tronguylabs/m122_3270/teensy/config.h +++ b/keyboards/tronguylabs/m122_3270/teensy/config.h @@ -16,12 +16,10 @@ #pragma once -// place overrides below - // Teensy pin assignments: I'm wiring things a bit more straightforwardly, and // avoiding the LED on PD6 #define MATRIX_COL_PINS { B5, B6, B7, D0, D1, D2, D3, D4, D5, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7 } #define MATRIX_ROW_PINS { F0, F1, F2, F3, F4, F5, F6, F7 } // The Teensy version is version 1 -#define DEVICE_VER 0x0001 +#define DEVICE_VER 0x0001 diff --git a/keyboards/tronguylabs/m122_3270/teensy/readme.md b/keyboards/tronguylabs/m122_3270/teensy/readme.md index 99946d746d..43357ea610 100644 --- a/keyboards/tronguylabs/m122_3270/teensy/readme.md +++ b/keyboards/tronguylabs/m122_3270/teensy/readme.md @@ -1,2 +1,3 @@ # Teensy controller for m122-3270 + This directory contains the Teensy++ 2.0-specific definitions for the M122-3270 keyboard. diff --git a/keyboards/tronguylabs/m122_3270/teensy/rules.mk b/keyboards/tronguylabs/m122_3270/teensy/rules.mk index 2919fdedfa..af0bee4659 100644 --- a/keyboards/tronguylabs/m122_3270/teensy/rules.mk +++ b/keyboards/tronguylabs/m122_3270/teensy/rules.mk @@ -1,7 +1,22 @@ -# Overrides for the Teensy version - # MCU name MCU = at90usb1286 # Bootloader selection BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output