forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keyboard] Add 1upkeyboards pi50 (qmk#20242)
Co-authored-by: Drashna Jaelre <[email protected]> Co-authored-by: Less/Rikki <[email protected]> Co-authored-by: Ryan <[email protected]>
1 parent
a4b36f0
commit 7f413e9
Showing
18 changed files
with
1,362 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
// Copyright 2023 ziptyze | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#define OLED_DISPLAY_128X32 | ||
#define I2C1_SCL_PIN GP11 | ||
#define I2C1_SDA_PIN GP10 | ||
#define I2C_DRIVER I2CD1 | ||
#define OLED_BRIGHTNESS 128 | ||
#define OLED_FONT_H "keyboards/1upkeyboards/pi50/lib/glcdfont.c" | ||
|
||
#define RGB_DI_PIN GP0 | ||
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses | ||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS | ||
# define RGBLIGHT_LIMIT_VAL 150 | ||
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended | ||
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 | ||
// RGB Matrix Animation modes. Explicitly enabled | ||
// For full list of effects, see: | ||
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects | ||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS | ||
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN | ||
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT | ||
# define ENABLE_RGB_MATRIX_BREATHING | ||
# define ENABLE_RGB_MATRIX_BAND_SAT | ||
# define ENABLE_RGB_MATRIX_BAND_VAL | ||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT | ||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL | ||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT | ||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL | ||
# define ENABLE_RGB_MATRIX_CYCLE_ALL | ||
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT | ||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN | ||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON | ||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN | ||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL | ||
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL | ||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL | ||
# define ENABLE_RGB_MATRIX_DUAL_BEACON | ||
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON | ||
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS | ||
# define ENABLE_RGB_MATRIX_RAINDROPS | ||
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS | ||
# define ENABLE_RGB_MATRIX_HUE_BREATHING | ||
# define ENABLE_RGB_MATRIX_HUE_PENDULUM | ||
# define ENABLE_RGB_MATRIX_HUE_WAVE | ||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN | ||
# define ENABLE_RGB_MATRIX_PIXEL_FLOW | ||
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL | ||
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined | ||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP | ||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN | ||
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS | ||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS | ||
# define ENABLE_RGB_MATRIX_SPLASH | ||
# define ENABLE_RGB_MATRIX_MULTISPLASH | ||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH | ||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH | ||
|
||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
#define LOCKING_SUPPORT_ENABLE | ||
/* Locking resynchronize hack */ | ||
#define LOCKING_RESYNC_ENABLE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// Copyright 2023 ziptyze (@ziptyze) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#define RGB_MATRIX_LED_COUNT 60 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
{ | ||
"rgb_matrix": { | ||
"layout": [ | ||
{ "flags": 1, "matrix": [0, 0], "x": 10, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 0], "x": 28, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 1], "x": 46, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 1], "x": 65, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 2], "x": 84, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 2], "x": 102, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 3], "x": 121, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 3], "x": 140, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 4], "x": 159, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 4], "x": 177, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 5], "x": 196, "y": 7 }, | ||
{ "flags": 1, "matrix": [1, 5], "x": 215, "y": 7 }, | ||
|
||
{ "flags": 1, "matrix": [3, 5], "x": 215, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 5], "x": 196, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 4], "x": 177, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 4], "x": 159, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 3], "x": 140, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 3], "x": 121, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 2], "x": 102, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 2], "x": 84, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 1], "x": 65, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 1], "x": 46, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 0], "x": 28, "y": 19 }, | ||
{ "flags": 1, "matrix": [2, 0], "x": 9, "y": 19 }, | ||
|
||
{ "flags": 1, "matrix": [4, 0], "x": 9, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 0], "x": 28, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 1], "x": 46, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 1], "x": 65, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 2], "x": 84, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 2], "x": 102, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 3], "x": 121, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 3], "x": 140, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 4], "x": 159, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 4], "x": 177, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 5], "x": 196, "y": 32 }, | ||
{ "flags": 1, "matrix": [5, 5], "x": 215, "y": 32 }, | ||
|
||
{ "flags": 1, "matrix": [7, 5], "x": 215, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 5], "x": 196, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 4], "x": 177, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 4], "x": 159, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 3], "x": 140, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 3], "x": 121, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 2], "x": 102, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 2], "x": 84, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 1], "x": 65, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 1], "x": 46, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 0], "x": 28, "y": 45 }, | ||
{ "flags": 1, "matrix": [6, 0], "x": 9, "y": 45 }, | ||
|
||
{ "flags": 1, "matrix": [8, 0], "x": 9, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 0], "x": 28, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 1], "x": 46, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 1], "x": 65, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 2], "x": 84, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 2], "x": 102, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 3], "x": 140, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 4], "x": 159, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 4], "x": 177, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 5], "x": 196, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 5], "x": 215, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 3], "x": 121, "y": 57 } | ||
] | ||
}, | ||
"layouts": { | ||
"LAYOUT_ortho_5x12": { | ||
"layout": [ | ||
{ "matrix": [0, 6], "x": 11, "y": 0 }, | ||
|
||
{ "matrix": [0, 0], "x": 0, "y": 1 }, | ||
{ "matrix": [1, 0], "x": 1, "y": 1 }, | ||
{ "matrix": [0, 1], "x": 2, "y": 1 }, | ||
{ "matrix": [1, 1], "x": 3, "y": 1 }, | ||
{ "matrix": [0, 2], "x": 4, "y": 1 }, | ||
{ "matrix": [1, 2], "x": 5, "y": 1 }, | ||
{ "matrix": [0, 3], "x": 6, "y": 1 }, | ||
{ "matrix": [1, 3], "x": 7, "y": 1 }, | ||
{ "matrix": [0, 4], "x": 8, "y": 1 }, | ||
{ "matrix": [1, 4], "x": 9, "y": 1 }, | ||
{ "matrix": [0, 5], "x": 10, "y": 1 }, | ||
{ "matrix": [1, 5], "x": 11, "y": 1 }, | ||
|
||
{ "matrix": [2, 0], "x": 0, "y": 2 }, | ||
{ "matrix": [3, 0], "x": 1, "y": 2 }, | ||
{ "matrix": [2, 1], "x": 2, "y": 2 }, | ||
{ "matrix": [3, 1], "x": 3, "y": 2 }, | ||
{ "matrix": [2, 2], "x": 4, "y": 2 }, | ||
{ "matrix": [3, 2], "x": 5, "y": 2 }, | ||
{ "matrix": [2, 3], "x": 6, "y": 2 }, | ||
{ "matrix": [3, 3], "x": 7, "y": 2 }, | ||
{ "matrix": [2, 4], "x": 8, "y": 2 }, | ||
{ "matrix": [3, 4], "x": 9, "y": 2 }, | ||
{ "matrix": [2, 5], "x": 10, "y": 2 }, | ||
{ "matrix": [3, 5], "x": 11, "y": 2 }, | ||
|
||
{ "matrix": [4, 0], "x": 0, "y": 3 }, | ||
{ "matrix": [5, 0], "x": 1, "y": 3 }, | ||
{ "matrix": [4, 1], "x": 2, "y": 3 }, | ||
{ "matrix": [5, 1], "x": 3, "y": 3 }, | ||
{ "matrix": [4, 2], "x": 4, "y": 3 }, | ||
{ "matrix": [5, 2], "x": 5, "y": 3 }, | ||
{ "matrix": [4, 3], "x": 6, "y": 3 }, | ||
{ "matrix": [5, 3], "x": 7, "y": 3 }, | ||
{ "matrix": [4, 4], "x": 8, "y": 3 }, | ||
{ "matrix": [5, 4], "x": 9, "y": 3 }, | ||
{ "matrix": [4, 5], "x": 10, "y": 3 }, | ||
{ "matrix": [5, 5], "x": 11, "y": 3 }, | ||
|
||
{ "matrix": [6, 0], "x": 0, "y": 4 }, | ||
{ "matrix": [7, 0], "x": 1, "y": 4 }, | ||
{ "matrix": [6, 1], "x": 2, "y": 4 }, | ||
{ "matrix": [7, 1], "x": 3, "y": 4 }, | ||
{ "matrix": [6, 2], "x": 4, "y": 4 }, | ||
{ "matrix": [7, 2], "x": 5, "y": 4 }, | ||
{ "matrix": [6, 3], "x": 6, "y": 4 }, | ||
{ "matrix": [7, 3], "x": 7, "y": 4 }, | ||
{ "matrix": [6, 4], "x": 8, "y": 4 }, | ||
{ "matrix": [7, 4], "x": 9, "y": 4 }, | ||
{ "matrix": [6, 5], "x": 10, "y": 4 }, | ||
{ "matrix": [7, 5], "x": 11, "y": 4 }, | ||
|
||
{ "matrix": [8, 0], "x": 0, "y": 5 }, | ||
{ "matrix": [9, 0], "x": 1, "y": 5 }, | ||
{ "matrix": [8, 1], "x": 2, "y": 5 }, | ||
{ "matrix": [9, 1], "x": 3, "y": 5 }, | ||
{ "matrix": [8, 2], "x": 4, "y": 5 }, | ||
{ "matrix": [9, 2], "x": 5, "y": 5 }, | ||
{ "matrix": [8, 3], "x": 6, "y": 5 }, | ||
{ "matrix": [9, 3], "x": 7, "y": 5 }, | ||
{ "matrix": [8, 4], "x": 8, "y": 5 }, | ||
{ "matrix": [9, 4], "x": 9, "y": 5 }, | ||
{ "matrix": [8, 5], "x": 10, "y": 5 }, | ||
{ "matrix": [9, 5], "x": 11, "y": 5 } | ||
] | ||
} | ||
} | ||
} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// Copyright 2023 ziptyze | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#pragma once | ||
|
||
#define HAL_USE_I2C TRUE | ||
|
||
#include_next <halconf.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
{ | ||
"keyboard_name": "pi50", | ||
"manufacturer": "1upkeyboards", | ||
"maintainer": "ziptyze", | ||
"processor": "RP2040", | ||
"bootloader": "rp2040", | ||
"board": "GENERIC_RP_RP2040", | ||
"usb": { | ||
"vid": "0x6F75", | ||
"pid": "0x5606", | ||
"device_version": "1.0.0" | ||
}, | ||
"diode_direction": "COL2ROW", | ||
"dynamic_keymap": { | ||
"layer_count": 10 | ||
}, | ||
"features": { | ||
"audio": false, | ||
"backlight": false, | ||
"bootmagic": true, | ||
"command": false, | ||
"console": false, | ||
"extrakey": true, | ||
"mousekey": true, | ||
"nkro": false, | ||
"rgb_matrix": true, | ||
"rgblight": false | ||
}, | ||
"matrix_pins": { | ||
"rows": ["GP20", "GP15", "GP19", "GP14", "GP18", "GP13", "GP17", "GP12", "GP16", "GP21"], | ||
"cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP9"] | ||
}, | ||
"encoder": { | ||
"enabled": true, | ||
"rotary": [ | ||
{"pin_a": "GP8", "pin_b": "GP7"} | ||
] | ||
}, | ||
"rgb_matrix": { | ||
"driver": "WS2812" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
/* Copyright 2023 ziptyze | ||
* | ||
* 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_names { | ||
_ONE = 0, | ||
_TWO, | ||
_THREE, | ||
_FOUR | ||
}; | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
|
||
/* Qwerty | ||
* ╱⎺⎺⎺⎺╲ | ||
* |RGBTOG| | ||
* ╲⎽⎽⎽⎽╱ | ||
* ,-----------------------------------------------------------------------------------. | ||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_ONE] = LAYOUT_ortho_5x12 ( | ||
RGB_TOG, | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL, | ||
KC_ESC, 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_ENT , | ||
MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT | ||
), | ||
|
||
/* Lower | ||
* ╱⎺⎺⎺⎺╲ | ||
* | MUTE | | ||
* ╲⎽⎽⎽⎽╱ | ||
* ,-----------------------------------------------------------------------------------. | ||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | | | | | | | | Next | Vol- | Vol+ | Play | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_TWO] = LAYOUT_ortho_5x12 ( | ||
KC_MUTE, | ||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, | ||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, | ||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, | ||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
), | ||
|
||
/* Raise | ||
* ╱⎺⎺⎺⎺╲ | ||
* | MUTE | | ||
* ╲⎽⎽⎽⎽╱ | ||
* ,-----------------------------------------------------------------------------------. | ||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | Pg Up| Pg Dn| | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | | | | | | | | Next | Vol- | Vol+ | Play | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_THREE] = LAYOUT_ortho_5x12 ( | ||
KC_MUTE, | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, | ||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
), | ||
|
||
/* Adjust (Lower + Raise) | ||
* ╱⎺⎺⎺⎺╲ | ||
* | MUTE | | ||
* v-----------------------RGB CONTROL------------------v ╲⎽⎽⎽⎽╱ | ||
* ,-----------------------------------------------------------------------------------. | ||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | | Reset| Debug| | | | | | | | | Del | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | | |Aud cy|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | | | | | | | | | | | | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_FOUR] = LAYOUT_ortho_5x12 ( | ||
KC_MUTE, | ||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
_______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, | ||
_______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, | ||
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, | ||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
) | ||
}; | ||
|
||
#if defined(ENCODER_MAP_ENABLE) | ||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { | ||
[_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, | ||
[_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, | ||
[_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, | ||
[_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } | ||
}; | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
ENCODER_MAP_ENABLE = yes |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
VIA_ENABLE = yes | ||
LTO_ENABLE = yes | ||
|
||
ENCODER_MAP_ENABLE = yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,231 @@ | ||
// Copyright 2022 @filterpaper | ||
// SPDX-License-Identifier: GPL-2.0+ | ||
|
||
#include "progmem.h" | ||
|
||
static const unsigned char PROGMEM font[] = { | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, | ||
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, | ||
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, | ||
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, | ||
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, | ||
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, | ||
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, | ||
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, | ||
0x00, 0x18, 0x24, 0x18, 0x00, 0x00, | ||
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, | ||
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, | ||
0x26, 0x29, 0x79, 0x29, 0x26, 0x00, | ||
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, | ||
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, | ||
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, | ||
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, | ||
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, | ||
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, | ||
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, | ||
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, | ||
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, | ||
0x60, 0x60, 0x60, 0x60, 0x60, 0x00, | ||
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, | ||
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, | ||
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, | ||
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, | ||
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, | ||
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, | ||
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, | ||
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, | ||
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, | ||
0x00, 0x07, 0x00, 0x07, 0x00, 0x00, | ||
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, | ||
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, | ||
0x23, 0x13, 0x08, 0x64, 0x62, 0x00, | ||
0x36, 0x49, 0x56, 0x20, 0x50, 0x00, | ||
0x00, 0x08, 0x07, 0x03, 0x00, 0x00, | ||
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, | ||
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, | ||
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, | ||
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, | ||
0x00, 0x80, 0x70, 0x30, 0x00, 0x00, | ||
0x08, 0x08, 0x08, 0x08, 0x08, 0x00, | ||
0x00, 0x00, 0x60, 0x60, 0x00, 0x00, | ||
0x20, 0x10, 0x08, 0x04, 0x02, 0x00, | ||
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, | ||
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, | ||
0x72, 0x49, 0x49, 0x49, 0x46, 0x00, | ||
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, | ||
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, | ||
0x27, 0x45, 0x45, 0x45, 0x39, 0x00, | ||
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, | ||
0x41, 0x21, 0x11, 0x09, 0x07, 0x00, | ||
0x36, 0x49, 0x49, 0x49, 0x36, 0x00, | ||
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, | ||
0x00, 0x00, 0x14, 0x00, 0x00, 0x00, | ||
0x00, 0x40, 0x34, 0x00, 0x00, 0x00, | ||
0x00, 0x08, 0x14, 0x22, 0x41, 0x00, | ||
0x14, 0x14, 0x14, 0x14, 0x14, 0x00, | ||
0x00, 0x41, 0x22, 0x14, 0x08, 0x00, | ||
0x02, 0x01, 0x59, 0x09, 0x06, 0x00, | ||
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, | ||
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, | ||
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, | ||
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, | ||
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, | ||
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, | ||
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, | ||
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, | ||
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, | ||
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, | ||
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, | ||
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, | ||
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, | ||
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, | ||
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, | ||
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, | ||
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, | ||
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, | ||
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, | ||
0x26, 0x49, 0x49, 0x49, 0x32, 0x00, | ||
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, | ||
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, | ||
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, | ||
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, | ||
0x63, 0x14, 0x08, 0x14, 0x63, 0x00, | ||
0x03, 0x04, 0x78, 0x04, 0x03, 0x00, | ||
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, | ||
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, | ||
0x02, 0x04, 0x08, 0x10, 0x20, 0x00, | ||
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, | ||
0x04, 0x02, 0x01, 0x02, 0x04, 0x00, | ||
0x40, 0x40, 0x40, 0x40, 0x40, 0x00, | ||
0x00, 0x03, 0x07, 0x08, 0x00, 0x00, | ||
0x20, 0x54, 0x54, 0x78, 0x40, 0x00, | ||
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, | ||
0x38, 0x44, 0x44, 0x44, 0x28, 0x00, | ||
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, | ||
0x38, 0x54, 0x54, 0x54, 0x18, 0x00, | ||
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, | ||
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, | ||
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, | ||
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, | ||
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, | ||
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, | ||
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, | ||
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, | ||
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, | ||
0x38, 0x44, 0x44, 0x44, 0x38, 0x00, | ||
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, | ||
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, | ||
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, | ||
0x48, 0x54, 0x54, 0x54, 0x24, 0x00, | ||
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, | ||
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, | ||
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, | ||
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, | ||
0x44, 0x28, 0x10, 0x28, 0x44, 0x00, | ||
0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, | ||
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, | ||
0x00, 0x08, 0x36, 0x41, 0x00, 0x00, | ||
0x00, 0x00, 0x77, 0x00, 0x00, 0x00, | ||
0x00, 0x41, 0x36, 0x08, 0x00, 0x00, | ||
0x02, 0x01, 0x02, 0x04, 0x02, 0x00, | ||
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0xE0, 0x18, 0x02, | ||
0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A, | ||
0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D, | ||
0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE, | ||
0xF8, 0x01, 0x01, 0x03, 0x03, 0x03, | ||
0x03, 0x05, 0x05, 0x02, 0x02, 0x0A, | ||
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, | ||
0x0C, 0x04, 0x10, 0x18, 0x20, 0xC0, | ||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0xD0, 0x58, 0x78, | ||
0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4, | ||
0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70, | ||
0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0xC0, 0x7C, 0x07, 0x80, 0xE0, | ||
0x60, 0x64, 0xE2, 0x60, 0x10, 0x10, | ||
0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B, | ||
0x01, 0x01, 0x01, 0x01, 0x01, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x21, | ||
0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, | ||
0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0, | ||
0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50, | ||
0x50, 0x70, 0x78, 0x78, 0x78, 0x7C, | ||
0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44, | ||
0x40, 0x40, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x38, 0x30, 0x30, 0x30, 0x30, | ||
0x30, 0x30, 0x58, 0x46, 0x47, 0x41, | ||
0x41, 0x01, 0x01, 0x03, 0x03, 0x42, | ||
0x42, 0x42, 0x46, 0x46, 0x46, 0x46, | ||
0x42, 0x43, 0x43, 0x73, 0x77, 0x72, | ||
0x70, 0x60, 0x60, 0x60, 0x60, 0x60, | ||
0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78, | ||
0x78, 0x70, 0x70, 0x70, 0x70, 0x70, | ||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, | ||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, | ||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, | ||
0x40, 0x40, 0x40, 0x48, 0x58, 0x58, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// Copyright 2023 ziptyze | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#pragma once | ||
|
||
#include_next <mcuconf.h> | ||
|
||
#undef RP_I2C_USE_I2C0 | ||
#undef RP_I2C_USE_I2C1 | ||
#define RP_I2C_USE_I2C0 FALSE | ||
#define RP_I2C_USE_I2C1 TRUE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// Copyright 2023 ziptyze (@ziptyze) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#define RGB_MATRIX_LED_COUNT 59 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
{ | ||
"rgb_matrix": { | ||
"layout": [ | ||
{ "flags": 1, "matrix": [0, 0], "x": 10, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 0], "x": 28, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 1], "x": 46, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 1], "x": 65, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 2], "x": 84, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 2], "x": 102, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 3], "x": 121, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 3], "x": 140, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 4], "x": 159, "y": 7 }, | ||
{ "flags": 4, "matrix": [1, 4], "x": 177, "y": 7 }, | ||
{ "flags": 4, "matrix": [0, 5], "x": 196, "y": 7 }, | ||
{ "flags": 1, "matrix": [1, 5], "x": 215, "y": 7 }, | ||
|
||
{ "flags": 1, "matrix": [3, 5], "x": 215, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 5], "x": 196, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 4], "x": 177, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 4], "x": 159, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 3], "x": 140, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 3], "x": 121, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 2], "x": 102, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 2], "x": 84, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 1], "x": 65, "y": 19 }, | ||
{ "flags": 4, "matrix": [2, 1], "x": 46, "y": 19 }, | ||
{ "flags": 4, "matrix": [3, 0], "x": 28, "y": 19 }, | ||
{ "flags": 1, "matrix": [2, 0], "x": 9, "y": 19 }, | ||
|
||
{ "flags": 1, "matrix": [4, 0], "x": 9, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 0], "x": 28, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 1], "x": 46, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 1], "x": 65, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 2], "x": 84, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 2], "x": 102, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 3], "x": 121, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 3], "x": 140, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 4], "x": 159, "y": 32 }, | ||
{ "flags": 4, "matrix": [5, 4], "x": 177, "y": 32 }, | ||
{ "flags": 4, "matrix": [4, 5], "x": 196, "y": 32 }, | ||
{ "flags": 1, "matrix": [5, 5], "x": 215, "y": 32 }, | ||
|
||
{ "flags": 1, "matrix": [7, 5], "x": 215, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 5], "x": 196, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 4], "x": 177, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 4], "x": 159, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 3], "x": 140, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 3], "x": 121, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 2], "x": 102, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 2], "x": 84, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 1], "x": 65, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 1], "x": 46, "y": 45 }, | ||
{ "flags": 4, "matrix": [7, 0], "x": 28, "y": 45 }, | ||
{ "flags": 4, "matrix": [6, 0], "x": 9, "y": 45 }, | ||
|
||
{ "flags": 1, "matrix": [8, 0], "x": 9, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 0], "x": 28, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 1], "x": 46, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 1], "x": 65, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 2], "x": 84, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 2], "x": 112, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 3], "x": 140, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 4], "x": 159, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 4], "x": 177, "y": 57 }, | ||
{ "flags": 1, "matrix": [8, 5], "x": 196, "y": 57 }, | ||
{ "flags": 1, "matrix": [9, 5], "x": 215, "y": 57 } | ||
] | ||
}, | ||
"layouts": { | ||
"LAYOUT_ortho_5x12": { | ||
"layout": [ | ||
{ "matrix": [0, 6], "x": 11, "y": 0 }, | ||
|
||
{ "matrix": [0, 0], "x": 0, "y": 1 }, | ||
{ "matrix": [1, 0], "x": 1, "y": 1 }, | ||
{ "matrix": [0, 1], "x": 2, "y": 1 }, | ||
{ "matrix": [1, 1], "x": 3, "y": 1 }, | ||
{ "matrix": [0, 2], "x": 4, "y": 1 }, | ||
{ "matrix": [1, 2], "x": 5, "y": 1 }, | ||
{ "matrix": [0, 3], "x": 6, "y": 1 }, | ||
{ "matrix": [1, 3], "x": 7, "y": 1 }, | ||
{ "matrix": [0, 4], "x": 8, "y": 1 }, | ||
{ "matrix": [1, 4], "x": 9, "y": 1 }, | ||
{ "matrix": [0, 5], "x": 10, "y": 1 }, | ||
{ "matrix": [1, 5], "x": 11, "y": 1 }, | ||
|
||
{ "matrix": [2, 0], "x": 0, "y": 2 }, | ||
{ "matrix": [3, 0], "x": 1, "y": 2 }, | ||
{ "matrix": [2, 1], "x": 2, "y": 2 }, | ||
{ "matrix": [3, 1], "x": 3, "y": 2 }, | ||
{ "matrix": [2, 2], "x": 4, "y": 2 }, | ||
{ "matrix": [3, 2], "x": 5, "y": 2 }, | ||
{ "matrix": [2, 3], "x": 6, "y": 2 }, | ||
{ "matrix": [3, 3], "x": 7, "y": 2 }, | ||
{ "matrix": [2, 4], "x": 8, "y": 2 }, | ||
{ "matrix": [3, 4], "x": 9, "y": 2 }, | ||
{ "matrix": [2, 5], "x": 10, "y": 2 }, | ||
{ "matrix": [3, 5], "x": 11, "y": 2 }, | ||
|
||
{ "matrix": [4, 0], "x": 0, "y": 3 }, | ||
{ "matrix": [5, 0], "x": 1, "y": 3 }, | ||
{ "matrix": [4, 1], "x": 2, "y": 3 }, | ||
{ "matrix": [5, 1], "x": 3, "y": 3 }, | ||
{ "matrix": [4, 2], "x": 4, "y": 3 }, | ||
{ "matrix": [5, 2], "x": 5, "y": 3 }, | ||
{ "matrix": [4, 3], "x": 6, "y": 3 }, | ||
{ "matrix": [5, 3], "x": 7, "y": 3 }, | ||
{ "matrix": [4, 4], "x": 8, "y": 3 }, | ||
{ "matrix": [5, 4], "x": 9, "y": 3 }, | ||
{ "matrix": [4, 5], "x": 10, "y": 3 }, | ||
{ "matrix": [5, 5], "x": 11, "y": 3 }, | ||
|
||
{ "matrix": [6, 0], "x": 0, "y": 4 }, | ||
{ "matrix": [7, 0], "x": 1, "y": 4 }, | ||
{ "matrix": [6, 1], "x": 2, "y": 4 }, | ||
{ "matrix": [7, 1], "x": 3, "y": 4 }, | ||
{ "matrix": [6, 2], "x": 4, "y": 4 }, | ||
{ "matrix": [7, 2], "x": 5, "y": 4 }, | ||
{ "matrix": [6, 3], "x": 6, "y": 4 }, | ||
{ "matrix": [7, 3], "x": 7, "y": 4 }, | ||
{ "matrix": [6, 4], "x": 8, "y": 4 }, | ||
{ "matrix": [7, 4], "x": 9, "y": 4 }, | ||
{ "matrix": [6, 5], "x": 10, "y": 4 }, | ||
{ "matrix": [7, 5], "x": 11, "y": 4 }, | ||
|
||
{ "matrix": [8, 0], "x": 0, "y": 5 }, | ||
{ "matrix": [9, 0], "x": 1, "y": 5 }, | ||
{ "matrix": [8, 1], "x": 2, "y": 5 }, | ||
{ "matrix": [9, 1], "x": 3, "y": 5 }, | ||
{ "matrix": [8, 2], "x": 4, "y": 5 }, | ||
{ "matrix": [9, 2], "x": 5, "y": 5 }, | ||
{ "matrix": [8, 3], "x": 6, "y": 5 }, | ||
{ "matrix": [9, 3], "x": 7, "y": 5 }, | ||
{ "matrix": [8, 4], "x": 8, "y": 5 }, | ||
{ "matrix": [9, 4], "x": 9, "y": 5 }, | ||
{ "matrix": [8, 5], "x": 10, "y": 5 }, | ||
{ "matrix": [9, 5], "x": 11, "y": 5 } | ||
] | ||
} | ||
} | ||
} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,242 @@ | ||
/* Copyright 2023 ziptyze | ||
* | ||
* 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 "quantum.h" | ||
#include <ctype.h> | ||
#include <stdio.h> | ||
|
||
#if defined(RGB_MATRIX_EFFECT) | ||
# undef RGB_MATRIX_EFFECT | ||
#endif // defined(RGB_MATRIX_EFFECT) | ||
|
||
#define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x, | ||
enum { | ||
RGB_MATRIX_EFFECT_NONE, | ||
#include "rgb_matrix_effects.inc" | ||
#undef RGB_MATRIX_EFFECT | ||
#ifdef RGB_MATRIX_CUSTOM_KB | ||
# include "rgb_matrix_kb.inc" | ||
#endif | ||
#ifdef RGB_MATRIX_CUSTOM_USER | ||
# include "rgb_matrix_user.inc" | ||
#endif | ||
}; | ||
|
||
#define RGB_MATRIX_EFFECT(x) \ | ||
case RGB_MATRIX_EFFECT_##x: \ | ||
return #x; | ||
const char* rgb_matrix_name(uint8_t effect) { | ||
switch (effect) { | ||
case RGB_MATRIX_EFFECT_NONE: | ||
return "NONE"; | ||
#include "rgb_matrix_effects.inc" | ||
#undef RGB_MATRIX_EFFECT | ||
#ifdef RGB_MATRIX_CUSTOM_KB | ||
# include "rgb_matrix_kb.inc" | ||
#endif | ||
#ifdef RGB_MATRIX_CUSTOM_USER | ||
# include "rgb_matrix_user.inc" | ||
#endif | ||
default: | ||
return "UNKNOWN"; | ||
} | ||
} | ||
|
||
#ifdef OLED_ENABLE | ||
|
||
static uint32_t oled_logo_timer = 0; | ||
static bool clear_logo = true; | ||
static const char PROGMEM my_logo[] = { | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, | ||
0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, | ||
0x0f, 0x0f, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, | ||
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, | ||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, | ||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xfb, | ||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, | ||
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
}; | ||
|
||
#endif | ||
|
||
#ifdef OLED_ENABLE | ||
|
||
void init_timer(void){ | ||
oled_logo_timer = timer_read32(); | ||
}; | ||
|
||
void user_oled_magic(void) { | ||
// Host Keyboard Layer Status | ||
oled_write_P(PSTR("Layer: "), false); | ||
|
||
switch (get_highest_layer(layer_state)) { | ||
case 0: | ||
oled_write_P(PSTR("One\n"), false); | ||
break; | ||
case 1: | ||
oled_write_P(PSTR("Two\n"), false); | ||
break; | ||
case 2: | ||
oled_write_P(PSTR("Three\n"), false); | ||
break; | ||
case 3: | ||
oled_write_P(PSTR("Four\n"), false); | ||
break; | ||
case 4: | ||
oled_write_P(PSTR("Five\n"), false); | ||
break; | ||
case 5: | ||
oled_write_P(PSTR("Six\n"), false); | ||
break; | ||
case 6: | ||
oled_write_P(PSTR("Seven\n"), false); | ||
break; | ||
case 7: | ||
oled_write_P(PSTR("Eight\n"), false); | ||
break; | ||
case 8: | ||
oled_write_P(PSTR("Nine\n"), false); | ||
break; | ||
case 9: | ||
oled_write_P(PSTR("Ten\n"), false); | ||
break; | ||
default: | ||
// Or use the write_ln shortcut over adding '\n' to the end of your string | ||
oled_write_ln_P(PSTR("Undefined"), false); | ||
} | ||
|
||
// Host Keyboard LED Status | ||
led_t led_state = host_keyboard_led_state(); | ||
oled_write_P(led_state.caps_lock ? PSTR("Cap(x) ") : PSTR("Cap( ) "), false); | ||
oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false); | ||
oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false); | ||
|
||
char *mode_name = strdup(rgb_matrix_name(rgb_matrix_get_mode())); | ||
if (mode_name != NULL) { | ||
int len = strlen(mode_name); | ||
bool capitalize_next = true; | ||
for (int i = 0; i < len; i++) { | ||
if (i == 21 && mode_name[i] == '_') { | ||
continue; // Skip the underscore if it's the 22nd character | ||
} | ||
if (mode_name[i] == '_') { | ||
mode_name[i] = ' '; | ||
capitalize_next = true; | ||
} else if (capitalize_next) { | ||
mode_name[i] = mode_name[i] >= 'a' && mode_name[i] <= 'z' ? mode_name[i] - 'a' + 'A' : mode_name[i]; | ||
capitalize_next = false; | ||
} else { | ||
mode_name[i] = mode_name[i] >= 'A' && mode_name[i] <= 'Z' ? mode_name[i] - 'A' + 'a' : mode_name[i]; | ||
} | ||
} | ||
|
||
// Add line break and spaces if necessary | ||
if (len < 19) { | ||
strcat(mode_name, "\n"); | ||
for (int i = 0; i < 21; i++) { | ||
strcat(mode_name, " "); | ||
} | ||
} else { | ||
// Find the most recent ' ' before the 21st character and replace it with a line break | ||
int break_pos = -1; | ||
for (int i = 18; i >= 0; i--) { | ||
if (mode_name[i] == ' ') { | ||
break_pos = i; | ||
break; | ||
} | ||
} | ||
if (break_pos >= 0) { | ||
mode_name[break_pos] = '\n'; | ||
for (int i = 0; i < (21 - (len - break_pos - 1)); i++) { | ||
strcat(mode_name, " "); | ||
} | ||
} else { | ||
// No '_' found, just add spaces | ||
for (int i = 0; i < (21 - len); i++) { | ||
strcat(mode_name, " "); | ||
} | ||
} | ||
} | ||
|
||
oled_write_P(PSTR(mode_name), false); | ||
free(mode_name); | ||
} | ||
|
||
|
||
} | ||
|
||
void render_logo(void) { | ||
oled_write_raw_P(my_logo, sizeof(my_logo)); | ||
} | ||
|
||
void clear_screen(void) { | ||
if (clear_logo){ | ||
for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) { | ||
for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) { | ||
oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j); | ||
} | ||
} | ||
clear_logo = false; | ||
} | ||
} | ||
|
||
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { | ||
return OLED_ROTATION_180; | ||
} | ||
|
||
void keyboard_post_init_kb(void) { | ||
init_timer(); | ||
|
||
keyboard_post_init_user(); | ||
} | ||
|
||
# define SHOW_LOGO 5000 | ||
bool oled_task_kb(void) { | ||
if (!oled_task_user()) { return false; } | ||
if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){ | ||
render_logo(); | ||
}else{ | ||
clear_screen(); | ||
user_oled_magic(); | ||
} | ||
return false; | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# pi50 | ||
|
||
The pi40 is a 5x12 ortholinear keyboard with options for a 1u or 2u spacebar using a Raspberry Pi Pico for the controller. | ||
|
||
It includes options for a rotary encoder, SSD1306 oled, and per-key in-switch RGB LEDs. | ||
|
||
All unused GPIO pins are broken out on the main pcb, as well as the available voltage pins. | ||
|
||
This firmware also includes the option for VIA which includes configuration options for the rotary encoder, matrix lighting, and up to 10 layers. | ||
|
||
Default oled configuration displays: | ||
- current layer | ||
- caps lock status | ||
- num lock status | ||
- scroll lock status | ||
- current RGB lighting mode | ||
|
||
* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) | ||
* Hardware Availability: (https://1upkeyboards.com/shop/keyboard-kits/diy-40-kits/pi50-keyboard-kit/#pcb-color) | ||
|
||
Make example for this keyboard (after setting up your build environment): | ||
|
||
make 1upkeyboards/pi50:default | ||
|
||
Flashing example for this keyboard: | ||
|
||
make 1upkeyboards/pi50: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 2 ways: | ||
|
||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix, the top left key, and plug in the keyboard | ||
* **BOOTSEL button**: Hold down the BOOTSEL button on the pico, and plug in the keyboard |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
WS2812_DRIVER = vendor | ||
|
||
OLED_ENABLE = yes | ||
|
||
DEFAULT_FOLDER = 1upkeyboards/pi50/grid |