9b07098dbd63fcd7b69eadfa91b5b01724e80e78
- Author
- nrtkbb <nrtkbb@gmail.com>
- Committer
- Drashna Jaelre <drashna@live.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/keyboards/uzu42/config.h b/keyboards/uzu42/config.h
2new file mode 100644
3index 0000000000000000000000000000000000000000..45f497d782152c7b8de3e8b0bcd97d7672fa8ffe
4--- /dev/null
5+++ b/keyboards/uzu42/config.h
6@@ -0,0 +1,29 @@
7+/*
8+Copyright 2012 Jun Wako <wakojun@gmail.com>
9+Copyright 2015 Jack Humbert
10+
11+This program is free software: you can redistribute it and/or modify
12+it under the terms of the GNU General Public License as published by
13+the Free Software Foundation, either version 2 of the License, or
14+(at your option) any later version.
15+
16+This program is distributed in the hope that it will be useful,
17+but WITHOUT ANY WARRANTY; without even the implied warranty of
18+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+GNU General Public License for more details.
20+
21+You should have received a copy of the GNU General Public License
22+along with this program. If not, see <http://www.gnu.org/licenses/>.
23+*/
24+
25+#pragma once
26+
27+#include "config_common.h"
28+
29+#ifndef SOFT_SERIAL_PIN
30+#define SOFT_SERIAL_PIN D2
31+#define SERIAL_USE_MULTI_TRANSACTION
32+#endif
33+
34+#define NO_ACTION_MACRO
35+#define NO_ACTION_FUNCTION
36diff --git a/keyboards/uzu42/keymaps/default/config.h b/keyboards/uzu42/keymaps/default/config.h
37new file mode 100644
38index 0000000000000000000000000000000000000000..bc7897f501082a3285d60da893c11dd9af862a79
39--- /dev/null
40+++ b/keyboards/uzu42/keymaps/default/config.h
41@@ -0,0 +1,47 @@
42+/*
43+This is the c configuration file for the keymap
44+
45+Copyright 2012 Jun Wako <wakojun@gmail.com>
46+Copyright 2015 Jack Humbert
47+
48+This program is free software: you can redistribute it and/or modify
49+it under the terms of the GNU General Public License as published by
50+the Free Software Foundation, either version 2 of the License, or
51+(at your option) any later version.
52+
53+This program is distributed in the hope that it will be useful,
54+but WITHOUT ANY WARRANTY; without even the implied warranty of
55+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
56+GNU General Public License for more details.
57+
58+You should have received a copy of the GNU General Public License
59+along with this program. If not, see <http://www.gnu.org/licenses/>.
60+*/
61+
62+#pragma once
63+
64+//#define USE_MATRIX_I2C
65+
66+/* Select hand configuration */
67+
68+#define MASTER_LEFT
69+// #define MASTER_RIGHT
70+// #define EE_HANDS
71+
72+#define SSD1306OLED
73+
74+#define USE_SERIAL_PD2
75+
76+#define TAPPING_FORCE_HOLD
77+#define TAPPING_TERM 200
78+
79+#undef RGBLED_NUM
80+#define RGBLIGHT_ANIMATIONS
81+#define RGBLED_NUM 54
82+#define RGBLIGHT_LIMIT_VAL 120
83+#define RGBLIGHT_HUE_STEP 10
84+#define RGBLIGHT_SAT_STEP 17
85+#define RGBLIGHT_VAL_STEP 17
86+
87+// Use the lily version to get the uzu42 logo instead of the qmk logo
88+#define OLED_FONT_H "keymaps/default/glcdfont_uzu42.c"
89diff --git a/keyboards/uzu42/keymaps/default/glcdfont_uzu42.c b/keyboards/uzu42/keymaps/default/glcdfont_uzu42.c
90new file mode 100644
91index 0000000000000000000000000000000000000000..f5524ec73710a2939538654edb8592d4348b224a
92--- /dev/null
93+++ b/keyboards/uzu42/keymaps/default/glcdfont_uzu42.c
94@@ -0,0 +1,243 @@
95+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
96+// See gfxfont.h for newer custom bitmap font info.
97+
98+#ifndef FONT5X7_H
99+#define FONT5X7_H
100+
101+#ifdef __AVR__
102+ #include <avr/io.h>
103+ #include <avr/pgmspace.h>
104+#elif defined(ESP8266)
105+ #include <pgmspace.h>
106+#else
107+ #define PROGMEM
108+#endif
109+
110+// Standard ASCII 5x7 font
111+const unsigned char font[] PROGMEM = {
112+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
113+0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
114+0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
115+0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
116+0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
117+0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
118+0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
119+0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
120+0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
121+0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
122+0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
123+0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
124+0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
125+0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
126+0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
127+0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
128+0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
129+0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
130+0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
131+0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
132+0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
133+0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
134+0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
135+0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
136+0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
137+0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
138+0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
139+0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
140+0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
141+0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
142+0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
143+0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
144+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145+0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
146+0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
147+0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
148+0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
149+0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
150+0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
151+0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
152+0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
153+0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
154+0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
155+0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
156+0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
157+0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
158+0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
159+0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
160+0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
161+0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
162+0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
163+0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
164+0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
165+0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
166+0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
167+0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
168+0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
169+0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
170+0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
171+0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
172+0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
173+0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
174+0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
175+0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
176+0x00, 0x41, 0x5D, 0x59, 0x4E, 0x00,
177+0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
178+0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
179+0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
180+0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
181+0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
182+0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
183+0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
184+0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
185+0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
186+0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
187+0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
188+0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
189+0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
190+0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
191+0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
192+0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
193+0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
194diff --git a/keyboards/uzu42/keymaps/default/keymap.c b/keyboards/uzu42/keymaps/default/keymap.c
195new file mode 100644
196index 0000000000000000000000000000000000000000..bb439971dc5543c904fb6f3ef5b04f7e24cf2e93
197--- /dev/null
198+++ b/keyboards/uzu42/keymaps/default/keymap.c
199@@ -0,0 +1,292 @@
200+#include QMK_KEYBOARD_H
201+#include "uzu42.h"
202+#ifdef PROTOCOL_LUFA
203+ #include "lufa.h"
204+ #include "split_util.h"
205+#endif
206+#ifdef SSD1306OLED
207+ #include "ssd1306.h"
208+#endif
209+
210+extern keymap_config_t keymap_config;
211+
212+#ifdef RGBLIGHT_ENABLE
213+#include <stdio.h>
214+//Following line allows macro to read current RGB settings
215+extern rgblight_config_t rgblight_config;
216+#endif
217+
218+// Each layer gets a name for readability, which is then used in the keymap matrix below.
219+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
220+// Layer names don't all need to be of the same length, obviously, and you can also skip them
221+// entirely and just use numbers.
222+enum layer_number {
223+ _QWERTY = 0,
224+ _LOWER,
225+ _RAISE,
226+ _ADJUST,
227+};
228+
229+enum custom_keycodes {
230+ QWERTY = SAFE_RANGE,
231+ LOWER,
232+ RAISE,
233+ ADJUST,
234+ RGBRST
235+};
236+
237+#define KC_CTES CTL_T(KC_ESC)
238+#define KC_SFSP SFT_T(KC_SPC)
239+#define KC_ALBS ALT_T(KC_BSPC)
240+
241+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
242+ [_QWERTY] = LAYOUT( \
243+ //,---------------------------------------. ,---------------------------------------.
244+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,\
245+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
246+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,\
247+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
248+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,\
249+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
250+ KC_LSFT, KC_SPC,KC_LALT,KC_LGUI, LOWER,KC_CTES, KC_SFSP, RAISE,KC_ALBS,KC_RCTL,KC_LGUI,XXXXXXX \
251+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
252+ ),
253+
254+ [_LOWER] = LAYOUT( \
255+ //,---------------------------------------. ,---------------------------------------.
256+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,\
257+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
258+ KC_TAB,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_LEFT,KC_DOWN, KC_UP,KC_RGHT, KC_ENT,\
259+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
260+ KC_LCTL, KC_SPC,KC_LSFT,KC_LALT, KC_DEL, KC_BSPC,KC_HOME, KC_END,XXXXXXX,XXXXXXX,\
261+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
262+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______ \
263+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
264+ ),
265+
266+ [_RAISE] = LAYOUT( \
267+ //,---------------------------------------. ,---------------------------------------.
268+ KC_EXLM, KC_AT,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,\
269+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
270+ KC_TAB,KC_UNDS,KC_PLUS,KC_PIPE,KC_TILD, KC_COLN,KC_DQUO, KC_GT,KC_LCBR,KC_RCBR,\
271+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
272+ KC_LCTL,KC_MINS, KC_EQL,KC_BSLS, KC_GRV, KC_SCLN,KC_QUOT, KC_LT,KC_LBRC,KC_RBRC,\
273+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
274+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______ \
275+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
276+ ),
277+
278+ [_ADJUST] = LAYOUT( \
279+ //,---------------------------------------. ,---------------------------------------.
280+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,\
281+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
282+ KC_F11, KC_F12, RESET,KC_PSCR, KC_INS, RGB_TOG,RGB_HUI,RGB_SAI,RGB_VAI,XXXXXXX,\
283+ //|-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
284+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, RGB_MOD,RGB_HUD,RGB_SAD,RGB_VAD,RGBRST,\
285+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
286+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______ \
287+ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
288+ )
289+};
290+
291+int RGB_current_mode;
292+
293+// Setting ADJUST layer RGB back to default
294+void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
295+ if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
296+ layer_on(layer3);
297+ } else {
298+ layer_off(layer3);
299diff --git a/keyboards/uzu42/readme.md b/keyboards/uzu42/readme.md
300new file mode 100644
301index 0000000000000000000000000000000000000000..9e287931b9bb2305c4f4fee8835f8be62cba89fd
302--- /dev/null
303+++ b/keyboards/uzu42/readme.md
304@@ -0,0 +1,15 @@
305+# uzu42
306+
307+[](https://imgur.com/gallery/aKOKBgq)
308+
309+A split keyboard with 4x5 vertically staggered keys and 1 thumb keys.
310+
311+Keyboard Maintainer: [nrtkbb](https://github.com/nrtkbb/) [@nrtkbb](https://twitter.com/nrtkbb)
312+Hardware Supported: uzu42 PCB, Pro Micro
313+Hardware Availability: https://nrtkbb.booth.pm/
314+
315+Make example for this keyboard (after setting up your build environment):
316+
317+ make uzu42:default
318+
319diff --git a/keyboards/uzu42/rev1/config.h b/keyboards/uzu42/rev1/config.h
320new file mode 100644
321index 0000000000000000000000000000000000000000..8f86d22bf15d965123203f324a9c0cc2daeef5fe
322--- /dev/null
323+++ b/keyboards/uzu42/rev1/config.h
324@@ -0,0 +1,77 @@
325+/*
326+Copyright 2012 Jun Wako <wakojun@gmail.com>
327+Copyright 2015 Jack Humbert
328+
329+This program is free software: you can redistribute it and/or modify
330+it under the terms of the GNU General Public License as published by
331+the Free Software Foundation, either version 2 of the License, or
332+(at your option) any later version.
333+
334+This program is distributed in the hope that it will be useful,
335+but WITHOUT ANY WARRANTY; without even the implied warranty of
336+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
337+GNU General Public License for more details.
338+
339+You should have received a copy of the GNU General Public License
340+along with this program. If not, see <http://www.gnu.org/licenses/>.
341+*/
342+
343+#pragma once
344+
345+/* USB Device descriptor parameter */
346+#define VENDOR_ID 0xFEED
347+#define PRODUCT_ID 0x3060
348+#define DEVICE_VER 0x0001
349+#define MANUFACTURER nrtkbb
350+#define PRODUCT uzu42
351+#define DESCRIPTION A split keyboard with 4x5 vertically staggered keys and 1 thumb keys
352+
353+/* key matrix size */
354+// Rows are doubled-up
355+#define MATRIX_ROWS 8
356+#define MATRIX_COLS 6
357+#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
358+
359+// wiring of each half
360+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
361+// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
362+
363+/* define if matrix has ghost */
364+//#define MATRIX_HAS_GHOST
365+
366+/* number of backlight levels */
367+// #define BACKLIGHT_LEVELS 3
368+
369+/* Set 0 if debouncing isn't needed */
370+#define DEBOUNCE 5
371+
372+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
373+//#define LOCKING_SUPPORT_ENABLE
374+/* Locking resynchronize hack */
375+//#define LOCKING_RESYNC_ENABLE
376+
377+/* ws2812 RGB LED */
378+#define RGB_DI_PIN D3
379+
380+#ifdef RGBLIGHT_ENABLE
381+# define RGBLED_NUM 54 // Number of LEDs
382+# define RGBLED_SPLIT { 27, 27 }
383+#endif
384+
385+/*
386+ * Feature disable options
387+ * These options are also useful to firmware size reduction.
388+ */
389+
390+/* disable debug print */
391+// #define NO_DEBUG
392+
393+/* disable print */
394+// #define NO_PRINT
395+
396+/* disable action features */
397+//#define NO_ACTION_LAYER
398+//#define NO_ACTION_TAPPING
399+//#define NO_ACTION_ONESHOT
400+//#define NO_ACTION_MACRO
401+//#define NO_ACTION_FUNCTION
402diff --git a/keyboards/uzu42/rev1/rev1.c b/keyboards/uzu42/rev1/rev1.c
403new file mode 100644
404index 0000000000000000000000000000000000000000..0bfac6bd9351bf344155cbd9eafd5854362a3cd1
405--- /dev/null
406+++ b/keyboards/uzu42/rev1/rev1.c
407@@ -0,0 +1,2 @@
408+#include "uzu42.h"
409+
410diff --git a/keyboards/uzu42/rev1/rev1.h b/keyboards/uzu42/rev1/rev1.h
411new file mode 100644
412index 0000000000000000000000000000000000000000..7b9c7d59911e9208ab8525cd2b1a841617cf1c4c
413--- /dev/null
414+++ b/keyboards/uzu42/rev1/rev1.h
415@@ -0,0 +1,36 @@
416+#pragma once
417+
418+#include "../uzu42.h"
419+
420+#include "quantum.h"
421+
422+#ifdef RGBLIGHT_ENABLE
423+//rgb led driver
424+#include "ws2812.h"
425+#endif
426+
427+#ifdef USE_I2C
428+#include <stddef.h>
429+#ifdef __AVR__
430+ #include <avr/io.h>
431+ #include <avr/interrupt.h>
432+#endif
433+#endif
434+
435+#define LAYOUT( \
436+ L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
437+ L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
438+ L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \
439+ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
440+ ) \
441+ { \
442+ { L00, L01, L02, L03, L04 }, \
443+ { L10, L11, L12, L13, L14 }, \
444+ { L20, L21, L22, L23, L24 }, \
445+ { L30, L31, L32, L33, L34, L35 }, \
446+ { R04, R03, R02, R01, R00 }, \
447+ { R14, R13, R12, R11, R10 }, \
448+ { R24, R23, R22, R21, R20 }, \
449+ { R35, R34, R33, R32, R31, R30 } \
450+ }
451+
452diff --git a/keyboards/uzu42/rev1/rules.mk b/keyboards/uzu42/rev1/rules.mk
453new file mode 100644
454index 0000000000000000000000000000000000000000..9d0da7e0f86db6fab974fc764c3a81b281932fa0
455--- /dev/null
456+++ b/keyboards/uzu42/rev1/rules.mk
457@@ -0,0 +1,20 @@
458+# Build Options
459+# change to "no" to disable the options, or define them in the Makefile in
460+# the appropriate keymap folder that will get included automatically
461+#
462+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
463+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
464+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
465+CONSOLE_ENABLE = no # Console for debug(+400)
466+COMMAND_ENABLE = no # Commands for debug and configuration
467+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
468+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
469+MIDI_ENABLE = no # MIDI controls
470+AUDIO_ENABLE = no # Audio output on port C6
471+UNICODE_ENABLE = no # Unicode
472+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
473+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
474+SWAP_HANDS_ENABLE = no # Enable one-hand typing
475+
476+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
477+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
478diff --git a/keyboards/uzu42/rev1/serial_config.h b/keyboards/uzu42/rev1/serial_config.h
479new file mode 100644
480index 0000000000000000000000000000000000000000..4fab8e8ddfcfbd980d98339021c9df508e3eafe5
481--- /dev/null
482+++ b/keyboards/uzu42/rev1/serial_config.h
483@@ -0,0 +1,4 @@
484+#ifndef SOFT_SERIAL_PIN
485+#define SOFT_SERIAL_PIN D2
486+#define SERIAL_USE_MULTI_TRANSACTION
487+#endif
488diff --git a/keyboards/uzu42/rev1/serial_config_simpleapi.h b/keyboards/uzu42/rev1/serial_config_simpleapi.h
489new file mode 100644
490index 0000000000000000000000000000000000000000..0e1dd9e4acb2ae2d0323f3df7af1869ac94b5c0e
491--- /dev/null
492+++ b/keyboards/uzu42/rev1/serial_config_simpleapi.h
493@@ -0,0 +1,5 @@
494+#pragma once
495+
496+#undef SERIAL_USE_MULTI_TRANSACTION
497+#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
498+#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
499diff --git a/keyboards/uzu42/rules.mk b/keyboards/uzu42/rules.mk
500new file mode 100644
501index 0000000000000000000000000000000000000000..ff69431d439a910a1a5ce3dbb3ce1e986af8124c
502--- /dev/null
503+++ b/keyboards/uzu42/rules.mk
504@@ -0,0 +1,40 @@
505+# if firmware size over limit, try this option
506+# CFLAGS += -flto
507+
508+# MCU name
509+MCU = atmega32u4
510+
511+# Bootloader selection
512+# Teensy halfkay
513+# Pro Micro caterina
514+# Atmel DFU atmel-dfu
515+# LUFA DFU lufa-dfu
516+# QMK DFU qmk-dfu
517+# ATmega32A bootloadHID
518+# ATmega328P USBasp
519+BOOTLOADER = caterina
520+
521+# Use split_common libraries
522+SPLIT_KEYBOARD = yes
523+
524+DEFAULT_FOLDER = uzu42/rev1
525+
526+# Build Options
527+# change to "no" to disable the options, or define them in the Makefile in
528+# the appropriate keymap folder that will get included automatically
529+#
530+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
531+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
532+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
533+CONSOLE_ENABLE = no # Console for debug(+400)
534+COMMAND_ENABLE = no # Commands for debug and configuration
535+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
536+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
537+MIDI_ENABLE = no # MIDI controls
538+AUDIO_ENABLE = no # Audio output on port C6
539+UNICODE_ENABLE = no # Unicode
540+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
541+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
542+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
543+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
544+OLED_DRIVER_ENABLE = no # OLED display
545diff --git a/keyboards/uzu42/uzu42.c b/keyboards/uzu42/uzu42.c
546new file mode 100644
547index 0000000000000000000000000000000000000000..0eb8c5f3aa3579beb0b365626fdd6b209899fee2
548--- /dev/null
549+++ b/keyboards/uzu42/uzu42.c
550@@ -0,0 +1,5 @@
551+#include "uzu42.h"
552+
553+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
554+ return process_record_user(keycode, record);
555+}
556diff --git a/keyboards/uzu42/uzu42.h b/keyboards/uzu42/uzu42.h
557new file mode 100644
558index 0000000000000000000000000000000000000000..dd944e37506f1c62e0586651b9107feb90d81933
559--- /dev/null
560+++ b/keyboards/uzu42/uzu42.h
561@@ -0,0 +1,5 @@
562+#pragma once
563+
564+#ifdef KEYBOARD_uzu42_rev1
565+ #include "rev1.h"
566+#endif