summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam <47176495+ItsFiremanSam@users.noreply.github.com>2022-07-15 04:52:39 +0200
committerGitHub <noreply@github.com>2022-07-14 19:52:39 -0700
commit16c91e0cf2f01cc28b32c22d108e806538f7dba7 (patch)
tree55bbafa8456a4857e30abfae79d2a6996bd42d03
parent807620fa3c9995db29f0752162cee136a1381c13 (diff)
[Keyboard] Added TutelPad keyboard (#16975)
* TutelPad firmware v1.0 * Added VIA compatibility * Update keyboards/0xcb/tutelpad/config.h * Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c * Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c * Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c * Add new OLED image, implement suggested fixes * Update keyboards/0xcb/tutelpad/rules.mk * Update keyboards/0xcb/tutelpad/rules.mk
-rw-r--r--keyboards/0xcb/tutelpad/config.h96
-rw-r--r--keyboards/0xcb/tutelpad/info.json20
-rw-r--r--keyboards/0xcb/tutelpad/keymaps/default/keymap.c29
-rw-r--r--keyboards/0xcb/tutelpad/keymaps/via/keymap.c39
-rw-r--r--keyboards/0xcb/tutelpad/keymaps/via/rules.mk1
-rw-r--r--keyboards/0xcb/tutelpad/readme.md19
-rw-r--r--keyboards/0xcb/tutelpad/rules.mk21
-rw-r--r--keyboards/0xcb/tutelpad/tutelpad.c106
-rw-r--r--keyboards/0xcb/tutelpad/tutelpad.h35
9 files changed, 366 insertions, 0 deletions
diff --git a/keyboards/0xcb/tutelpad/config.h b/keyboards/0xcb/tutelpad/config.h
new file mode 100644
index 0000000000..89e5ef6ba0
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/config.h
@@ -0,0 +1,96 @@
1/* Copyright 2022 ItsFiremanSam
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xCB00
23#define PRODUCT_ID 0xF09F
24#define DEVICE_VER 0x0001
25#define MANUFACTURER ItsFiremanSam
26#define PRODUCT TutelPad
27
28/* key matrix size */
29#define MATRIX_ROWS 2
30#define MATRIX_COLS 4
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41 */
42/* Keyboard Matrix Assignments */
43#define DIRECT_PINS { \
44 { E6, D7, B1, B3 }, \
45 { B5, B4, B2, B6 } \
46}
47
48#define RGB_DI_PIN D3 // LED data pin on controller
49#define RGBLED_NUM 4 // Number of LEDs connected
50
51#define RGBLIGHT_HUE_STEP 10 // The number of steps to cycle through the hue by
52#define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by
53#define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by
54#define RGBLIGHT_LIMIT_VAL 255 // Max brightness level
55#define RGBLIGHT_SLEEP // RGB will switch off when host goes to sleep
56
57#define RGBLIGHT_EFFECT_BREATHING // Enable all additional RGB animation modes
58#define RGBLIGHT_EFFECT_RAINBOW_MOOD
59#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
60#define RGBLIGHT_EFFECT_SNAKE
61#define RGBLIGHT_EFFECT_KNIGHT
62#define RGBLIGHT_EFFECT_CHRISTMAS
63#define RGBLIGHT_EFFECT_STATIC_GRADIENT
64#define RGBLIGHT_EFFECT_RGB_TEST
65#define RGBLIGHT_EFFECT_ALTERNATING
66#define RGBLIGHT_EFFECT_TWINKLE
67
68#define OLED_TIMEOUT 20000 // Turns off OLED after said amount of milliseconds
69#define OLED_BRIGHTNESS 128
70#define OLED_DISPLAY_128X64
71
72
73/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
74 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
75 */
76//#define GRAVE_ESC_CTRL_OVERRIDE
77
78/*
79 * Feature disable options
80 * These options are also useful to firmware size reduction.
81 */
82
83/* disable debug print */
84//#define NO_DEBUG
85
86/* disable print */
87//#define NO_PRINT
88
89/* disable action features */
90//#define NO_ACTION_LAYER
91//#define NO_ACTION_TAPPING
92//#define NO_ACTION_ONESHOT
93
94/* Bootmagic Lite key configuration */
95#define BOOTMAGIC_LITE_ROW 1
96#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/0xcb/tutelpad/info.json b/keyboards/0xcb/tutelpad/info.json
new file mode 100644
index 0000000000..8a757a8e28
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/info.json
@@ -0,0 +1,20 @@
1{
2 "keyboard_name": "TutelPad",
3 "url": "",
4 "maintainer": "ItsFiremanSam",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 {"label": "k03", "x": 0, "y": 0},
9 {"label": "k02", "x": 1, "y": 0},
10 {"label": "k01", "x": 2, "y": 0},
11 {"label": "k00", "x": 3, "y": 0},
12
13 {"label": "k13", "x": 0, "y": 1},
14 {"label": "k12", "x": 1, "y": 1},
15 {"label": "k11", "x": 2, "y": 1},
16 {"label": "k10", "x": 3, "y": 1}
17 ]
18 }
19 }
20}
diff --git a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c
new file mode 100644
index 0000000000..513e7d9f33
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
1/* Copyright 2022 ItsFiremanSam
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE
21};
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 /* Base */
25 [_BASE] = LAYOUT(
26 KC_1, KC_2, KC_3, KC_4,
27 KC_5, KC_6, KC_7, KC_8
28 )
29}; \ No newline at end of file
diff --git a/keyboards/0xcb/tutelpad/keymaps/via/keymap.c b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c
new file mode 100644
index 0000000000..c617fce75e
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c
@@ -0,0 +1,39 @@
1/* Copyright 2022 ItsFiremanSam
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Base */
20 [0] = LAYOUT(
21 KC_1, KC_2, KC_3, KC_4,
22 KC_5, LT(1, KC_6), LT(1, KC_7), LT(1, KC_8)
23 ),
24
25 [1] = LAYOUT(
26 _______, _______, _______, _______,
27 _______, _______, _______, _______
28 ),
29
30 [2] = LAYOUT(
31 _______, _______, _______, _______,
32 _______, _______, _______, _______
33 ),
34
35 [3] = LAYOUT(
36 _______, _______, _______, _______,
37 _______, _______, _______, _______
38 ),
39}; \ No newline at end of file
diff --git a/keyboards/0xcb/tutelpad/keymaps/via/rules.mk b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/0xcb/tutelpad/readme.md b/keyboards/0xcb/tutelpad/readme.md
new file mode 100644
index 0000000000..8fb8c970e7
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/readme.md
@@ -0,0 +1,19 @@
1# TutelPad macropad
2
3* Keyboard Maintainer: [ItsFiremanSam](https://github.com/ItsFiremanSam)
4* Hardware Supported: [TutelPad GitHub](https://github.com/0xCB-dev/0xCB-TutelPad)
5* Hardware Availability: [KeebSupply](https://keeb.supply/)
6
7## Bootloader
8
9You can enter the bootloader by pressing the reset switch on the side while the keyboard is plugged in. You can also short the GND and RST pads on the controller.
10
11Make example for this keyboard (after setting up your build environment):
12
13 make 0xcb/tutelpad:default
14
15Flashing example for this keyboard:
16
17 make 0xcb/tutelpad:default:flash
18
19See 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).
diff --git a/keyboards/0xcb/tutelpad/rules.mk b/keyboards/0xcb/tutelpad/rules.mk
new file mode 100644
index 0000000000..e022c905cd
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/rules.mk
@@ -0,0 +1,21 @@
1## MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19
20OLED_ENABLE = yes
21OLED_DRIVER = SSD1306 \ No newline at end of file
diff --git a/keyboards/0xcb/tutelpad/tutelpad.c b/keyboards/0xcb/tutelpad/tutelpad.c
new file mode 100644
index 0000000000..25c2d22219
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/tutelpad.c
@@ -0,0 +1,106 @@
1/* Copyright 2022 ItsFiremanSam
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "tutelpad.h"
18
19#ifdef OLED_ENABLE
20
21oled_rotation_t oled_init_user(oled_rotation_t rotation) {
22 return OLED_ROTATION_180;
23}
24
25static void render_logo(void) {
26 static const char PROGMEM tutel[] = {
27 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
29 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
31 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
32 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
34 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
37 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f,
41 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
42 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
43 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
44 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
45 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f,
46 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
48 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
49 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f,
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
51 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f,
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f,
54 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00,
59 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
60 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f,
61 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff,
62 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
63 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
64 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
66 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
67 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
68 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
70 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
72 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
73 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
76 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
77 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0,
79 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00,
80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff,
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0,
87 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0,
88 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
89 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
90 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
91 };
92
93oled_write_raw_P(tutel, sizeof(tutel));
94}
95
96bool oled_task_kb(void) {
97 if (!oled_task_user()) {
98 return false;
99 }
100
101 render_logo();
102
103 return false;
104}
105
106#endif \ No newline at end of file
diff --git a/keyboards/0xcb/tutelpad/tutelpad.h b/keyboards/0xcb/tutelpad/tutelpad.h
new file mode 100644
index 0000000000..0115c50fa4
--- /dev/null
+++ b/keyboards/0xcb/tutelpad/tutelpad.h
@@ -0,0 +1,35 @@
1/* Copyright 2022 ItsFiremanSam
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29#define LAYOUT( \
30 k00, k01, k02, k03, \
31 k10, k11, k12, k13 \
32) { \
33 { k00, k01, k02, k03 }, \
34 { k10, k11, k12, k13 } \
35}