From cbc1ba766640fd23832e402c1d9db4282da081d4 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 16:45:27 -0500 Subject: [PATCH 01/22] added urbanvanilla keymap Urbanvanilla's keymap for massdrop/alt keyboard adds in an idle timer to turn off RGB after set amount of time. poor unsuccessful attempt at replicating a velocikey like functionality. Grave escape is enabled on ESC. --- .../massdrop/alt/keymaps/urbanvanilla/alt.h | 36 ++++ .../alt/keymaps/urbanvanilla/config.h | 130 +++++++++++++ .../alt/keymaps/urbanvanilla/keymap.c | 164 ++++++++++++++++ .../alt/keymaps/urbanvanilla/matrix.c | 176 ++++++++++++++++++ .../alt/keymaps/urbanvanilla/rules.mk | 40 ++++ 5 files changed, 546 insertions(+) create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/config.h create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h new file mode 100644 index 000000000000..03960954506a --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h @@ -0,0 +1,36 @@ +#pragma once + +#include "quantum.h" +#include "config_led.h" +#include "matrix.h" + +#include "i2c_master.h" +#include "md_rgb_matrix.h" //For led keycodes +#include "usb/udi_cdc.h" +#include "usb/usb2422.h" + +#define LAYOUT_65_ansi_blocker( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, \ + K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, \ + K61, K62, K63, K64, K65, K66, K67 \ +) { \ + { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, }, \ + { K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, }, \ + { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, KC_NO, K43, K44, }, \ + { K45, KC_NO, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, }, \ + { K59, K60, K61, KC_NO, KC_NO, KC_NO, K62, KC_NO, KC_NO, KC_NO, K63, K64, K65, K66, K67, }, \ +} + +#define TOGGLE_FLAG_AND_PRINT(var, name) { \ + if (var) { \ + dprintf(name " disabled\r\n"); \ + var = !var; \ + } else { \ + var = !var; \ + dprintf(name " enabled\r\n"); \ + } \ + } + +#define LAYOUT LAYOUT_65_ansi_blocker // Ensure that user made existing keymaps do not break. diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h new file mode 100644 index 000000000000..c18928cc1040 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h @@ -0,0 +1,130 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEED3 +#define DEVICE_VER 0x0101 + +#define MANUFACTURER "Massdrop Inc." +#define PRODUCT "ALT Keyboard" +#define SERIAL_NUM "Unavailable" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* MCU Port name definitions */ +#define PA 0 +#define PB 1 + +/* Port and Pin definition of key row hardware configuration */ +#define MATRIX_ROW_PORTS PA, PA, PA, PA, PA +#define MATRIX_ROW_PINS 0, 1, 2, 3, 4 + +/* Port and Pin definition of key column hardware configuration */ +#define MATRIX_COL_PORTS PB, PB, PB, PB, PB, PB, PB, PB, PB, PB, PA, PA, PA, PA, PA +#define MATRIX_COL_PINS 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 10, 11 + +/* This Shift Register expands available hardware output lines to control additional peripherals */ +/* It uses four lines from the MCU to provide 16 output lines */ +/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ +#define SR_EXP_RCLK_PORT PB +#define SR_EXP_RCLK_PIN 14 +/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */ +#define SR_EXP_OE_N_PORT PB +#define SR_EXP_OE_N_PIN 15 +/* SERCOM port to use for Shift Register SPI */ +/* DATAOUT and SCLK must be configured to use hardware pins of this port */ +#define SR_EXP_SERCOM SERCOM2 +/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */ +#define SR_EXP_DATAOUT_PORT PA +#define SR_EXP_DATAOUT_PIN 12 +#define SR_EXP_DATAOUT_MUX 2 +/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */ +#define SR_EXP_SCLK_PORT PA +#define SR_EXP_SCLK_PIN 13 +#define SR_EXP_SCLK_MUX 2 + +/* Debug LED (Small LED Located near MCU) */ +#define DEBUG_LED_ENABLE 1 +#define DEBUG_LED_PORT PA +#define DEBUG_LED_PIN 27 + +/* Additional debugging ports */ +/* PCB M21 */ +#define DEBUG_PORT1_ENABLE 1 +#define DEBUG_PORT1_PORT PB +#define DEBUG_PORT1_PIN 3 +/* PCB M23 */ +#define DEBUG_PORT2_ENABLE 1 +#define DEBUG_PORT2_PORT PB +#define DEBUG_PORT2_PIN 17 +/* PCB M25 */ +#define DEBUG_PORT3_ENABLE 1 +#define DEBUG_PORT3_PORT PA +#define DEBUG_PORT3_PIN 20 + +/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */ +/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */ +/* Feature is automatically disabled after successful boot */ +/* PCB M27 */ +#define DEBUG_BOOT_TRACING_ENABLE 1 +#define DEBUG_BOOT_TRACING_PORT PB +#define DEBUG_BOOT_TRACING_PIN 23 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* 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 boot in NKRO mode */ +//#define FORCE_NKRO + +/* + * 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 + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_LED_PROCESS_LIMIT 15 +#define RGB_MATRIX_LED_FLUSH_LIMIT 10 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended + +#include "config_led.h" diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c new file mode 100644 index 000000000000..d0b5f82b7136 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -0,0 +1,164 @@ +#include QMK_KEYBOARD_H + +enum alt_keycodes { + U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active + U_T_AGCR, //USB Toggle Automatic GCR control + DBG_TOG, //DEBUG Toggle On / Off + DBG_MTRX, //DEBUG Toggle Matrix Prints + DBG_KBD, //DEBUG Toggle Keyboard Prints + DBG_MOU, //DEBUG Toggle Mouse Prints + MD_BOOT, //Restart into bootloader after hold timeout +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + 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_DEL, \ + 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_HOME, \ + 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [1] = LAYOUT_65_ansi_blocker( + 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, VLK_TOG, KC_MUTE, \ + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, \ + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, \ + _______, _______, RGB_TOG, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, KC_PGUP, KC_VOLD, \ + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \ + ), + /* + [X] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + */ +}; + +#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) +#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL)) +#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT)) +#define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off + +static uint32_t idle_timer; //custom timer to check if keyboard is idled. +bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set +bool Jelocikey_toggle = false; +uint8_t currentWPM; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + +static uint32_t key_timer; +idle_timer = timer_read(); + + + switch (keycode) { + case U_T_AUTO: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode"); + } + return false; + case U_T_AGCR: + if (record->event.pressed && MODS_SHIFT && MODS_CTRL) { + TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode"); + } + return false; + case DBG_TOG: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode"); + } + return false; + case DBG_MTRX: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix"); + } + return false; + case DBG_KBD: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard"); + } + return false; + case DBG_MOU: + if (record->event.pressed) { + TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse"); + } + return false; + case MD_BOOT: + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 500) { + reset_keyboard(); + } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + case VLK_TOG: + if (record->event.pressed) { + Jelocikey_toggle =! Jelocikey_toggle; + } + else { + rgb_matrix_set_speed_noeeprom(127); + } + return false; + default: + + if (rgbkeyIdle) { //check if the keyboards already idle and if it is, turn it back on as key is pressed. + rgbkeyIdle = false; + rgb_matrix_set_suspend_state(false); + rgb_matrix_enable_noeeprom(); + } + + if (Jelocikey_toggle) { + rgb_matrix_set_speed_noeeprom(3); + currentWPM = get_current_wpm(); + rgb_matrix_set_speed_noeeprom(currentWPM); + rgb_matrix_set_color(13, 100, 255, 255); + } + return true; //Process all other keycodes normally + } +} + +void matrix_scan_user(void) { +//custom idle rbg switch off function + if (timer_elapsed(idle_timer) > IDLE_TIMER_DURATION) { + idle_timer = 0; + timer_clear(); + rgbkeyIdle = true; + rgb_matrix_set_suspend_state(true); + rgb_matrix_disable_noeeprom(); + } +} + +void suspend_power_down_user(void) { + rgb_matrix_set_suspend_state(true); +} + +void suspend_wakeup_init_user(void) { + rgb_matrix_set_suspend_state(false); +} \ No newline at end of file diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c new file mode 100644 index 000000000000..afc9eb348703 --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c @@ -0,0 +1,176 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "alt.h" + +#include "d51_util.h" +#include "debug.h" +#include "clks.h" +#include + +matrix_row_t mlatest[MATRIX_ROWS]; +matrix_row_t mlast[MATRIX_ROWS]; +matrix_row_t mdebounced[MATRIX_ROWS]; + +uint8_t row_ports[] = { MATRIX_ROW_PORTS }; +uint8_t row_pins[] = { MATRIX_ROW_PINS }; +uint8_t col_ports[] = { MATRIX_COL_PORTS }; +uint8_t col_pins[] = { MATRIX_COL_PINS }; +uint32_t row_masks[2]; //NOTE: If more than PA PB used in the future, adjust code to accomodate + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +void matrix_init(void) +{ + memset(mlatest, 0, MATRIX_ROWS * sizeof(matrix_row_t)); + memset(mlast, 0, MATRIX_ROWS * sizeof(matrix_row_t)); + memset(mdebounced, 0, MATRIX_ROWS * sizeof(matrix_row_t)); + + row_masks[PA] = 0; + row_masks[PB] = 0; + + uint8_t row; + for (row = 0; row < MATRIX_ROWS; row++) + { + PORT->Group[row_ports[row]].DIRCLR.reg = 1 << row_pins[row]; //Input + PORT->Group[row_ports[row]].OUTCLR.reg = 1 << row_pins[row]; //Low + PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.INEN = 1; //Input Enable, + PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.PULLEN = 1; //Pull Enable + row_masks[row_ports[row]] |= 1 << row_pins[row]; //Add pin to proper row mask + } + + uint8_t col; + for (col = 0; col < MATRIX_COLS; col++) + { + PORT->Group[col_ports[col]].DIRSET.reg = 1 << col_pins[col]; //Output + PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; //Low + } + + matrix_init_quantum(); +} + +uint64_t mdebouncing = 0; +uint8_t matrix_scan(void) +{ + uint8_t mchanged; + uint8_t row; + uint8_t col; + uint32_t scans[2]; //PA PB + + if (timer_read64() < mdebouncing) return 1; //mdebouncing == 0 when no debouncing active + + memset(mlatest, 0, MATRIX_ROWS * sizeof(matrix_row_t)); //Zero the result buffer + + for (col = 0; col < MATRIX_COLS; col++) + { + PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output + + wait_us(20); //Delay for output + + scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data + scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data + + PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; //Clear col output + + for (row = 0; row < MATRIX_ROWS; row++) + { + //Move scan bits from scans array into proper row bit locations + if (scans[row_ports[row]] & (1 << row_pins[row])) + mlatest[row] |= 1 << col; + } + } + + mchanged = 0; //Default to no matrix change since last + + for (row = 0; row < MATRIX_ROWS; row++) + { + if (mlast[row] != mlatest[row]) + mchanged = 1; + mlast[row] = mlatest[row]; + } + + if (!mchanged) + { + for (row = 0; row < MATRIX_ROWS; row++) + mdebounced[row] = mlatest[row]; + mdebouncing = 0; + } + else + { + //Begin or extend debounce on change + mdebouncing = timer_read64() + DEBOUNCE; + } + + matrix_scan_quantum(); + + return 1; +} + +matrix_row_t matrix_get_row(uint8_t row) +{ + return mdebounced[row]; +} + +void matrix_print(void) +{ + char buf[(MATRIX_COLS+8)*(MATRIX_ROWS+1)] = "R C"; + char *pbuf = buf+3; + uint32_t cols; + uint32_t rows; + matrix_row_t row; + + for (cols = 1; cols <= MATRIX_COLS; cols++) + { + *pbuf = (cols%10)+48; + pbuf++; + } + *pbuf = '\r'; pbuf++; + *pbuf = '\n'; pbuf++; + + for (rows = 1; rows <= MATRIX_ROWS; rows++) + { + row = matrix_get_row(rows-1); + if (rows < 10) { *pbuf = rows+48; pbuf++; *pbuf = ' '; pbuf++; *pbuf = ' '; pbuf++; } + else { *pbuf = (rows/10)+48; pbuf++; *pbuf = (rows%10)+48; pbuf++; *pbuf = ' '; pbuf++; } + for (cols = 0; cols < MATRIX_COLS; cols++) + { + if (row & 1 << cols) *pbuf = 'X'; + else *pbuf = '.'; + pbuf++; + } + *pbuf = '\r'; pbuf++; + *pbuf = '\n'; pbuf++; + } + *pbuf = 0; + dprint(buf); +} diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk new file mode 100644 index 000000000000..78d9c2eaaf8e --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk @@ -0,0 +1,40 @@ +# project specific files +SRC = matrix.c +SRC += config_led.c + +#For platform and packs +ARM_ATSAM = SAMD51J18A +MCU = cortex-m4 + +CUSTOM_MATRIX = yes + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # 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 on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +VIRTSER_ENABLE = no # USB Serial Driver +RAW_ENABLE = no # Raw device +AUTO_SHIFT_ENABLE = no # Auto Shift + +# Custom RGB matrix handling +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = custom +WPM_ENABLE = yes +VELOCIKEY_ENABLE = yes # doesn't work with RGB MATRIX only RGB LIGHT :( + +LAYOUTS = 65_ansi_blocker From ef24e078c97bcfa271e6939268e083c388fd8417 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:02:19 -0500 Subject: [PATCH 02/22] Update readme.md --- keyboards/massdrop/alt/readme.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/keyboards/massdrop/alt/readme.md b/keyboards/massdrop/alt/readme.md index bf33b2048f33..bae088fcb87a 100644 --- a/keyboards/massdrop/alt/readme.md +++ b/keyboards/massdrop/alt/readme.md @@ -1,3 +1,31 @@ + +# Custom mapping for the Drop Alt Keyboard. + +A really simple set of changes/fixes + +# Features and changes: + +## *ESC is now Grave Escape.* +Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. + +## *RGB timer switch off* + +There is a timer that turns off RGB lighting after a set time. This is defined by + + #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off + +## *Keyboard chatter fix* + +I have left the debounce settings and instead changed + + wait_us(1); //Delay for output +to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. + + + + + + # ALT ![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) From 711ec5a04712d05dcd32e9197cbe44acaa0557a2 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:11:32 -0500 Subject: [PATCH 03/22] updating documentation --- .../alt/keymaps/urbanvanilla/keymap.c | 1 + readme.md | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index d0b5f82b7136..31d8e3bc974c 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -140,6 +140,7 @@ idle_timer = timer_read(); rgb_matrix_set_speed_noeeprom(currentWPM); rgb_matrix_set_color(13, 100, 255, 255); } + return true; //Process all other keycodes normally } } diff --git a/readme.md b/readme.md index 6092f209be1a..784a6cda3c68 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,27 @@ +# Custom mapping for the Drop Alt Keyboard. + +A really simple set of changes/fixes + +# Features and changes: + +## *ESC is now Grave Escape.* +Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. + +## *RGB timer switch off* + +There is a timer that turns off RGB lighting after a set time. This is defined by + + #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off + +## *Keyboard chatter fix* + +I have left the debounce settings and instead changed + + wait_us(1); //Delay for output +to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. +## --- +~~also a really poorly implemented and not functional version of velocikey for rgb matrix that I'd rather not talk about.~~ + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 9e969f240002e774420d29f7904336a807f032db Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:19:13 -0500 Subject: [PATCH 04/22] Create readme.md --- .../alt/keymaps/urbanvanilla/readme.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md new file mode 100644 index 000000000000..bae088fcb87a --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md @@ -0,0 +1,48 @@ + +# Custom mapping for the Drop Alt Keyboard. + +A really simple set of changes/fixes + +# Features and changes: + +## *ESC is now Grave Escape.* +Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. + +## *RGB timer switch off* + +There is a timer that turns off RGB lighting after a set time. This is defined by + + #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off + +## *Keyboard chatter fix* + +I have left the debounce settings and instead changed + + wait_us(1); //Delay for output +to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. + + + + + + +# ALT + +![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) + +The Massdrop ALT is a 65% mechanical keyboard featuring dual USB-C connectors, an integrated Hi-Speed USB 2.0 hub, and fully customizable RGB backlighting and underlighting. + +Keyboard Maintainer: [Massdrop](https://github.com/massdrop) +Hardware Supported: Massdrop, Inc. ALT PCBs utilizing Microchip's ATSAMD51J18A MCU and USB2422 2-Port USB 2.0 Hi-Speed Hub Controller, and ISSI's IS31FL3733 LED Drivers. +Hardware Availability: [Massdrop ALT Mechanical Keyboard](https://www.massdrop.com/buy/massdrop-alt-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make massdrop/alt:default + +For information on flashing this keyboard, visit the following links: + +[Massdrop Loader Releases](https://github.com/Massdrop/mdloader/releases) +[Massdrop Loader Repository and Instructions](https://github.com/Massdrop/mdloader) + +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). From caf2f025bf1c6e80effecb5b6e07d9aaceb8d867 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:40:11 -0500 Subject: [PATCH 05/22] restoring default documentation --- keyboards/massdrop/alt/readme.md | 28 ---------------------------- readme.md | 24 ------------------------ 2 files changed, 52 deletions(-) diff --git a/keyboards/massdrop/alt/readme.md b/keyboards/massdrop/alt/readme.md index bae088fcb87a..bf33b2048f33 100644 --- a/keyboards/massdrop/alt/readme.md +++ b/keyboards/massdrop/alt/readme.md @@ -1,31 +1,3 @@ - -# Custom mapping for the Drop Alt Keyboard. - -A really simple set of changes/fixes - -# Features and changes: - -## *ESC is now Grave Escape.* -Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. - -## *RGB timer switch off* - -There is a timer that turns off RGB lighting after a set time. This is defined by - - #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off - -## *Keyboard chatter fix* - -I have left the debounce settings and instead changed - - wait_us(1); //Delay for output -to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. - - - - - - # ALT ![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) diff --git a/readme.md b/readme.md index 784a6cda3c68..6092f209be1a 100644 --- a/readme.md +++ b/readme.md @@ -1,27 +1,3 @@ -# Custom mapping for the Drop Alt Keyboard. - -A really simple set of changes/fixes - -# Features and changes: - -## *ESC is now Grave Escape.* -Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. - -## *RGB timer switch off* - -There is a timer that turns off RGB lighting after a set time. This is defined by - - #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off - -## *Keyboard chatter fix* - -I have left the debounce settings and instead changed - - wait_us(1); //Delay for output -to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. -## --- -~~also a really poorly implemented and not functional version of velocikey for rgb matrix that I'd rather not talk about.~~ - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 9be846c61743627dbec95dd869f70549b07b3845 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 17:34:55 -0500 Subject: [PATCH 06/22] update with review changes implemented removed unnecessary lines and files. increased wait_us() parameter to 40 as was still getting chatter at 20. removed some code for the terrible rudimentary attempt at velocikey for rgb matrix --- .../massdrop/alt/keymaps/urbanvanilla/alt.h | 36 ------ .../alt/keymaps/urbanvanilla/config.h | 104 ------------------ .../alt/keymaps/urbanvanilla/keymap.c | 33 ++++-- .../alt/keymaps/urbanvanilla/matrix.c | 2 +- .../alt/keymaps/urbanvanilla/readme.md | 2 +- .../alt/keymaps/urbanvanilla/rules.mk | 38 ------- 6 files changed, 27 insertions(+), 188 deletions(-) delete mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h deleted file mode 100644 index 03960954506a..000000000000 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include "quantum.h" -#include "config_led.h" -#include "matrix.h" - -#include "i2c_master.h" -#include "md_rgb_matrix.h" //For led keycodes -#include "usb/udi_cdc.h" -#include "usb/usb2422.h" - -#define LAYOUT_65_ansi_blocker( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, \ - K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, \ - K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, \ - K61, K62, K63, K64, K65, K66, K67 \ -) { \ - { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, }, \ - { K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, }, \ - { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, KC_NO, K43, K44, }, \ - { K45, KC_NO, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, }, \ - { K59, K60, K61, KC_NO, KC_NO, KC_NO, K62, KC_NO, KC_NO, KC_NO, K63, K64, K65, K66, K67, }, \ -} - -#define TOGGLE_FLAG_AND_PRINT(var, name) { \ - if (var) { \ - dprintf(name " disabled\r\n"); \ - var = !var; \ - } else { \ - var = !var; \ - dprintf(name " enabled\r\n"); \ - } \ - } - -#define LAYOUT LAYOUT_65_ansi_blocker // Ensure that user made existing keymaps do not break. diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h index c18928cc1040..b3926d386356 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h @@ -17,109 +17,6 @@ along with this program. If not, see . #pragma once -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEED3 -#define DEVICE_VER 0x0101 - -#define MANUFACTURER "Massdrop Inc." -#define PRODUCT "ALT Keyboard" -#define SERIAL_NUM "Unavailable" - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* MCU Port name definitions */ -#define PA 0 -#define PB 1 - -/* Port and Pin definition of key row hardware configuration */ -#define MATRIX_ROW_PORTS PA, PA, PA, PA, PA -#define MATRIX_ROW_PINS 0, 1, 2, 3, 4 - -/* Port and Pin definition of key column hardware configuration */ -#define MATRIX_COL_PORTS PB, PB, PB, PB, PB, PB, PB, PB, PB, PB, PA, PA, PA, PA, PA -#define MATRIX_COL_PINS 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 10, 11 - -/* This Shift Register expands available hardware output lines to control additional peripherals */ -/* It uses four lines from the MCU to provide 16 output lines */ -/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ -#define SR_EXP_RCLK_PORT PB -#define SR_EXP_RCLK_PIN 14 -/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */ -#define SR_EXP_OE_N_PORT PB -#define SR_EXP_OE_N_PIN 15 -/* SERCOM port to use for Shift Register SPI */ -/* DATAOUT and SCLK must be configured to use hardware pins of this port */ -#define SR_EXP_SERCOM SERCOM2 -/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */ -#define SR_EXP_DATAOUT_PORT PA -#define SR_EXP_DATAOUT_PIN 12 -#define SR_EXP_DATAOUT_MUX 2 -/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */ -#define SR_EXP_SCLK_PORT PA -#define SR_EXP_SCLK_PIN 13 -#define SR_EXP_SCLK_MUX 2 - -/* Debug LED (Small LED Located near MCU) */ -#define DEBUG_LED_ENABLE 1 -#define DEBUG_LED_PORT PA -#define DEBUG_LED_PIN 27 - -/* Additional debugging ports */ -/* PCB M21 */ -#define DEBUG_PORT1_ENABLE 1 -#define DEBUG_PORT1_PORT PB -#define DEBUG_PORT1_PIN 3 -/* PCB M23 */ -#define DEBUG_PORT2_ENABLE 1 -#define DEBUG_PORT2_PORT PB -#define DEBUG_PORT2_PIN 17 -/* PCB M25 */ -#define DEBUG_PORT3_ENABLE 1 -#define DEBUG_PORT3_PORT PA -#define DEBUG_PORT3_PIN 20 - -/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */ -/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */ -/* Feature is automatically disabled after successful boot */ -/* PCB M27 */ -#define DEBUG_BOOT_TRACING_ENABLE 1 -#define DEBUG_BOOT_TRACING_PORT PB -#define DEBUG_BOOT_TRACING_PIN 23 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* 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 boot in NKRO mode */ -//#define FORCE_NKRO - -/* - * 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 - #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_LED_PROCESS_LIMIT 15 @@ -127,4 +24,3 @@ along with this program. If not, see . #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended -#include "config_led.h" diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index 31d8e3bc974c..87db0af8305f 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -1,3 +1,20 @@ + /* Copyright 2021 James Teow + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #include QMK_KEYBOARD_H enum alt_keycodes { @@ -12,7 +29,7 @@ enum alt_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - 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_DEL, \ + 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_DEL, \ 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_HOME, \ 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, \ @@ -43,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint32_t idle_timer; //custom timer to check if keyboard is idled. bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set -bool Jelocikey_toggle = false; -uint8_t currentWPM; +//bool Jelocikey_toggle = false; +//uint8_t currentWPM; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -118,14 +135,14 @@ idle_timer = timer_read(); } } return false; - case VLK_TOG: +/* case VLK_TOG: if (record->event.pressed) { Jelocikey_toggle =! Jelocikey_toggle; } else { rgb_matrix_set_speed_noeeprom(127); } - return false; + return false; */ default: if (rgbkeyIdle) { //check if the keyboards already idle and if it is, turn it back on as key is pressed. @@ -134,12 +151,12 @@ idle_timer = timer_read(); rgb_matrix_enable_noeeprom(); } - if (Jelocikey_toggle) { +/* if (Jelocikey_toggle) { rgb_matrix_set_speed_noeeprom(3); currentWPM = get_current_wpm(); rgb_matrix_set_speed_noeeprom(currentWPM); - rgb_matrix_set_color(13, 100, 255, 255); - } + rgb_matrix_set_color(30, 100, 255, 255); + } */ return true; //Process all other keycodes normally } diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c index afc9eb348703..b8c6ea5a7e8d 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c @@ -95,7 +95,7 @@ uint8_t matrix_scan(void) { PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output - wait_us(20); //Delay for output + wait_us(40); //Delay for output scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md index bae088fcb87a..116ccc4efff2 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md @@ -19,7 +19,7 @@ There is a timer that turns off RGB lighting after a set time. This is defined b I have left the debounce settings and instead changed wait_us(1); //Delay for output -to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. +to 40 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. 20 seemed to still let key chatter go through. Seems to be working well since. diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk index 78d9c2eaaf8e..a51c4a4ff0c5 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk @@ -1,40 +1,2 @@ -# project specific files -SRC = matrix.c -SRC += config_led.c - -#For platform and packs -ARM_ATSAM = SAMD51J18A -MCU = cortex-m4 - -CUSTOM_MATRIX = yes - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # 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 on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -VIRTSER_ENABLE = no # USB Serial Driver -RAW_ENABLE = no # Raw device -AUTO_SHIFT_ENABLE = no # Auto Shift - -# Custom RGB matrix handling -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = custom WPM_ENABLE = yes VELOCIKEY_ENABLE = yes # doesn't work with RGB MATRIX only RGB LIGHT :( - -LAYOUTS = 65_ansi_blocker From b2a00be4f534eff2c390f4d6e78fa351e9724ba8 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 21:29:16 -0500 Subject: [PATCH 07/22] Update matrix.c --- .../alt/keymaps/urbanvanilla/matrix.c | 123 +----------------- 1 file changed, 1 insertion(+), 122 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c index b8c6ea5a7e8d..05671ee2b19d 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c @@ -1,85 +1,3 @@ -/* -Copyright 2018 Massdrop Inc. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "alt.h" - -#include "d51_util.h" -#include "debug.h" -#include "clks.h" -#include - -matrix_row_t mlatest[MATRIX_ROWS]; -matrix_row_t mlast[MATRIX_ROWS]; -matrix_row_t mdebounced[MATRIX_ROWS]; - -uint8_t row_ports[] = { MATRIX_ROW_PORTS }; -uint8_t row_pins[] = { MATRIX_ROW_PINS }; -uint8_t col_ports[] = { MATRIX_COL_PORTS }; -uint8_t col_pins[] = { MATRIX_COL_PINS }; -uint32_t row_masks[2]; //NOTE: If more than PA PB used in the future, adjust code to accomodate - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -void matrix_init(void) -{ - memset(mlatest, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(mlast, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(mdebounced, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - - row_masks[PA] = 0; - row_masks[PB] = 0; - - uint8_t row; - for (row = 0; row < MATRIX_ROWS; row++) - { - PORT->Group[row_ports[row]].DIRCLR.reg = 1 << row_pins[row]; //Input - PORT->Group[row_ports[row]].OUTCLR.reg = 1 << row_pins[row]; //Low - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.INEN = 1; //Input Enable, - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.PULLEN = 1; //Pull Enable - row_masks[row_ports[row]] |= 1 << row_pins[row]; //Add pin to proper row mask - } - - uint8_t col; - for (col = 0; col < MATRIX_COLS; col++) - { - PORT->Group[col_ports[col]].DIRSET.reg = 1 << col_pins[col]; //Output - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; //Low - } - - matrix_init_quantum(); -} - -uint64_t mdebouncing = 0; uint8_t matrix_scan(void) { uint8_t mchanged; @@ -134,43 +52,4 @@ uint8_t matrix_scan(void) matrix_scan_quantum(); return 1; -} - -matrix_row_t matrix_get_row(uint8_t row) -{ - return mdebounced[row]; -} - -void matrix_print(void) -{ - char buf[(MATRIX_COLS+8)*(MATRIX_ROWS+1)] = "R C"; - char *pbuf = buf+3; - uint32_t cols; - uint32_t rows; - matrix_row_t row; - - for (cols = 1; cols <= MATRIX_COLS; cols++) - { - *pbuf = (cols%10)+48; - pbuf++; - } - *pbuf = '\r'; pbuf++; - *pbuf = '\n'; pbuf++; - - for (rows = 1; rows <= MATRIX_ROWS; rows++) - { - row = matrix_get_row(rows-1); - if (rows < 10) { *pbuf = rows+48; pbuf++; *pbuf = ' '; pbuf++; *pbuf = ' '; pbuf++; } - else { *pbuf = (rows/10)+48; pbuf++; *pbuf = (rows%10)+48; pbuf++; *pbuf = ' '; pbuf++; } - for (cols = 0; cols < MATRIX_COLS; cols++) - { - if (row & 1 << cols) *pbuf = 'X'; - else *pbuf = '.'; - pbuf++; - } - *pbuf = '\r'; pbuf++; - *pbuf = '\n'; pbuf++; - } - *pbuf = 0; - dprint(buf); -} +} \ No newline at end of file From 4b65edbf4446424f7fe360955bfe813e9ece5c06 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:21:24 -0500 Subject: [PATCH 08/22] Revert "Merge pull request #3 from urbanvanilla/dev_branch" This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5. --- .../alt/keymaps/urbanvanilla/keymap.c | 34 +++++-------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index 87db0af8305f..d0b5f82b7136 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -1,20 +1,3 @@ - /* Copyright 2021 James Teow - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - #include QMK_KEYBOARD_H enum alt_keycodes { @@ -29,7 +12,7 @@ enum alt_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - 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_DEL, \ + 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_DEL, \ 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_HOME, \ 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, \ @@ -60,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint32_t idle_timer; //custom timer to check if keyboard is idled. bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set -//bool Jelocikey_toggle = false; -//uint8_t currentWPM; +bool Jelocikey_toggle = false; +uint8_t currentWPM; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -135,14 +118,14 @@ idle_timer = timer_read(); } } return false; -/* case VLK_TOG: + case VLK_TOG: if (record->event.pressed) { Jelocikey_toggle =! Jelocikey_toggle; } else { rgb_matrix_set_speed_noeeprom(127); } - return false; */ + return false; default: if (rgbkeyIdle) { //check if the keyboards already idle and if it is, turn it back on as key is pressed. @@ -151,13 +134,12 @@ idle_timer = timer_read(); rgb_matrix_enable_noeeprom(); } -/* if (Jelocikey_toggle) { + if (Jelocikey_toggle) { rgb_matrix_set_speed_noeeprom(3); currentWPM = get_current_wpm(); rgb_matrix_set_speed_noeeprom(currentWPM); - rgb_matrix_set_color(30, 100, 255, 255); - } */ - + rgb_matrix_set_color(13, 100, 255, 255); + } return true; //Process all other keycodes normally } } From 3206a36cc04c70553df072ed14142ccf449b21f2 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 21:38:53 -0500 Subject: [PATCH 09/22] Update keymap.c --- keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index d0b5f82b7136..a0f30fa1b4c6 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint32_t idle_timer; //custom timer to check if keyboard is idled. bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set -bool Jelocikey_toggle = false; -uint8_t currentWPM; +//bool Jelocikey_toggle = false; +//uint8_t currentWPM; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -134,12 +134,12 @@ idle_timer = timer_read(); rgb_matrix_enable_noeeprom(); } - if (Jelocikey_toggle) { +/* if (Jelocikey_toggle) { rgb_matrix_set_speed_noeeprom(3); currentWPM = get_current_wpm(); rgb_matrix_set_speed_noeeprom(currentWPM); rgb_matrix_set_color(13, 100, 255, 255); - } + } */ return true; //Process all other keycodes normally } } From a2849195dd1b18a93dfbe6614a14002445b1aaf2 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 16:45:27 -0500 Subject: [PATCH 10/22] added urbanvanilla keymap Urbanvanilla's keymap for massdrop/alt keyboard adds in an idle timer to turn off RGB after set amount of time. poor unsuccessful attempt at replicating a velocikey like functionality. Grave escape is enabled on ESC. --- .../massdrop/alt/keymaps/urbanvanilla/alt.h | 36 +++++ .../alt/keymaps/urbanvanilla/config.h | 104 +++++++++++++++ .../alt/keymaps/urbanvanilla/keymap.c | 8 +- .../alt/keymaps/urbanvanilla/matrix.c | 125 +++++++++++++++++- .../alt/keymaps/urbanvanilla/rules.mk | 38 ++++++ keyboards/misonoworks/karina/readme.md | 30 ++--- 6 files changed, 320 insertions(+), 21 deletions(-) create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h new file mode 100644 index 000000000000..03960954506a --- /dev/null +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h @@ -0,0 +1,36 @@ +#pragma once + +#include "quantum.h" +#include "config_led.h" +#include "matrix.h" + +#include "i2c_master.h" +#include "md_rgb_matrix.h" //For led keycodes +#include "usb/udi_cdc.h" +#include "usb/usb2422.h" + +#define LAYOUT_65_ansi_blocker( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, \ + K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, \ + K61, K62, K63, K64, K65, K66, K67 \ +) { \ + { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, }, \ + { K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, }, \ + { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, KC_NO, K43, K44, }, \ + { K45, KC_NO, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, }, \ + { K59, K60, K61, KC_NO, KC_NO, KC_NO, K62, KC_NO, KC_NO, KC_NO, K63, K64, K65, K66, K67, }, \ +} + +#define TOGGLE_FLAG_AND_PRINT(var, name) { \ + if (var) { \ + dprintf(name " disabled\r\n"); \ + var = !var; \ + } else { \ + var = !var; \ + dprintf(name " enabled\r\n"); \ + } \ + } + +#define LAYOUT LAYOUT_65_ansi_blocker // Ensure that user made existing keymaps do not break. diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h index b3926d386356..c18928cc1040 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h @@ -17,6 +17,109 @@ along with this program. If not, see . #pragma once +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEED3 +#define DEVICE_VER 0x0101 + +#define MANUFACTURER "Massdrop Inc." +#define PRODUCT "ALT Keyboard" +#define SERIAL_NUM "Unavailable" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* MCU Port name definitions */ +#define PA 0 +#define PB 1 + +/* Port and Pin definition of key row hardware configuration */ +#define MATRIX_ROW_PORTS PA, PA, PA, PA, PA +#define MATRIX_ROW_PINS 0, 1, 2, 3, 4 + +/* Port and Pin definition of key column hardware configuration */ +#define MATRIX_COL_PORTS PB, PB, PB, PB, PB, PB, PB, PB, PB, PB, PA, PA, PA, PA, PA +#define MATRIX_COL_PINS 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 10, 11 + +/* This Shift Register expands available hardware output lines to control additional peripherals */ +/* It uses four lines from the MCU to provide 16 output lines */ +/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ +#define SR_EXP_RCLK_PORT PB +#define SR_EXP_RCLK_PIN 14 +/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */ +#define SR_EXP_OE_N_PORT PB +#define SR_EXP_OE_N_PIN 15 +/* SERCOM port to use for Shift Register SPI */ +/* DATAOUT and SCLK must be configured to use hardware pins of this port */ +#define SR_EXP_SERCOM SERCOM2 +/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */ +#define SR_EXP_DATAOUT_PORT PA +#define SR_EXP_DATAOUT_PIN 12 +#define SR_EXP_DATAOUT_MUX 2 +/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */ +#define SR_EXP_SCLK_PORT PA +#define SR_EXP_SCLK_PIN 13 +#define SR_EXP_SCLK_MUX 2 + +/* Debug LED (Small LED Located near MCU) */ +#define DEBUG_LED_ENABLE 1 +#define DEBUG_LED_PORT PA +#define DEBUG_LED_PIN 27 + +/* Additional debugging ports */ +/* PCB M21 */ +#define DEBUG_PORT1_ENABLE 1 +#define DEBUG_PORT1_PORT PB +#define DEBUG_PORT1_PIN 3 +/* PCB M23 */ +#define DEBUG_PORT2_ENABLE 1 +#define DEBUG_PORT2_PORT PB +#define DEBUG_PORT2_PIN 17 +/* PCB M25 */ +#define DEBUG_PORT3_ENABLE 1 +#define DEBUG_PORT3_PORT PA +#define DEBUG_PORT3_PIN 20 + +/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */ +/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */ +/* Feature is automatically disabled after successful boot */ +/* PCB M27 */ +#define DEBUG_BOOT_TRACING_ENABLE 1 +#define DEBUG_BOOT_TRACING_PORT PB +#define DEBUG_BOOT_TRACING_PIN 23 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* 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 boot in NKRO mode */ +//#define FORCE_NKRO + +/* + * 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 + #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_LED_PROCESS_LIMIT 15 @@ -24,3 +127,4 @@ along with this program. If not, see . #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#include "config_led.h" diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index a0f30fa1b4c6..d0b5f82b7136 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint32_t idle_timer; //custom timer to check if keyboard is idled. bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set -//bool Jelocikey_toggle = false; -//uint8_t currentWPM; +bool Jelocikey_toggle = false; +uint8_t currentWPM; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -134,12 +134,12 @@ idle_timer = timer_read(); rgb_matrix_enable_noeeprom(); } -/* if (Jelocikey_toggle) { + if (Jelocikey_toggle) { rgb_matrix_set_speed_noeeprom(3); currentWPM = get_current_wpm(); rgb_matrix_set_speed_noeeprom(currentWPM); rgb_matrix_set_color(13, 100, 255, 255); - } */ + } return true; //Process all other keycodes normally } } diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c index 05671ee2b19d..afc9eb348703 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c @@ -1,3 +1,85 @@ +/* +Copyright 2018 Massdrop Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "alt.h" + +#include "d51_util.h" +#include "debug.h" +#include "clks.h" +#include + +matrix_row_t mlatest[MATRIX_ROWS]; +matrix_row_t mlast[MATRIX_ROWS]; +matrix_row_t mdebounced[MATRIX_ROWS]; + +uint8_t row_ports[] = { MATRIX_ROW_PORTS }; +uint8_t row_pins[] = { MATRIX_ROW_PINS }; +uint8_t col_ports[] = { MATRIX_COL_PORTS }; +uint8_t col_pins[] = { MATRIX_COL_PINS }; +uint32_t row_masks[2]; //NOTE: If more than PA PB used in the future, adjust code to accomodate + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +void matrix_init(void) +{ + memset(mlatest, 0, MATRIX_ROWS * sizeof(matrix_row_t)); + memset(mlast, 0, MATRIX_ROWS * sizeof(matrix_row_t)); + memset(mdebounced, 0, MATRIX_ROWS * sizeof(matrix_row_t)); + + row_masks[PA] = 0; + row_masks[PB] = 0; + + uint8_t row; + for (row = 0; row < MATRIX_ROWS; row++) + { + PORT->Group[row_ports[row]].DIRCLR.reg = 1 << row_pins[row]; //Input + PORT->Group[row_ports[row]].OUTCLR.reg = 1 << row_pins[row]; //Low + PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.INEN = 1; //Input Enable, + PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.PULLEN = 1; //Pull Enable + row_masks[row_ports[row]] |= 1 << row_pins[row]; //Add pin to proper row mask + } + + uint8_t col; + for (col = 0; col < MATRIX_COLS; col++) + { + PORT->Group[col_ports[col]].DIRSET.reg = 1 << col_pins[col]; //Output + PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; //Low + } + + matrix_init_quantum(); +} + +uint64_t mdebouncing = 0; uint8_t matrix_scan(void) { uint8_t mchanged; @@ -13,7 +95,7 @@ uint8_t matrix_scan(void) { PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output - wait_us(40); //Delay for output + wait_us(20); //Delay for output scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data @@ -52,4 +134,43 @@ uint8_t matrix_scan(void) matrix_scan_quantum(); return 1; -} \ No newline at end of file +} + +matrix_row_t matrix_get_row(uint8_t row) +{ + return mdebounced[row]; +} + +void matrix_print(void) +{ + char buf[(MATRIX_COLS+8)*(MATRIX_ROWS+1)] = "R C"; + char *pbuf = buf+3; + uint32_t cols; + uint32_t rows; + matrix_row_t row; + + for (cols = 1; cols <= MATRIX_COLS; cols++) + { + *pbuf = (cols%10)+48; + pbuf++; + } + *pbuf = '\r'; pbuf++; + *pbuf = '\n'; pbuf++; + + for (rows = 1; rows <= MATRIX_ROWS; rows++) + { + row = matrix_get_row(rows-1); + if (rows < 10) { *pbuf = rows+48; pbuf++; *pbuf = ' '; pbuf++; *pbuf = ' '; pbuf++; } + else { *pbuf = (rows/10)+48; pbuf++; *pbuf = (rows%10)+48; pbuf++; *pbuf = ' '; pbuf++; } + for (cols = 0; cols < MATRIX_COLS; cols++) + { + if (row & 1 << cols) *pbuf = 'X'; + else *pbuf = '.'; + pbuf++; + } + *pbuf = '\r'; pbuf++; + *pbuf = '\n'; pbuf++; + } + *pbuf = 0; + dprint(buf); +} diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk index a51c4a4ff0c5..78d9c2eaaf8e 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk @@ -1,2 +1,40 @@ +# project specific files +SRC = matrix.c +SRC += config_led.c + +#For platform and packs +ARM_ATSAM = SAMD51J18A +MCU = cortex-m4 + +CUSTOM_MATRIX = yes + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # 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 on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +VIRTSER_ENABLE = no # USB Serial Driver +RAW_ENABLE = no # Raw device +AUTO_SHIFT_ENABLE = no # Auto Shift + +# Custom RGB matrix handling +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = custom WPM_ENABLE = yes VELOCIKEY_ENABLE = yes # doesn't work with RGB MATRIX only RGB LIGHT :( + +LAYOUTS = 65_ansi_blocker diff --git a/keyboards/misonoworks/karina/readme.md b/keyboards/misonoworks/karina/readme.md index b56a7f887fde..a6dcd8444700 100644 --- a/keyboards/misonoworks/karina/readme.md +++ b/keyboards/misonoworks/karina/readme.md @@ -1,15 +1,15 @@ -# Karina - -![Karina](https://i.imgur.com/dawlYEl.jpg) - -35% keyboard with two rotary encoders and an LED bar. - -* Keyboard Maintainer: [MisonoWorks](https://github.com/autumnisacutie/) -* Hardware Supported: Karina V1 PCB -* Hardware Availability: [P3D Store](https://p3dstore.com/) - -Make example for this keyboard (after setting up your build environment): - - make misonoworks/karina:default - -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). +# Karina + +![Karina](https://i.imgur.com/dawlYEl.jpg) + +35% keyboard with two rotary encoders and an LED bar. + +* Keyboard Maintainer: [MisonoWorks](https://github.com/autumnisacutie/) +* Hardware Supported: Karina V1 PCB +* Hardware Availability: [P3D Store](https://p3dstore.com/) + +Make example for this keyboard (after setting up your build environment): + + make misonoworks/karina:default + +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). From 596722575c0316cd5ed04dda020b1d43517042b0 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:02:19 -0500 Subject: [PATCH 11/22] Update readme.md --- keyboards/massdrop/alt/readme.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/keyboards/massdrop/alt/readme.md b/keyboards/massdrop/alt/readme.md index bf33b2048f33..bae088fcb87a 100644 --- a/keyboards/massdrop/alt/readme.md +++ b/keyboards/massdrop/alt/readme.md @@ -1,3 +1,31 @@ + +# Custom mapping for the Drop Alt Keyboard. + +A really simple set of changes/fixes + +# Features and changes: + +## *ESC is now Grave Escape.* +Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. + +## *RGB timer switch off* + +There is a timer that turns off RGB lighting after a set time. This is defined by + + #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off + +## *Keyboard chatter fix* + +I have left the debounce settings and instead changed + + wait_us(1); //Delay for output +to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. + + + + + + # ALT ![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) From 77932a59d83ee08575bf582165175f5299e1fbe9 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:11:32 -0500 Subject: [PATCH 12/22] updating documentation --- .../alt/keymaps/urbanvanilla/keymap.c | 1 + readme.md | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index d0b5f82b7136..31d8e3bc974c 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -140,6 +140,7 @@ idle_timer = timer_read(); rgb_matrix_set_speed_noeeprom(currentWPM); rgb_matrix_set_color(13, 100, 255, 255); } + return true; //Process all other keycodes normally } } diff --git a/readme.md b/readme.md index 6092f209be1a..784a6cda3c68 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,27 @@ +# Custom mapping for the Drop Alt Keyboard. + +A really simple set of changes/fixes + +# Features and changes: + +## *ESC is now Grave Escape.* +Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. + +## *RGB timer switch off* + +There is a timer that turns off RGB lighting after a set time. This is defined by + + #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off + +## *Keyboard chatter fix* + +I have left the debounce settings and instead changed + + wait_us(1); //Delay for output +to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. +## --- +~~also a really poorly implemented and not functional version of velocikey for rgb matrix that I'd rather not talk about.~~ + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From ad3a359080d1dfb2f3a4817eb159b324d2e9d817 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:19:13 -0500 Subject: [PATCH 13/22] Create readme.md --- keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md index 116ccc4efff2..bae088fcb87a 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md @@ -19,7 +19,7 @@ There is a timer that turns off RGB lighting after a set time. This is defined b I have left the debounce settings and instead changed wait_us(1); //Delay for output -to 40 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. 20 seemed to still let key chatter go through. Seems to be working well since. +to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. From 0b207849a0eeeb4aac6bb07f583c673460769acf Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:40:11 -0500 Subject: [PATCH 14/22] restoring default documentation --- keyboards/massdrop/alt/readme.md | 28 ---------------------------- readme.md | 24 ------------------------ 2 files changed, 52 deletions(-) diff --git a/keyboards/massdrop/alt/readme.md b/keyboards/massdrop/alt/readme.md index bae088fcb87a..bf33b2048f33 100644 --- a/keyboards/massdrop/alt/readme.md +++ b/keyboards/massdrop/alt/readme.md @@ -1,31 +1,3 @@ - -# Custom mapping for the Drop Alt Keyboard. - -A really simple set of changes/fixes - -# Features and changes: - -## *ESC is now Grave Escape.* -Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. - -## *RGB timer switch off* - -There is a timer that turns off RGB lighting after a set time. This is defined by - - #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off - -## *Keyboard chatter fix* - -I have left the debounce settings and instead changed - - wait_us(1); //Delay for output -to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. - - - - - - # ALT ![ALT](https://massdrop-s3.imgix.net/product-images/alt-keyboard/FP/WNxwR19gTua3nxiiQWP3_AI7B3311%20copy%20page.jpg?auto=format&fm=jpg&fit=max&w=700&h=467&dpr=1&q=80) diff --git a/readme.md b/readme.md index 784a6cda3c68..6092f209be1a 100644 --- a/readme.md +++ b/readme.md @@ -1,27 +1,3 @@ -# Custom mapping for the Drop Alt Keyboard. - -A really simple set of changes/fixes - -# Features and changes: - -## *ESC is now Grave Escape.* -Changes KC_ESC for grave escape - Escape key is also `/~ when used with the modifier key. - -## *RGB timer switch off* - -There is a timer that turns off RGB lighting after a set time. This is defined by - - #define IDLE_TIMER_DURATION 20000 //how many milliseconds before RGB turns off - -## *Keyboard chatter fix* - -I have left the debounce settings and instead changed - - wait_us(1); //Delay for output -to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. -## --- -~~also a really poorly implemented and not functional version of velocikey for rgb matrix that I'd rather not talk about.~~ - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 28c8e5854a03790621c5754b7b48eae6e15b3c56 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 17:34:55 -0500 Subject: [PATCH 15/22] update with review changes implemented removed unnecessary lines and files. increased wait_us() parameter to 40 as was still getting chatter at 20. removed some code for the terrible rudimentary attempt at velocikey for rgb matrix --- .../massdrop/alt/keymaps/urbanvanilla/alt.h | 36 ------ .../alt/keymaps/urbanvanilla/config.h | 104 ------------------ .../alt/keymaps/urbanvanilla/keymap.c | 33 ++++-- .../alt/keymaps/urbanvanilla/matrix.c | 2 +- .../alt/keymaps/urbanvanilla/readme.md | 2 +- .../alt/keymaps/urbanvanilla/rules.mk | 38 ------- 6 files changed, 27 insertions(+), 188 deletions(-) delete mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h deleted file mode 100644 index 03960954506a..000000000000 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/alt.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include "quantum.h" -#include "config_led.h" -#include "matrix.h" - -#include "i2c_master.h" -#include "md_rgb_matrix.h" //For led keycodes -#include "usb/udi_cdc.h" -#include "usb/usb2422.h" - -#define LAYOUT_65_ansi_blocker( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, \ - K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, \ - K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, \ - K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, \ - K61, K62, K63, K64, K65, K66, K67 \ -) { \ - { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, K15, }, \ - { K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, }, \ - { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, KC_NO, K43, K44, }, \ - { K45, KC_NO, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, K58, }, \ - { K59, K60, K61, KC_NO, KC_NO, KC_NO, K62, KC_NO, KC_NO, KC_NO, K63, K64, K65, K66, K67, }, \ -} - -#define TOGGLE_FLAG_AND_PRINT(var, name) { \ - if (var) { \ - dprintf(name " disabled\r\n"); \ - var = !var; \ - } else { \ - var = !var; \ - dprintf(name " enabled\r\n"); \ - } \ - } - -#define LAYOUT LAYOUT_65_ansi_blocker // Ensure that user made existing keymaps do not break. diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h index c18928cc1040..b3926d386356 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h @@ -17,109 +17,6 @@ along with this program. If not, see . #pragma once -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x04D8 -#define PRODUCT_ID 0xEED3 -#define DEVICE_VER 0x0101 - -#define MANUFACTURER "Massdrop Inc." -#define PRODUCT "ALT Keyboard" -#define SERIAL_NUM "Unavailable" - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* MCU Port name definitions */ -#define PA 0 -#define PB 1 - -/* Port and Pin definition of key row hardware configuration */ -#define MATRIX_ROW_PORTS PA, PA, PA, PA, PA -#define MATRIX_ROW_PINS 0, 1, 2, 3, 4 - -/* Port and Pin definition of key column hardware configuration */ -#define MATRIX_COL_PORTS PB, PB, PB, PB, PB, PB, PB, PB, PB, PB, PA, PA, PA, PA, PA -#define MATRIX_COL_PINS 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 10, 11 - -/* This Shift Register expands available hardware output lines to control additional peripherals */ -/* It uses four lines from the MCU to provide 16 output lines */ -/* Shift Register Clock configuration (MCU to ShiftRegister.RCLK) */ -#define SR_EXP_RCLK_PORT PB -#define SR_EXP_RCLK_PIN 14 -/* Shift Register Output Enable configuration (MCU to ShiftRegister.OE_N) */ -#define SR_EXP_OE_N_PORT PB -#define SR_EXP_OE_N_PIN 15 -/* SERCOM port to use for Shift Register SPI */ -/* DATAOUT and SCLK must be configured to use hardware pins of this port */ -#define SR_EXP_SERCOM SERCOM2 -/* Shift Register SPI Data Out configuration (MCU.SERCOMx.PAD[0] to ShiftRegister.SER) */ -#define SR_EXP_DATAOUT_PORT PA -#define SR_EXP_DATAOUT_PIN 12 -#define SR_EXP_DATAOUT_MUX 2 -/* Shift Register SPI Serial Clock configuration (MCU.SERCOMx.PAD[1] to ShiftRegister.SRCLK) */ -#define SR_EXP_SCLK_PORT PA -#define SR_EXP_SCLK_PIN 13 -#define SR_EXP_SCLK_MUX 2 - -/* Debug LED (Small LED Located near MCU) */ -#define DEBUG_LED_ENABLE 1 -#define DEBUG_LED_PORT PA -#define DEBUG_LED_PIN 27 - -/* Additional debugging ports */ -/* PCB M21 */ -#define DEBUG_PORT1_ENABLE 1 -#define DEBUG_PORT1_PORT PB -#define DEBUG_PORT1_PIN 3 -/* PCB M23 */ -#define DEBUG_PORT2_ENABLE 1 -#define DEBUG_PORT2_PORT PB -#define DEBUG_PORT2_PIN 17 -/* PCB M25 */ -#define DEBUG_PORT3_ENABLE 1 -#define DEBUG_PORT3_PORT PA -#define DEBUG_PORT3_PIN 20 - -/* Debug Boot Tracing - During boot sequence, ground this pin to halt and display debug code using Debug LED */ -/* This is useful in determining which hardware device may have malfunctioned or is improperly configured */ -/* Feature is automatically disabled after successful boot */ -/* PCB M27 */ -#define DEBUG_BOOT_TRACING_ENABLE 1 -#define DEBUG_BOOT_TRACING_PORT PB -#define DEBUG_BOOT_TRACING_PIN 23 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* 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 boot in NKRO mode */ -//#define FORCE_NKRO - -/* - * 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 - #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_LED_PROCESS_LIMIT 15 @@ -127,4 +24,3 @@ along with this program. If not, see . #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended -#include "config_led.h" diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index 31d8e3bc974c..87db0af8305f 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -1,3 +1,20 @@ + /* Copyright 2021 James Teow + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #include QMK_KEYBOARD_H enum alt_keycodes { @@ -12,7 +29,7 @@ enum alt_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - 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_DEL, \ + 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_DEL, \ 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_HOME, \ 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, \ @@ -43,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint32_t idle_timer; //custom timer to check if keyboard is idled. bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set -bool Jelocikey_toggle = false; -uint8_t currentWPM; +//bool Jelocikey_toggle = false; +//uint8_t currentWPM; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -118,14 +135,14 @@ idle_timer = timer_read(); } } return false; - case VLK_TOG: +/* case VLK_TOG: if (record->event.pressed) { Jelocikey_toggle =! Jelocikey_toggle; } else { rgb_matrix_set_speed_noeeprom(127); } - return false; + return false; */ default: if (rgbkeyIdle) { //check if the keyboards already idle and if it is, turn it back on as key is pressed. @@ -134,12 +151,12 @@ idle_timer = timer_read(); rgb_matrix_enable_noeeprom(); } - if (Jelocikey_toggle) { +/* if (Jelocikey_toggle) { rgb_matrix_set_speed_noeeprom(3); currentWPM = get_current_wpm(); rgb_matrix_set_speed_noeeprom(currentWPM); - rgb_matrix_set_color(13, 100, 255, 255); - } + rgb_matrix_set_color(30, 100, 255, 255); + } */ return true; //Process all other keycodes normally } diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c index afc9eb348703..b8c6ea5a7e8d 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c @@ -95,7 +95,7 @@ uint8_t matrix_scan(void) { PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output - wait_us(20); //Delay for output + wait_us(40); //Delay for output scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md index bae088fcb87a..116ccc4efff2 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md @@ -19,7 +19,7 @@ There is a timer that turns off RGB lighting after a set time. This is defined b I have left the debounce settings and instead changed wait_us(1); //Delay for output -to 20 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. Seems to be working well since. +to 40 instead of 1 which works for other keyboards as I was getting lots of keyboard chatter on all keys previously. 20 seemed to still let key chatter go through. Seems to be working well since. diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk index 78d9c2eaaf8e..a51c4a4ff0c5 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk @@ -1,40 +1,2 @@ -# project specific files -SRC = matrix.c -SRC += config_led.c - -#For platform and packs -ARM_ATSAM = SAMD51J18A -MCU = cortex-m4 - -CUSTOM_MATRIX = yes - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # 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 on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -VIRTSER_ENABLE = no # USB Serial Driver -RAW_ENABLE = no # Raw device -AUTO_SHIFT_ENABLE = no # Auto Shift - -# Custom RGB matrix handling -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = custom WPM_ENABLE = yes VELOCIKEY_ENABLE = yes # doesn't work with RGB MATRIX only RGB LIGHT :( - -LAYOUTS = 65_ansi_blocker From a3052000d6055e8b7ce4ff3a43479cb90f27dbd8 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 21:29:16 -0500 Subject: [PATCH 16/22] Update matrix.c --- .../alt/keymaps/urbanvanilla/matrix.c | 123 +----------------- 1 file changed, 1 insertion(+), 122 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c index b8c6ea5a7e8d..05671ee2b19d 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c @@ -1,85 +1,3 @@ -/* -Copyright 2018 Massdrop Inc. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "alt.h" - -#include "d51_util.h" -#include "debug.h" -#include "clks.h" -#include - -matrix_row_t mlatest[MATRIX_ROWS]; -matrix_row_t mlast[MATRIX_ROWS]; -matrix_row_t mdebounced[MATRIX_ROWS]; - -uint8_t row_ports[] = { MATRIX_ROW_PORTS }; -uint8_t row_pins[] = { MATRIX_ROW_PINS }; -uint8_t col_ports[] = { MATRIX_COL_PORTS }; -uint8_t col_pins[] = { MATRIX_COL_PINS }; -uint32_t row_masks[2]; //NOTE: If more than PA PB used in the future, adjust code to accomodate - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -void matrix_init(void) -{ - memset(mlatest, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(mlast, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(mdebounced, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - - row_masks[PA] = 0; - row_masks[PB] = 0; - - uint8_t row; - for (row = 0; row < MATRIX_ROWS; row++) - { - PORT->Group[row_ports[row]].DIRCLR.reg = 1 << row_pins[row]; //Input - PORT->Group[row_ports[row]].OUTCLR.reg = 1 << row_pins[row]; //Low - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.INEN = 1; //Input Enable, - PORT->Group[row_ports[row]].PINCFG[row_pins[row]].bit.PULLEN = 1; //Pull Enable - row_masks[row_ports[row]] |= 1 << row_pins[row]; //Add pin to proper row mask - } - - uint8_t col; - for (col = 0; col < MATRIX_COLS; col++) - { - PORT->Group[col_ports[col]].DIRSET.reg = 1 << col_pins[col]; //Output - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; //Low - } - - matrix_init_quantum(); -} - -uint64_t mdebouncing = 0; uint8_t matrix_scan(void) { uint8_t mchanged; @@ -134,43 +52,4 @@ uint8_t matrix_scan(void) matrix_scan_quantum(); return 1; -} - -matrix_row_t matrix_get_row(uint8_t row) -{ - return mdebounced[row]; -} - -void matrix_print(void) -{ - char buf[(MATRIX_COLS+8)*(MATRIX_ROWS+1)] = "R C"; - char *pbuf = buf+3; - uint32_t cols; - uint32_t rows; - matrix_row_t row; - - for (cols = 1; cols <= MATRIX_COLS; cols++) - { - *pbuf = (cols%10)+48; - pbuf++; - } - *pbuf = '\r'; pbuf++; - *pbuf = '\n'; pbuf++; - - for (rows = 1; rows <= MATRIX_ROWS; rows++) - { - row = matrix_get_row(rows-1); - if (rows < 10) { *pbuf = rows+48; pbuf++; *pbuf = ' '; pbuf++; *pbuf = ' '; pbuf++; } - else { *pbuf = (rows/10)+48; pbuf++; *pbuf = (rows%10)+48; pbuf++; *pbuf = ' '; pbuf++; } - for (cols = 0; cols < MATRIX_COLS; cols++) - { - if (row & 1 << cols) *pbuf = 'X'; - else *pbuf = '.'; - pbuf++; - } - *pbuf = '\r'; pbuf++; - *pbuf = '\n'; pbuf++; - } - *pbuf = 0; - dprint(buf); -} +} \ No newline at end of file From 6bb96075ed7f3f830458cd34d86101d35ec9277a Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Wed, 30 Dec 2020 17:21:24 -0500 Subject: [PATCH 17/22] Revert "Merge pull request #3 from urbanvanilla/dev_branch" This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5. --- .../alt/keymaps/urbanvanilla/keymap.c | 34 +++++-------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index 87db0af8305f..d0b5f82b7136 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -1,20 +1,3 @@ - /* Copyright 2021 James Teow - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - #include QMK_KEYBOARD_H enum alt_keycodes { @@ -29,7 +12,7 @@ enum alt_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - 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_DEL, \ + 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_DEL, \ 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_HOME, \ 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, \ @@ -60,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { static uint32_t idle_timer; //custom timer to check if keyboard is idled. bool rgbkeyIdle = false; //flag for keyboard idling, nil keys for set -//bool Jelocikey_toggle = false; -//uint8_t currentWPM; +bool Jelocikey_toggle = false; +uint8_t currentWPM; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -135,14 +118,14 @@ idle_timer = timer_read(); } } return false; -/* case VLK_TOG: + case VLK_TOG: if (record->event.pressed) { Jelocikey_toggle =! Jelocikey_toggle; } else { rgb_matrix_set_speed_noeeprom(127); } - return false; */ + return false; default: if (rgbkeyIdle) { //check if the keyboards already idle and if it is, turn it back on as key is pressed. @@ -151,13 +134,12 @@ idle_timer = timer_read(); rgb_matrix_enable_noeeprom(); } -/* if (Jelocikey_toggle) { + if (Jelocikey_toggle) { rgb_matrix_set_speed_noeeprom(3); currentWPM = get_current_wpm(); rgb_matrix_set_speed_noeeprom(currentWPM); - rgb_matrix_set_color(30, 100, 255, 255); - } */ - + rgb_matrix_set_color(13, 100, 255, 255); + } return true; //Process all other keycodes normally } } From 9df83cb265960eeb4201d44e8032845042e4af90 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 21:47:04 -0500 Subject: [PATCH 18/22] Delete matrix.c --- .../alt/keymaps/urbanvanilla/matrix.c | 55 ------------------- 1 file changed, 55 deletions(-) delete mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c deleted file mode 100644 index 05671ee2b19d..000000000000 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/matrix.c +++ /dev/null @@ -1,55 +0,0 @@ -uint8_t matrix_scan(void) -{ - uint8_t mchanged; - uint8_t row; - uint8_t col; - uint32_t scans[2]; //PA PB - - if (timer_read64() < mdebouncing) return 1; //mdebouncing == 0 when no debouncing active - - memset(mlatest, 0, MATRIX_ROWS * sizeof(matrix_row_t)); //Zero the result buffer - - for (col = 0; col < MATRIX_COLS; col++) - { - PORT->Group[col_ports[col]].OUTSET.reg = 1 << col_pins[col]; //Set col output - - wait_us(40); //Delay for output - - scans[PA] = PORT->Group[PA].IN.reg & row_masks[PA]; //Read PA row pins data - scans[PB] = PORT->Group[PB].IN.reg & row_masks[PB]; //Read PB row pins data - - PORT->Group[col_ports[col]].OUTCLR.reg = 1 << col_pins[col]; //Clear col output - - for (row = 0; row < MATRIX_ROWS; row++) - { - //Move scan bits from scans array into proper row bit locations - if (scans[row_ports[row]] & (1 << row_pins[row])) - mlatest[row] |= 1 << col; - } - } - - mchanged = 0; //Default to no matrix change since last - - for (row = 0; row < MATRIX_ROWS; row++) - { - if (mlast[row] != mlatest[row]) - mchanged = 1; - mlast[row] = mlatest[row]; - } - - if (!mchanged) - { - for (row = 0; row < MATRIX_ROWS; row++) - mdebounced[row] = mlatest[row]; - mdebouncing = 0; - } - else - { - //Begin or extend debounce on change - mdebouncing = timer_read64() + DEBOUNCE; - } - - matrix_scan_quantum(); - - return 1; -} \ No newline at end of file From 18f7903b9339ee199c40f7686a35eca7e995365e Mon Sep 17 00:00:00 2001 From: James <36494838+urbanvanilla@users.noreply.github.com> Date: Thu, 7 Jan 2021 21:43:35 -0500 Subject: [PATCH 19/22] Update keyboards/massdrop/alt/keymaps/urbanvanilla/config.h Co-authored-by: Joel Challis --- keyboards/massdrop/alt/keymaps/urbanvanilla/config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h index b3926d386356..0f2740013d4c 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/config.h @@ -17,10 +17,11 @@ along with this program. If not, see . #pragma once +#define MATRIX_IO_DELAY 40 + #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_LED_PROCESS_LIMIT 15 #define RGB_MATRIX_LED_FLUSH_LIMIT 10 #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended - From e11b9164e7915c86d47eb09e404c847fcb628462 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Thu, 7 Jan 2021 22:09:43 -0500 Subject: [PATCH 20/22] Update keymap.c --- keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index d0b5f82b7136..9690f81f075d 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -118,14 +118,14 @@ idle_timer = timer_read(); } } return false; - case VLK_TOG: +/* case VLK_TOG: if (record->event.pressed) { Jelocikey_toggle =! Jelocikey_toggle; } else { rgb_matrix_set_speed_noeeprom(127); } - return false; + return false; */ default: if (rgbkeyIdle) { //check if the keyboards already idle and if it is, turn it back on as key is pressed. From f32005be59ec0acb8c145eb29acff227b8df1fb4 Mon Sep 17 00:00:00 2001 From: urbanvanilla Date: Sat, 9 Jan 2021 15:21:53 -0500 Subject: [PATCH 21/22] Update keymap.c --- keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index 9690f81f075d..6a934b1f4449 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -12,7 +12,7 @@ enum alt_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - 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_DEL, \ + 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_DEL, \ 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_HOME, \ 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, \ From 276edc36f1da3e637fa73d3f3d10fa6f510fad58 Mon Sep 17 00:00:00 2001 From: James <36494838+urbanvanilla@users.noreply.github.com> Date: Tue, 12 Jan 2021 20:04:54 -0500 Subject: [PATCH 22/22] Update keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c Co-authored-by: Ryan --- .../alt/keymaps/urbanvanilla/keymap.c | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c index 6a934b1f4449..aa1d337d100e 100644 --- a/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c +++ b/keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c @@ -12,26 +12,26 @@ enum alt_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker( - 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_DEL, \ - 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_HOME, \ - 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ + 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_DEL, + 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_HOME, + 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65_ansi_blocker( - 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, VLK_TOG, KC_MUTE, \ - _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, \ - _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, \ - _______, _______, RGB_TOG, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, KC_PGUP, KC_VOLD, \ - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \ + 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, VLK_TOG, KC_MUTE, + _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, + _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, RGB_TOG, _______, _______, MD_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, KC_PGUP, KC_VOLD, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ), /* [X] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), */ }; @@ -161,4 +161,4 @@ void suspend_power_down_user(void) { void suspend_wakeup_init_user(void) { rgb_matrix_set_suspend_state(false); -} \ No newline at end of file +}