QMK 固件中的 1upkeyboards pi60_hse 键盘支持:基于 RP2040 的 60% 热插拔 PCB 配置与刷写实战
发布时间:2026/9/15 16:37:48 锦皓数字建站

QMK 固件中的 1upkeyboards pi60_hse 键盘支持基于 RP2040 的 60% 热插拔 PCB 配置与刷写实战【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware导读本文以 QMK Firmware 仓库中keyboards/1upkeyboards/pi60_hse键盘目录及其 readme.md 为研究对象系统梳理这款 60% 热插拔 PCB 的硬件特性、data-driven 配置结构、默认键位设计、编译刷写流程以及进入 Bootloader 的两种方式。读完本文你将掌握如何基于仓库现有实现理解该键盘的矩阵与 RGB 配置、如何从零构建并刷写固件、如何自定义键位层以及如何在仓库中追溯同类键盘的源码证据。pi60_hse 是什么pi60_hse 是 1up Keyboards 对初代 60% HSEHot Swap EditionPCB 的更新换代产品。根据官方 readme 描述它是一块支持多配列multi layout的热插拔 PCB控制器采用 Raspberry Pi RP2040 微控制器对应 keyboard.json 中的processor: RP2040、board: GENERIC_RP_RP2040。主要特性包括支持分裂 Backspacesplit backspace与分裂右 Shiftsplit right shift支持 6.25u 与 7u 两种空格配列热插拔轴座免焊接更换轴体板载 WS2812 RGB 灯带引脚 GP15vendor 驱动支持完整 RGB Matrix 动画10 层动态键位dynamic_keymap layer_count 10。键盘维护者为 [ziptyze]硬件购买渠道为 1upkeyboards 官网的 pi60hse 60 PCB 页面。仓库中 1up Keyboards 品牌下的所有键盘由同一厂商支持详见 keyboards/1upkeyboards/readme.md。data-driven 配置结构现代 QMK 键盘目录采用>usb: { device_version: 1.0.0, pid: 0x5603, vid: 0x6F75 }VID0x6F75是 1upkeyboards 的厂商 IDPID0x5603是该 PCB 的专属产品 ID同一厂商的 pi60 使用0x5604见 pi60/keyboard.json多个键盘共用同一 VID 时靠 PID 区分避免操作系统混淆设备。矩阵与二极管方向diode_direction: COL2ROW, matrix_pins: { cols: [GP9, GP8, GP6, GP5, GP14, GP20, GP13, GP12, GP11, GP16, GP17, GP10, GP19, GP18], rows: [GP4, GP3, GP2, GP1, GP0, GP21] }采用 6 行 × 14 列矩阵共 84 个矩阵交点全部映射到 RP2040 的 GPIO 引脚COL2ROW表示二极管方向为列到行这是大多数 PCB 的常规接法矩阵交点数量大于实际按键数多余交点用于支撑分裂 Backspace、分裂右 Shift 以及 6.25u/7u 空格等多种配列切换。功能特性开关features: { bootmagic: true, extrakey: true, mousekey: true, nkro: false, rgb_matrix: true }bootmagic允许在插入 USB 时按住矩阵 (0,0) 键进入 Bootloader下文详述extrakey提供媒体键、系统电源键等扩展 HID 用法mousekey启用鼠标键无鼠标也能用键盘模拟鼠标nkro: false默认使用 6KRO 模式普通 USB HID 报告如需全键无冲可在编译时覆盖rgb_matrix启用核心 RGB 矩阵框架配合ws2812段描述实际灯带。WS2812 灯带与 RGB Matrix 动画ws2812: { pin: GP15, driver: vendor }, rgb_matrix: { driver: ws2812, sleep: true, animations: { ... 40 种动画全部为 true ... }, layout: [ {flags: 2, x: 98, y: 51}, ... ] }灯带数据线接 RP2040 的 GP15使用 vendorRP2040 PIO驱动sleep: true表示键盘进入睡眠时自动关闭 RGB 以省电animations段一次性开启了 alphas_mods、gradient、rainbow、reactive、splash、digital_rain、typing_heatmap 等 40 余种官方动画键位层中可通过RM_*系列键码直接切换layout数组用x/y坐标描述 16 颗 LED 在键位图上的物理位置flags用于标记可参与特定效果的 LED。动态键位与锁定支持dynamic_keymap: { layer_count: 10 }, qmk: { locking: { enabled: true, resync: true } }动态键位支持在运行期配合 VIA / Vial 等工具改写最多 10 层键位无需重新编译固件locking开启锁定键Caps Lock 等的指示与重同步逻辑保证 LED 状态与真实锁定状态一致。配列60_ansi_split_bs_rshiftcommunity_layouts声明为60_ansi_split_bs_rshift该社区配列的定义位于 layouts/community/60_ansi_split_bs_rshift/readme.md对应的默认社区键位实现可参考 layouts/default/60_ansi_split_bs_rshift/default_60_ansi_split_bs_rshift/keymap.c。LAYOUT_60_ansi_split_bs_rshift在keyboard.json的layouts段中定义了 61 个物理键位含分裂 Backspace 的额外一列关键特征第一行末尾为BS~两个 1u 键分裂 Backspace第三行右侧为 1.75u 右 Shift 1uFN分裂右 Shift最底行为 6.25u 空格w: 6.25该配列下空格占用matrix[5,5]每项matrix: [row, col]精确对应上面的 6×14 矩阵例如 Esc 对应[0,0]Enter 对应[2,13]宽度 2.25u。关于 7u 空格readme 声称支持 6.25u 与 7u 两种底排。仓库内该 keyboard.json 只定义了 6.25u 的LAYOUT_60_ansi_split_bs_rshift7u 底排配列并未出现在当前仓库的layouts定义中。因此本文仅以仓库证据确认 6.25u 配列的完整定义7u 支持属于 PCB 硬件层面的能力描述编译期如需使用需在本地另建配列映射。默认键位解读默认键位位于 keymaps/default/keymap.c包含 3 层第 0 层默认层标准 ANSI 60% 键位分裂 BackspaceKC_BSPCKC_GRV、分裂右 ShiftKC_RSFTMO(1)底排为 1.25u Ctrl / Gui / Alt 6.25u 空格 1.25u Alt / Gui /MO(1)/ Ctrl。右下角两个键均为MO(1)可左右手各持一个功能层入口。第 1 层功能层MO(1)按住触发数字行变为 F1~F12方向键分布在W(上) /A(左) /S(下) /D(右) 附近——具体为KC_UP在W、KC_LEFT/KC_DOWN/KC_RGHT在A/S/D提供KC_PSCR/KC_SCRL/KC_PAUS截图/滚动锁定/暂停、KC_INS/KC_HOME/KC_PGUP、KC_END/KC_PGDN等导航键音量控制KC_VOLU/KC_VOLD/KC_MUTE右下角MO(2)作为进入第 2 层的入口。第 2 层RGB 控制层MO(2)按住触发集中了 RGB Matrix 控制键码定义于 quantum/keycodes.h 附近的QK_RGB_MATRIX_*系列键码功能RM_TOGG开关 RGB 矩阵RM_NEXT切换到下一个动画效果RM_PREV切换到上一个动画效果RM_HUEU/RM_HUED色相 / 色相 -RM_SATU/RM_SATD饱和度 / 饱和度 -RM_VALU/RM_VALD亮度 / 亮度 -RM_SPDU/RM_SPDD动画速度 / 动画速度 -RGB_M_P呼吸breathing效果RGB_M_B/RGB_M_R/RGB_M_SW/RGB_M_SN/RGB_M_K/RGB_M_X/RGB_M_G不同动画模式快捷切换从源码结构看这些RM_*键码最终在process_rgb_matrix.c中通过rgblight/rgb_matrix状态机转换成对灯带驱动本键盘为 WS2812 vendor 驱动的写入操作因此无需记忆具体实现即可在键位层直接调用。编译固件在完成 QMK 构建环境搭建后官方 Newbs 指南涵盖环境与首个固件流程为 pi60_hse 构建默认键位固件make 1upkeyboards/pi60_hse:default生成的固件位于构建输出目录build/1upkeyboards/pi60_hse/下的*.uf2文件RP2040 平台产物格式为 UF2。自定义键位时在用户空间或本地keymaps/name/keymap.c中以LAYOUT_60_ansi_split_bs_rshift宏编写键位数组然后make 1upkeyboards/pi60_hse:name刷写固件连接键盘后直接编译并刷写make 1upkeyboards/pi60_hse:default:flashRP2040 的刷写流程是先将设备以 BOOTSEL 模式挂载为 USB 大容量存储盘然后把 UF2 固件文件拖入即可。QMK 的:flash目标会自动完成这一步进入 bootloader 后写入 UF2。进入 Bootloader 的两种方式readme 明确给出两种进入 Bootloader 的方法Bootmagic reset键盘断电状态下按住矩阵 (0,0) 位置对应的键通常是左上角 Esc 键再插入 USB。由于keyboard.json中bootmagic: true已启用固件启动时会检测该键是否被按住从而直接进入刷写模式。Bootloader 按钮按住 PCB 背面的实体按钮BOOTSEL 按钮再插入 USB。这是 RP2040 芯片硬件级进入 bootloader 的方式不依赖固件状态即使固件损坏也能用。两种方式均会将设备置于 RP2040 的 BOOTSEL 模式之后按上文流程拖入 UF2 固件完成刷写。进阶建议与源码追溯配列调整分裂 Backspace、分裂右 Shift 都已通过LAYOUT_60_ansi_split_bs_rshift内建若使用普通 Backspace / 长右 Shift可在keyboard.json中基于现有 layout 修改键位项或在本地新增LAYOUT_60_ansi之类配列后重新编译。更多底层细节RP2040 平台支持、BOOTSEL 刷写与早期初始化参见 platformdev_rp2040.mdRGB Matrix 全量动画与配置参数参见 feature_rgb_matrix.md键码总表参见 keycodes.md。同厂商对照pi60keyboards/1upkeyboards/pi60与 pi60_hse 同属 RP2040 平台的 60% 系列pid 与矩阵引脚不同可对照阅读以理解 QMK contenteditable="false">【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。