Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Sergey Vlasov <sigprof@gmail.com>pull/22752/head
@ -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 |
@ -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" } | |||
] | |||
} | |||
} |
@ -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 |
@ -0,0 +1 @@ | |||
ENCODER_MAP_ENABLE = yes |
@ -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 |
@ -0,0 +1,2 @@ | |||
ENCODER_MAP_ENABLE = yes | |||
VIA_ENABLE = yes |
@ -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 |
@ -0,0 +1,2 @@ | |||
# This file intentionally left blank | |||