From 8df2e70ae475841543e468c7d1660957367fe74d Mon Sep 17 00:00:00 2001 From: rookiebwoy <81021475+rookiebwoy@users.noreply.github.com> Date: Mon, 19 Feb 2024 12:23:33 +0100 Subject: [PATCH] Late9 keymaps update, added VIA support (#22801) --- keyboards/rookiebwoy/late9/readme.md | 12 +- keyboards/rookiebwoy/late9/rev1/info.json | 9 +- .../late9/rev1/keymaps/default/keymap.c | 24 +- .../late9/rev1/keymaps/multitap/keymap.c | 235 ------------------ .../late9/rev1/keymaps/multitap/readme.md | 3 - .../late9/rev1/keymaps/multitap/rules.mk | 2 - .../late9/rev1/keymaps/via/keymap.c | 84 +++++++ .../late9/rev1/keymaps/via/rules.mk | 1 + keyboards/rookiebwoy/late9/rev1/rules.mk | 15 +- 9 files changed, 110 insertions(+), 275 deletions(-) delete mode 100644 keyboards/rookiebwoy/late9/rev1/keymaps/multitap/keymap.c delete mode 100644 keyboards/rookiebwoy/late9/rev1/keymaps/multitap/readme.md delete mode 100644 keyboards/rookiebwoy/late9/rev1/keymaps/multitap/rules.mk create mode 100644 keyboards/rookiebwoy/late9/rev1/keymaps/via/keymap.c create mode 100644 keyboards/rookiebwoy/late9/rev1/keymaps/via/rules.mk diff --git a/keyboards/rookiebwoy/late9/readme.md b/keyboards/rookiebwoy/late9/readme.md index 9815391cbd5..bc6dfab57e2 100644 --- a/keyboards/rookiebwoy/late9/readme.md +++ b/keyboards/rookiebwoy/late9/readme.md @@ -5,11 +5,9 @@ The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '9 ![LATE-9](https://i.imgur.com/QXycTC3h.jpg "LATE-9 first proto") -See the project repository for gerbers. - * Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) * Hardware supported: ProMicro, _Elite-C (not tested)_ -* Project repository: [LATE-9 on github](https://github.com/rookiebwoy/late-9) +* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/rookiebwoy/late-9) for gerbers. Make example for this keyboard (after setting up your build environment): @@ -19,9 +17,9 @@ Flashing example for this keyboard: make rookiebwoy/late9/rev1:default:flash +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). -When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device. -After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. - -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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +## Bootloader +When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ +After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. \ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/info.json b/keyboards/rookiebwoy/late9/rev1/info.json index 05d0934b964..48f3cff840d 100644 --- a/keyboards/rookiebwoy/late9/rev1/info.json +++ b/keyboards/rookiebwoy/late9/rev1/info.json @@ -4,8 +4,8 @@ "url": "https://github.com/rookiebwoy/late-9)", "maintainer": "rookiebwoy", "usb": { - "vid": "0xFEED", - "pid": "0x3777", + "vid": "0x6961", + "pid": "0x3032", "device_version": "0.1.0" }, "tapping": { @@ -19,6 +19,11 @@ "rows": ["B4", "E6", "D7", "B3", "B2", "B6"] }, "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "nkro": true, + "oled": true + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c b/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c index bed15eb57e5..f93958fe8f3 100644 --- a/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c +++ b/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c @@ -22,23 +22,23 @@ enum layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap _BL: Base Layer +/* BL: Base Layer * ,-----------------------. * |MO(OP) | ↑ | BSPC | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | <- | ↓ | -> | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | 1 | 2 | 3 | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | 4 | 5 | 6 | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | 7 | 8 | 9 | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | 0 | . | = | * | | | | * `-----------------------' @@ -52,23 +52,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PEQL ), -/* Keymap _OP: Operators Layer +/* OP: Operators Layer * ,-----------------------. * |MO(OP) | ↑ | BSPC | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | <- | ↓ | -> | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | / | * | - | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | ( | ) | + | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | & | % | ^ | * | | | | - * |-------|-------|-------| + * |-------+-------+-------| * | | | . | = | * | | | | * `-----------------------' diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/keymap.c b/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/keymap.c deleted file mode 100644 index e378fb4921f..00000000000 --- a/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/keymap.c +++ /dev/null @@ -1,235 +0,0 @@ -/* Copyright 2021 rookiebwoy - * - * 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 - -// Layers declarations -enum layers { - _BL -}; - -// Tap Dance declarations -enum { - TD_PNCT, - TD_ABC, - TD_DEF, - TD_GHI, - TD_JKL, - TD_MNO, - TD_PQRS, - TD_TUV, - TD_WXYZ, - TD_SPACE, - TD_UPRCS, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap _BL: Base Layer - * ,-----------------------. - * |ENTER | ↑ | BSPC | - * | | | | - * |-------|-------|-------| - * | <- | ↓ | -> | - * | | | | - * |-------|-------|-------| - * | 1 .,' | 2 | 3 | - * |?!-:;/ | abc | def | - * |-------|-------|-------| - * | 4 | 5 | 6 | - * | ghi | jkl | mno | - * |-------|-------|-------| - * | 7 | 8 | 9 | - * | pqrs | tuv | wxyz | - * |-------|-------|-------| - * | * | 0 | CAPS | - * | | space | | - * `-----------------------' - */ - [_BL] = LAYOUT( - KC_ENT, KC_UP, KC_BSPC, - KC_LEFT, KC_DOWN, KC_RIGHT, - TD(TD_PNCT), TD(TD_ABC), TD(TD_DEF), - TD(TD_GHI), TD(TD_JKL), TD(TD_MNO), - TD(TD_PQRS), TD(TD_TUV), TD(TD_WXYZ), - KC_PAST, TD(TD_SPACE), TD(TD_UPRCS) - ), -}; - -// Tap Dance cycles -void dance_1 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_DOT); - else return tap_code(KC_1); - } else if (state->count == 2) { - tap_code (KC_COMM); - } else if (state->count == 3) { - tap_code(KC_QUOT); - } else if (state->count == 4) { - tap_code16(KC_QUES); - } else if (state->count == 5) { - tap_code16(KC_EXLM); - } else if (state->count == 6) { - tap_code(KC_MINS); - } else if (state->count == 7) { - tap_code16(KC_COLN); - } else if (state->count == 8) { - tap_code(KC_SCLN); - } else if (state->count == 9) { - tap_code(KC_SLSH); - } else { - reset_tap_dance (state); - } -} - -void dance_2 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_A); - else return tap_code(KC_2); - } else if (state->count == 2) { - tap_code (KC_B); - } else if (state->count == 3) { - tap_code(KC_C); - } else { - reset_tap_dance (state); - } -} - -void dance_3 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_D); - else return tap_code(KC_3); - } else if (state->count == 2) { - tap_code (KC_E); - } else if (state->count == 3) { - tap_code(KC_F); - } else { - reset_tap_dance (state); - } -} - -void dance_4 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_G); - else return tap_code(KC_4); - } else if (state->count == 2) { - tap_code (KC_H); - } else if (state->count == 3) { - tap_code(KC_I); - } else { - reset_tap_dance (state); - } -} - -void dance_5 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_J); - else return tap_code(KC_5); - } else if (state->count == 2) { - tap_code (KC_K); - } else if (state->count == 3) { - tap_code(KC_L); - } else { - reset_tap_dance (state); - } -} - -void dance_6 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_M); - else return tap_code(KC_6); - } else if (state->count == 2) { - tap_code (KC_N); - } else if (state->count == 3) { - tap_code(KC_O); - } else { - reset_tap_dance (state); - } -} - -void dance_7 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_P); - else return tap_code(KC_7); - } else if (state->count == 2) { - tap_code (KC_Q); - } else if (state->count == 3) { - tap_code(KC_R); - } else if (state->count == 4) { - tap_code(KC_S); - } else { - reset_tap_dance (state); - } -} - -void dance_8 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_T); - else return tap_code(KC_8); - } else if (state->count == 2) { - tap_code (KC_U); - } else if (state->count == 3) { - tap_code(KC_V); - } else { - reset_tap_dance (state); - } -} - -void dance_9 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_W); - else return tap_code(KC_9); - } else if (state->count == 2) { - tap_code (KC_X); - } else if (state->count == 3) { - tap_code(KC_Y); - } else if (state->count == 4) { - tap_code(KC_Z); - } else { - reset_tap_dance (state); - } -} - -void dance_0 (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return tap_code(KC_SPACE); - else return tap_code(KC_0); - } else { - reset_tap_dance (state); - } -} - -void dance_maiusc (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return set_oneshot_mods(MOD_BIT(KC_LSFT)); - else return tap_code(KC_CAPS); - } else { - reset_tap_dance (state); - } -} - -// Tap Dance actions -tap_dance_action_t tap_dance_actions[] = { - [TD_PNCT] = ACTION_TAP_DANCE_FN (dance_1), - [TD_ABC] = ACTION_TAP_DANCE_FN (dance_2), - [TD_DEF] = ACTION_TAP_DANCE_FN (dance_3), - [TD_GHI] = ACTION_TAP_DANCE_FN (dance_4), - [TD_JKL] = ACTION_TAP_DANCE_FN (dance_5), - [TD_MNO] = ACTION_TAP_DANCE_FN (dance_6), - [TD_PQRS] = ACTION_TAP_DANCE_FN (dance_7), - [TD_TUV] = ACTION_TAP_DANCE_FN (dance_8), - [TD_WXYZ] = ACTION_TAP_DANCE_FN (dance_9), - [TD_SPACE] = ACTION_TAP_DANCE_FN (dance_0), - [TD_UPRCS] = ACTION_TAP_DANCE_FN (dance_maiusc), -}; diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/readme.md b/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/readme.md deleted file mode 100644 index 2b5136c2b8e..00000000000 --- a/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# LATE-9 multitap keymap - -This is the intended LATE-9 layout with multitap `ON` and old mobile phone look-a-like layout.. diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/rules.mk b/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/rules.mk deleted file mode 100644 index 4141c3e7a42..00000000000 --- a/keyboards/rookiebwoy/late9/rev1/keymaps/multitap/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Enable Tap Dance feature -TAP_DANCE_ENABLE = yes diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/via/keymap.c b/keyboards/rookiebwoy/late9/rev1/keymaps/via/keymap.c new file mode 100644 index 00000000000..f93958fe8f3 --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/keymaps/via/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2021 rookiebwoy + * + * 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 + +// Layers declarations +enum layers { + _BL, + _OL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* BL: Base Layer + * ,-----------------------. + * |MO(OP) | ↑ | BSPC | + * | | | | + * |-------+-------+-------| + * | <- | ↓ | -> | + * | | | | + * |-------+-------+-------| + * | 1 | 2 | 3 | + * | | | | + * |-------+-------+-------| + * | 4 | 5 | 6 | + * | | | | + * |-------+-------+-------| + * | 7 | 8 | 9 | + * | | | | + * |-------+-------+-------| + * | 0 | . | = | + * | | | | + * `-----------------------' + */ + [_BL] = LAYOUT( + MO(1), KC_UP, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_P1, KC_P2, KC_P3, + KC_P4, KC_P5, KC_P6, + KC_P7, KC_P8, KC_P9, + KC_P0, KC_PDOT, KC_PEQL + ), + +/* OP: Operators Layer + * ,-----------------------. + * |MO(OP) | ↑ | BSPC | + * | | | | + * |-------+-------+-------| + * | <- | ↓ | -> | + * | | | | + * |-------+-------+-------| + * | / | * | - | + * | | | | + * |-------+-------+-------| + * | ( | ) | + | + * | | | | + * |-------+-------+-------| + * | & | % | ^ | + * | | | | + * |-------+-------+-------| + * | | | . | = | + * | | | | + * `-----------------------' + */ + [_OL] = LAYOUT( + MO(1), KC_UP, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_PSLS, KC_PAST, KC_PMNS, + LSFT(KC_9), LSFT(KC_0), KC_PPLS, + LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), + LSFT(KC_BSLS), KC_PDOT, KC_PEQL + ), +}; \ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/via/rules.mk b/keyboards/rookiebwoy/late9/rev1/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/rookiebwoy/late9/rev1/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/rules.mk b/keyboards/rookiebwoy/late9/rev1/rules.mk index 874033acc90..6e7633bfe01 100644 --- a/keyboards/rookiebwoy/late9/rev1/rules.mk +++ b/keyboards/rookiebwoy/late9/rev1/rules.mk @@ -1,14 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = yes +# This file intentionally left blank