mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	[Keyboard] Add Noodlepad_Micro (#22703)
Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
This commit is contained in:
		
							parent
							
								
									15ed59cacc
								
							
						
					
					
						commit
						83b84187ea
					
				
							
								
								
									
										6
									
								
								keyboards/themadnoodle/noodlepad_micro/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								keyboards/themadnoodle/noodlepad_micro/config.h
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										72
									
								
								keyboards/themadnoodle/noodlepad_micro/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								keyboards/themadnoodle/noodlepad_micro/info.json
									
									
									
									
									
										Normal 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" }
 | 
			
		||||
        ]
 | 
			
		||||
    
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
							
								
								
									
										87
									
								
								keyboards/themadnoodle/noodlepad_micro/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								keyboards/themadnoodle/noodlepad_micro/keymaps/via/keymap.c
									
									
									
									
									
										Normal 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
 | 
			
		||||
@ -0,0 +1,2 @@
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
							
								
								
									
										28
									
								
								keyboards/themadnoodle/noodlepad_micro/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								keyboards/themadnoodle/noodlepad_micro/readme.md
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/themadnoodle/noodlepad_micro/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/themadnoodle/noodlepad_micro/rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
# This file intentionally left blank
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user