40c93bcdc6fc8bd5326db341395c95430d2b05c7

Author
James Gzowski <flexyjerkov@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

[Keyboard] Add Somei70 (#24444)

* Somei70 addition

* Changes made, added VIA keymap, cleaned formatting

* keymap via

* Create rules.mk

* Add files via upload

* Delete keyboards/somei70/keymaps/via directory

* Fixed RGB and matrix

* Layout corrections and LED positions

* removal of rules.mk

* Moved OLED Settings to somei70.c, formatted C removed TABs, removed _LAYERC

* Forgot to include license header

* Further changes as per suggestions, replaced _user for _kb within somei70.c

* Updated keymap 'changes in Nov24'

* Requested changes

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[] = {