news 2026/9/18 5:26:04

QMK 固件中的 Boardrun Bizarre:正交线性 65% 键盘的布局设计与构建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QMK 固件中的 Boardrun Bizarre:正交线性 65% 键盘的布局设计与构建指南

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 是一个键盘家族,包含ClassicBizarre两款成员,共享"正交线性 + 列间错位"的核心设计,并都借鉴了 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_nameBoardrun Bizarre键盘名称
manufacturershensmobile制造商
maintainerQMK Community维护者
processoratmega32u4AVR 主控(QMK 支持的 Atmel AVR 系列)
bootloaderatmel-dfu刷写引导方式
VID / PID0xCDCD / 0x5339USB 标识(Classic 为 0xCDCD:0x5338)
debounce10去抖动毫秒数
matrix_pins17 列 × 5 行矩阵引脚映射
diode_directionCOL2ROW二极管方向(列到行)
ws2812.pinB7RGB 灯带数据引脚
rgblight.led_count15RGB 灯珠数量

矩阵采用 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 灯效,并打开了breathingrainbow_moodrainbow_swirlsnakeknightchristmasstatic_gradientrgb_testalternatingtwinkle等 10 种动画;
  • 同时qmk.locking开启并启用resync(Caps Lock 等锁定键状态同步)。

注意mousekey被显式关闭,若需要鼠标键功能可在键位工程或rules.mk中另行启用。

四种布局宏:all / ansi / split_bs / iso

Bizarre 在keyboard.jsonlayouts中定义了 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 的"方向键置于右下"思路一脉相承。

功能层则提供:

  • F1F12功能键;
  • QK_BOOT(复位进引导加载程序,见左上角与W键下方);
  • KC_INSKC_PSCRKC_SCRLKC_PAUSKC_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即可将固件写入主控。

进入刷写模式有两种途径:

  1. 按 PCB 底部的复位按键
  2. 触发固件中配置的QK_BOOT快捷键(默认键位图功能层已提供)。

若你持有的是 Boardrun Classic,则对应执行make boardrun/classic:defaultmake 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 5:25:12

Zustand `combine` 中间件完全指南:自动推断类型的状态合并方案

Zustand combine 中间件完全指南:自动推断类型的状态合并方案 【免费下载链接】zustand 🐻 Bear necessities for state management in React 项目地址: https://gitcode.com/gh_mirrors/zu/zustand combine 是 Zustand 官方提供的一个状态创建辅…

作者头像 李华
网站建设 2026/9/18 5:25:04

微信小程序指南针实战:传感器、Canvas 与性能调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 5:24:39

AI芯片设计从入门到放弃:ESP32-C5板载天线与分层卡点

从一个真事说起。前阵子一个做算法的朋友跟我说,他准备"转行做AI芯片",理由是"大模型这么火,芯片肯定缺人"。两周后他发来一张照片:一块开发板,天线那一片被他焊得面目全非,旁边配文—…

作者头像 李华
网站建设 2026/9/18 5:22:51

LiteLLM 跑 Ling-3.0-flash-Fin,TaoToken 放到 model_list

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 5:20:44

纯粹合数怎么判断?C++两种解法与质数筛优化思路

把东华OJ的题库翻到第100题,名字叫“纯粹合数”,第一眼看到这个题,我脑子里冒出来的想法是:这不就是判断合数然后筛一遍就行了?等我真正把题面读清楚,才发现“纯粹”两个字的含义比我想象的复杂得多——它要…

作者头像 李华