QMK 固件下的 Coban Pad 3A 小键盘:双热插拔按键与 EC11 旋钮的编译、刷写与自定义指南

发布时间:2026/11/5 12:24:25

QMK 固件下的 Coban Pad 3A 小键盘:双热插拔按键与 EC11 旋钮的编译、刷写与自定义指南 嵌入式固件驱动开发硬件开发【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址https://gitcode.com/GitHub_Trending/qm/qmk_firmware点击查看免费下载导读Coban Pad 3A 是 COBAN Stationery 推出的一款小巧宏键盘由 2 个热插拔按键和 1 个 EC11 旋转编码器组成适合用作音量调节、媒体控制或自定义宏触发面板。本文以 QMK Firmware 仓库中该键盘的官方支持为基准完整介绍其硬件配置、默认键位映射、构建与刷写命令、Bootloader 进入方式并结合仓库源码说明如何自定义按键与编码器行为。读完本文你将能够独立完成 Coban Pad 3A 固件的编译、烧录与个性化改造。硬件概览与仓库目录结构Coban Pad 3A 的核心特性来自 keyboards/coban/pad3a/readme.md2 个热插拔hotswap按键1 个 EC11 旋转编码器可旋转 下按共 3 种交互输入主控采用 Raspberry Pi RP2040详见下方keyboard.json键盘维护者RyanDam硬件支持方为 Coban Stationery。在 QMK 仓库中该键盘的完整支持位于 keyboards/coban/pad3a/目录结构如下文件作用keyboard.json数据驱动的键盘定义USB 标识、引脚、特性开关、布局config.h编译期配置本键盘用于 RP2040 Bootloader 双触复位keymaps/default/keymap.c默认键位与编码器映射keymaps/default/rules.mk默认键位编译规则启用 Encoder Map 特性readme.md官方构建、刷写与 Bootloader 说明从 keyboard.json 看硬件接线与 USB 标识QMK 采用数据驱动配置data-driven configuration硬件定义全部集中在一个 JSON 文件中即 keyboards/coban/pad3a/keyboard.json要点如下USB 标识VID/PIDusb: { pid: 0xCC3A, vid: 0xCB3A, device_version: 1.1.0 }Coban 系列键盘统一使用厂商 ID0xCB3APad 3A 的产品 ID 为0xCC3A。同一厂商 ID 下兄弟型号 Pad 12A0xC12A与 Pad 9A0xCC9A可参考 keyboards/coban/pad12a/keyboard.json 与 keyboards/coban/pad9a/keyboard.json。主控与 Bootloaderprocessor: RP2040, bootloader: rp2040Pad 3A 基于 RP2040 芯片使用 QMK 内置的rp2040Bootloader 处理程序。配合 keyboards/coban/pad3a/config.h 中的两项定义#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500URP2040_BOOTLOADER_DOUBLE_TAP_RESET启用快速双触复位功能在 500msRP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT内将设备重置两次即可在不解体、不依赖物理按键的情况下进入 Bootloader详见下文 Bootloader 章节。矩阵与编码器接线encoder: { rotary: [ {pin_a: GP5, pin_b: GP4} ] }, matrix_pins: { direct: [ [GP8, GP7, GP6] ] }2 个按键采用直连direct矩阵无二极管扫描分别接到 GP8、GP7编码器 A/B 相分别接 GP5、GP4编码器本身的下按push行为由矩阵中的第 3 个位置GP6承担因此该键盘在固件层面呈现为 1 行 3 列的矩阵[0,0]、[0,1]、[0,2]其中[0,2]即编码器轴按下。布局定义LAYOUT为三个位置依次标注为 Mute、Next、Push对应布局 JSON 中matrix字段与 x/y 坐标这也与默认键位一一对应。构建固件在完成 QMK 构建环境配置后执行以下命令即可编译默认键位沿用 readme 中的官方命令make coban/pad3a:default生成物为可烧录的固件文件如.uf2RP2040 平台产物存放在构建输出目录。若需要生成并同时刷写使用make coban/pad3a:default:flash构建命令拆解coban/pad3a键盘路径对应 keyboards/coban/pad3a/default键位目录名对应 keyboards/coban/pad3a/keymaps/default/:flash编译完成后自动调用刷写工具。同理你完全可以用自己的键位目录名替换default例如make coban/pad3a:mykeymap。进入 Bootloader 与刷写流程readme 明确说明的 Bootloader 进入方式boot button: Hold the BOOT button on the back of the PCB while plug in usb cable按住 PCB 背面的 BOOT 按钮的同时插入 USB 线具体操作步骤断开键盘与电脑的 USB 连接按住 PCB 背面的 BOOT 按钮不放插入 USB 线等待系统识别出 RP2040 的 USB 大容量存储设备即 Bootloader 模式将编译生成的.uf2固件拖入该磁盘设备会自动复位并运行新固件。此外由于 config.h 启用了RP2040_BOOTLOADER_DOUBLE_TAP_RESET还可在不按物理按键的情况下通过500ms 内连续复位两次的方式进入 Bootloader方便反复调试刷写。默认键位与编码器映射默认键位文件为 keyboards/coban/pad3a/keymaps/default/keymap.c完整内容如下#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] { [0] LAYOUT(KC_MUTE, KC_MNXT, KC_MPLY), }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] { [0] { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, }; #endif默认行为一览位置键位功能[0,0]MuteKC_MUTE系统静音[0,1]NextKC_MNXT下一曲[0,2]Push编码器按下KC_MPLY播放/暂停编码器逆时针CCWKC_VOLD音量减编码器顺时针CWKC_VOLU音量加由此可见Pad 3A 出厂即定位为媒体控制面板旋钮调节音量按下旋钮播放/暂停两个按键分别控制静音与切歌。编码器映射是如何生效的默认键位的 keymaps/default/rules.mk 只有一行ENCODER_MAP_ENABLE yes该开关启用 QMK 的Encoder Map功能使keymap.c中的encoder_map数组参与编译ENCODER_CCW_CW(KC_VOLD, KC_VOLU)宏将逆时针与顺时针两个方向分别绑定到指定键码。这是 QMK 推荐的分层式编码器映射方案旋钮行为可按层layer独立定义。自定义键位与旋钮行为Pad 3A 的自定义改造思路与其他 QMK 键盘完全一致复制默认键位目录修改后编译。修改按键与旋钮功能在 keymaps/default/keymap.c 基础上调整例如把旋钮从音量改为页面滚动、把按键改为方向键#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] { [0] LAYOUT(KC_ESC, KC_TAB, KC_ENT), }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] { [0] { ENCODER_CCW_CW(MS_WHLU, MS_WHLD) }, }; #endif上述示例中MS_WHLU/MS_WHLD为鼠标滚轮上下得益于 keyboard.json 中mousekey: true特性开关鼠标键码开箱可用可实现旋钮翻页效果KC_ESC/KC_TAB/KC_ENT则把三处交互改为常用编辑键。更多扩展方向分层布局layerskeymaps[][MATRIX_ROWS][MATRIX_COLS]支持定义多个层配合MO()、LT()等层切换键让 3 个交互点承载更多功能组合键与宏macros可将默认媒体键替换为自定义宏一键触发长文本输入或组合操作Tap-Hold 键利用LT()/MT()让同一按键实现短按 长按双职责键位目录独立管理在keymaps/下新建目录如keymaps/mine/放入自己的keymap.c与rules.mk即可用make coban/pad3a:mine单独编译互不影响。与 Coban 系列兄弟型号对照仓库中同属 Coban 系列的还有 Pad 12A 与 Pad 9A可帮助理解 Pad 3A 在系列中的定位型号按键编码器额外特性参考文件Pad 3A2 热插拔按键1GP5/GP4—keyboards/coban/pad3a/Pad 12A12 按键3×4 矩阵扫描ROW2COL1GP20/GP21—keyboards/coban/pad12a/Pad 9A8 按键直连2GP21/GP20、GP1/GP0RGB 矩阵WS2812keyboards/coban/pad9a/三者均基于 RP2040 并使用rp2040Bootloader构建命令make coban/型号:键位的用法完全一致。Pad 3A 的默认键位与 Pad 12A/9A 的默认键位同样使用KC_MPLY、KC_MUTE、KC_MNXT等媒体键见 keyboards/coban/pad12a/keymaps/default/keymap.c保持一致的产品风格。常见问题编译时提示找不到键盘请确认 QMK 仓库已更新到包含keyboards/coban/pad3a/的版本且命令中键盘路径拼写为coban/pad3a刷写后无反应确认是否已正确进入 Bootloader按住 BOOT 插线或使用双触复位并确保烧录的是.uf2固件旋钮方向反了将ENCODER_CCW_CW(KC_VOLD, KC_VOLU)中两个键码交换或修改 keyboard.json 中编码器pin_a/pin_b的接线定义编码器按下无输出编码器按下对应矩阵位置[0,2]确认键位映射中该位置未被遗漏。Coban Pad 3A 虽小但借助 QMK 的 Encoder Map、分层布局与数据驱动配置2 键 1 旋钮也能扩展出远超表面的交互能力值得作为 RP2040 小键盘的入门与把玩对象。赞分享嵌入式固件驱动开发硬件开发【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址https://gitcode.com/GitHub_Trending/qm/qmk_firmware点击查看免费下载相关推荐Coban Pad 9A 键盘固件完全指南6 键宏键盘 双 EC11 编码器的 QMK 配置与刷写Coban Pad 9A 键盘固件完全指南6 键宏键盘 双 EC11 编码器的 QMK 配置与刷写 Coban Pad 9A 是一款小巧的宏键盘板载 6嵌入式固件驱动开发硬件开发QMK 固件移植指南CHOSFOX CF81 75% 旋钮键盘的编译、刷写与自定义QMK 固件移植指南CHOSFOX CF81 75% 旋钮键盘的编译、刷写与自定义 CHOSFOX CF81 是一款支持旋钮Encoder的可自定义 75嵌入式固件驱动开发硬件开发ATSET AT6 六键小键盘QMK 固件的编译、刷写与自定义指南ATSET AT6 六键小键盘QMK 固件的编译、刷写与自定义指南 导读 ATSET AT6 是 ATSET 系列中一款基于 QMK 固件的 6 键迷你键盘嵌入式固件驱动开发硬件开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/3 1:06:46

CodeBuddy+VSCode配置指南:AI代码补全与云端协同开发实战

1. 为什么我最终把 CodeBuddy 留在了 VSCode 的侧边栏先说结论:我试过的 AI 编程插件不算少,从最早的纯补全工具到后来的对话式助手,装了卸、卸了装,最后能长期留在侧边栏的没几个。CodeBuddy 是其中一个。原因不复杂——它把&quo…

2026/11/3 3:59:37

Redisson之RBucket

^^ 《榴芒客服系统》是我们工作室开发的在线客服系统,欢迎下载试用: 《榴芒客服系统》https://blog.csdn.net/look4liming/article/details/164755808 package bright.redisson;import org.redisson.Redisson; import org.redisson.api.RBucket; import…

2026/11/4 10:50:02

Redisson之RBoundedBlockingQueue

^^ 《榴芒客服系统》是我们工作室开发的在线客服系统,欢迎下载试用: 《榴芒客服系统》https://blog.csdn.net/look4liming/article/details/164755808 package bright.redisson;import org.redisson.Redisson; import org.redisson.api.RAtomicLong; im…

2026/11/5 12:14:29

Stimulsoft Reports 2019.2.2 落地指南:老系统兼容与版本陷阱规避

简介:Stimulsoft Reports 2019.2.2 是一款面向.NET开发者的专业报表控件,适用于WinForms、ASP.NET及WPF平台,帮助开发者快速构建数据可视化报表与打印输出功能,尤其适合中高级C#工程师在企业级管理系统、BI看板或财务报表模块中集…

2026/11/5 12:14:29

H110/B250主板BIOS魔改:CPU微码、ME与刷写校验全流程

简介:面向希望为 B150、B250、H110 等老主板扩展 Intel 8/9 代 CPU 兼容性的 DIY 玩家与装机爱好者,这份 BIOS 魔改工具包提供了一套较完整的固件修改辅助材料,适合具备一定硬件基础、了解刷写风险的用户在做好备份与稳定供电的前提下研究使用…

2026/11/5 12:14:29

GD32E10x官方例程入门:从点灯到外设调试全流程

简介:这份GD32E10x系列官方例程面向使用兆易创新GD32E10x系列MCU的嵌入式开发者与初学者,基于ARM Cortex-M3内核,集合了从基础外设到通信、电机控制等场景的示例代码,可用于快速理解芯片用法并搭建工程。压缩包共935个文件&#x…

2026/11/5 12:09:24

潍坊高纯氢氧化镁生产厂家怎么选:泽隆新材料靠谱商家测评排名

潍坊高纯氢氧化镁怎么选不踩坑:从产能、品控到定制能力,一篇讲透靠谱厂家的判断标准采购高纯氢氧化镁、阻燃级氢氧化镁,最怕的不是价格高,而是批次不稳、指标浮动、交期失控。尤其是做线缆料、橡胶制品、阻燃母粒的企业&#xff0…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑