From 26eef35f07698d23aafae90e1c230b52e100a334 Mon Sep 17 00:00:00 2001 From: James Young Date: Sat, 29 Feb 2020 12:00:00 -0800 Subject: 2020 February 29 Breaking Changes Update (#8064) --- keyboards/gon/nerd60/config.h | 35 ++++++++ keyboards/gon/nerd60/info.json | 78 ++++++++++++++++++ keyboards/gon/nerd60/keymaps/default/keymap.c | 20 +++++ keyboards/gon/nerd60/keymaps/default/readme.md | 3 + keyboards/gon/nerd60/keymaps/mauin/keymap.c | 108 +++++++++++++++++++++++++ keyboards/gon/nerd60/keymaps/mauin/readme.md | 5 ++ keyboards/gon/nerd60/keymaps/mauin/rules.mk | 20 +++++ keyboards/gon/nerd60/nerd60.c | 1 + keyboards/gon/nerd60/nerd60.h | 22 +++++ keyboards/gon/nerd60/readme.md | 27 +++++++ keyboards/gon/nerd60/rules.mk | 36 +++++++++ 11 files changed, 355 insertions(+) create mode 100644 keyboards/gon/nerd60/config.h create mode 100644 keyboards/gon/nerd60/info.json create mode 100644 keyboards/gon/nerd60/keymaps/default/keymap.c create mode 100644 keyboards/gon/nerd60/keymaps/default/readme.md create mode 100644 keyboards/gon/nerd60/keymaps/mauin/keymap.c create mode 100644 keyboards/gon/nerd60/keymaps/mauin/readme.md create mode 100644 keyboards/gon/nerd60/keymaps/mauin/rules.mk create mode 100644 keyboards/gon/nerd60/nerd60.c create mode 100644 keyboards/gon/nerd60/nerd60.h create mode 100644 keyboards/gon/nerd60/readme.md create mode 100644 keyboards/gon/nerd60/rules.mk (limited to 'keyboards/gon/nerd60') diff --git a/keyboards/gon/nerd60/config.h b/keyboards/gon/nerd60/config.h new file mode 100644 index 0000000000..090b50cb6a --- /dev/null +++ b/keyboards/gon/nerd60/config.h @@ -0,0 +1,35 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6FD7 +#define DEVICE_VER 0x0001 +#define MANUFACTURER GON +#define PRODUCT NerD 60 +#define DESCRIPTION QMK port for the GON NerD 60 PCB + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* backlight */ +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 3 + +/* matrix pins */ +#define MATRIX_ROW_PINS { B4, E2, F4, F7, F1, F6, C6, F5, D7, C7 } +#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, F0, D0, D5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 diff --git a/keyboards/gon/nerd60/info.json b/keyboards/gon/nerd60/info.json new file mode 100644 index 0000000000..85e0fe9d54 --- /dev/null +++ b/keyboards/gon/nerd60/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "GON NerD 60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60": { + "key_count": 64, + "layout": [ + {"label":"K80", "x":0, "y":0}, + {"label":"K10", "x":1, "y":0}, + {"label":"K01", "x":2, "y":0}, + {"label":"K11", "x":3, "y":0}, + {"label":"K02", "x":4, "y":0}, + {"label":"K12", "x":5, "y":0}, + {"label":"K03", "x":6, "y":0}, + {"label":"K13", "x":7, "y":0}, + {"label":"K04", "x":8, "y":0}, + {"label":"K14", "x":9, "y":0}, + {"label":"K05", "x":10, "y":0}, + {"label":"K15", "x":11, "y":0}, + {"label":"K06", "x":12, "y":0}, + {"label":"K16", "x":13, "y":0, "w":2}, + {"label":"K20", "x":0, "y":1, "w":1.5}, + {"label":"K30", "x":1.5, "y":1}, + {"label":"K21", "x":2.5, "y":1}, + {"label":"K31", "x":3.5, "y":1}, + {"label":"K22", "x":4.5, "y":1}, + {"label":"K32", "x":5.5, "y":1}, + {"label":"K23", "x":6.5, "y":1}, + {"label":"K33", "x":7.5, "y":1}, + {"label":"K24", "x":8.5, "y":1}, + {"label":"K34", "x":9.5, "y":1}, + {"label":"K25", "x":10.5, "y":1}, + {"label":"K35", "x":11.5, "y":1}, + {"label":"K26", "x":12.5, "y":1}, + {"label":"K36", "x":13.5, "y":1, "w":1.5}, + {"label":"K40", "x":0, "y":2, "w":1.75}, + {"label":"K41", "x":1.75, "y":2}, + {"label":"K51", "x":2.75, "y":2}, + {"label":"K42", "x":3.75, "y":2}, + {"label":"K52", "x":4.75, "y":2}, + {"label":"K43", "x":5.75, "y":2}, + {"label":"K53", "x":6.75, "y":2}, + {"label":"K44", "x":7.75, "y":2}, + {"label":"K54", "x":8.75, "y":2}, + {"label":"K45", "x":9.75, "y":2}, + {"label":"K55", "x":10.75, "y":2}, + {"label":"K46", "x":11.75, "y":2}, + {"label":"K17", "x":12.75, "y":2}, + {"label":"K56", "x":13.75, "y":2, "w":1.25}, + {"label":"K70", "x":0, "y":3, "w":1.25}, + {"label":"K97", "x":1.25, "y":3}, + {"label":"K61", "x":2.25, "y":3}, + {"label":"K71", "x":3.25, "y":3}, + {"label":"K62", "x":4.25, "y":3}, + {"label":"K72", "x":5.25, "y":3}, + {"label":"K63", "x":6.25, "y":3}, + {"label":"K73", "x":7.25, "y":3}, + {"label":"K64", "x":8.25, "y":3}, + {"label":"K74", "x":9.25, "y":3}, + {"label":"K65", "x":10.25, "y":3}, + {"label":"K75", "x":11.25, "y":3}, + {"label":"K66", "x":12.25, "y":3, "w":1.75}, + {"label":"K76", "x":14, "y":3}, + {"label":"K60", "x":0, "y":4, "w":1.25}, + {"label":"K50", "x":1.25, "y":4, "w":1.25}, + {"label":"K87", "x":2.5, "y":4, "w":1.25}, + {"label":"K07", "x":3.75, "y":4, "w":6.25}, + {"label":"K27", "x":10, "y":4, "w":1.25}, + {"label":"K37", "x":11.25, "y":4, "w":1.25}, + {"label":"K47", "x":12.5, "y":4, "w":1.25}, + {"label":"K57", "x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/gon/nerd60/keymaps/default/keymap.c b/keyboards/gon/nerd60/keymaps/default/keymap.c new file mode 100644 index 0000000000..d205e06de1 --- /dev/null +++ b/keyboards/gon/nerd60/keymaps/default/keymap.c @@ -0,0 +1,20 @@ +#include QMK_KEYBOARD_H + +// Keymap layers +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60( /* Base */ + KC_ESC, 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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60( /* System layer to have access to RESET button */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, _______, _______, + _______, _______, KC_APP, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/gon/nerd60/keymaps/default/readme.md b/keyboards/gon/nerd60/keymaps/default/readme.md new file mode 100644 index 0000000000..b7d46191e6 --- /dev/null +++ b/keyboards/gon/nerd60/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for GON NerD 60 + +![keymap](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/gon/nerd60/keymaps/default/keymap.png) diff --git a/keyboards/gon/nerd60/keymaps/mauin/keymap.c b/keyboards/gon/nerd60/keymaps/mauin/keymap.c new file mode 100644 index 0000000000..fc553bcf16 --- /dev/null +++ b/keyboards/gon/nerd60/keymaps/mauin/keymap.c @@ -0,0 +1,108 @@ +#include QMK_KEYBOARD_H + +// Keymap layers +#define BASE_LAYER 0 +#define FUNCTION_LAYER 1 +#define SYSTEM_LAYER 2 + +// Key aliases +#define __x__ KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | BSp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Funct | A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | + * |-----------------------------------------------------------' + * | Ctl|Alt|Gui | Space |Gui |Alt| F2| Ctl | + * `-----------------------------------------------------------' + */ + [BASE_LAYER] = LAYOUT_60( + F(0), 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_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, \ + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, __x__, KC_ENT, \ + KC_LSFT, __x__, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, __x__, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(2), KC_RCTL \ + ), + + /* Layer 1: Function Layer + * ,-----------------------------------------------------------. + * | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11| F12| Del | + * |-----------------------------------------------------------| + * | |Prv|Ply|Nxt| | |Pg^|Hme|Up |End| |Br-|Br+| | + * |-----------------------------------------------------------| + * |Hold |Mte|Vl-|Vl+| | |Pgv|Lft|Dwn|Rgt| | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------' + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [FUNCTION_LAYER] = LAYOUT_60( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + __x__, KC_MPRV, KC_MPLY, KC_MNXT, __x__, __x__, KC_PGUP, KC_HOME, KC_UP, KC_END, __x__, KC_SLCK, KC_PAUS, __x__, \ + KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, __x__, __x__, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, __x__, __x__, __x__, __x__, \ + KC_LSFT, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, __x__, __x__, __x__, __x__ \ + ), + + /* Layer 2: System Layer + * ,-----------------------------------------------------------. + * |Reset| | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------' + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [SYSTEM_LAYER] = LAYOUT_60( + RESET, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \ + __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \ + __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \ + __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, __x__, \ + __x__, __x__, __x__, __x__, __x__, __x__, KC_TRNS, __x__ \ + ), +}; + +enum function_id { + ESC_GRV, // Makes Esc behave like `~ when pressed with the left GUI modifier. This is the "switch between windows of the same application" key combination in macOS +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(ESC_GRV), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t esc_grv_mask; + switch (id) { + case ESC_GRV: + esc_grv_mask = get_mods() & MOD_BIT(KC_LGUI); + if (record->event.pressed) { + if (esc_grv_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (esc_grv_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/gon/nerd60/keymaps/mauin/readme.md b/keyboards/gon/nerd60/keymaps/mauin/readme.md new file mode 100644 index 0000000000..63be7c3923 --- /dev/null +++ b/keyboards/gon/nerd60/keymaps/mauin/readme.md @@ -0,0 +1,5 @@ +# Mauin's keymap for the GON NerD + +This layout is based on a Pok3r style layout with a standard base layer. + +Function layers provide access to navigation and media keys. diff --git a/keyboards/gon/nerd60/keymaps/mauin/rules.mk b/keyboards/gon/nerd60/keymaps/mauin/rules.mk new file mode 100644 index 0000000000..625fc9c029 --- /dev/null +++ b/keyboards/gon/nerd60/keymaps/mauin/rules.mk @@ -0,0 +1,20 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +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 +HD44780_ENABLE = no # Enable support for HD44780 based LCDs diff --git a/keyboards/gon/nerd60/nerd60.c b/keyboards/gon/nerd60/nerd60.c new file mode 100644 index 0000000000..5022732b80 --- /dev/null +++ b/keyboards/gon/nerd60/nerd60.c @@ -0,0 +1 @@ +#include "nerd60.h" diff --git a/keyboards/gon/nerd60/nerd60.h b/keyboards/gon/nerd60/nerd60.h new file mode 100644 index 0000000000..3f8f538e27 --- /dev/null +++ b/keyboards/gon/nerd60/nerd60.h @@ -0,0 +1,22 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_60( \ + K80, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, \ + K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K17, K56, \ + K70, K97, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, \ + K60, K50, K87, K07, K27, K37, K47, K57 \ +) { \ + { KC_NO, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO }, \ + { K80, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K87 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K97 } \ +} diff --git a/keyboards/gon/nerd60/readme.md b/keyboards/gon/nerd60/readme.md new file mode 100644 index 0000000000..1b4689ea03 --- /dev/null +++ b/keyboards/gon/nerd60/readme.md @@ -0,0 +1,27 @@ +# GON NerD 60 + +A Korean Custom 60%. + +* Keyboard Maintainer: QMK Community +* Hardware Supported: GON NerD 60 PCB +* Hardware Availability: [gonskeyboardworks.com](http://www.gonskeyboardworks.com/pcbs-and-controllers/113-nerd-60-ver20-pcb.html) + +Make example for this keyboard (after setting up your build environment): + + make gon/nerd60: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). + +## Changing Bootloader + +It's not possible to simply flash this firmware on the GON NerD keyboard as the original bootloader does not support DFU connections. + +It is possible to change the bootloader of the GON NerD with an ISP programmer. A guide on how to change the bootloader on your GON NerD can be found here: +[Converting NerD60 to TMK](https://deskthority.net/wiki/Converting_NerD60_to_TMK). After changing the bootloader you can flash your QMK keymap onto the keyboard. + +_After changing the bootloader on your GON NerD PCB you will not be able to go back to the original firmware and the official configuration software will +not work anymore. You will lose your warranty and official support from GON!_ + +## Reset button + +To run the `make dfu` command to flash keymaps onto the board, you need to put the board into DFU mode. As the GON NerD PCBs do not have a reset button on the board to put it into DFU mode, be sure to include a `RESET` button on your keymap. Otherwise you'll have to unscrew your keyboard from the case and short the GND and RST pins. diff --git a/keyboards/gon/nerd60/rules.mk b/keyboards/gon/nerd60/rules.mk new file mode 100644 index 0000000000..8446dd39ca --- /dev/null +++ b/keyboards/gon/nerd60/rules.mk @@ -0,0 +1,36 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +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 +HD44780_ENABLE = no # Enable support for HD44780 based LCDs -- cgit v1.2.3