aboutsummaryrefslogtreecommitdiff
path: root/keyboards/helix/beta
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/helix/beta')
-rw-r--r--keyboards/helix/beta/beta.c77
-rw-r--r--keyboards/helix/beta/config.h5
-rw-r--r--keyboards/helix/beta/keyboard.json171
-rw-r--r--keyboards/helix/beta/keymaps/default/keymap.json28
4 files changed, 281 insertions, 0 deletions
diff --git a/keyboards/helix/beta/beta.c b/keyboards/helix/beta/beta.c
new file mode 100644
index 0000000000..8020772b96
--- /dev/null
+++ b/keyboards/helix/beta/beta.c
@@ -0,0 +1,77 @@
+// Copyright 2020 Yushakobo
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+
+#ifdef OLED_ENABLE
+void render_status(void) {
+ static const char os_logo[][2][3] PROGMEM = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}};
+ if (!keymap_config.swap_lalt_lgui) {
+ oled_write_P(os_logo[0][0], false);
+ oled_write_P(PSTR("\n"), false);
+ oled_write_P(os_logo[0][1], false);
+ } else {
+ oled_write_P(os_logo[1][0], false);
+ oled_write_P(PSTR("\n"), false);
+ oled_write_P(os_logo[1][1], false);
+ }
+
+ oled_write_P(PSTR(" Layer: "), false);
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_ln_P(PSTR("Default"), false);
+ break;
+ case 1:
+ oled_write_ln_P(PSTR("Lower"), false);
+ break;
+ case 2:
+ oled_write_ln_P(PSTR("Raise"), false);
+ break;
+ case 3:
+ oled_write_ln_P(PSTR("Adjust"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+ oled_write_P(PSTR("\n"), false);
+
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
+ oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
+ oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
+}
+
+static void render_logo(void) {
+ static const char PROGMEM qmk_logo[] = {
+ // clang-format off
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
+ // clang-format on
+ };
+ oled_write_P(qmk_logo, false);
+}
+
+static void render_rgblight_status(void) {
+ oled_write_P(PSTR(" LED"), false);
+ oled_write(get_u8_str(rgblight_get_mode(), ' '), false);
+ oled_write_char(':', false);
+ oled_write(get_u8_str(rgblight_get_hue() / RGBLIGHT_HUE_STEP, ' '), false);
+ oled_write_char(',', false);
+ oled_write(get_u8_str(rgblight_get_sat() / RGBLIGHT_SAT_STEP, ' '), false);
+ oled_write_char(',', false);
+ oled_write(get_u8_str(rgblight_get_val() / RGBLIGHT_VAL_STEP, ' '), false);
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ if (is_keyboard_master()) {
+ render_status();
+ } else {
+ render_logo();
+ render_rgblight_status();
+ }
+ return false;
+}
+#endif
diff --git a/keyboards/helix/beta/config.h b/keyboards/helix/beta/config.h
new file mode 100644
index 0000000000..dac611de9a
--- /dev/null
+++ b/keyboards/helix/beta/config.h
@@ -0,0 +1,5 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define OLED_FONT_H "keyboards/helix/common/glcdfont.c"
diff --git a/keyboards/helix/beta/keyboard.json b/keyboards/helix/beta/keyboard.json
new file mode 100644
index 0000000000..240a0a8869
--- /dev/null
+++ b/keyboards/helix/beta/keyboard.json
@@ -0,0 +1,171 @@
+{
+ "manufacturer": "Yushakobo",
+ "keyboard_name": "Helix Beta",
+ "maintainer": "MakotoKurauchi",
+ "development_board": "promicro",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "oled": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"],
+ "rows": ["D4", "C6", "D7", "E6", "B4"]
+ },
+ "rgblight": {
+ "animations": {
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "static_gradient": true
+ },
+ "led_count": 64,
+ "max_brightness": 45,
+ "split_count": [32, 32]
+ },
+ "split": {
+ "enabled": true,
+ "serial": {
+ "pin": "D2"
+ }
+ },
+ "url": "https://shop.yushakobo.jp/products/oss_pcb?variant=39452554231969",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x0000",
+ "vid": "0x3265"
+ },
+ "ws2812": {
+ "pin": "D3"
+ },
+ "layouts": {
+ "LAYOUT_4row": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [4, 5], "x": 9, "y": 0},
+ {"matrix": [4, 4], "x": 10, "y": 0},
+ {"matrix": [4, 3], "x": 11, "y": 0},
+ {"matrix": [4, 2], "x": 12, "y": 0},
+ {"matrix": [4, 1], "x": 13, "y": 0},
+ {"matrix": [4, 0], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [5, 5], "x": 9, "y": 1},
+ {"matrix": [5, 4], "x": 10, "y": 1},
+ {"matrix": [5, 3], "x": 11, "y": 1},
+ {"matrix": [5, 2], "x": 12, "y": 1},
+ {"matrix": [5, 1], "x": 13, "y": 1},
+ {"matrix": [5, 0], "x": 14, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2},
+ {"matrix": [2, 5], "x": 5, "y": 2},
+ {"matrix": [6, 5], "x": 9, "y": 2},
+ {"matrix": [6, 4], "x": 10, "y": 2},
+ {"matrix": [6, 3], "x": 11, "y": 2},
+ {"matrix": [6, 2], "x": 12, "y": 2},
+ {"matrix": [6, 1], "x": 13, "y": 2},
+ {"matrix": [6, 0], "x": 14, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3},
+ {"matrix": [3, 4], "x": 4, "y": 3},
+ {"matrix": [3, 5], "x": 5, "y": 3},
+ {"matrix": [3, 6], "x": 6, "y": 3},
+ {"matrix": [7, 6], "x": 8, "y": 3},
+ {"matrix": [7, 5], "x": 9, "y": 3},
+ {"matrix": [7, 4], "x": 10, "y": 3},
+ {"matrix": [7, 3], "x": 11, "y": 3},
+ {"matrix": [7, 2], "x": 12, "y": 3},
+ {"matrix": [7, 1], "x": 13, "y": 3},
+ {"matrix": [7, 0], "x": 14, "y": 3}
+ ]
+ },
+ "LAYOUT_5row": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [5, 5], "x": 9, "y": 0},
+ {"matrix": [5, 4], "x": 10, "y": 0},
+ {"matrix": [5, 3], "x": 11, "y": 0},
+ {"matrix": [5, 2], "x": 12, "y": 0},
+ {"matrix": [5, 1], "x": 13, "y": 0},
+ {"matrix": [5, 0], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [6, 5], "x": 9, "y": 1},
+ {"matrix": [6, 4], "x": 10, "y": 1},
+ {"matrix": [6, 3], "x": 11, "y": 1},
+ {"matrix": [6, 2], "x": 12, "y": 1},
+ {"matrix": [6, 1], "x": 13, "y": 1},
+ {"matrix": [6, 0], "x": 14, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2},
+ {"matrix": [2, 5], "x": 5, "y": 2},
+ {"matrix": [7, 5], "x": 9, "y": 2},
+ {"matrix": [7, 4], "x": 10, "y": 2},
+ {"matrix": [7, 3], "x": 11, "y": 2},
+ {"matrix": [7, 2], "x": 12, "y": 2},
+ {"matrix": [7, 1], "x": 13, "y": 2},
+ {"matrix": [7, 0], "x": 14, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3},
+ {"matrix": [3, 4], "x": 4, "y": 3},
+ {"matrix": [3, 5], "x": 5, "y": 3},
+ {"matrix": [3, 6], "x": 6, "y": 3},
+ {"matrix": [8, 6], "x": 8, "y": 3},
+ {"matrix": [8, 5], "x": 9, "y": 3},
+ {"matrix": [8, 4], "x": 10, "y": 3},
+ {"matrix": [8, 3], "x": 11, "y": 3},
+ {"matrix": [8, 2], "x": 12, "y": 3},
+ {"matrix": [8, 1], "x": 13, "y": 3},
+ {"matrix": [8, 0], "x": 14, "y": 3},
+ {"matrix": [4, 0], "x": 0, "y": 4},
+ {"matrix": [4, 1], "x": 1, "y": 4},
+ {"matrix": [4, 2], "x": 2, "y": 4},
+ {"matrix": [4, 3], "x": 3, "y": 4},
+ {"matrix": [4, 4], "x": 4, "y": 4},
+ {"matrix": [4, 5], "x": 5, "y": 4},
+ {"matrix": [4, 6], "x": 6, "y": 4},
+ {"matrix": [9, 6], "x": 8, "y": 4},
+ {"matrix": [9, 5], "x": 9, "y": 4},
+ {"matrix": [9, 4], "x": 10, "y": 4},
+ {"matrix": [9, 3], "x": 11, "y": 4},
+ {"matrix": [9, 2], "x": 12, "y": 4},
+ {"matrix": [9, 1], "x": 13, "y": 4},
+ {"matrix": [9, 0], "x": 14, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/helix/beta/keymaps/default/keymap.json b/keyboards/helix/beta/keymaps/default/keymap.json
new file mode 100644
index 0000000000..1719abca5b
--- /dev/null
+++ b/keyboards/helix/beta/keymaps/default/keymap.json
@@ -0,0 +1,28 @@
+{
+ "keyboard": "helix/beta",
+ "keymap": "default",
+ "layout": "LAYOUT_5row",
+ "layers": [
+ [
+ "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_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
+ "KC_LCTL", "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_LBRC", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT" ,
+ "MO(3)", "KC_ESC", "KC_LALT", "KC_LGUI", "LALT(KC_GRV)", "MO(1)", "KC_SPC", "KC_SPC", "MO(2)", "LALT(KC_GRV)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"
+ ],
+ [
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "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_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS",
+ "KC_CAPS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "_______", "_______", "KC_F12", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"
+ ],
+ [
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "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", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "EE_CLR", "_______", "_______", "_______", "_______", "_______", "AG_NORM", "AG_SWAP", "_______", "_______", "UG_TOGG", "UG_HUEU", "UG_SATU", "UG_VALU",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "UG_NEXT", "UG_HUED", "UG_SATD", "UG_VALD"
+ ]
+ ]
+}