QMK 固件构建指南:Charue Design Sunsetter R2 —— 65% + F 键列键盘的编译、刷写与 Bootloader 全解析
QMK 固件构建指南Charue Design Sunsetter R2 —— 65% F 键列键盘的编译、刷写与 Bootloader 全解析【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmwareSunsetter R2 是 Charue Design 出品的一款 65% 10% F 键列配列键盘套件在 QMK 固件仓库中拥有完整的官方支持数据驱动配置 默认键位图。本文以仓库内 keyboards/charue/sunsetter_r2/ 目录下的 readme、keyboard.json、keymap.c 与 matrix_diagram.md 为主体系统讲解该键盘的硬件配置、默认布局、编译刷写命令以及进入 Bootloader 的三种方式帮助你在搭建好 QMK 构建环境后快速完成固件的编译与烧录并理解其底层实现。一、键盘概览65% 10% F 键列的 Sunsetter R2Sunsetter R2 是一把由 Charue Design 设计并销售的键盘套件其核心配列特征是「65% 主键区 10% F 键列」在标准 65% 键盘约 68~70 键的基础上左侧额外附加了一列 10 个 F 功能键F1~F10方便不依赖 Fn 组合键直接触达功能键适合需要高频使用 F1~F10 的编程、游戏与办公场景。Round 2R2版本相比初代 Sunsetter 的主要升级点包括RGB 底灯underglow通过 WS2812 灯带实现共 10 颗灯珠新的外壳配色热插拔hotswap选项支持免焊接更换轴体内嵌式 USB 端口recessed USB portUSB 接口内凹设计外观更整洁。在 QMK 仓库中Sunsetter R2 的固件支持由维护者 ILWritesPiKeeb维护全部配置以数据驱动Data-Driven方式写在keyboard.json中没有传统的config.h/rules.mk散件配置读者可从 keyboards/charue/sunsetter_r2/keyboard.json 完整查看。二、硬件与固件配置深度解析keyboard.jsonkeyboard.json是 QMK 数据驱动配置的核心Sunsetter R2 的全部底层硬件定义都集中于此。以下是关键字段的逐项解读1. 基本标识与 USB 信息keyboard_name: Sunsetter R2, manufacturer: Charue Design, url: https://charue-design.com/collections/sunsetter, maintainer: PiKeeb, usb: { vid: 0x4344, pid: 0x5335, device_version: 0.0.1 }vid/pid分别为 USB Vendor ID0x4344与 Product ID0x5335操作系统依赖这两个值识别设备device_version为设备版本号0.0.1maintainer为 GitHub 用户名PiKeeb即固件维护者。2. 主控与 Bootloaderprocessor: atmega32u4, bootloader: atmel-dfu主控为 AtmelATmega32U4AVR 架构自带 USB 控制器Bootloader 为atmel-dfu对应 QMK 刷写目标:dfu这也是下文刷写命令能直接使用:flash的依据QMK 会自动根据 bootloader 类型选择dfu-programmer等刷写工具。3. 矩阵引脚与二极管方向matrix_pins: { cols: [F0, F1, F7, B1, D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7], rows: [B3, B2, F4, F5, F6] }, diode_direction: COL2ROW矩阵规模为17 列 × 5 行共可承载 85 个物理按键位置diode_direction为COL2ROW即二极管负极朝向列列驱动行扫描这是 QMK 矩阵扫描的关键参数决定了矩阵扫描代码的驱动逻辑不能与 PCB 实际走线相悖具体的行、列引脚与物理按键的对应关系可对照 keyboards/charue/sunsetter_r2/matrix_diagram.md 中的矩阵图查看例如00/01对应 F1/F20G对应 2u Backspace 等。4. 指示灯indicators: { caps_lock: B0 }Caps Lock 状态指示灯接在B0引脚由 QMK 的 indicator LED 驱动框架自动点亮/熄灭。5. RGB 底灯配置rgblight: { led_count: 10, animations: { breathing: true, rainbow_mood: true, rainbow_swirl: true, snake: true, knight: true, christmas: true, static_gradient: true, rgb_test: true, alternating: true, twinkle: true } }, ws2812: { pin: E6 }底灯灯珠数为10 颗WS2812 数据线接在E6引脚默认启用了 10 种 RGB 动画呼吸、彩虹情绪、彩虹漩涡、贪吃蛇、骑士、圣诞、静态渐变、RGB 测试、交替、闪烁均在固件编译期直接内置无需额外在键位图中声明。6. 功能开关featuresfeatures: { bootmagic: true, extrakey: true, mousekey: true, nkro: false, rgblight: true }, qmk: { locking: { enabled: true, resync: true } }bootmagic启用 BootmagicLite功能这是下文「Bootmagic reset」进入 Bootloader 方式的前提extrakey启用媒体键音量、播放控制等支持mousekey启用鼠标键支持nkro关闭 N 键无冲默认 6KROrgblight启用 RGB 灯光系统qmk.locking启用 QMK 的锁定键Caps/Num/Scroll Lock跟踪与重同步resync机制。三、默认键位图解析keymap.c默认键位图位于 keyboards/charue/sunsetter_r2/keymaps/default/keymap.c共两层_BASE基础层主键区为标准 QWERTY 布局左侧 F1~F10 直接映射为对应功能键数字行最左为QK_GESCShiftEsc 输出~单独按下输出 Esc 的复合键右上角为音量加/减/静音方向键区右侧为上一曲KC_MNXT空格行为左 Ctrl / 左 GUI / 左 Alt / 空格 /MO(_FN)按住进入 Fn 层/ 空格 / 右 Alt / 方向键。_FN功能层通过MO(_FN)按住触发将 F1~F10 位置映射为 F11~F18、F20并把QK_GESC位置改为QK_BOOT一键进入 Bootloader同时UG_NEXT用于循环切换 RGB 灯光模式。enum layer_names { _BASE, _FN };默认键位图使用的是LAYOUT_all配列含 2u Backspace、ISO 用反斜杠位等完整物理键位。需要注意keyboard.json中共定义了 5 种配列——LAYOUT_all、LAYOUT_ansi、LAYOUT_ansi_split_bs、LAYOUT_iso、LAYOUT_iso_split_bs因此你可以基于这些配列自行编写 ANSI / ISO / 分裂 Backspace 等不同风格的键位图。四、构建固件编译命令与前置条件1. 搭建构建环境编译前需要先完成 QMK 构建环境的搭建安装工具链、配置 QMK CLI 等。仓库中的官方指引位于docs/getting_started_build_tools.md构建工具安装docs/getting_started_make_guide.mdMake 用法详解新手推荐从 docs/newbs.mdComplete Newbs Guide入门。2. 编译默认键位图在仓库根目录执行make charue/sunsetter_r2:default命令格式为make keyboard:keymapkeyboardcharue/sunsetter_r2对应键盘目录keyboards/charue/sunsetter_r2/keymapdefault对应 keyboards/charue/sunsetter_r2/keymaps/default/ 目录下的键位图。编译完成后会生成.hex固件文件ATmega32U4 使用 HEX 格式存放在build/目录下。3. 一次编译并刷写make charue/sunsetter_r2:default:flash在make目标末尾追加:flash即可在编译成功后自动进入刷写流程。由于keyboard.json中声明的 bootloader 为atmel-dfuQMK 会自动调用对应的刷写工具dfu-programmer完成烧录。五、进入 Bootloader 的三种方式当需要刷写固件尤其是需要先手动进入 Bootloader 的场景时Sunsetter R2 支持以下三种方式1. Bootmagic reset免拆机操作方法按住矩阵中 (0,0) 位置的键通常是左上角第一颗键即 F1不放然后插入 USB 线连接电脑。该方式依赖keyboard.json中启用的bootmagic: true功能上电时 QMK 会检测 Bootmagic 触发键是否被按下若按下则直接进入 Bootloader。触发键 (0,0) 对应矩阵第一行第一列从默认键位图与矩阵图可知即 F1 键。2. 物理复位按钮操作方法短按 PCB 背面的复位按钮即可进入 Bootloader部分批次的 PCB 可能没有实体按钮而是需要短接预留的复位焊盘pads。这是最可靠的方式适合 Bootmagic 被禁用或触发键无法按下等场景。若短接焊盘务必使用镊子等工具短接对应两个焊点即可无需持续按住。3. 键位图中的QK_BOOT键码操作方法在键位图中将任意按键映射为QK_BOOT键码按下该键即可立即进入 Bootloader。默认键位图的_FN层已将 Esc 位置QK_GESC位映射为QK_BOOT因此实际操作是按住空格行中段的 Fn 键MO(_FN)不放再按 Esc 键即可在不拔线、不开壳的情况下进入 Bootloader。六、小结与排障建议围绕 Sunsetter R2 的 QMK 使用流程可以概括为读取 keyboard.json 理解硬件 → 对照 matrix_diagram 理解矩阵 → 按需编写/选择键位图 →make charue/sunsetter_r2:default编译 →make charue/sunsetter_r2:default:flash刷写 → 通过 Bootmagic / 复位键 / QK_BOOT 进入 Bootloader。常见问题与排查思路编译报错找不到键盘确认键盘路径写法为charue/sunsetter_r2并确认位于keyboards/目录下刷写时设备未识别先手动进入 Bootloader推荐物理复位键或 FnEsc 触发QK_BOOT再执行:flash命令Linux 下还需确认 udev 规则允许访问 DFU 设备详见 docs/faq_build.md 与 docs/driver_installation_zadig.mdWindows 用户通常需要 Zadig 安装驱动RGB 不亮确认rgblight功能已在固件中启用默认已启用并通过UG_NEXT或 QMK 配置工具切换到期望的灯光模式个别按键失灵对照 keyboards/charue/sunsetter_r2/matrix_diagram.md 检查矩阵坐标与keyboard.json中的引脚定义是否与 PCB 走线一致热插拔版本也可先检查轴座接触是否良好。通过以上内容你应能独立完成 Sunsetter R2 固件的编译、刷写与 Bootloader 操作并具备在此基础上自定义键位图、扩展 Fn 层功能的能力。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

大模型时代系统化学习路径与核心技术解析

大模型时代系统化学习路径与核心技术解析

1. 为什么大模型时代需要系统化学习路径去年我在团队里带过几个刚转行AI的同事,发现他们普遍存在一个误区:要么一头扎进论文堆里出不来,要么在各种开源项目间反复横跳却始终无法独立解决问题。这种现象在大模型领域尤为明显——新技术迭代太快…

2026/9/20 14:43:21 阅读更多 →
数据治理实践:元数据与主数据管理核心解析

数据治理实践:元数据与主数据管理核心解析

1. 数据治理的核心概念解析在数字化转型浪潮中,数据已成为企业的核心资产。但面对海量数据,如何有效管理和利用这些资源?数据治理作为一套系统化的管理方法,正成为企业数据资产化的关键支撑。其中元数据、主数据等基础概念构成了数…

2026/9/20 14:05:52 阅读更多 →
GPT-5核心技术前瞻与应用场景分析

GPT-5核心技术前瞻与应用场景分析

1. 大模型技术演进脉络大型语言模型的发展已经走过几个关键阶段。2018年GPT-1的诞生标志着基于Transformer架构的预训练语言模型正式登上舞台,其1.17亿参数规模在当时已属突破。随后的GPT-2将参数量提升到15亿,展示了零样本学习能力的潜力。2020年GPT-3的…

2026/9/19 9:21:12 阅读更多 →

最新新闻

NocoBase低代码实践:TypeScript+Docker构建可维护内部系统

NocoBase低代码实践:TypeScript+Docker构建可维护内部系统

1. 项目概述:为什么一个“自己搭”的内部系统,会越用越顺手?NocoBase 这个名字,第一次听到时我下意识以为是某个小众数据库的变体,直到在团队晨会上看到同事用十分钟拖拽出一个带审批流、权限分级、数据看板的采购申请…

2026/9/20 19:36:35 阅读更多 →
环境隔离工具应用指南:账号风控原理与实操落地步骤

环境隔离工具应用指南:账号风控原理与实操落地步骤

环境隔离工具怎么选,常被简化成"看隔离得彻不彻底"。这个说法没错,但不够用——隔离本身分几个层次,只做其中一层,表面上账号分开了,实际上仍有线索把两个账号连起来。 这篇文章先把防关联的判定逻辑讲清楚&…

2026/9/20 19:36:35 阅读更多 →
Unity端侧人体图像分割:ONNX模型+Camera实时推理

Unity端侧人体图像分割:ONNX模型+Camera实时推理

简介:本资源是一套面向Unity开发者与AI工程实践者的实时人体图像分割解决方案,聚焦AR、虚拟直播及体感交互等场景中的人物-背景精准分离需求。基于谷歌开源BodyPix模型的ONNX轻量版本,通过Unity Barracuda推理引擎接入,完整实现了…

2026/9/20 19:36:35 阅读更多 →
短剧出海翻译怎么做?5款主流视频翻译平台横评:讯飞译制、剪映AI、HeyGen、趣丸千音、网易见外

短剧出海翻译怎么做?5款主流视频翻译平台横评:讯飞译制、剪映AI、HeyGen、趣丸千音、网易见外

短剧出海翻译怎么做?5款主流视频翻译平台横评:讯飞译制、剪映AI、HeyGen、趣丸千音、网易见外实测对象:讯飞译制 / 剪映AI / 网易见外 / HeyGen / 趣丸千音 2026 年 9 月摘要:视频翻译平台分两类:通用视频翻译工具&…

2026/9/20 19:36:35 阅读更多 →
Vue移动端TabBar刷新归位问题:路由驱动选中态解决方案

Vue移动端TabBar刷新归位问题:路由驱动选中态解决方案

1. 这个TabBar刷新归位问题到底卡在哪移动端项目里用Vue CLI 4搭架子,配vant或者自己手写TabBar组件,十有八九会撞上这个场景:用户在“我的”页面点了刷新,页面重新加载,底部导航栏的高亮状态直接跳回第一个Tab。用户明…

2026/9/20 19:36:35 阅读更多 →
Python大作业全流程复现:从文本清洗到自动化脚本与答辩

Python大作业全流程复现:从文本清洗到自动化脚本与答辩

简介:一份合肥工业大学 Python 大作业完整资源包,面向正在完成 Python 课程设计、需要参考完整项目流程的本科生。压缩包共 22 个文件,以 13 个 py 脚本为核心,涵盖变量与数据类型、控制结构、函数封装、文件操作及数据分析与可视…

2026/9/20 19:35:35 阅读更多 →

日新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →