Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Keyboard The Mad Noodle Udon13 #22704

Merged
merged 35 commits into from
Jan 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
19c2f3a
Adding Keyboard The Mad Noodle Udon13
jessel92 Dec 18, 2023
c2cda43
Update keyboards/themadnoodle/udon13/keymaps/via/rules.mk
jessel92 Dec 18, 2023
0263011
Update keyboards/themadnoodle/udon13/keymaps/via/keymap.c
jessel92 Dec 18, 2023
99e6204
Update keyboards/themadnoodle/udon13/keymaps/default/rules.mk
jessel92 Dec 18, 2023
9fb701e
Update keyboards/themadnoodle/udon13/keymaps/default/keymap.c
jessel92 Dec 18, 2023
5f715dd
Update keyboards/themadnoodle/udon13/info.json
jessel92 Dec 18, 2023
59ca021
Update keyboards/themadnoodle/udon13/config.h
jessel92 Dec 18, 2023
79e2ccb
Update keyboards/themadnoodle/udon13/info.json
jessel92 Dec 18, 2023
dfaea3c
Update keyboards/themadnoodle/udon13/info.json
jessel92 Dec 19, 2023
7e595bb
Update keyboards/themadnoodle/udon13/info.json
jessel92 Dec 19, 2023
7bace2b
Trying to fix the issues
jessel92 Dec 19, 2023
4f4ea55
Updated with imgur link
jessel92 Dec 19, 2023
7d80319
Merge branch 'master' into Adding-Keyboard-themadnoodle/udon13
jessel92 Dec 19, 2023
8f19520
Adding OLED to keyboard level
jessel92 Dec 19, 2023
fb25936
Added lic headers
jessel92 Dec 19, 2023
d8101a0
Removed oled_rotation
jessel92 Dec 19, 2023
03719fd
Update keyboards/themadnoodle/udon13/info.json
jessel92 Dec 19, 2023
241791e
Update keyboards/themadnoodle/udon13/keymaps/default/keymap.c
jessel92 Dec 19, 2023
2a02fcf
Update keyboards/themadnoodle/udon13/keymaps/default/keymap.c
jessel92 Dec 19, 2023
73e82b7
Update keyboards/themadnoodle/udon13/keymaps/default/keymap.c
jessel92 Dec 19, 2023
8660c82
Update keyboards/themadnoodle/udon13/keymaps/default/keymap.c
jessel92 Dec 19, 2023
daed986
Update keyboards/themadnoodle/udon13/udon13.c
jessel92 Dec 19, 2023
35dd940
Update keyboards/themadnoodle/udon13/udon13.c
jessel92 Dec 19, 2023
e373943
Update keyboards/themadnoodle/udon13/udon13.c
jessel92 Dec 19, 2023
80ffd9e
Removed unneeded file and changed udon13.c
jessel92 Dec 19, 2023
df557c5
imgur change
jessel92 Dec 19, 2023
60ec6fb
Update keyboards/themadnoodle/udon13/readme.md
jessel92 Dec 19, 2023
da77a43
Merge branch 'master' into Adding-Keyboard-themadnoodle/udon13
jessel92 Dec 19, 2023
a883f1a
Update keymap.c
jessel92 Dec 19, 2023
911ce51
Merge branch 'Adding-Keyboard-themadnoodle/udon13' of https://github.…
jessel92 Dec 19, 2023
a56b5db
Merge branch 'master' into Adding-Keyboard-themadnoodle/udon13
jessel92 Dec 22, 2023
f24cde6
Merge branch 'master' into Adding-Keyboard-themadnoodle/udon13
jessel92 Dec 24, 2023
d784a65
replaced tabs with spaces
jessel92 Dec 24, 2023
1322697
Merge branch 'master' into Adding-Keyboard-themadnoodle/udon13
jessel92 Dec 27, 2023
7bb4ba9
Merge branch 'master' into Adding-Keyboard-themadnoodle/udon13
jessel92 Dec 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions keyboards/themadnoodle/udon13/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Copyright 2023 Jesse Leventhal (@The=Mad-Noodle)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5
75 changes: 75 additions & 0 deletions keyboards/themadnoodle/udon13/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"manufacturer": "The Mad Noodle",
"keyboard_name": "Udon13",
"maintainer": "The-Mad-Noodle",
"url": "https://www.madnoodleprototypes.com/",
"bootloader": "atmel-dfu",
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
jessel92 marked this conversation as resolved.
Show resolved Hide resolved
"encoder": true,
"mousekey": true,
"nkro": true,
"rgblight": true,
"oled": true
jessel92 marked this conversation as resolved.
Show resolved Hide resolved
},
"rgblight": {
"hue_steps": 10,
"led_count": 6,
"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
}
},
"ws2812": {
"pin": "B7"
},
"matrix_pins": {
"cols": ["F0", "F5", "F4", "F6"],
"rows": ["F7", "F1", "D6", "D7"]
},
"processor": "atmega32u4",
"usb": {
"device_version": "1.0.0",
"pid": "0x0012",
"vid": "0x6A6C"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label":"Encoder", "x":3, "y":0, "matrix": [0,3]},
{"x":0, "y":1, "matrix": [1,0]},
{"x":1, "y":1, "matrix": [1,1]},
{"x":2, "y":1, "matrix": [1,2]},
{"x":3, "y":1, "matrix": [1,3]},
{"x":0, "y":2, "matrix": [2,0]},
{"x":1, "y":2, "matrix": [2,1]},
{"x":2, "y":2, "matrix": [2,2]},
{"x":3, "y":2, "matrix": [2,3]},
{"x":0, "y":3, "matrix": [3,0]},
{"x":1, "y":3, "matrix": [3,1]},
{"x":2, "y":3, "matrix": [3,2]},
{"x":3, "y":3, "matrix": [3,3]}
]
}
},

"encoder": {
"rotary": [
{ "pin_a": "B6", "pin_b": "B5" }
]

}
}
52 changes: 52 additions & 0 deletions keyboards/themadnoodle/udon13/keymaps/default/keymap.c
jessel92 marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// 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*/
[0] = LAYOUT(
KC_MUTE,
KC_MPLY, KC_MPRV, KC_MNXT, KC_MSEL,
KC_UNDO, KC_CALC, KC_MAIL, KC_MYCM,
KC_COPY, KC_CUT, KC_PSTE, TO(3)
),

/*Layer 1*/
[1] = LAYOUT(
RGB_TOG,
RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI,
RGB_MOD, RGB_RMOD, RGB_M_P, RGB_M_B,
RGB_M_SW, RGB_SPD, RGB_SPI, TO(0)
),

/*Layer 2*/
[2] = LAYOUT(
KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, TO(0)
),

/*Layer 3*/
[3] = LAYOUT(
KC_NO,
TO(1), TO(2), KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, TO(0)
),

};

/*Encoder Mapping*/
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
[2] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT)},
[3] = { ENCODER_CCW_CW(KC_DOWN, KC_UP)},

};
#endif
2 changes: 2 additions & 0 deletions keyboards/themadnoodle/udon13/keymaps/default/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes
52 changes: 52 additions & 0 deletions keyboards/themadnoodle/udon13/keymaps/via/keymap.c
jessel92 marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// 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*/
[0] = LAYOUT(
KC_MUTE,
KC_MPLY, KC_MPRV, KC_MNXT, KC_MSEL,
KC_UNDO, KC_CALC, KC_MAIL, KC_MYCM,
KC_COPY, KC_CUT, KC_PSTE, TO(3)
),

/*Layer 1*/
[1] = LAYOUT(
RGB_TOG,
RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI,
RGB_MOD, RGB_RMOD, RGB_M_P, RGB_M_B,
RGB_M_SW, RGB_SPD, RGB_SPI, TO(0)
),

/*Layer 2*/
[2] = LAYOUT(
KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, TO(0)
),

/*Layer 3*/
[3] = LAYOUT(
KC_NO,
TO(1), TO(2), KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, TO(0)
),

};

/*Encoder Mapping*/
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
[2] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT)},
[3] = { ENCODER_CCW_CW(KC_DOWN, KC_UP)},

};
#endif
3 changes: 3 additions & 0 deletions keyboards/themadnoodle/udon13/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ENCODER_MAP_ENABLE = yes
LTO_ENABLE = yes
VIA_ENABLE = yes
27 changes: 27 additions & 0 deletions keyboards/themadnoodle/udon13/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Udon:13

![Udon13](https://i.imgur.com/DppYeTCh.jpg)

*The Udon:13 is a 12 hotswap key macro keypad with a push button encoder knob and 128x32 OLED display*

* Keyboard Maintainer: [The Mad Noodle](https://github.com/The-Mad-Noodle)
* Hardware Supported: Udon:13 PCB
* Hardware Availability: https://www.madnoodleprototypes.com/shop


Compile example for this keyboard (after setting up your build environment):

qmk compile -kb themadnoodle/udon13 -km default

Flashing example for this keyboard:

qmk flash -kb themadnoodle/udon13 -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**:

* Press the physical button located on the top left of the back of the PCB (Labeled RST) to enter Bootloader Mode
1 change: 1 addition & 0 deletions keyboards/themadnoodle/udon13/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# This file intentionally left blank
76 changes: 76 additions & 0 deletions keyboards/themadnoodle/udon13/udon13.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// Copyright 2023 The Mad Noodle(@the_mad_noodle)
// SPDX-License-Identifier: GPL-2.0-or-later

#include "quantum.h"

#ifdef OLED_ENABLE

/* OLED Settings */
//------------------------------------------------------------------------------------------------

static void render_logo(void) { // Render Mad Noodle logo
static const char PROGMEM logo_1[] = {0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x04, 0x06, 0x82, 0xc3, 0x43, 0x61, 0xa1, 0xa1, 0xa1, 0xa1, 0x61, 0x43, 0xc3, 0x82, 0x06, 0x04, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00};
static const char PROGMEM logo_2[] = {0xf8, 0x1e, 0xc3, 0xf8, 0x5c, 0x76, 0x7b, 0x6d, 0x75, 0x55, 0x55, 0x75, 0x6d, 0x7b, 0x76, 0x5e, 0x7e, 0x77, 0x5b, 0x6d, 0x75, 0x55, 0x55, 0x75, 0x4d, 0x7b, 0x66, 0x5c, 0xf0, 0xc3, 0x3e, 0xf0};
static const char PROGMEM logo_3[] = {0x1f, 0x78, 0xc1, 0x0f, 0x38, 0xe0, 0xc0, 0x00, 0x00, 0x02, 0x0e, 0x0e, 0x8e, 0xc6, 0xc0, 0x40, 0x40, 0xc0, 0xc6, 0x8e, 0x0e, 0x0e, 0x02, 0x00, 0x80, 0xc0, 0x60, 0x38, 0x0f, 0xc0, 0x7c, 0x0f};
static const char PROGMEM logo_4[] = {0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, 0x31, 0x23, 0x66, 0x44, 0x44, 0xc4, 0xc4, 0x84, 0x84, 0x84, 0x84, 0xc4, 0xc4, 0x44, 0x46, 0x66, 0x23, 0x11, 0x18, 0x0c, 0x06, 0x03, 0x00, 0x00, 0x00};
oled_set_cursor(0, 0);
oled_write_raw_P(logo_1, sizeof(logo_1));
oled_set_cursor(0, 1);
oled_write_raw_P(logo_2, sizeof(logo_2));
oled_set_cursor(0, 2);
oled_write_raw_P(logo_3, sizeof(logo_3));
oled_set_cursor(0, 3);
oled_write_raw_P(logo_4, sizeof(logo_4));
jessel92 marked this conversation as resolved.
Show resolved Hide resolved
}
//-----------

bool oled_task_kb(void) {
if (!oled_task_user()) { return false; }
render_logo();
oled_set_cursor(7, 0);
oled_write_P(PSTR("The Mad Noodle"), false);

oled_set_cursor(7, 1);
oled_write_P(PSTR("Layer: "), false);

/*
To change LAYER NAMES displayed on the OLED ensure they are a total of 6 characters, including spaces.
Example:
---------------------------------------------------
case 0:
oled_write_P(PSTR("Base "), false);
break;
---------------------------------------------------
"B A S E *SPACE* *SPACE*" = 6 characters
This would change layer 0 to Base on the OLED
*/

switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR("Zero "), false);
break;
case 1:
oled_write_P(PSTR("One "), false);
break;
case 2:
oled_write_P(PSTR("Two "), false);
break;
case 3:
oled_write_P(PSTR("Three "), false);
break;

default:
oled_write_P(PSTR("N/A "), false);
}
oled_set_cursor(7, 2);
oled_write_P(PSTR("Status: "), false);
oled_set_cursor(7, 3);
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);

return false;
}

#endif