diff --git a/docs/ChangeLog/20250831/HelixRefactor.md b/docs/ChangeLog/20250831/HelixRefactor.md new file mode 100644 index 00000000000..58136ce06be --- /dev/null +++ b/docs/ChangeLog/20250831/HelixRefactor.md @@ -0,0 +1,37 @@ +# Refactor of `keyboards/helix` + +This series of PRs aims to align this keyboard's configuration with current standards, and also remove unnecessary contents. + +### Refactor `helix/pico` [#25428](https://github.com/qmk/qmk_firmware/pull/25428) + - Removes redundant `back`, `base`, `sc`, `under`, & `qmk_conf` revisions + - Migrates legacy defines and configuration to JSON + - Migrates `default` keymap to JSON + - Fixes RGB configuration to illuminate 25 LEDs per half + - Enables standard features like Bootmagic, extrakey, etc. + - Updates keyboard aliases accordingly + +### Refactor `helix/rev2` [#25429](https://github.com/qmk/qmk_firmware/pull/25429) + - Removes redundant `back`, `base`, `sc`, `under`, & `qmk_conf` revisions + - Renames `rev2` to `beta`, as the only PCB sources in the official Helix GitHub repository are named "[beta](https://github.com/MakotoKurauchi/helix/tree/master/PCB/beta)", this keyboard's name in QMK Firmware was already "beta", and this PCB is sold under the name "[beta](https://shop.yushakobo.jp/products/oss_pcb?variant=39452554231969)" on the Yushakobo store + - Migrates legacy defines and configuration to JSON + - Migrates `default` keymap to JSON + - Fixes RGB configuration to illuminate 32 LEDs per half + - Enables standard features like Bootmagic, extrakey, etc. + - Updates keyboard aliases accordingly + - Tidy's up OLED code + - Adds alternate 4 row layout, as this PCB allows users to snap off the bottom row + +### Refactor `helix/rev3_{4,5}rows` [#25430](https://github.com/qmk/qmk_firmware/pull/25430) + - The `rev3_4rows` and `rev3_5rows` firmwares are identical, except for the extra row users can snap off. The 4 row PCB is not sold anywhere as an individual product, only the [5 row PCB](https://shop.yushakobo.jp/products/2143). Thus, this PR removes the aforementioned two build targets and adds a single `rev3` revision + - Migrates legacy defines and configuration to JSON + - Migrates `default` keymap to JSON + - Removes RGB Light configuration + - Updates keyboard aliases accordingly + - Tidy's up OLED code + - Adds alternate 4 row layout, as this PCB allows users to snap off the bottom row + +### Migrate helix common configuration [#25433](https://github.com/qmk/qmk_firmware/pull/25433) + - Migrates common configuration shared between revisions to the top-level keyboard directory + - Improves `readme.md` to provide more detail regarding PCB revisions + - Removes unnecessary top-level `rules.mk` file and other general tidying + - Migrates `beta` and `pico` revisions to use RGB Matrix, which is more appropriate as these PCBs are fit with per-key RGB LEDs diff --git a/keyboards/helix/beta/beta.c b/keyboards/helix/beta/beta.c deleted file mode 100644 index 8020772b965..00000000000 --- a/keyboards/helix/beta/beta.c +++ /dev/null @@ -1,77 +0,0 @@ -// 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/keyboard.json b/keyboards/helix/beta/keyboard.json index 240a0a88698..c4eb48aab10 100644 --- a/keyboards/helix/beta/keyboard.json +++ b/keyboards/helix/beta/keyboard.json @@ -1,48 +1,82 @@ { - "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, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 48, "flags": 4}, + {"matrix": [8, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [9, 6], "x": 128, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 144, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 160, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 176, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 192, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 208, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} + ], "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" + "pid": "0x0000" }, "layouts": { "LAYOUT_4row": { diff --git a/keyboards/helix/common/glcdfont.c b/keyboards/helix/common/glcdfont.c deleted file mode 100644 index 697d58886ec..00000000000 --- a/keyboards/helix/common/glcdfont.c +++ /dev/null @@ -1,233 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, - 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8, - 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F, - 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, - 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF, - 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE, - 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, - 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, - 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C, - 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF, - 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF, - 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0, - 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, - 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3, - 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC, - 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF, - 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7, - 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, - 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB, - 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE, - 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E, - 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, - 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F, - 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F, - 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C, - 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06, - 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F, - 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F, - 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E, - 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, - 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F, - 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01, - 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7E, 0x78, 0x70, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; diff --git a/keyboards/helix/beta/config.h b/keyboards/helix/config.h similarity index 59% rename from keyboards/helix/beta/config.h rename to keyboards/helix/config.h index dac611de9a7..01040ab49f6 100644 --- a/keyboards/helix/beta/config.h +++ b/keyboards/helix/config.h @@ -2,4 +2,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define OLED_FONT_H "keyboards/helix/common/glcdfont.c" +#define OLED_FONT_H "keyboards/helix/glcdfont.c" diff --git a/keyboards/helix/glcdfont.c b/keyboards/helix/glcdfont.c new file mode 100644 index 00000000000..1b81bbcbfe9 --- /dev/null +++ b/keyboards/helix/glcdfont.c @@ -0,0 +1,232 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include "progmem.h" + +static const unsigned char font[] PROGMEM = { + // clang-format off + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, + 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8, + 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F, + 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, + 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF, + 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE, + 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, + 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0, + 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, + 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C, + 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF, + 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF, + 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0, + 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, + 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00, + 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, + 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, + 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, + 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, + 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, + 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, + 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3, + 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC, + 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF, + 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, + 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB, + 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE, + 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E, + 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, + 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, + 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, + 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, + 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, + 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, + 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, + 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F, + 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F, + 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C, + 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06, + 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F, + 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F, + 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E, + 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, + 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, + 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F, + 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01, + 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F, + 0x7E, 0x78, 0x70, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + // clang-format on +}; diff --git a/keyboards/helix/rev3/rev3.c b/keyboards/helix/helix.c similarity index 100% rename from keyboards/helix/rev3/rev3.c rename to keyboards/helix/helix.c diff --git a/keyboards/helix/info.json b/keyboards/helix/info.json new file mode 100644 index 00000000000..a9ad385b7da --- /dev/null +++ b/keyboards/helix/info.json @@ -0,0 +1,40 @@ +{ + "manufacturer": "Yushakobo", + "maintainer": "MakotoKurauchi", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_left_right": true, + "cycle_pinwheel": true, + "multisplash": true, + "solid_splash": true + }, + "driver": "ws2812", + "max_brightness": 150, + "sleep": true + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + } + }, + "usb": { + "vid": "0x3265" + }, + "ws2812": { + "pin": "D3" + } +} diff --git a/keyboards/helix/pico/keyboard.json b/keyboards/helix/pico/keyboard.json index 61ea5375763..62b25b753bc 100644 --- a/keyboards/helix/pico/keyboard.json +++ b/keyboards/helix/pico/keyboard.json @@ -1,48 +1,71 @@ { - "manufacturer": "Yushakobo", "keyboard_name": "Helix Pico", - "maintainer": "MakotoKurauchi", - "development_board": "promicro", - "diode_direction": "COL2ROW", "features": { - "audio": false, - "bootmagic": true, - "extrakey": true, - "mousekey": true, - "rgblight": true + "audio": false }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], "rows": ["D4", "C6", "D7", "E6"] }, - "rgblight": { - "animations": { - "breathing": true, - "christmas": true, - "knight": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "static_gradient": true - }, - "led_count": 50, - "max_brightness": 45, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 21, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 144, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 192, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 21, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 21, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 21, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 21, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 21, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 42, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 42, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 42, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 42, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 42, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 64, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 64, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 64, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 64, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 64, "flags": 4}, + {"matrix": [7, 6], "x": 128, "y": 64, "flags": 4} + ], "split_count": [25, 25] }, - "split": { - "enabled": true, - "serial": { - "pin": "D2" - } - }, "url": "https://shop.yushakobo.jp/products/helixpico-pcb", "usb": { "device_version": "0.0.2", - "pid": "0x0001", - "vid": "0x3265" - }, - "ws2812": { - "pin": "D3" + "pid": "0x0001" }, "layouts": { "LAYOUT": { diff --git a/keyboards/helix/readme.md b/keyboards/helix/readme.md index 0c190f7626f..810e0c1658b 100644 --- a/keyboards/helix/readme.md +++ b/keyboards/helix/readme.md @@ -1,16 +1,45 @@ -Helix -=== +# Helix -![Helix](https://i.imgur.com/XBAmynN.jpg) +![image](https://i.imgur.com/11o4MRV.jpeg) -A compact split ortholinear keyboard. +* Keyboard Maintainer: [MakotoKurauchi](https://github.com/MakotoKurauchi) +* Hardware Supported: Helix Pico, Beta, rev3 PCBs w/ Pro Micro compatible development board +* Hardware Availability: [Yushakobo](https://shop.yushakobo.jp), [GitHub](https://github.com/MakotoKurauchi/helix) -Keyboard Maintainer: [Makoto Kurauchi](https://github.com/MakotoKurauchi/) [@pluis9](https://twitter.com/pluis9) [yushakobo](https://github.com/yushakobo) -Hardware Supported: Helix PCB Alpha, Beta, Rev3, Pro Micro -Hardware Availability: [PCB & Case Data](https://github.com/MakotoKurauchi/helix), [Yushakobo Shop](https://yushakobo.jp/shop/), [Little Keyboards](https://littlekeyboards.com/collections/helix) +## Revisions +- [Pico](https://shop.yushakobo.jp/products/helixpico-pcb) + - 4 row PCB + - per-key RGB + - support for a 128x32 OLED display + - footprint for speaker +- [Beta](https://shop.yushakobo.jp/products/oss_pcb?variant=39452554231969) + - 4 or 5 row PCB with snappable bottom row + - per-key RGB + - support for a 128x32 OLED display +- [rev3](https://shop.yushakobo.jp/products/2143) + - 4 or 5 row PCB with snappable bottom row + - per-key RGB + - support for a 128x32 OLED display + - rotary encoders -## How to build - * [Helix how to Customize and Compile](rev2/keymaps/default/readme.md#customize) - * [HelixPico how to Customize and Compile](pico/keymaps/default/readme.md#customize) +Make example for this keyboard (after setting up your build environment): -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + make helix/pico:default + make helix/beta:default + make helix/rev3:default + +Flashing example for this keyboard: + + make helix/pico:default:flash + make helix/beta:default:flash + make helix/rev3:default:flash + +See 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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix and plug in the keyboard +* **Physical reset button**: Briefly tap or double-tap the button near the TRRS jack +* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/helix/rev3/config.h b/keyboards/helix/rev3/config.h deleted file mode 100644 index dac611de9a7..00000000000 --- a/keyboards/helix/rev3/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// 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/rev3/keyboard.json b/keyboards/helix/rev3/keyboard.json index 7122afdd64a..887a5c80243 100644 --- a/keyboards/helix/rev3/keyboard.json +++ b/keyboards/helix/rev3/keyboard.json @@ -1,12 +1,5 @@ { - "manufacturer": "Yushakobo", "keyboard_name": "Helix rev3", - "maintainer": "MakotoKurauchi", - "build": { - "lto": true - }, - "development_board": "promicro", - "diode_direction": "COL2ROW", "dip_switch": { "matrix_grid": [ [0, 6], @@ -21,20 +14,14 @@ ] }, "features": { - "bootmagic": true, "dip_switch": false, - "encoder": true, - "extrakey": true, - "mousekey": true, - "oled": true, - "rgb_matrix": true + "encoder": true }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], "rows": ["D4", "C6", "D7", "E6", "B4"] }, "rgb_matrix": { - "driver": "ws2812", "layout": [ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, @@ -101,27 +88,17 @@ {"matrix": [9, 1], "x": 208, "y": 64, "flags": 4}, {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} ], - "max_brightness": 150, - "sleep": true, "split_count": [32, 32] }, "split": { - "enabled": true, "handedness": { "matrix_grid": ["D7", "B2"] - }, - "serial": { - "pin": "D2" } }, "url": "https://shop.yushakobo.jp/products/2143", "usb": { "device_version": "0.0.1", - "pid": "0x0003", - "vid": "0x3265" - }, - "ws2812": { - "pin": "D3" + "pid": "0x0003" }, "layouts": { "LAYOUT_4row": { diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk deleted file mode 100644 index a2f233cf912..00000000000 --- a/keyboards/helix/rules.mk +++ /dev/null @@ -1 +0,0 @@ -HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))