1
0

Migrate helix common configuration (#25433)

* Initial tidying up of top level helix/ directory

Align readme.md with template & provide more detailed PCB information
Remove unused rules.mk
Add common config.h file
Update glcdfont.c with formatting and license header

* Further migrations after PRs merged

Move shared configuration to top level info.json and config.h
More descriptive hardware compatibility

* Add changelog

* Align configuration between PCBs

- Migrate beta & pico to use RGB Matrix
- Move previously RGB Matrix-dependent OLED code in rev3/rev3.c to top level
- Remove reundant OLED code in beta/beta.c
- Remove RGBLight references

* Update changelog with RGB Matrix configuration
This commit is contained in:
Jack Sangdahl
2025-08-10 00:27:13 +02:00
committed by GitHub
parent 9dcf2a11b2
commit 00ca362826
13 changed files with 475 additions and 419 deletions

View File

@@ -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

View File

@@ -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": {

View File

@@ -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
};

View File

@@ -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"

232
keyboards/helix/glcdfont.c Normal file
View File

@@ -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
};

40
keyboards/helix/info.json Normal file
View File

@@ -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"
}
}

View File

@@ -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": {

View File

@@ -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`

View File

@@ -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"

View File

@@ -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": {

View File

@@ -1 +0,0 @@
HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))