QMK 固件中的 Boardrun Bizarre:正交线性 65% 键盘的布局设计与构建指南
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
Boardrun Bizarre 是 QMK 固件仓库(qmk_firmware)中一款支持正交线性(ortholinear)配列、带列间错位(columnar stagger)的 65% 键盘。它以 Alice 布局为灵感、从 Boardwalk 配列演化而来,独特之处在于采用标准(错位)键帽套装即可在正交网格上完成组装,同时提供 ANSI、ISO、分离退格等多种布局宏。本文将以 keyboards/boardrun/bizarre/readme.md 为主体,结合 keyboard.json 与默认键位图源码,讲解其设计理念、硬件配置、布局宏差异以及编译刷写方法,帮助你快速上手或移植该键盘。
Boardrun 家族:从 Boardwalk 演化而来的正交线性配列
Boardrun 是一个键盘家族,包含Classic与Bizarre两款成员,共享"正交线性 + 列间错位"的核心设计,并都借鉴了 Alice 布局的思路:
- Classic:60% 配列,为兼容 Ergodox 键帽套装而设计;
- Bizarre:65% 配列,改用标准(错位)键帽即可在正交排列中使用,键帽兼容性更广。
按 readme 的说明,Boardrun 是 Boardwalk 配列的进化:Boardwalk 证明了 Ergodox 键帽可以适配更紧凑、布局更灵活的键盘;而 Boardrun 在此基础上综合了当前错位设计的趋势、Ergodox 键帽布局以及 Boardwalk 最流行的配列,最终确定了带**字母区旋转(alpha rotation)**的列错位正交线性布局,并采用了 Boardwalk 的 "HHKB" 方案。最终形成两个既舒适、熟悉又与主流键帽套装兼容性极好的配列。
仓库中两个型号共享同一套工程结构:
- keyboards/boardrun/bizarre/(Bizarre)
- keyboards/boardrun/classic/(Classic)
每款都采用数据驱动的keyboard.json描述硬件,配合keymaps/default/keymap.c提供默认键位。
硬件规格:从 keyboard.json 看 Bizarre 的实现细节
Bizarre 的硬件全部由 keyboards/boardrun/bizarre/keyboard.json 声明,核心信息如下:
| 配置项 | 值 | 说明 |
|---|---|---|
| keyboard_name | Boardrun Bizarre | 键盘名称 |
| manufacturer | shensmobile | 制造商 |
| maintainer | QMK Community | 维护者 |
| processor | atmega32u4 | AVR 主控(QMK 支持的 Atmel AVR 系列) |
| bootloader | atmel-dfu | 刷写引导方式 |
| VID / PID | 0xCDCD / 0x5339 | USB 标识(Classic 为 0xCDCD:0x5338) |
| debounce | 10 | 去抖动毫秒数 |
| matrix_pins | 17 列 × 5 行 | 矩阵引脚映射 |
| diode_direction | COL2ROW | 二极管方向(列到行) |
| ws2812.pin | B7 | RGB 灯带数据引脚 |
| rgblight.led_count | 15 | RGB 灯珠数量 |
矩阵采用 5 行(F0, F1, F4, F5, F6)× 17 列(F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0, B3, B2, B1)的 COL2ROW 结构,这与 Classic 完全一致,说明两款 PCB 使用了相同的扫描骨架,差异主要在键位布局宏层面。
在功能特性上,keyboard.json默认启用了:
bootmagic:上电时通过快捷键进入刷写模式等魔法功能;command:调试命令;extrakey:多媒体/系统键支持;nkro:全键无冲;rgblight:RGB 灯效,并打开了breathing、rainbow_mood、rainbow_swirl、snake、knight、christmas、static_gradient、rgb_test、alternating、twinkle等 10 种动画;- 同时
qmk.locking开启并启用resync(Caps Lock 等锁定键状态同步)。
注意mousekey被显式关闭,若需要鼠标键功能可在键位工程或rules.mk中另行启用。
四种布局宏:all / ansi / split_bs / iso
Bizarre 在keyboard.json的layouts中定义了 4 个布局宏,分别对应不同键帽配列习惯:
- LAYOUT_all:最完整形态,包含所有物理键位(右 Shift 与方向键共存、分离退格等),默认键位图即使用此宏;
- LAYOUT_ansi:标准 ANSI 回车、2.25u 左 Shift、2u 退格;
- LAYOUT_split_bs:分离退格(两个键代替单个退格);
- LAYOUT_iso:ISO 回车(
w:1.25, h:2的 Enter)、#/\ISO 键与 1.25u 左 Shift。
同一物理键位在不同宏中拥有不同的x/y坐标与w/h(宽度/高度)属性,这正是"正交物理布局 + 不同键帽配列"得以实现的关键:矩阵坐标决定电路连接,而视觉坐标只影响配列呈现。例如 row 2 的右端在LAYOUT_all中为 1u 的[2,13]键,在 ANSI 变体中则合并为 2.25u 宽的单键(见 keyboard.json 中LAYOUT_ansi第 191 行附近的[2,14])。
从物理网格看,字母区明显分为左右两块(中间空出 2.5 个单位宽度),这与 Alice 风格的双手内倾设计一致:左半区x从 0 到 7.75,右半区x从 10.25 到 20,中间留白正好容纳大拇指区/空格。
默认键位图解析:两层布局的实际用法
默认键位位于 keyboards/boardrun/bizarre/keymaps/default/keymap.c,包含两层:
_BIZARRE:基础层,采用LAYOUT_all;_FNBIZARRE:功能层,通过MO(_FNBIZARRE)按住进入。
基础层亮点:KC_HOME/KC_END被安排在左上角(传统 65% 上的功能键位置),KC_LSFT旁保留KC_NUBS(\键)、KC_NUHS(#键)以覆盖 ISO 用户需求,空格拆分为左KC_SPC与右KC_SPC两个键位,右下角布置KC_LEFT / KC_DOWN / KC_RGHT方向键。这与 Classic 的"方向键置于右下"思路一脉相承。
功能层则提供:
F1–F12功能键;QK_BOOT(复位进引导加载程序,见左上角与W键下方);KC_INS、KC_PSCR、KC_SCRL、KC_PAUS、KC_MENU等编辑/系统键;KC_PGUP / KC_PGDN / KC_HOME / KC_END翻页与光标定位键。
QK_BOOT的键位随 PCB 刷写版本可能不同,因此 readme 提示:无论固件里是否配置了QK_BOOT,都可以通过 PCB 底部的复位按键进入刷写模式。
作为对比,Classic 的默认键位(keyboards/boardrun/classic/keymaps/default/keymap.c)展示了 Ergodox 键帽兼容方案的风格:使用了RSFT_T(KC_ENT)(右 Shift 兼回车)、LSFT_T(KC_NUBS)、RALT_T(KC_SPC)等层间/组合键技巧,而 Bizarre 因采用标准键帽,键位更接近主流 65% 习惯。
编译与刷写:一行命令烧录固件
在配置好 QMK 构建环境后,Bizarre 的编译命令为:
make boardrun/bizarre:default刷写命令为:
make boardrun/bizarre:default:flash其中boardrun/bizarre是键盘目录路径(对应 keyboards/boardrun/bizarre/),:default指默认键位工程(keymaps/default)。atmel-dfu引导加载程序配合make ...:flash即可将固件写入主控。
进入刷写模式有两种途径:
- 按 PCB 底部的复位按键;
- 触发固件中配置的
QK_BOOT快捷键(默认键位图功能层已提供)。
若你持有的是 Boardrun Classic,则对应执行make boardrun/classic:default与make boardrun/classic:default:flash。
相关资源
- 键盘 readme:keyboards/boardrun/bizarre/readme.md
- 硬件定义:keyboards/boardrun/bizarre/keyboard.json
- 默认键位:keyboards/boardrun/bizarre/keymaps/default/keymap.c
- 家族兄弟型号:keyboards/boardrun/classic/
- 构建环境与 make 说明:docs/getting_started_make_guide.md、docs/newbs_building_firmware.md
如果希望在 Bizarre 上自定义配列,可以参照默认键位复制一份 keymap,或在LAYOUT_all基础上按需切换到LAYOUT_ansi/LAYOUT_split_bs/LAYOUT_iso宏,从而在不改动 PCB 的前提下适配不同键帽套装。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考