Merge branch 'nuphy-air75' of https://github.com/nuphy-src/qmk_firmware into nuphy-air75

This commit is contained in:
nuphy-src 2023-12-28 01:03:49 +08:00
commit f5f1262e0b
61 changed files with 2317 additions and 14 deletions

View File

@ -39,12 +39,13 @@ If there are any inconsistencies with these recommendations, you're best off [cr
## Keymap PRs ## Keymap PRs
!> Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. !> Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. Please see this [issue](https://github.com/qmk/qmk_firmware/issues/22724) for more information.
- `#include QMK_KEYBOARD_H` preferred to including specific board files - PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`.
- prefer layer `enum`s to `#define`s - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps.
- custom keycode `enum`s must have first entry `= SAFE_RANGE` - #include QMK_KEYBOARD_H preferred to including specific board files
- terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous and should be removed - prefer layer enums to #defines
- custom keycode enums must have first entry = SAFE_RANGE
- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap - some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap
## Keyboard PRs ## Keyboard PRs

View File

@ -0,0 +1,26 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
Copyright 2021 Elliot Powell <@e11i0t23>
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

View File

@ -0,0 +1,71 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
Copyright 2021 Elliot Powell <@e11i0t23>
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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RALT
//`--------------------------' `--------------------------'
),
[1] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
),
[2] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
),
[3] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT
//`--------------------------' `--------------------------'
)
};

View File

@ -0,0 +1,12 @@
# Default Via keyboard for the Corne R2G by Mechboards UK
![r2g](https://cdn.shopify.com/s/files/1/0582/0242/3501/products/HelidoxCorneR2GPCB_1800x1800.png)
Corne R2G is an eddition of the classic CRKBD by footsan remade to feature a full smd assembly
In this fold can be found the default via enabled keymap that can be in conjunction
Flash example for this Keymap:
```sh
qmk flash -kb crkbd/r2g -km mb_via
```

View File

@ -0,0 +1,3 @@
MOUSEKEY_ENABLE = no # Mouse keys
VIA_ENABLE = yes # Enable VIA

View File

@ -0,0 +1,12 @@
// Copyright 2023 Proceee
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* SPI Config for spi flash*/
#define SPI_DRIVER SPIDQ
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12

View File

@ -0,0 +1,10 @@
// Copyright 2023 Proceee
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#include_next <halconf.h>

View File

@ -0,0 +1,183 @@
{
"manufacturer": "Darmoshark",
"keyboard_name": "K3 QMK",
"maintainer": "Proceee",
"url": "",
"processor": "WB32FQ95",
"bootloader": "wb32-dfu",
"usb": {
"device_version": "1.0.0",
"vid": "0xC001",
"pid": "0x3667",
"suspend_wakeup_delay": 1000
},
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"eeprom": {
"driver": "wear_leveling",
"wear_leveling": {
"driver": "spi_flash",
"backing_size": 4096
}
},
"matrix_pins": {
"rows": ["B13", "A1", "A2", "A3", "A4", "B7"],
"cols": ["B1", "C7", "C13", "B9"]
},
"indicators": {
"num_lock": "C5",
"on_state": 1
},
"ws2812": {
"pin": "A8"
},
"rgb_matrix": {
"driver": "ws2812",
"default":{
"val": 80
},
"sleep": true,
"center_point": [24, 32],
"max_brightness": 140,
"animations": {
"solid_color": true,
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"layout": [
{ "flags": 4, "matrix":[0,2], "x": 32, "y": 0},
{ "flags": 4, "matrix":[0,3], "x": 48, "y": 0},
{ "flags": 4, "matrix":[1,3], "x": 48, "y": 13},
{ "flags": 4, "matrix":[2,3], "x": 48, "y": 26},
{ "flags": 4, "matrix":[4,3], "x": 48, "y": 51},
{ "flags": 4, "matrix":[5,2], "x": 48, "y": 64},
{ "flags": 4, "matrix":[4,2], "x": 32, "y": 51},
{ "flags": 4, "matrix":[3,2], "x": 32, "y": 38},
{ "flags": 4, "matrix":[2,2], "x": 32, "y": 26},
{ "flags": 4, "matrix":[1,2], "x": 32, "y": 13},
{ "flags": 4, "matrix":[1,1], "x": 16, "y": 13},
{ "flags": 4, "matrix":[2,1], "x": 16, "y": 26},
{ "flags": 4, "matrix":[3,1], "x": 16, "y": 38},
{ "flags": 4, "matrix":[4,1], "x": 16, "y": 51},
{ "flags": 4, "matrix":[5,1], "x": 0, "y": 64},
{ "flags": 4, "matrix":[4,0], "x": 0, "y": 51},
{ "flags": 4, "matrix":[3,0], "x": 0, "y": 38},
{ "flags": 4, "matrix":[2,0], "x": 0, "y": 26},
{ "flags": 4, "matrix":[1,0], "x": 0, "y": 13},
{ "flags": 4, "matrix":[0,0], "x": 0, "y": 0},
{ "flags": 4, "matrix":[0,1], "x": 16, "y": 0},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64},
{ "flags": 4, "x": 224, "y": 64}
]
},
"community_layouts": ["numpad_6x4"],
"layouts": {
"LAYOUT_numpad_6x4": {
"layout": [
{ "matrix":[0,0], "x": 0, "y": 0 },
{ "matrix":[0,1], "x": 1, "y": 0 },
{ "matrix":[0,2], "x": 2, "y": 0 },
{ "matrix":[0,3], "x": 3, "y": 0 },
{ "matrix":[1,0], "x": 0, "y": 1 },
{ "matrix":[1,1], "x": 1, "y": 1 },
{ "matrix":[1,2], "x": 2, "y": 1 },
{ "matrix":[1,3], "x": 3, "y": 1 },
{ "matrix":[2,0], "x": 0, "y": 2 },
{ "matrix":[2,1], "x": 1, "y": 2 },
{ "matrix":[2,2], "x": 2, "y": 2 },
{ "matrix":[3,0], "x": 0, "y": 3 },
{ "matrix":[3,1], "x": 1, "y": 3 },
{ "matrix":[3,2], "x": 2, "y": 3 },
{ "matrix":[2,3], "x": 3, "y": 2, "h": 2 },
{ "matrix":[4,0], "x": 0, "y": 4 },
{ "matrix":[4,1], "x": 1, "y": 4 },
{ "matrix":[4,2], "x": 2, "y": 4 },
{ "matrix":[5,1], "x": 0, "y": 5, "w": 2 },
{ "matrix":[5,2], "x": 2, "y": 5 },
{ "matrix":[4,3], "x": 3, "y": 4, "h": 2 }
]
}
}
}

View File

@ -0,0 +1,25 @@
// Copyright 2023 Proceee
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_numpad_6x4(
KC_ESC, KC_TAB, KC_BSPC, MO(1),
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3,
KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_numpad_6x4(
EE_CLR, _______, RGB_MOD, _______,
KC_CALC, _______, _______, RGB_VAD,
_______, RGB_SPI, _______,
_______, _______, _______, RGB_VAI,
_______, RGB_SPD, _______,
_______, RGB_TOG, _______
)
};

View File

@ -0,0 +1,6 @@
// Copyright 2023 JoyLee (@itarze)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define DYNAMIC_KEYMAP_LAYER_COUNT 6

View File

@ -0,0 +1,25 @@
// Copyright 2023 Proceee
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_numpad_6x4(
KC_ESC, KC_TAB, KC_BSPC, MO(1),
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3,
KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_numpad_6x4(
EE_CLR, _______, RGB_MOD, _______,
KC_CALC, _______, _______, RGB_VAD,
_______, RGB_SPI, _______,
_______, _______, _______, RGB_VAI,
_______, RGB_SPD, _______,
_______, RGB_TOG, _______
)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,9 @@
// Copyright 2023 Proceee
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef WB32_SPI_USE_QSPI
#define WB32_SPI_USE_QSPI TRUE

View File

@ -0,0 +1,23 @@
# K3 QMK
* Keyboard Maintainer: [Proceee](https://github.com/Proceee)
* Hardware Supported: [Darmoshark](http://www.Darmoshark.cn)
* Hardware Availability: [Darmoshark](http://www.Darmoshark.cn)
Make example for this keyboard (after setting up your build environment):
make darmoshark/k3:default
Flashing example for this keyboard:
make darmoshark/k3: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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,6 @@
// Copyright 2023 abhiakl (@abhijithabhiakl)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* QK_MAKE support*/
#define ENABLE_COMPILE_KEYCODE

View File

@ -0,0 +1,126 @@
{
"manufacturer": "abhiakl",
"keyboard_name": "rd_61_qmk",
"maintainer": "abhijithabhiakl",
"backlight": {
"driver": "pwm",
"levels": 5,
"pin": "B7"
},
"usb": {
"device_version": "1.0.0",
"pid": "0x7421",
"vid": "0xFEED"
},
"development_board": "promicro",
"diode_direction": "ROW2COL",
"features": {
"backlight": true,
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"indicators": {
"caps_lock": "F0"
},
"matrix_pins": {
"cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4", "D4", "D0", "D1", "D2", "D3", "D5"],
"rows": ["B5", "B4", "E6", "D7", "C6"]
},
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"brightness_steps": 8,
"led_count": 1,
"saturation_steps": 8
},
"url": "",
"ws2812": {
"pin": "C7"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
{"matrix": [3, 3], "x": 4.25, "y": 3},
{"matrix": [3, 4], "x": 5.25, "y": 3},
{"matrix": [3, 5], "x": 6.25, "y": 3},
{"matrix": [3, 6], "x": 7.25, "y": 3},
{"matrix": [3, 7], "x": 8.25, "y": 3},
{"matrix": [3, 8], "x": 9.25, "y": 3},
{"matrix": [3, 9], "x": 10.25, "y": 3},
{"matrix": [3, 10], "x": 11.25, "y": 3},
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

@ -0,0 +1,37 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi(
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_ENT,
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_LCTL, MO(1), KC_LALT, KC_SPC, KC_RALT, MO(3), KC_RCTL, KC_PENT
),
[1] = LAYOUT_60_ansi(
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_TRNS,
KC_PSCR, DF(0), KC_UP, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_LSFT, C(S(KC_TAB)), C(KC_TAB), KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT,
KC_RGUI, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS
),
[2] = LAYOUT_60_ansi(
QK_RBT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_BSPC,
KC_PSCR, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PAST, KC_LEFT, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_PSCR,
KC_DEL, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PPLS, KC_RGHT, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS,
KC_LSFT, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_P0, KC_ENT, KC_TRNS, KC_1, KC_2, KC_3, KC_RSFT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS
),
[3] = LAYOUT_60_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG, QK_RBT, QK_BOOT, QK_MAKE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, RGB_HUI, RGB_SAI
)
};

View File

@ -0,0 +1,53 @@
# Redragon K617 (QMK ported)
![Keyboard image](https://imagizer.imageshack.com/img922/3464/qUpU8k.png)
*Firmware,layout and schematics for porting Redragon K617 keyboard to qmk*
* Keyboard Maintainer: *[abhijithabhiakl](https://github.com/abhijithabhiakl)*
* Hardware Supported: *Redragon K617, Pro micro(caterina)*
* Hardware Availability: *[Redragon K617](https://redragon.in/products/fizz-k617-60-wired-mechanical-keyboard-white-and-grey-red-switches)*
Make example for this keyboard (after setting up your build environment):
make handwired/rd_61_qmk:default
Flashing example for this keyboard:
make handwired/rd_61_qmk:default:flash
Also can be flashed with QMK *[QMK toolbox](https://github.com/qmk/qmk_toolbox)* or *[avrdudess](https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/)*
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).
See [QMK repo cloning](https://docs.qmk.fm/#/getting_started_github) for information about cloning the repo
## Hardware details:
Note : Before doing any modifications in the PCB make sure that the stock microcontroller is removed.
#### Matrix layout:
![Keyboard image](https://imagizer.imageshack.com/img924/8415/hX5gAb.jpg)
#### Schematic:
![Keyboard image](https://imagizer.imageshack.com/img922/5585/vXorPx.png)
* *The header `J0` in not present in the normal pro mirco, for my purpose i directly soldered the `D5`, `C7` and `F0` pins to the pad of the microcontroller with micro soldering tools.
* **To connect the promicro to PCB - Micro USB to the USB C, i made use of an old micro usb cable lying around, cut the cable to approprite length and exposed the wires, connected the male connector to female port of pro micro, Connected the Vcc and Gnd wires to Vcc and Gnd in the PCB, In PCB there's a differential pair (D+, D-) running from USB C port in the PCB to microcontroller in the PCB, in between the connection there's a resistor and filter capacitors, after removing both (bypassing the connection) i connected the D+ and D- wires to the bypassed point respectively (make sure the cable wires are also impedance matched)
#### RGB Lighting:
The stock RGB Lighting used on the keyboard is [this](https://www.luckylight.cn/en/products/smd-led/multi-color-smd-led/?series_code=sr187-rgb-series) `SR187RGBC` `Multi-color PLCC SMD LEDs`, to use this kind of LED with qmk I either have to write a custom led matrix code ( I don't know for sure if qmk already have any support this neither currently have the knowledge or time to do so ) or need to make a led matrix with qmk supported led matrix drivers, due to above mentioned reasons I haven't did any RGB lightings in the keyboard except a single ws2812 led
I'm trying to make a custom PCB for this keyboard (will work for all redragon 60% keyboard (ig) ), I'll update here
## Bootloader
Entering the bootloader:
* **Physical reset button**: Briefly press the button soldered to promicro (In my case i soldered the reset button to the promicro with wires and glued in outside in front of the case)
* **Bootmagic key at [0,0]**: Hold this key down when plugging the keyboard in. Just the single key
* **Keycode in layout**: Press the key mapped to `QK_BOOT`. Also in `layer #3` keys `DB_TOGG` `QK_RBT` `QK_BOOT` `QK_MAKE` are present at the top right corner for debug mode, keyboard reboot, bootloader mode and qmk make (`qmk flash` if shift is held ) in the respective order to make the flasing easier.
`QK_MAKE` will type `qmk compile -kb handwired/rd_61_qmk -km default` in the terminal and `qmk flash` will type `qmk flash -kb handwired/rd_61_qmk -km default`

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,138 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "Scotto108",
"maintainer": "joe-scotto",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
},
"matrix_pins": {
"cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP29", "GP28", "GP27", "GP26", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16"],
"rows": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"]
},
"processor": "RP2040",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x1022",
"vid": "0x534B"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14.5, "y": 0},
{"matrix": [0, 15], "x": 15.5, "y": 0},
{"matrix": [0, 16], "x": 16.5, "y": 0},
{"matrix": [0, 17], "x": 18, "y": 0},
{"matrix": [0, 18], "x": 19, "y": 0},
{"matrix": [0, 19], "x": 20, "y": 0},
{"matrix": [0, 20], "x": 21, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1.5},
{"matrix": [1, 2], "x": 2, "y": 1.5},
{"matrix": [1, 3], "x": 3, "y": 1.5},
{"matrix": [1, 4], "x": 4, "y": 1.5},
{"matrix": [1, 5], "x": 5, "y": 1.5},
{"matrix": [1, 6], "x": 6, "y": 1.5},
{"matrix": [1, 7], "x": 7, "y": 1.5},
{"matrix": [1, 8], "x": 8, "y": 1.5},
{"matrix": [1, 9], "x": 9, "y": 1.5},
{"matrix": [1, 10], "x": 10, "y": 1.5},
{"matrix": [1, 11], "x": 11, "y": 1.5},
{"matrix": [1, 12], "x": 12, "y": 1.5},
{"matrix": [1, 13], "x": 13, "y": 1.5},
{"matrix": [1, 14], "x": 14.5, "y": 1.5},
{"matrix": [1, 15], "x": 15.5, "y": 1.5},
{"matrix": [1, 16], "x": 16.5, "y": 1.5},
{"matrix": [1, 17], "x": 18, "y": 1.5},
{"matrix": [1, 18], "x": 19, "y": 1.5},
{"matrix": [1, 19], "x": 20, "y": 1.5},
{"matrix": [1, 20], "x": 21, "y": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2.5},
{"matrix": [2, 2], "x": 2, "y": 2.5},
{"matrix": [2, 3], "x": 3, "y": 2.5},
{"matrix": [2, 4], "x": 4, "y": 2.5},
{"matrix": [2, 5], "x": 5, "y": 2.5},
{"matrix": [2, 6], "x": 6, "y": 2.5},
{"matrix": [2, 7], "x": 7, "y": 2.5},
{"matrix": [2, 8], "x": 8, "y": 2.5},
{"matrix": [2, 9], "x": 9, "y": 2.5},
{"matrix": [2, 10], "x": 10, "y": 2.5},
{"matrix": [2, 11], "x": 11, "y": 2.5},
{"matrix": [2, 12], "x": 12, "y": 2.5},
{"matrix": [2, 13], "x": 13, "y": 2.5},
{"matrix": [2, 14], "x": 14.5, "y": 2.5},
{"matrix": [2, 15], "x": 15.5, "y": 2.5},
{"matrix": [2, 16], "x": 16.5, "y": 2.5},
{"matrix": [2, 17], "x": 18, "y": 2.5},
{"matrix": [2, 18], "x": 19, "y": 2.5},
{"matrix": [2, 19], "x": 20, "y": 2.5},
{"matrix": [3, 0], "x": 0, "y": 3.5},
{"matrix": [3, 1], "x": 1, "y": 3.5},
{"matrix": [3, 2], "x": 2, "y": 3.5},
{"matrix": [3, 3], "x": 3, "y": 3.5},
{"matrix": [3, 4], "x": 4, "y": 3.5},
{"matrix": [3, 5], "x": 5, "y": 3.5},
{"matrix": [3, 6], "x": 6, "y": 3.5},
{"matrix": [3, 7], "x": 7, "y": 3.5},
{"matrix": [3, 8], "x": 8, "y": 3.5},
{"matrix": [3, 9], "x": 9, "y": 3.5},
{"matrix": [3, 10], "x": 10, "y": 3.5},
{"matrix": [3, 11], "x": 11, "y": 3.5},
{"matrix": [3, 13], "x": 12, "y": 3.5, "w": 2},
{"matrix": [3, 17], "x": 18, "y": 3.5},
{"matrix": [3, 18], "x": 19, "y": 3.5},
{"matrix": [3, 19], "x": 20, "y": 3.5},
{"matrix": [3, 20], "x": 21, "y": 2.5, "h": 2},
{"matrix": [4, 0], "x": 0, "y": 4.5},
{"matrix": [4, 1], "x": 1, "y": 4.5},
{"matrix": [4, 2], "x": 2, "y": 4.5},
{"matrix": [4, 3], "x": 3, "y": 4.5},
{"matrix": [4, 4], "x": 4, "y": 4.5},
{"matrix": [4, 5], "x": 5, "y": 4.5},
{"matrix": [4, 6], "x": 6, "y": 4.5},
{"matrix": [4, 7], "x": 7, "y": 4.5},
{"matrix": [4, 8], "x": 8, "y": 4.5},
{"matrix": [4, 9], "x": 9, "y": 4.5},
{"matrix": [4, 10], "x": 10, "y": 4.5},
{"matrix": [4, 12], "x": 11, "y": 4.5, "w": 3},
{"matrix": [4, 15], "x": 15.5, "y": 4.5},
{"matrix": [4, 17], "x": 18, "y": 4.5},
{"matrix": [4, 18], "x": 19, "y": 4.5},
{"matrix": [4, 19], "x": 20, "y": 4.5},
{"matrix": [5, 0], "x": 0, "y": 5.5},
{"matrix": [5, 1], "x": 1, "y": 5.5},
{"matrix": [5, 2], "x": 2, "y": 5.5},
{"matrix": [5, 6], "x": 3, "y": 5.5, "w": 7},
{"matrix": [5, 10], "x": 10, "y": 5.5},
{"matrix": [5, 11], "x": 11, "y": 5.5},
{"matrix": [5, 12], "x": 12, "y": 5.5},
{"matrix": [5, 13], "x": 13, "y": 5.5},
{"matrix": [5, 14], "x": 14.5, "y": 5.5},
{"matrix": [5, 15], "x": 15.5, "y": 5.5},
{"matrix": [5, 16], "x": 16.5, "y": 5.5},
{"matrix": [5, 17], "x": 18, "y": 5.5, "w": 2},
{"matrix": [5, 19], "x": 20, "y": 5.5},
{"matrix": [5, 20], "x": 21, "y": 4.5, "h": 2}
]
}
}
}

View File

@ -0,0 +1,29 @@
/*
Copyright 2023 Joe Scotto
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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_1, KC_2, KC_3, KC_4,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQUAL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9,
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_P4, KC_P5, KC_P6, KC_PPLS,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT
)
};

View File

@ -0,0 +1,29 @@
# Scotto108
![Scotto108](https://i.imgur.com/ss4BEujh.jpg)
A 108-key full-sized ortholinear keyboard with a 7u spacebar and 4 macro keys above the numpad.
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: Raspberry Pi Pico
* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com)
# Compiling
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scotto108:default
Flashing example for this keyboard:
make handwired/scottokeebs/scotto108: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).
# Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -41,7 +41,7 @@
{"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 4}, {"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1},
@ -67,7 +67,7 @@
{"matrix": [2, 9], "x": 9, "y": 2}, {"matrix": [2, 9], "x": 9, "y": 2},
{"matrix": [2, 10], "x": 10, "y": 2}, {"matrix": [2, 10], "x": 10, "y": 2},
{"matrix": [2, 11], "x": 11, "y": 2}, {"matrix": [2, 11], "x": 11, "y": 2},
{"matrix": [2, 13], "x": 13, "y": 2}, {"matrix": [2, 13], "x": 12, "y": 2, "w": 2},
{"matrix": [3, 0], "x": 0, "y": 3}, {"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3}, {"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3}, {"matrix": [3, 2], "x": 2, "y": 3},
@ -79,11 +79,11 @@
{"matrix": [3, 8], "x": 8, "y": 3}, {"matrix": [3, 8], "x": 8, "y": 3},
{"matrix": [3, 9], "x": 9, "y": 3}, {"matrix": [3, 9], "x": 9, "y": 3},
{"matrix": [3, 10], "x": 10, "y": 3}, {"matrix": [3, 10], "x": 10, "y": 3},
{"matrix": [3, 12], "x": 12, "y": 3}, {"matrix": [3, 12], "x": 11, "y": 3, "w": 3},
{"matrix": [4, 0], "x": 0, "y": 4}, {"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4}, {"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4}, {"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 6], "x": 6, "y": 4}, {"matrix": [4, 6], "x": 3, "y": 4, "w": 7},
{"matrix": [4, 10], "x": 10, "y": 4}, {"matrix": [4, 10], "x": 10, "y": 4},
{"matrix": [4, 11], "x": 11, "y": 4}, {"matrix": [4, 11], "x": 11, "y": 4},
{"matrix": [4, 12], "x": 12, "y": 4}, {"matrix": [4, 12], "x": 12, "y": 4},

View File

@ -0,0 +1,20 @@
/* Copyright 2023 kwstudio
*
* 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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#define WS2812_PIO_USE_PIO1

View File

@ -0,0 +1,199 @@
{
"manufacturer": "kwstudio",
"keyboard_name": "Scorpio",
"maintainer": "kwstudio",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"indicators": {
"caps_lock": "GP24"
},
"matrix_pins": {
"cols": ["GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP7", "GP6", "GP5", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8"],
"rows": ["GP1", "GP0", "GP16", "GP15", "GP14"]
},
"processor": "RP2040",
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"led_count": 9,
"sleep": true
},
"url": "",
"usb": {
"device_version": "0.0.1",
"pid": "0x0002",
"vid": "0x4B53"
},
"ws2812": {
"driver": "vendor",
"pin": "GP4"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs"
},
"layouts": {
"LAYOUT_65_ansi_blocker_tsangan_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
{"matrix": [3, 3], "x": 4.25, "y": 3},
{"matrix": [3, 4], "x": 5.25, "y": 3},
{"matrix": [3, 5], "x": 6.25, "y": 3},
{"matrix": [3, 6], "x": 7.25, "y": 3},
{"matrix": [3, 7], "x": 8.25, "y": 3},
{"matrix": [3, 8], "x": 9.25, "y": 3},
{"matrix": [3, 9], "x": 10.25, "y": 3},
{"matrix": [3, 10], "x": 11.25, "y": 3},
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 10], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
{"matrix": [3, 3], "x": 4.25, "y": 3},
{"matrix": [3, 4], "x": 5.25, "y": 3},
{"matrix": [3, 5], "x": 6.25, "y": 3},
{"matrix": [3, 6], "x": 7.25, "y": 3},
{"matrix": [3, 7], "x": 8.25, "y": 3},
{"matrix": [3, 8], "x": 9.25, "y": 3},
{"matrix": [3, 9], "x": 10.25, "y": 3},
{"matrix": [3, 10], "x": 11.25, "y": 3},
{"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 10], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,34 @@
/* Copyright 2023 kwstudio
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
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_SPC,
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_PGUP,
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_PGDN,
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, MO(1),
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
KC_TRNS, 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_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};

View File

@ -0,0 +1,34 @@
/* Copyright 2023 kwstudio
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
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_SPC,
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_PGUP,
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_PGDN,
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, MO(1),
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
KC_TRNS, 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_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,25 @@
# Scorpio
![Scorpio](https://i.imgur.com/ikAlEQMh.jpeg)
* Keyboard Maintainer: [khchen](https://github.com/khchen2004)
* Hardware Supported: Scorpio PCB
* Hardware Availability: Private GB
Make example for this keyboard (after setting up your build environment):
make kwstudio/scorpio:default
Flashing example for this keyboard:
make kwstudio/scorpio: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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,32 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2023 Elliot Powell
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100

View File

@ -0,0 +1,121 @@
/* Copyright 2020 Naoki Katahira
* Copyright 2023 Elliot Powell
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_number {
_QWERTY = 0,
_LOWER,
_RAISE,
_ADJUST,
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ~ |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
* | | | |/ / \ \ | | | |
* `-------------------''-------' '------''--------------------'
*/
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
LOWER, KC_LGUI, KC_LALT, KC_SPC, KC_ENT, KC_BSPC, KC_RGUI, RAISE
),
/* LOWER
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | 1 | 2 | 3 | 4 | 5 |-------. ,-------| 6 | 7 | 8 | 9 | 0 | |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | | ` | + | { | } | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
* | | | |/ / \ \ | | | |
* `-------------------''-------' '------''--------------------'
*/
[_LOWER] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_GRAVE, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* RAISE
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |RGBTOG|RGBHUI|RGBSAI|RGBVAI| |-------. ,-------| | Left | Down | Up |Right | |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* |RGBMOD|RGBHUD|RGBSAD|RGBVAD| | |-------| |-------| + | = | [ | ] | \ | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
* | | | |/ / \ \ | | | |
* `-------------------''-------' '------''--------------------'
*/
[_RAISE] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, KC_PLUS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* ADJUST
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | |-------. ,-------| | | | | | |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | | | | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,4 @@
VIA_ENABLE = yes
OLED_ENABLE = yes
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes

View File

@ -0,0 +1,102 @@
{
"manufacturer": "lucky_studio",
"keyboard_name": "kafka68",
"maintainer": "yuezp",
"development_board": "bluepill",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["A10", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A7", "A6", "A5", "A4", "A3", "B1", "B10", "B11"],
"rows": ["B13", "B14", "B15", "A8", "A9"]
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0xAA07",
"vid": "0xBB07"
},
"community_layouts": ["68_ansi"],
"layouts": {
"LAYOUT_68_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 12.5, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [1, 15], "x": 16.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
{"matrix": [3, 3], "x": 4.25, "y": 3},
{"matrix": [3, 4], "x": 5.25, "y": 3},
{"matrix": [3, 5], "x": 6.25, "y": 3},
{"matrix": [3, 6], "x": 7.25, "y": 3},
{"matrix": [3, 7], "x": 8.25, "y": 3},
{"matrix": [3, 8], "x": 9.25, "y": 3},
{"matrix": [3, 9], "x": 10.25, "y": 3},
{"matrix": [3, 10], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [3, 14], "x": 15.25, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 14.25, "y": 4},
{"matrix": [4, 14], "x": 15.25, "y": 4},
{"matrix": [4, 15], "x": 16.25, "y": 4}
]
}
}
}

View File

@ -0,0 +1,35 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0]=LAYOUT_68_ansi(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END,
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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
[1]=LAYOUT_68_ansi(
KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};

View File

@ -0,0 +1,35 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0]=LAYOUT_68_ansi(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END,
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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
[1]=LAYOUT_68_ansi(
KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,16 @@
# Matrix Diagram for kafka68
```
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D ││0E │0F │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1E │1F │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┘
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤┌───┐
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C ││3E │
├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬───┬──┬──┴┼───┼───┐
│40 │41 │42 │45 │49 │4A │4B │ │4D │4E │4F │
└────┴────┴────┴────────────────────────┴────┴────┴───┘ └───┴───┴───┘
```

View File

@ -0,0 +1,26 @@
# kafka68 - PCB
![kafka68](https://i.imgur.com/5w8fESLh.jpg)
A 68 key keyboard made by Lucky, based on hhkb layout.
* Keyboard Maintainer: https://github.com/LXF-YZP
* Hardware Supported: Lucky PCB
Make example for this keyboard (after setting up your build environment):
make meetlab/kafka68:default
Flashing example for this keyboard:
make meetlab/kafka68: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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -1,12 +1,14 @@
# Momokai Aurora # Momokai Aurora
![Momokai Aurora](https://i.imgur.com/A7iHqzAh.jpg)
https://www.momokai.com/pages/aurora https://www.momokai.com/pages/aurora
A 6 key keypad with a rotary encoder A 6 key keypad with a rotary encoder
* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) * Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
* Hardware Supported: Aurora * Hardware Supported: Aurora
* Hardware Availability: [Momokai](https://www.momokai.com/) * Hardware Availability: [Momokai](https://www.momokai.com/pages/aurora)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):

View File

@ -0,0 +1,370 @@
{
"keyboard_name": "RE65",
"maintainer": "Salane",
"manufacturer": "Mai The San",
"url": "",
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"vid": "0x534C",
"pid": "0x0C65",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": false,
"nkro": true,
"rgblight": true,
"encoder": true
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"rows": ["GP27", "GP26", "GP25", "GP29", "GP4"],
"cols": ["GP20", "GP19", "GP18", "GP24", "GP23", "GP22", "GP17", "GP28", "GP2", "GP3", "GP12", "GP11", "GP10", "GP9", "GP8"]
},
"encoder": {
"rotary": [
{"pin_a": "GP5", "pin_b": "GP6"}
]
},
"rgblight": {
"led_count": 32,
"saturation_steps": 8,
"brightness_steps": 8,
"sleep": true,
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
}
},
"ws2812": {
"pin": "GP21",
"driver": "vendor"
},
"community_layouts": ["65_ansi_blocker","65_ansi_blocker_split_bs","65_ansi_blocker_tsangan","65_ansi_blocker_tsangan_split_bs"],
"layouts": {
"LAYOUT_65_ansi_blocker_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [2, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15, "y": 0},
{"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4},
{"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4},
{"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4},
{"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4},
{"matrix": [4, 10], "w": 1.25, "x": 10, "y": 4},
{"matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "w": 2, "x": 13, "y": 0},
{"matrix": [0, 14], "x": 15, "y": 0},
{"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4},
{"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4},
{"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4},
{"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4},
{"matrix": [4, 10], "w": 1.25, "x": 10, "y": 4},
{"matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "w": 2, "x": 13, "y": 0},
{"matrix": [0, 14], "x": 15, "y": 0},
{"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "w": 1.5, "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4},
{"matrix": [4, 6], "w": 7, "x": 4, "y": 4},
{"matrix": [4, 11], "w": 1.5, "x": 11, "y": 4},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [2, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15, "y": 0},
{"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "w": 1.5, "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4},
{"matrix": [4, 6], "w": 7, "x": 4, "y": 4},
{"matrix": [4, 11], "w": 1.5, "x": 11, "y": 4},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,57 @@
// Copyright 2023 MaiTheSan (@maithesan)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum {
_BASE,
_FN1
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ = BckspcHom
*
* Tab Q W E R T Y U I O P { [} ]| \PgU
*
* HyCaps A S D F G H J K L : ;" '│ Enter│PgD│
*
* Shift Z X C V B N M < ,> .? / Shift UpEnd
*
* Ctrl Opt Cmd Space Cmd FnPy LefDowRig
*
*/
[_BASE] = LAYOUT_65_ansi_blocker(
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_HOME,
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_PGUP,
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_PGDN,
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_END,
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT
),
/* Function Layer
*
* ` ~ F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12 DeleteSlD
*
* RMod RH+RS+RV+AS+ F13F14F15 LHP VlU
*
* RTgl RH-RS-RV-AS- VlD
*
* LYRThm RST MkePrvNxtPly PgUMut
*
* HomPgDEnd
*
*/
[_FN1] = 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, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
[_FN1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif // ENCODER_MAP_ENABLE

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,57 @@
// Copyright 2023 MaiTheSan (@maithesan)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum {
_BASE,
_FN1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
*
* Esc! 1@ 2# 3$ 4% 5^ 6& 7* 8( 9) 0_ -+ =BspBspHom
*
* Tab Q W E R T Y U I O P { [} ]| \PgU
*
* HyCaps A S D F G H J K L : ;" '│ Enter│PgD│
*
* Shift Z X C V B N M < ,> .? / Shift UpEnd
*
* Ctrl Opt Cmd Space Cmd FnPy LefDowRig
*
*/
[_BASE] = LAYOUT_65_ansi_blocker_split_bs(
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_BSPC, KC_HOME,
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_PGUP,
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_PGDN,
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_END,
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT
),
/* Function Layer
*
* ` ~ F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12Del
*
* RMod RH+RS+RV+AS+ F13F14F15 LHP VlU
*
* RTgl RH-RS-RV-AS- VlD
*
* LYRThm RST MkePrvNxtPly PgUMut
*
* HomPgDEnd
*
*/
[_FN1] = LAYOUT_65_ansi_blocker_split_bs(
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_F13, KC_F14, KC_F15, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FN1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
};
#endif

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,26 @@
# RE65
![RE65](https://i.imgur.com/bzeWSwwh.png)
A Keyboard from Nuxros
* Keyboard Maintainer: [Mai The San](https://github.com/maithesan)
* Hardware Supported: RE65, KBD67 MKII
* Hardware Availability: [Nuxros Store](https://nuxroskb.store/en/products/re65?variant=45628371370283)
Make example for this keyboard (after setting up your build environment):
make sawnsprojects/re65:default
Flashing example for this keyboard:
make sawnsprojects/re65: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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly short the `RST` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -10,7 +10,7 @@ It also supports key switch replacement with MX sockets and LED underglow.
左手側にテンキーが備え付けられており、数字の入力だけでなく専用のマクロパッドとしても使用が可能です。 左手側にテンキーが備え付けられており、数字の入力だけでなく専用のマクロパッドとしても使用が可能です。
MXソケットによるキースイッチの付替えや、LEDによるアンダーグロウにも対応しています。 MXソケットによるキースイッチの付替えや、LEDによるアンダーグロウにも対応しています。
* Keyboard Maintainer: [takashicompany](https://github.com/yourusername) * Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
* Hardware Supported: PCB, Pro Micro * Hardware Supported: PCB, Pro Micro
* Hardware Availability: https://github.com/takashicompany/heavy_left * Hardware Availability: https://github.com/takashicompany/heavy_left

View File

@ -8,7 +8,7 @@ Your iconic keys and keycaps can be placed in the center of the keyboard.
It is possible to make it shine with LED backlighting. It is possible to make it shine with LED backlighting.
The keyswitches can also be replaced with MX sockets. The keyswitches can also be replaced with MX sockets.
* Keyboard Maintainer: [takashicompany](https://github.com/yourusername) * Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
* Hardware Supported: PCB, Pro Micro * Hardware Supported: PCB, Pro Micro
* Hardware Availability: https://github.com/takashicompany/radialex * Hardware Availability: https://github.com/takashicompany/radialex

View File

@ -0,0 +1,6 @@
// Copyright 2023 The Mad Noodle(@the_mad_noodle)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5

View File

@ -0,0 +1,72 @@
{
"manufacturer": "The Mad Noodle",
"keyboard_name": "NoodlePad Micro",
"maintainer": "the-mad-noodle",
"url": "https://www.madnoodleprototypes.com/",
"bootloader": "rp2040",
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true,
"encoder": true
},
"rgblight": {
"hue_steps": 10,
"led_count": 4,
"sleep": true,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"knight": true,
"christmas": true,
"static_gradient": true,
"rgb_test": true,
"alternating": true,
"twinkle": true
}
},
"matrix_pins": {
"cols": ["GP6", "GP7", "GP0"],
"rows": ["GP26", "GP27", "GP28"]
},
"processor": "RP2040",
"usb": {
"device_version": "3.0.0",
"pid": "0x0004",
"vid": "0x6A6C"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 2}
]
}
},
"ws2812": {
"pin": "GP29",
"driver": "vendor"
},
"encoder": {
"rotary": [
{ "pin_a": "GP2", "pin_b": "GP1" }
{ "pin_a": "GP3", "pin_b": "GP4" }
]
}
}

View File

@ -0,0 +1,68 @@
// Copyright 2023 The Mad Noodle(@the_mad_noodle)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* LAYER 0
* ,--ENC2-- --ENC1--.
* | << | | >> |
* |-------+-------+-------|
* | STOP | PLAY | MEDIA |
* |-------+-------+-------|
* | CALC | MAIL | PC/FN |
* `-----------------------'
*/
[0] = LAYOUT(
KC_MPRV, KC_MNXT,
KC_MSTP, KC_MPLY, KC_MSEL,
LT(2,KC_CALC), KC_MAIL, LT(1, KC_MYCM)
),
/* LAYER 1
* ,--ENC2-- --ENC1--.
* | MODE+ | | MODE- |
* |-------+-------+-------|
* |Bright-| Tog |Bright+|
* |-------+-------+-------|
* | PLAIN |BREATH | |
* `-----------------------'
*/
[1] = LAYOUT(
RGB_MOD, RGB_RMOD,
RGB_VAD, RGB_TOG, RGB_VAI,
RGB_M_P, RGB_M_B, KC_TRNS
),
/* LAYER 2 (ENCODER)
* ,--ENC2-- --ENC1--.
* | | | |
* |-------+-------+-------|
* | | | |
* |-------+-------+-------|
* | | | |
* `-----------------------'
*/
[2] = LAYOUT(
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
)
};
/*Encoder Mapping*/
//-----------------------(ENC1)---------------------------------(ENC2)-----------------
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }
};
#endif

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,87 @@
// Copyright 2023 The Mad Noodle(@the_mad_noodle)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* LAYER 0
* ,--ENC2-- --ENC1--.
* | << | | >> |
* |-------+-------+-------|
* | STOP | PLAY | MEDIA |
* |-------+-------+-------|
* | CALC | MY PC | TO(3) |
* `-----------------------'
*/
[0] = LAYOUT(
KC_MPRV, KC_MNXT,
KC_MSTP, KC_MPLY, KC_MSEL,
KC_CALC, KC_MYCM, TO(3)
),
/* LAYER 1
* ,--ENC2-- --ENC1--.
* | MODE+ | | MODE- |
* |-------+-------+-------|
* |Bright-| Tog |Bright+|
* |-------+-------+-------|
* | PLAIN |BREATH | TO(0) |
* `-----------------------'
*/
[1] = LAYOUT(
RGB_MOD, RGB_RMOD,
RGB_VAD, RGB_TOG, RGB_VAI,
RGB_M_P, RGB_M_B, TO(0)
),
/* LAYER 2
* ,--ENC2-- --ENC1--.
* | | | |
* |-------+-------+-------|
* | | | |
* |-------+-------+-------|
* | | | TO(0) |
* `-----------------------'
*/
[2] = LAYOUT(
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, TO(0)
),
/* LAYER 3
* ,--ENC2-- --ENC1--.
* | | | |
* |-------+-------+-------|
* | TO(1) | | TO(2) |
* |-------+-------+-------|
* | | | TO(0) |
* `-----------------------'
*/
[3] = LAYOUT(
KC_TRNS, KC_TRNS,
TO(1), KC_TRNS, TO(2),
KC_TRNS, KC_TRNS, TO(0)
)
};
/*Encoder Mapping*/
//-----------------------(ENC1)---------------------------------(ENC2)-----------------
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
[3] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(KC_DOWN, KC_UP) },
};
#endif

View File

@ -0,0 +1,2 @@
ENCODER_MAP_ENABLE = yes
VIA_ENABLE = yes

View File

@ -0,0 +1,28 @@
# NoodlePad [Micro]
![NoodlePad [Micro]](https://i.imgur.com/uRmVt3ah.jpg)
The NoodlePad [Micro] is a 6 key 2 encoder macro keypad designed using RP2040 chipset.
* Keyboard Maintainer: [The Mad Noodle](https://github.com/The-Mad-Noodle)
* Hardware Supported: NoodlePad [Micro]
* Hardware Availability: https://www.madnoodleprototypes.com/shop
Compile example for this keyboard (after setting up your build environment):
qmk compile -kb themadnoodle/noodlepad_micro -km default
Flashing example for this keyboard:
qmk flash -kb themadnoodle/noodlepad_micro -km 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).
## Bootloader & Flashing
**Physical reset button**:
* Double press the button on the back, center, left of the PCB labeled "R" to enter the bootloader drive mode.
* If you have a pre-compiled .uf2 file, copy it into bootloader drive (RPI-RP2), board will reset automatically once file is copied sucessfully

View File

@ -0,0 +1,2 @@
# This file intentionally left blank

View File

@ -124,13 +124,19 @@ void deferred_exec_advanced_task(deferred_executor_t *table, size_t table_count,
// Run through each of the executors // Run through each of the executors
for (int i = 0; i < table_count; ++i) { for (int i = 0; i < table_count; ++i) {
deferred_executor_t *entry = &table[i]; deferred_executor_t *entry = &table[i];
deferred_token curr_token = entry->token;
// Check if we're supposed to execute this entry // Check if we're supposed to execute this entry
if (entry->token != INVALID_DEFERRED_TOKEN && ((int32_t)TIMER_DIFF_32(entry->trigger_time, now)) <= 0) { if (curr_token != INVALID_DEFERRED_TOKEN && ((int32_t)TIMER_DIFF_32(entry->trigger_time, now)) <= 0) {
// Invoke the callback and work work out if we should be requeued // Invoke the callback and work work out if we should be requeued
uint32_t delay_ms = entry->callback(entry->trigger_time, entry->cb_arg); uint32_t delay_ms = entry->callback(entry->trigger_time, entry->cb_arg);
// If the token has changed, then the callback has canceled and re-queued. Skip further processing.
if (entry->token != curr_token) {
continue;
}
// Update the trigger time if we have to repeat, otherwise clear it out // Update the trigger time if we have to repeat, otherwise clear it out
if (delay_ms > 0) { if (delay_ms > 0) {
// Intentionally add just the delay to the existing trigger time -- this ensures the next // Intentionally add just the delay to the existing trigger time -- this ensures the next