QMK Firmware 中的 Mullet 键盘:68 键 USB Type-C 与 RGB 底光键盘的固件构建指南
嵌入式固件驱动开发硬件开发【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址https://gitcode.com/GitHub_Trending/qm/qmk_firmware点击查看免费下载本指南以 keyboards/coseyfannitutti/mullet/readme.md 为核心系统讲解 coseyfannitutti 出品的 Mullet 键盘在 QMK Firmware 仓库中的固件支持情况、数据驱动配置keyboard.json、双层默认键位图设计以及从环境搭建、编译到刷写的完整操作流程。读完本文你将能够独立完成make coseyfannitutti/mullet:default的固件编译并理解其矩阵、WS2812 底光灯与 Atmega32U4 主控的底层实现。Mullet 键盘概览规格与固件支持Mullet 是 coseyfannitutti 设计的一款68 键65% 布局机械键盘其核心卖点包括68 键紧凑布局在保留方向键与编辑区按键的同时将键盘宽度压缩到 65% 尺寸USB Type-C 接口使用现代 USB-C 连接无需区分正反RGB 底光RGB underglow键盘底部搭载 WS2812 可寻址 LED 灯带配合透明外壳可呈现漫反射灯效Atmega32U4 主控经典 AVR 8 位微控制器内置 USB 控制器也是 QMK 支持最成熟的芯片平台之一。在 QMK Firmware 仓库中该键盘的全部固件支持文件位于 keyboards/coseyfannitutti/mullet/采用 QMK 推荐的数据驱动data-driven配置方式——键盘的引脚定义、USB 描述符、RGB 参数等全部收敛在 keyboard.json 中而默认键位图由 keymaps/default/keymap.c 提供。环境搭建与固件编译1. 搭建 QMK 构建环境Mullet 的 readme 明确指出编译前需要先完成 QMK 的构建环境配置。完整的安装指引见仓库内的 docs/newbs_getting_started.md原文档中的 Complete Newbs Guide 对应 docs/newbs.md其核心步骤如下安装 QMK CLI在 WindowsQMK MSYS、macOS、Linux/WSL 下执行安装脚本后运行qmk setup完成环境初始化首次会克隆 qmk_firmware 并安装全部编译依赖验证环境环境就绪后可以用qmk list-keyboards查看受支持键盘列表确认coseyfannitutti/mullet出现在其中。2. 编译默认固件Mullet 的 readme 给出了唯一的编译命令make coseyfannitutti/mullet:default这条命令的语法遵循 QMK 的通用格式keyboard:keymap:target详见 docs/getting_started_make_guide.md其中keyboard为coseyfannitutti/mullet即键盘在keyboards/目录下的路径keymap为default指向 keymaps/default/ 目录下的默认键位图未指定target时等价于all即只编译出固件而不刷写。编译产物为.hex格式AVR 平台的标准固件格式并会做文件大小校验。若编译过程中遇到莫名问题可先执行make coseyfannitutti/mullet:default:clean清理构建缓存后再重试。3. 使用 QMK CLI 编译推荐方式除传统make外也可以使用现代 QMK CLI 完成同样工作qmk compile -kb coseyfannitutti/mullet -km default其中-kb指定键盘路径、-km指定键位图名其效果与make等价。数据驱动配置keyboard.json 深度解析Mullet 的硬件配置全部由 keyboard.json 驱动无需传统的rules.mk/config.h重复声明。以下逐节解读其中的关键配置。USB 标识usb: { vid: 0xFEED, pid: 0x6969, device_version: 0.0.1 }VID 0xFEED是 QMK 生态常见的实验性厂商 ID非商业量产注册PID 0x6969为该键盘的专属产品 IDdevice_version为设备版本号随固件枚举上报。主控与引导加载程序processor: atmega32u4, bootloader: atmel-dfuatmega32u4为 AVR 架构主控带硬件 USBQMK 支持最成熟atmel-dfu意味着键盘使用 ATmega32U4 内置的 DFUDevice Firmware Upgrade引导程序刷写时使用dfu目标详见下文固件刷写一节。矩阵定义matrix_pins: { cols: [B2, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D3], rows: [D0, D1, B0, F0, F1] }, diode_direction: COL2ROW矩阵规模为5 行 × 15 列共可容纳 75 个扫描位实际使用 68 键引脚名使用 QMK 的 AVR 命名约定如B2即 PB2diode_direction: COL2ROW声明二极管方向为列到行阴极接行矩阵扫描按行驱动、列读入。WS2812 底光灯与 RGB 配置ws2812: { pin: D5 }, rgblight: { saturation_steps: 8, brightness_steps: 8, led_count: 14, sleep: true, 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 数据引脚为 PD5驱动 14 颗可寻址 LEDled_count: 14saturation_steps与brightness_steps为 8即每次按调节键时饱和度和亮度的步进值sleep: true对应RGBLIGHT_SLEEP主机休眠时自动熄灭底光以省电animations 一次性开启了 10 种动画效果呼吸、彩虹流动、彩虹漩涡、蛇形、骑士Knight Rider、圣诞、静态渐变、RGB 测试、交替、闪烁。这解释了默认键位图中为何大量绑定 RGB 模式切换键详见下文。关于 RGB 底光的通用原理与键码完整清单可参考 docs/features/rgblight.mdWS2812 这类可寻址 LED内置微芯片单线协议串联传递数据因此可通过一条数据线独立控制每颗灯珠的颜色。功能特性开关features: { bootmagic: true, command: true, console: true, extrakey: true, mousekey: false, nkro: false, rgblight: true }这些开关对应 QMK 的模块启用详见 docs/getting_started_make_guide.md 的rules.mkOptions 一节bootmagic开机时按住特定键默认 Esc可重置 EEPROM 并进入刷写就绪状态command启用 Magic 命令可用LSHIFTRSHIFTKEY组合触发调试开关MAGICD、临时切换 NKROMAGICN等console允许通过hid_listen读取固件打印的调试信息extrakey启用系统与媒体控制键码默认键位图里的静音、音量键依赖它mousekey / nkro鼠标键与全键无冲NKRO被关闭以节省 AVR 宝贵的 Flash 空间。布局定义LAYOUTkeyboard.json末尾的layouts.LAYOUT定义了 68 个物理键位的矩阵映射每个条目包含matrix:[row, col]对应矩阵引脚索引x/y键位在布局中的坐标以 1U 键帽宽度为单位w键帽宽度如w: 2表示 2U 的退格键w: 6.25表示 6.25U 空格。从坐标可还原出经典 65% 布局第一行 15 键含 2U Backspace Ins末行 6.25U 空格配 1.25U×3 的 Ctrl/Win/Alt 与右侧方向键列。该LAYOUT宏被默认键位图直接引用。默认键位图双层布局实战默认键位图位于 keymaps/default/keymap.c定义了_BL基础层与_FL功能层两个图层通过右下角的MO(_FL)临时切换到功能层。基础层_BL标准 65% 输入区基础层为标准 QWERTY 布局含完整数字行、主键区、编辑键KC_INS、KC_DEL、KC_PGUP、KC_PGDN、方向键簇KC_UP/KC_DOWN/KC_LEFT/KC_RIGHT与 6.25U 空格。值得注意的细节左上角使用QK_GESCGrave Escape单击输出 Esc、按住输出 反引号是 QMK 键位图的高频用法末行修饰键为KC_LCTL、KC_LGUI、KC_LALT右侧为KC_RALTMO(_FL)功能层入口就位。功能层_FLF 键 RGB 控制面板功能层Fn 层是默认键位图的精髓将 F 区与 RGB 灯效控制集中于此分区绑定键码功能F 区KC_F1~KC_F12、KC_PSCR、KC_PAUS标准功能键与打印屏幕/暂停模式切换RGB_M_P、RGB_M_B、RGB_M_R静态 / 呼吸 / 彩虹三种动画模式颜色调节UG_HUEU、UG_HUED色相加减饱和度调节UG_SATU、UG_SATD饱和度加减亮度调节UG_VALU、UG_VALD亮度Value加减模式浏览UG_NEXT、UG_PREV、UG_TOGG下一个 / 上一个动画模式 / 开关底光媒体控制KC_MUTE、KC_VOLU、KC_VOLD静音、音量加、音量减刷写入口QK_BOOT一键进入 DFU 引导加载程序刷写专用所有UG_*键码均为 QMK RGB 底光Underglow的标准别名详见 docs/features/rgblight.md 的键码表支持配合 Shift 反向调节RGB_M_*系列在文档中标记为 deprecated 的旧式模式键码默认键位图仍在使用它们以兼容旧习惯。其余未占用位置用KC_TRNS透传使功能层未定义的键自然回落到基础层。固件刷写进入 DFU 模式Mullet 采用atmel-dfu引导程序由keyboard.json的bootloader字段声明刷写流程如下进入引导模式按住功能层中的QK_BOOT键或使用 Bootmagic上电时按住左上角 Esc 键键盘会以 DFU 模式重新枚举执行刷写命令make coseyfannitutti/mullet:default:dfudfu目标会先编译固件再通过 USB DFU 协议写入芯片见 docs/getting_started_make_guide.md 的target说明。若编译失败则不会上传。权限提示在 Linux 下刷写可能需要 root 权限可配置 udev 规则见 docs/faq_build.md 的 Linux udev rules 部分以避免sudo或直接使用sudo make coseyfannitutti/mullet:default:dfu。更完整的引导程序与刷写方式对比参见 docs/flashing.md。自定义你的键位图Mullet 的固件支持完全可以按 QMK 标准流程进行个性化复制默认键位图目录创建自己的键位图例如keymaps/mykeymap/参考 keymaps/default/keymap.c 的双层结构修改keymaps[][MATRIX_ROWS][MATRIX_COLS]数组用make coseyfannitutti/mullet:mykeymap或qmk compile -kb coseyfannitutti/mullet -km mykeymap编译。所有键码必须来自 keyboards/coseyfannitutti/mullet/keyboard.json 中LAYOUT宏定义的 68 个物理位置超出或缺少都会导致编译报错。小结Mullet 是 QMK 数据驱动配置的典型范例68 键 65% 布局、USB Type-C、14 颗 WS2812 底光灯与 Atmega32U4 主控的组合在 keyboard.json 中以纯声明方式完成硬件描述默认键位图则通过双层设计把 F 区、RGB 控制与媒体键收纳进功能层兼顾输入效率与灯效可玩性。无论你是编译官方固件、刷写调试还是从零定制键位make coseyfannitutti/mullet:default都是你通往这套 AVR 固件体系的第一步。赞分享嵌入式固件驱动开发硬件开发【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址https://gitcode.com/GitHub_Trending/qm/qmk_firmware点击查看免费下载相关推荐QMK Firmware 中的 BlackplumIMKG6868% 键盘的数据驱动配置、RGB 灯光与固件构建指南QMK Firmware 中的 BlackplumIMKG6868% 键盘的数据驱动配置、RGB 灯光与固件构建指南 Blackplum 又名 IMKG6嵌入式固件驱动开发硬件开发QMK Firmware 中的 Tomato 键盘支持30 键可编程 RGB 背光键盘的固件配置与编译指南QMK Firmware 中的 Tomato 键盘支持30 键可编程 RGB 背光键盘的固件配置与编译指南 导读 Tomato 是 40 Percent Cl嵌入式固件驱动开发硬件开发QMK Firmware 中 Flame60 键盘固件的构建、刷写与键位布局实战指南QMK Firmware 中 Flame60 键盘固件的构建、刷写与键位布局实战指南 Flame60 是 CMM.Studio 推出的一款 60% 布局客制化键嵌入式固件驱动开发硬件开发上一篇Qwen1.5模型下载终极指南HuggingFace与ModelScope缓存管理深度对比下一篇Pensieve电池优化笔记本用户必知的省电设置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

使用 GNU Make 构建与安装 chezmoi:从二进制产物到完整开发工作流

使用 GNU Make 构建与安装 chezmoi:从二进制产物到完整开发工作流

使用 GNU Make 构建与安装 chezmoi:从二进制产物到完整开发工作流 【免费下载链接】chezmoi Manage your dotfiles across multiple diverse machines, securely. 项目地址: https://gitcode.com/gh_mirrors/ch/chezmoi 本篇技术指南以 chezmoi 开发者指南中…

2026/9/20 23:32:48 阅读更多 →
OpenClaw 接百炼 API Key 报错?把 openclaw.json 的 Base URL 改到 TaoToken 再重启

OpenClaw 接百炼 API Key 报错?把 openclaw.json 的 Base URL 改到 TaoToken 再重启

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

2026/9/20 23:32:48 阅读更多 →
RIOT 中的 uTensor MNIST 手写数字识别示例:从 TensorFlow 模型训练到 MCU 端推理

RIOT 中的 uTensor MNIST 手写数字识别示例:从 TensorFlow 模型训练到 MCU 端推理

物联网嵌入式操作系统实时系统 【免费下载链接】RIOT RIOT - The friendly OS for IoT 项目地址: https://gitcode.com/GitHub_Trending/riot/RIOT 点击查看 免费下载 导读 本文围绕 RIOT 仓库 tests/pkg/utensor/README.md 展开,系统讲解如何在一个嵌…

2026/9/20 23:32:48 阅读更多 →

最新新闻

FinRL-Meta 基准评测体系指南:统一绩效指标、基线策略与回测实战

FinRL-Meta 基准评测体系指南:统一绩效指标、基线策略与回测实战

FinRL-Meta 基准评测体系指南:统一绩效指标、基线策略与回测实战 【免费下载链接】FinRL FinRL: Financial Reinforcement Learning. 🔥 项目地址: https://gitcode.com/gh_mirrors/fi/FinRL-Library 导读 本文以 FinRL-Meta 的 Benchmark 文档&…

2026/9/21 3:23:54 阅读更多 →
低功耗Bandgap设计实战:结构、启动电路与验证方法

低功耗Bandgap设计实战:结构、启动电路与验证方法

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

2026/9/21 3:22:53 阅读更多 →
国产替代Simulink的工程评估:从建模、代码生成到工具链的差距与可行路径

国产替代Simulink的工程评估:从建模、代码生成到工具链的差距与可行路径

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

2026/9/21 3:22:53 阅读更多 →
上千篇笔记一键整理:Foam标签、Query查询与智能文件夹进阶指南

上千篇笔记一键整理:Foam标签、Query查询与智能文件夹进阶指南

上千篇笔记一键整理:Foam标签、Query查询与智能文件夹进阶指南 【免费下载链接】foam A personal knowledge management and sharing system for VSCode 项目地址: https://gitcode.com/gh_mirrors/fo/foam Foam 是基于 VSCode 的个人知识管理与笔记分享系统…

2026/9/21 3:22:53 阅读更多 →
在 Chrome 打包应用中集成 AppEngine Channel API:WebView 代理桥接架构实战

在 Chrome 打包应用中集成 AppEngine Channel API:WebView 代理桥接架构实战

在 Chrome 打包应用中集成 AppEngine Channel API:WebView 代理桥接架构实战 【免费下载链接】chrome-extensions-samples Chrome Extensions Samples 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-extensions-samples 本篇技术指南围绕 chrome-exte…

2026/9/21 3:22:53 阅读更多 →
Deep Research 对话标题

Deep Research 对话标题

AI 应用前端 【免费下载链接】voyager Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any websites, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;其中的提示词管理器可用…

2026/9/21 3:22:53 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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 阅读更多 →