QMK 固件中的 Boardwalk:60% 正交键盘的布局设计与编译刷写完全指南
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
导读
Boardwalk 是一款 60% 正交线性(ortholinear)键盘,围绕 Ergodox 键帽组进行设计,可直接装入大量标准 60% 外壳中。本文以 keyboards/boardwalk/readme.md 为骨架,结合 keyboards/boardwalk/keyboard.json 与 6 套官方键位图源码,完整讲解 Boardwalk 的设计理念、硬件配置、六种物理布局差异、默认键位逻辑,以及如何用 QMK 编译、刷写和自定义属于自己的固件。
Boardwalk 是什么:从 Atomic 到 Ergodox 键帽兼容
Boardwalk 的定位非常明确:用标准 60% 外壳装下一块 5×14 正交布局的 PCB,同时最大化键帽兼容性。readme 中明确指出,该项目灵感来自 OLKB 的 Atomic 键盘——后者使用更大的 2u 修饰键;而 Boardwalk 的设计者 shensmobile 决定改用1.5u 键,这样 Ergodox 键帽组可以近乎完美地覆盖整块键盘,其余部分则可用 60% 套装中的标准尺寸键帽补齐。这一取舍带来的直接收益是:拥有 Ergodox 键帽的玩家可以无缝移植键帽,而无需为 2u 修饰键专门购买额外键帽。
从仓库结构看,Boardwalk 是 QMK 社区维护(Keyboard Maintainer: QMK Community)的键盘,硬件支持指向 "Boardwalk Ortholinear PCB",由 QMK Community 持续维护其固件支持。
硬件配置全解:从 keyboard.json 读懂这块板子
与早期 QMK 键盘依赖config.h+rules.mk不同,Boardwalk 采用数据驱动配置,全部硬件与功能描述集中在一个 keyboards/boardwalk/keyboard.json 文件中。逐项拆解如下:
USB 标识与主控
"keyboard_name": "Boardwalk", "manufacturer": "shensmobile", "maintainer": "qmk", "usb": { "vid": "0xCDCD", "pid": "0x5337", "device_version": "0.0.1" }, "processor": "atmega32u4", "bootloader": "atmel-dfu"- 主控为ATmega32U4(AVR 架构,QMK 对 AVR 系列支持成熟稳定);
- 引导加载程序为atmel-dfu,刷写时依赖 QMK DFU 驱动(参见 docs/flashing.md 与 docs/driver_installation_zadig.md);
- USB VID/PID 为 0xCDCD/0x5337,用于系统识别该键盘。
矩阵扫描:5 行 × 14 列
"matrix_pins": { "cols": ["F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"], "rows": ["F0", "F1", "F4", "F5", "F6"] }, "diode_direction": "COL2ROW"整块 PCB 是一个 5 行 14 列、共 70 个矩阵位的扫描矩阵,二极管方向为 COL2ROW(列驱动、行读取)。这是理解后续所有布局(layouts)定义的基础:每个物理按键都通过matrix: [row, col]坐标映射到矩阵上。
灯光与功能特性
"rgblight": { "hue_steps": 12, "saturation_steps": 25, "brightness_steps": 12, "led_count": 14, "animations": { "breathing": true, "rainbow_mood": true, ... } }, "ws2812": { "pin": "B7" }, "features": { "bootmagic": true, "command": true, "extrakey": true, "mousekey": false, "nkro": true, "rgblight": true, "unicode": true }, "qmk": { "locking": { "enabled": true, "resync": true } }- RGB 背光:板载 14 颗 WS2812(引脚 B7)RGB LED,启用 10 种内置动画(呼吸、彩虹渐变、蛇形、星光等),色调/饱和度/亮度步进分别为 12/25/12;
- 功能开关:启用了 Bootmagic(键位热修改)、Command(调试命令)、额外键(媒体/系统键)、NKRO(全键无冲)、RGB 与 Unicode;鼠标键默认关闭(
mousekey: false),需要时可在自定义配置中开启; - 锁键支持:启用锁定键(Caps Lock 等)并开启 resync 状态同步。
六种物理布局:一块 PCB,六种配列
Boardwalk 的灵活性体现在它在同一块 70 位矩阵上定义了6 种 LAYOUT,全部收录于 keyboards/boardwalk/keyboard.json 的layouts字段中。前三行与后三行(字母区)在所有布局中保持一致,差异集中在底行与右侧修饰键区:
| Layout 名称 | 底行特征 | 对应官方键位 |
|---|---|---|
LAYOUT_ortho_5x14 | 1.5u × 2 + 10×1u + 1.5u × 2,纯 5×14 满配 | default |
LAYOUT_ortho_hhkb | HHKB 风格:分裂 Shift、分裂空格(2×2u),右下仅 4 键 | default_ortho_hhkb |
LAYOUT_ortho_7u | 中央 7u 空格,左右 1.5u 修饰 | default_ortho_7u |
LAYOUT_2u_arrow | 双 2u 空格 + 独立方向键簇,右侧 1.25u 修饰 | default_2u_arrow |
LAYOUT_625u_arrow | 中央 6.25u 空格 + 独立方向键簇 | default_625u_arrow |
LAYOUT_ortho_2x2u | 双 2u 空格(2×2u),无独立方向键 | default_2x2u |
以LAYOUT_ortho_2x2u为例,其底行定义展示了矩阵坐标与物理位置的对应关系(见 keyboard.json):[4,5]与[4,7]两个 2u 空格之间跳过了[4,6],因为 2u 键帽跨越两个键位。这种"矩阵位不连续、物理宽度连续"的定义方式,正是 QMK 数据驱动 layout 的核心设计。
值得一提的是,LAYOUT_ortho_5x14被声明为社区布局("community_layouts": ["ortho_5x14"]),详见 layouts/community/ortho_5x14/readme.md,这意味着其他任何 5×14 正交键盘的用户也能直接复用基于该布局的键位文件,不必为每个键盘重复编写。
官方键位图逐层解析
仓库keymaps/目录下共 6 套官方键位,全部采用**双层(Base + FN)**结构,个别版本(如default_2x2u)额外增加 RAISE 层。以最通用的 default/keymap.c 为例:
Base 层(LAYOUT_ortho_5x14):标准的 60% 正交配列,第一行ESC 1 2 3 4 5 - = 6 7 8 9 0 BACKSP;字母区按 QWERTY 排布,并在中列位置安放了HOME/PGUP/END/PGDN四个导航键;底行为LCTRL LGUI FN LALT加 5 个空格(MO(_FN)位于左三位置),右侧是LEFT DOWN UP RIGHT RCTRL方向键簇。
FN 层(MO(_FN)按住触发):数字行变为F1~F12,左上为反引号、右上为DEL;右侧放置KC_APP(菜单键)、KC_PSCR(截图)、媒体键MUTE/VOLD/VOLU与QK_BOOT(一键进入刷写模式)——这是所有 6 套键位共用的 FN 层骨架。
其余 5 套键位在 Base 层的字母区完全一致,仅底行/右侧按布局调整,例如:
- default_ortho_hhkb/keymap.c 底行为分裂空格 +
LEFT DOWN UP RIGHT; - default_ortho_7u/keymap.c 使用 7u 空格,仅保留 LCTRL/LALT/SPACE/RALT/FN 五个底行键;
- default_2x2u/keymap.c 引入
_RAISE第三层,将 FN 与 RAISE 分别映射到两个不同键位。
这种"字母区统一、底行差异化"的安排,配合统一的 FN 层,让你换布局后几乎零学习成本上手。
编译、刷写与自定义键位
快速开始:一条命令编译
在完成 QMK 构建环境配置(参见 docs/getting_started_introduction.md 与 docs/newbs_building_firmware.md)后,进入仓库根目录执行:
make boardwalk:default即可编译默认键位。其他官方键位同理,例如:
make boardwalk:default_ortho_hhkb # HHKB 风格布局 make boardwalk:default_2u_arrow # 2u 空格 + 方向键 make boardwalk:default_625u_arrow # 6.25u 空格 + 方向键 make boardwalk:default_ortho_7u # 7u 空格 make boardwalk:default_2x2u # 双 2u 空格 + RAISE 层更完整的 make 用法(目标、烧录方式等)参见 docs/getting_started_make_guide.md。
刷写固件
编译产物生成后,将键盘置入 DFU 模式(默认键位的 FN 层中QK_BOOT键即可一键进入),再执行带:flash的 make 目标完成烧录:
make boardwalk:default:flashDFU 驱动的安装与刷写细节可参考 docs/flashing.md 与 docs/driver_installation_zadig.md。由于 bootloader 为 atmel-dfu,Windows 下如遇设备无法识别,需通过 Zadig 将驱动更换为libusb兼容驱动。
自定义键位:三步上手
- 复制官方键位作为起点:将
keymaps/default/目录复制为你自己的键位目录(如keymaps/mykeymap/),或参考 layouts/default/ortho_5x14/default_ortho_5x14/keymap.c 这类社区默认键位模板; - 修改
keymap.c:基于 6 种 LAYOUT 宏(如LAYOUT_ortho_5x14(...))重排按键。注意每个按键的物理位置由 keyboard.json 的 layout 定义决定,keymap.c 只需按行填充键码;分层、修饰键(MO()/LT()/MT()等)的完整语法参见 docs/keymap.md 与 docs/feature_layers.md; - 编译验证:
make boardwalk:mykeymap后刷写测试。
由于LAYOUT_ortho_5x14是社区布局,你还可以把键位文件放进layouts/community/ortho_5x14/共享给所有 5×14 正交键盘用户,真正做到"一次编写、多处复用"。
小结
Boardwalk 在 QMK 仓库中的实现,是"一块 PCB、多套配列"设计思路的典型范例:数据驱动的 keyboard.json 用矩阵坐标 + 物理宽度的方式同时描述 6 种布局,readme.md 给出编译入口,6 套官方键位则展示了从纯正交到 HHKB、从 7u 空格到独立方向键的完整配列谱系。无论你是想直接make boardwalk:default上手,还是想基于社区布局打造专属键位,本文梳理的配置与源码路径都能让你快速定位到正确的文件。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考