40c93bcdc6fc8bd5326db341395c95430d2b05c7
- Author
- James Gzowski <flexyjerkov@gmail.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/keyboards/somei70/config.h b/keyboards/somei70/config.h
2new file mode 100644
3index 0000000000000000000000000000000000000000..1336a1f28b91a5cc90ae3d3a458d30f4a4d8f39c
4--- /dev/null
5+++ b/keyboards/somei70/config.h
6@@ -0,0 +1,5 @@
7+// Copyright 2023 QMK
8+// SPDX-License-Identifier: GPL-2.0-or-later
9+#pragma once
10+
11+#define OLED_BRIGHTNESS 100
12diff --git a/keyboards/somei70/keyboard.json b/keyboards/somei70/keyboard.json
13new file mode 100644
14index 0000000000000000000000000000000000000000..70f57d5ff5cddc9dec15f4c24d53f60658d35fcb
15--- /dev/null
16+++ b/keyboards/somei70/keyboard.json
17@@ -0,0 +1,148 @@
18+{
19+ "manufacturer": "gzowski",
20+ "keyboard_name": "Somei70",
21+ "maintainer": "gzowski",
22+ "bootloader": "rp2040",
23+ "diode_direction": "COL2ROW",
24+ "features": {
25+ "bootmagic": true,
26+ "extrakey": true,
27+ "mousekey": true,
28+ "nkro": true,
29+ "oled": true,
30+ "rgb_matrix": true,
31+ "wpm": true
32+ },
33+ "matrix_pins": {
34+ "cols": ["GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21", "GP16", "GP15", "GP14", "GP13", "GP12", "GP9", "GP8", "GP7"],
35+ "rows": ["GP1", "GP29", "GP6", "GP5", "GP4"]
36+ },
37+ "processor": "RP2040",
38+ "rgb_matrix": {
39+ "animations": {
40+ "band_sat": true,
41+ "band_val": true,
42+ "breathing": true,
43+ "cycle_all": true,
44+ "cycle_left_right": true,
45+ "cycle_out_in": true,
46+ "cycle_out_in_dual": true,
47+ "dual_beacon": true,
48+ "gradient_left_right": true,
49+ "hue_breathing": true,
50+ "hue_pendulum": true,
51+ "hue_wave": true,
52+ "jellybean_raindrops": true,
53+ "rainbow_beacon": true,
54+ "rainbow_moving_chevron": true,
55+ "raindrops": true
56+ },
57+ "driver": "ws2812",
58+ "layout": [
59+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
60+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
61+ {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
62+ {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
63+ {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
64+ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
65+ {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
66+ {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
67+ {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
68+ {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
69+ {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
70+ {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
71+ {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
72+ {"matrix": [0, 13], "x": 212, "y": 0, "flags": 4}
73+ ],
74+ "led_flush_limit": 14,
75+ "led_process_limit": 5,
76+ "max_brightness": 200,
77+ "sleep": true
78+ },
79+ "url": "https://github.com/gzowski/somei70",
80+ "usb": {
81+ "device_version": "1.0.0",
82+ "pid": "0x6F64",
83+ "vid": "0x73CA"
84+ },
85+ "ws2812": {
86+ "driver": "vendor",
87+ "pin": "GP0"
88+ },
89+ "layouts": {
90+ "LAYOUT_5x15": {
91+ "layout": [
92+ {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
93+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
94+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
95+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
96+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
97+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
98+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
99+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
100+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
101+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
102+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
103+ {"label": "MINS", "matrix": [0, 11], "x": 11, "y": 0},
104+ {"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0},
105+ {"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
106+ {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
107+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
108+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
109+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
110+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
111+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
112+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
113+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
114+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
115+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
116+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
117diff --git a/keyboards/somei70/keymaps/default/keymap.c b/keyboards/somei70/keymaps/default/keymap.c
118new file mode 100644
119index 0000000000000000000000000000000000000000..2569b8b207f55f278d53fe8c3da6b4983a2aa353
120--- /dev/null
121+++ b/keyboards/somei70/keymaps/default/keymap.c
122@@ -0,0 +1,19 @@
123+// Copyright 2024 James Gzowski
124+// SPDX-License-Identifier: GPL-2.0-or-later
125+#include QMK_KEYBOARD_H
126+enum custom_layer { _LAYERA, _LAYERB };
127+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
128+[_LAYERA] = LAYOUT_5x15(
129+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC,
130+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC, KC_BSLS,
131+ KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT , KC_GRV , KC_DEL , KC_PGUP,
132+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT , KC_INS , KC_UP , KC_PGDN,
133+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MUTE, KC_ENT, KC_RALT, MO(_LAYERB), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
134+),
135+[_LAYERB] = LAYOUT_5x15(
136+ KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR,
137+ KC_TAB , RM_NEXT, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
138+ KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_GRV , KC_DEL , KC_PGUP,
139+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_INS , KC_UP , KC_PGDN,
140+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , RM_TOGG, KC_ENT , KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
141+)};
142diff --git a/keyboards/somei70/readme.md b/keyboards/somei70/readme.md
143new file mode 100644
144index 0000000000000000000000000000000000000000..21b80a8411209def5cdf473ee478541fa089f6e6
145--- /dev/null
146+++ b/keyboards/somei70/readme.md
147@@ -0,0 +1,23 @@
148+# Somei70
149+
150+70 key alternative layout
151+
152+* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski)
153+* Hardware Supported: Elite-Pi, Frood, 0xB2 Splinky or similar, requires D9-D15 pins
154+* Build Guide: [Somei70](https://github.com/gzowski/somei70)
155+
156+Make example for this keyboard (after setting up your build environment):
157+
158+ make somei70:default
159+
160+Flashing example for this keyboard:
161+
162+ make somei70:default:flash
163+
164diff --git a/keyboards/somei70/somei70.c b/keyboards/somei70/somei70.c
165new file mode 100644
166index 0000000000000000000000000000000000000000..5521a6738470ab5b2b11f537d9051e0d818bcae9
167--- /dev/null
168+++ b/keyboards/somei70/somei70.c
169@@ -0,0 +1,87 @@
170+// Copyright 2024 James Gzowski
171+// SPDX-License-Identifier: GPL-2.0-or-later
172+#include QMK_KEYBOARD_H
173+#ifdef OLED_ENABLE
174+static uint8_t oled_mode = 0;
175+static uint8_t esc_press_count = 0;
176+static uint16_t esc_timer = 0;
177+// Stats display
178+void render_stats(void) {
179+ oled_write_P(PSTR("WPM: "), false);
180+ oled_write_ln(get_u8_str(get_current_wpm(), '0'), false);
181+ if (host_keyboard_led_state().caps_lock) {
182+ oled_write_P(PSTR("CAPS: On "), false);
183+ } else {
184+ oled_write_P(PSTR("CAPS: Off "), false);
185+ }
186+ if (keymap_config.nkro) {
187+ oled_write_ln("NKRO: On", false);
188+ } else {
189+ oled_write_ln("NKRO: Off", false);
190+ }
191+ oled_write_P(PSTR("LED Brightness: "), false);
192+ oled_write_ln(get_u8_str(rgblight_get_val(), '0'), false);
193+ oled_write_ln(PSTR("P: 0x6F64 V: 0x73CA"), false);
194+}
195+// Static images
196+static void render_caps(void) {
197+ static const char PROGMEM my_caps[] = {