新闻详情

新闻详情

首页 / 资讯中心 / 详情

QMK 键盘移植指南:waffling80 Rev A 固件编译、DFU 刷写与源码结构解析

发布时间:2026/9/15 21:17:54来源:尧图网络
QMK 键盘移植指南:waffling80 Rev A 固件编译、DFU 刷写与源码结构解析
QMK 键盘移植指南waffling80 Rev A 固件编译、DFU 刷写与源码结构解析【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware本篇技术指南以 QMK Firmware 仓库中 waffling80 Rev A 键盘的 readme.md 为核心完整讲解这款 TKLTenkeyless客制化 PCB 的固件编译流程、进入 DFU 引导模式的两种刷写方式并结合仓库内的keyboard.json、rev_a.c与默认键位映射源码从矩阵配置、指示灯 RGB 逻辑到布局支持进行源码级剖析。读完本文你将掌握如何在 QMK 中为 waffling80 Rev A 构建并刷写固件也能理解其一板兼容 a87/a88 多种配列的工程实现思路。waffling80 是什么一款面向 a87/a88 兼容的 TKL PCBwaffling80 是由 4pplet 说明该键盘在 QMK 仓库中一共提供了三个硬件版本版本目录MCUBootloaderUSB PIDRev Akeyboards/4pplet/waffling80/rev_a/ATmega32U2atmel-dfu0x0006Rev Bkeyboards/4pplet/waffling80/rev_b/STM32F072stm32-dfu0x000FRev B ANSI HSkeyboards/4pplet/waffling80/rev_b_ansi/STM32F072stm32-dfu0x0017三个版本共享同一套 8×12 矩阵、社区布局定义与默认键位逻辑区别主要在于主控与 LED 数据引脚Rev A 使用 ATmega32U2WS2812 接 D7Rev B 系改用 STM32F072WS2812 接 A8。下文以 Rev A 为主线展开。编译固件从克隆仓库到生成可刷写的 hexQMK 采用键盘路径 键位目标的命令行构建模型。为 waffling80 Rev A 编译默认键位固件在配置好构建环境后执行make 4pplet/waffling80/rev_a:default该命令的语法为make keyboard:keymap4pplet/waffling80/rev_a定位到键盘目录default对应 keymaps/default/keymap.c 键位方案。编译产物为可通过 DFU 刷写的.hex固件文件。Rev B 与 Rev B ANSI 的构建目标同样在根 readme.md 中给出make 4pplet/waffling80/rev_b:default make 4pplet/waffling80/rev_b_ansi:default注意Rev B 系列使用 STM32F072其刷写工具与烧录方式stm32-dfu与 Rev A 的 atmel-dfu 不同编译时 QMK 会自动按 keyboard.json 中声明的 bootloader 选择对应工具链。首次接触 QMK 的用户可参考仓库 docs/getting_started_introduction.md 与 docs/getting_started_make_guide.md 完成环境搭建与 make 参数学习进阶配置说明见 docs/config_options.md。进入 DFU 刷写模式两种官方推荐方式Rev A 的 bootloader 为atmel-dfu见 rev_a/keyboard.json刷写前必须让键盘进入 DFU 状态。官方 readme 给出了两种方法方式一物理复位任何时候可用轻触 PCB 背面的物理复位按键或使用金属镊子等工具短接印有RESET标识的复位焊盘reset-header。键盘随即进入 DFU 模式此时系统会枚举出 DFU 设备即可使用qmk flash或dfu-programmer烧录固件。方式二组合键软复位仅限已预刷固件如果键盘已经刷入过可用的 QMK 固件可以完全依赖 Bootmagic 键码实现免开盖刷写拔下键盘的 USB 线同时按住Spacebar空格键与B键不松手插上 USB 线等待约 1 秒后再松开按键键盘进入 DFU 模式即可刷写。这一方案之所以可行是因为 rev_a/keyboard.json 中features.bootmagic已开启且配置了qmk_lufa_bootloader的esc_input: C4与esc_output: C6——按住 SpacebarB 实质是触发了 Bootmagic 的跳转到 bootloader键位对应矩阵中的 Spacebar 与 B 所在行列在插入瞬间引导程序识别到该组合后进入 DFU。源码级解析Rev A 的硬件配置如何落地QMK 新版键盘采用数据驱动的配置方式Rev A 的全部硬件描述集中在 rev_a/keyboard.json几个关键字段含义如下{ keyboard_name: waffling80 Rev A, usb: { pid: 0x0006, device_version: 0.0.1 }, rgblight: { saturation_steps: 8, brightness_steps: 8, led_count: 2 }, ws2812: { pin: D7 }, features: { bootmagic: true, extrakey: true, mousekey: true, nkro: true, rgblight: true }, matrix_pins: { cols: [C6, C7, B7, B6, B5, B2, D0, C2], rows: [C4, C5, B4, B3, B1, B0, D6, D5, D3, D4, D1, D2] }, diode_direction: COL2ROW, qmk_lufa_bootloader: { esc_input: C4, esc_output: C6 }, processor: atmega32u2, bootloader: atmel-dfu }matrix_pins / diode_direction8 列 × 12 行共 96 个矩阵交点COL2ROW表示二极管方向为列到行。矩阵图可参考 matrix_diagram.md其中标注了 F13 行、2u Backspace、ISO Enter、2.25u LShift / 2.75u RShift 以及 Tsangan/WKL 配列各自的矩阵坐标是理解LAYOUT_all中[行, 列]编号的直接依据。rgblight / ws2812板载 2 颗 WS2812 灯珠led_count: 2用于 Caps Lock 与 Scroll Lock 状态指示数据引脚为 D7饱和度与亮度各有 8 级步进。qmk_lufa_bootloader声明了 Bootmagic 软复位的矩阵按键ESC 输入/输出即上文方式二的硬件基础。指示灯逻辑Caps Lock 与 Scroll Lock 的 RGB 指示rev_a/rev_a.c 实现了键盘级的led_update_kb回调将系统 LED 状态映射到两颗 WS2812 灯珠默认启用CAPS_LOCK_ENABLE与SCROLL_LOCK_ENABLE可通过在config.h中将其定义为 0 来关闭对应指示若定义了CAPS_LOCK_COLOR/SCROLL_LOCK_COLOR如HSV_GREEN指示灯将显示固定颜色未定义时指示灯会跟随当前 RGB 背光的主色调读取rgblight_get_hue()/sat()/val()并可通过 VIA 等工具在运行时设置颜色锁键激活时调用rgblight_sethsv_at(..., index)点亮对应灯珠索引 0 为 Scroll Lock、索引 1 为 Caps Lock释放后写入HSV_OFF熄灭。这段代码展示了 QMK 中键盘级 LED 回调 单灯寻址的标准写法也是理解rgblight特性如何在 keyboard.json 之外以 C 代码扩展行为的典型示例。默认键位LAYOUT_all 与双层功能层默认键位 keymaps/default/keymap.c 使用LAYOUT_all定义了两层层 0主层标准 TKL 主键区方向键区保留底行采用分体空格2.25u 1.25u 2.75u 三段以适应不同外壳行末的两个MO(1)是alps dual action switchesALPS 双动作轴预留的额外按键位层 1功能层绝大部分为KC_TRNS透传仅左上角 Esc 位置放入了QK_BOOT配合上面的 Bootmagic 实现从键位层直接跳转 bootloader主层还包含KC_NUHS非 US 反斜杠、KC_NUBS非 US 井号等键位服务于 ISO 相关配列差异。布局兼容矩阵16 种社区布局根目录 info.json 声明了community_layouts共 16 种 TKL 社区布局组合覆盖ANSI / ISO × 是否分体 Backspace 与右 Shiftsplit BS / split RShift是否带 F13 列tkl_f13_*是否 Tsangan/WKL 底行*_tsangan_*以及LAYOUT_all全集布局含分体空格与 ALPS 双动作轴额外键位。配合矩阵图 matrix_diagram.md 中标准、Tsangan/WKL、Tsangan/WKL Split Space 三种底行的坐标示意即可理解同一块 PCB 通过不同矩阵点位焊接不同尺寸键帽来实现多配列兼容的机制。用户在keymap.c中选用对应的LAYOUT_tkl_xxx宏即可编译出适配自己外壳与键帽组合的固件。快速上手小结克隆 QMK 并搭建构建环境见 docs/newbs_getting_started.md编译make 4pplet/waffling80/rev_a:default进入 DFU短接 RESET 焊盘或已刷固件时拔线后按住 SpacebarB 再插线刷写qmk flash或 dfu 工具烧录生成的.hex如需其他配列在键位文件中改用 info.json 所列的LAYOUT_tkl_*布局宏并重新编译。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI Passport:基于ESP32-C3的嵌入式设备身份协议实践 2026/9/15 23:48:26

AI Passport:基于ESP32-C3的嵌入式设备身份协议实践

1. Folotoy这波“AI Passport”不是营销话术,而是硬件身份协议的落地尝试最近朋友圈和极客社群里突然刷屏的Folotoy新品——AI Passport,很多人第一反应是:“又一个蹭AI热度的玩具?”但当我拆开第一批工程样机、跑通TRAE环境、反复…

阅读更多 →
VirtualBox 装到 D 盘完整指南:软件与虚拟机文件双迁移 2026/9/15 23:48:26

VirtualBox 装到 D 盘完整指南:软件与虚拟机文件双迁移

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

阅读更多 →
别再让PLC读取卡死界面!C#上位机异步读取方案详解 2026/9/15 23:48:26

别再让PLC读取卡死界面!C#上位机异步读取方案详解

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

阅读更多 →
CANN Runtime仓库揭秘:昇腾AI应用开发与部署的关键桥梁 2026/9/15 23:48:26

CANN Runtime仓库揭秘:昇腾AI应用开发与部署的关键桥梁

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

阅读更多 →
Flutter在鸿蒙上接入SignalR:实时通信适配实战与踩坑指南 2026/9/15 23:48:26

Flutter在鸿蒙上接入SignalR:实时通信适配实战与踩坑指南

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

阅读更多 →
一体化算力工作站如何贯通地震解释、电磁正演与抗震分析 2026/9/15 23:45:26

一体化算力工作站如何贯通地震解释、电磁正演与抗震分析

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞