十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

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

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),仅供参考
返回列表