ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

QMK Firmware 中的 Southern Breeze Rev1:分体键盘的矩阵配置、USB 描述与默认键位全解析

QMK Firmware 中的 Southern Breeze Rev1:分体键盘的矩阵配置、USB 描述与默认键位全解析 QMK Firmware 中的 Southern Breeze Rev1分体键盘的矩阵配置、USB 描述与默认键位全解析【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware本文以 QMK Firmware 仓库中 AfternoonLabs 厂商的 Southern Breeze Rev1 分体键盘为对象基于 readme.md 与 keyboard.json 的完整配置逐层拆解这款 6×4 正交分体键盘的矩阵引脚、split 串口/ handedness 配置、bootmagic 设置、布局坐标几何以及默认三层层键位映射帮助读者掌握在 QMK 数据驱动配置体系中描述一款分体键盘的完整方法。键盘定位与硬件概述Southern Breeze Rev1 是一款分体split正交列错位column-staggered键盘按 readme 的描述每侧主键区为6×4 键位6 列 × 4 行双半合计 48 键左侧额外配有6 键宏区上下两排各 3 键与主键区错开半格、4 个方向键UP / LEFT / DOWN / RIGHT每侧拇指区为4 键拇指簇共 8 键全键盘共66 键 48主键区 6宏簇 4方向键 8拇指簇。仓库中该键盘的 maintainer 为 Eithan Shavit支持的硬件是 Breeze Rev1 PCB硬件状态标注为 Coming soon。它隶属于 keyboards/afternoonlabs 厂商目录与同目录下的 breeze、gust、oceanbreeze、summer_breeze 等同族机型共享厂商 VID。构建方式在配好 QMK 构建环境后编译该键盘默认键位的命令为make afternoonlabs/southern_breeze/rev1:default即键盘路径:键位名的通用形式。构建环境的搭建可参考 构建环境入门、Docker 方式 或 make 构建指南首次接触 QMK 的读者可从 新手指引 入手。keyboard.json数据驱动配置逐项解读rev1/keyboard.json 是该键盘的 QMK 数据驱动配置文件格式说明见 info.json 参考以下按字段分组解读。基本信息与 USB 描述符{ keyboard_name: Southern Breeze, manufacturer: AfternoonLabs, url: afternoonlabs.com/breeze, maintainer: eithanshavit, usb: { vid: 0x616C, pid: 0x0005, device_version: 0.0.1 }, processor: atmega32u4, bootloader: caterina }主控为atmega32u4烧录器为caterinaATmega32U4 的经典 DFU 方案配合 QMK 的QK_BOOT键码或 bootmagic 进入 DFU 模式USB VID 为厂商注册的0x616CPID0x0005、设备版本0.0.1标识了这款 Breeze 系列中的具体机型。功能开关featuresfeatures: { bootmagic: true, mousekey: false, extrakey: false, console: true }板级默认开启bootmagic开机按住指定键进入 DFU与console串口调试控制台关闭 mousekey 与 extrakey。需要注意默认键位目录的 rules.mk 会在该键位层面重新打开这两项见后文构建选项一节因此最终固件中 MOUSEKEY / EXTRAKEY 实际是启用的——这正是 QMK 三层配置板级keyboard.json→ 键位rules.mk→ 命令行覆盖的典型体现。矩阵引脚与二极管方向matrix_pins: { cols: [B2, D1, D0, D4, C6, D7, E6, B4, B5], rows: [F4, F5, F6, F7, B1] }, diode_direction: COL2ROW每半侧为5 行 × 9 列的矩阵行 F4–F7、B1列 B2/D1/D0/D4/C6/D7/E6/B4/B5配合 split 后逻辑矩阵为 10 行 × 9 列共 90 个矩阵单元其中 66 个被实际键位使用二极管方向为COL2ROW列接行列线为扫描线、行线读回。由于 32u4 只有 5 根行线却对应逻辑上的 10 行从配置结构看远端右手半侧的矩阵是通过 split 串行通道复用同名引脚描述的这也是 QMK 分体配置中 matrix_pins 只列出一套引脚的惯用写法。分体split配置split: { enabled: true, handedness: { pin: B3 }, serial: { pin: D2 } }handedness.pin B3每半侧各引出一根 handedness 线并在 PC 端接地固件通过该引脚电平判断自己是左半还是右半按 QMK 约定低电平为左半serial.pin D2两半之间走I2C 串行通道atmega32u4 上 D2 即 SDA 引脚远端矩阵扫描结果经该通道回传无需第二颗 MCU。这套单 MCU I2C handedness的组合是 QMK 分体键盘最省料的硬件方案之一。bootmagic 键位bootmagic: { matrix: [0, 5] }bootmagic 被绑定在矩阵位置[0, 5]——对应左半主键区第一行第 4 颗物理键即默认键位中的ESC键。上电时按住它即进入 Caterina DFU 模式便于硬件层面的救砖刷写。布局几何LAYOUT 坐标解读keyboard.json 的layouts.LAYOUT定义了 66 个键的 1u 网格坐标渲染参考 布局特性文档关键几何特征如下主键区列错位每半侧 6 列的 x 间距为 1但 y 值随行、列呈 0 / 0.125 / 0.25 / 0.375 等阶梯变化例如左半第 0 行各键 y 依次为0.375, 0.375, 0.375, 0.375, 0.125, 0, 0.125, 0.25——中间列下沉、两侧抬升形成典型的 column-stagger 弧线左右镜像右半侧所有键位于 x 13–18 区间y 与左半严格对称中央留 x 9.25–12.75 的分体间隙拇指簇为 2u 宽键4 颗拇指键使用h: 2横向跨度 2且外侧两颗带旋转角r: 30/r: -30使其随拇指区边缘斜向排布例如{matrix: [4, 0], x: 9.5, y: 3.75, h: 2, r: 30}, {matrix: [9, 0], x: 11.75, y: 3.75, h: 2, r: -30}宏簇与方向键的错位摆放左半的 6 键宏簇占据矩阵 [0,6..8] 与 [1,6..8]x 0–2、y 略高于主键区方向键中KC_UP单独置于 [2,7]x1KC_LEFT/KC_DOWN/KC_RIGHT则排在 [3,8..6]构成一个 1×1 1×3 的方向键簇。这套坐标同时服务于 QMK Configurator 的可视化布局渲染与键盘布局图生成。默认键位三层结构与拇指区映射默认键位 keymap.c 定义_MAIN、_LOWER、_RAISE三层左右各一颗 MO 键切换enum layer_names { _MAIN, _LOWER, _RAISE }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE)MAIN 层左半6 键宏簇默认是MINS EQL GRV / LBRC RBRC BSLS供用户改写为宏主键区为类 QWERTY 排布方向键UP行 2 左侧、LEFT DOWN RIGHT行 3 左侧右半纯主键区右上角是DEL拇指簇左 4 右 4KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX即左手 Ctrl/Alt/Gui/Space右手 Enter/RAISE/LOWER最右一颗预留为空XXXXXXX。LOWER 层只占用左侧宏簇与主键区第一行开头MUTE / VOLD / VOLU音量控制依赖 EXTRAKEY以及QK_BOOT——放在 ESC 的键位上按下即重启进入 DFU与 board 级 bootmagic[0,5]形成按键刷写 开机刷写的双保险KC_MUTE, KC_VOLD, KC_VOLU, QK_BOOT, _______, ...RAISE 层把右半主键区整体变为数字小键盘顶行PEQL PSLS PAST PMNS、P7 P8 P9 PPLS、P4 P5 P6、P1 P2 P3拇指区再补P0 / PDOT左半全部为_______透明键保持 MAIN 层行为。构建选项键位级 rules.mkdefault/rules.mk 覆盖了 board 级默认值并开启优化LTO_ENABLE yes # 链接期优化体积换功能空间 MOUSEKEY_ENABLE yes # 允许映射鼠标控制键 EXTRAKEY_ENABLE yes # 允许音频 系统控制键 COMMAND_ENABLE yes # 调试与配置命令配合 board 级 console NKRO_ENABLE yes # 无限制全键无冲其中COMMAND_ENABLE与 keyboard.json 中的console: true配套固件内置的 debug console 提供layer、matrix、bootmagic等运行时命令可用 USB 串口控制台在线调试层状态与矩阵读数。LTO 注释也说明了动机——编译略慢但换来的 .hex 体积缩减让小容量 AVR 能装下更多功能。小结与延伸阅读配置文件rev1/keyboard.json、rev1/readme.md默认键位keymaps/default/keymap.c、keymaps/default/rules.mk配置体系数据驱动配置、info.json 参考、键位映射、层特性同厂商其它机型共享 VID0x616C的 Breeze 家族keyboards/afternoonlabs【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表