QMK 键盘移植指南:为 Aplx6 (2x3) 六键 MediaPad 编写与定制固件
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
导读:本文以 QMK Firmware 仓库中 Aplx6 rev1 键盘文档 为骨架,围绕这款由 Aplyard 设计的 2x3 六键媒体小键盘(MediaPad),系统讲解其硬件规格、默认键位与双层映射、编译烧录流程,以及 WS2812 RGB 底灯的接线与固件启用方法。读完本文,你将掌握如何在 QMK 中为一款小型 Pro Micro 键盘编写键位、启用媒体键与 RGB 功能,并能够据此修改或移植到自己的定制小键盘上。
1. 键盘概览:一块为音乐与浏览器快捷键而生的 6 键小键盘
Aplx6 是 Aplyard 推出的(2x3)六键 MediaPad,设计初衷是承载音乐播放与浏览器相关的快捷操作。它采用三明治(sandwich)结构组装:使用一块空白 PCB,搭配 M2.5 螺丝与垫片固定,支持 MX 兼容轴或 Alps 兼容轴,每个按键使用一颗 1N4148 二极管构成矩阵。
在 QMK 仓库中,Aplx6 位于 keyboards/aplyard/aplx6 目录下,包含两个硬件版本:
- rev1:纯按键版本,6 键 + 双层键位映射(本文主体);
- rev2:升级版,额外加入旋转编码器(带按压键)、OLED 显示屏与更多功能层。
本文聚焦 rev1,其维护者为 Aplyard,硬件支持范围包括 Aplx6 PCB 与 Pro Micro(ATmega32U4)主控。
2. 硬件规格与矩阵定义(源码实证)
Aplx6 rev1 的硬件配置全部以数据驱动(data-driven)方式定义在 keyboards/aplyard/aplx6/rev1/keyboard.json 中,内容包括:
| 配置项 | 值 | 说明 |
|---|---|---|
| USB PID | 0x0030 | 设备版本0.0.1 |
| USB VID | 0xE0E0 | 定义于 keyboards/aplyard/aplx6/info.json,厂商名为 Aplyard |
| 矩阵列引脚 | F7、B6、F4 | 3 列 |
| 矩阵行引脚 | E6、B3 | 2 行 |
| 二极管方向 | COL2ROW | 二极管从列流向行 |
| 主控 | promicro | 即 ATmega32U4 开发板 |
| 功能特性 | extrakey、mousekey、nkro、unicode | 默认启用;bootmagic关闭 |
矩阵引脚组合出一个 2 行 × 3 列、共 6 键的布局LAYOUT,其物理坐标定义如下(x 从左到右 0→2,y 从上到下 0→1):
[0,0] [0,1] [0,2] [1,0] [1,1] [1,2]3. 默认键位图:媒体控制 + 功能层
默认键位图位于 keyboards/aplyard/aplx6/rev1/keymaps/default/keymap.c,定义了_MAIN与_FN两个层。
_MAIN默认层(媒体控制):
| 位置 | 按键 | 功能 |
|---|---|---|
| [0,0] | KC_MPLY | 播放/暂停 |
| [0,1] | KC_VOLU | 音量加 |
| [0,2] | MO(1) | 按住切换到功能层 |
| [1,0] | KC_MPRV | 上一曲 |
| [1,1] | KC_VOLD | 音量减 |
| [1,2] | KC_MNXT | 下一曲 |
_FN功能层(按住MO(1)时生效):
| 位置 | 按键 | 功能 |
|---|---|---|
| [0,0] | KC_CALC | 打开计算器 |
| [0,1] | KC_PGUP | 向上翻页 |
| [0,2] | _______(透明) | 继承默认层 |
| [1,0] | KC_MYCM | 我的电脑 |
| [1,1] | KC_PGDN | 向下翻页 |
| [1,2] | QK_BOOT | 进入 Bootloader(刷机用) |
代码中通过MO(1)实现瞬态层切换——按住即进入功能层、松开即返回,非常适合在小键盘上扩展按键数。QK_BOOT放置在功能层右下角,无需拆壳即可随时进入刷机模式,是开发调试时的实用设计。
4. 编译与烧录
搭建好 QMK 构建环境后,编译 rev1 默认键位固件的命令为:
make aplyard/aplx6/rev1:default如需为 rev1 编写自定义键位,可在keyboards/aplyard/aplx6/rev1/keymaps/下新建目录(如keymaps/mykeymap/),放入自己的keymap.c,然后执行:
make aplyard/aplx6/rev1:mykeymap由于 rev1 的keyboard.json中bootmagic为false,且QK_BOOT已映射到功能层,推荐通过"按住MO(1)+ 按下QK_BOOT所在键"的方式进入 Bootloader 后再烧录固件。
5. RGB Underglow(WS2812)接线与固件启用
原文档特别强调了 WS2812 RGB 底灯的配置方法。接线要点:将 WS2812 灯带的数据线(DIN)接到 Pro Micro 上任意未使用的引脚即可。
结合 rev1 的 keyboard.json 可知,矩阵已占用F7、B6、F4、E6、B3五个引脚。从 Pro Micro 的引脚分布可以推断,D0–D4、D6、D7、B1、B2、B4、B5、C6、C7、F5、F6等引脚均可用于 RGB 数据线(请对照 Pro Micro pinout 确认实际可用性)。
固件启用方式:原文档撰写时使用传统 QMK 目录结构(config.h+rules.mk),启用方式为:
# rules.mk RGBLIGHT_ENABLE = yes// config.h #define RGB_DI_PIN D1 // 数据线实际所接引脚 #define RGBLED_NUM 6 // 灯珠数量 #define RGBLIGHT_EFFECT_RAINBOW_MOOD // 可选动画效果需要说明的是:当前仓库中 rev1 已迁移为数据驱动配置,其 keyboard.json 的features列表默认未包含rgblight,因此默认固件不含 RGB 支持。若需要 RGB 底灯,可参照 docs/features/rgblight.md 在对应配置中启用rgblight并声明rgblight.pin与灯珠数量等参数,也可以在键位目录内通过rules.mk单独启用(RGBLIGHT_ENABLE = yes)并结合config.h定义RGB_DI_PIN等宏。
关于引脚分配与模式扩展,原文档还建议:已使用的引脚可在keyboard.json中确认(见上文矩阵定义),所有 Pro Micro 引脚均可查阅官方 pinout 文档(含 +2 引脚改造方案)。
6. 从 MediaPad 到更多玩法:同系列 rev2 的扩展方向
作为延伸参考,同一系列的 rev2 展示了在 6 键布局之上做加法的方式,其 keyboard.json 声明了:
- 旋转编码器:
F5/F4两脚,功能层相关回调实现在 rev2 默认键位 的encoder_update_user()中,可根据当前层输出音量、左右翻页或亮度键; - OLED 显示屏:
oled特性启用,oled_task_user()中按当前层切换不同的 logo 位图; - 更多层:
_MEDIA、_DOC、_POWER三层通过TO(1)/TO(2)绝对切换,并提供LCTL(KC_C)等组合键(剪切/复制/粘贴)。
rev2 的键位实现还演示了 QMK 中常用的层内tap_code()、get_highest_layer()等 API 用法,可作为将小键盘扩展为"媒体 + 文档 + 系统控制"多合一设备的参考模板。
7. 硬件设计背景与工具链
原文档补充了 Aplx6 的硬件设计信息:整个项目使用 KiCad 完成原理图与 PCB 设计,并引用了以下开源组件库与工具链:
keebs.pretty与keyboard_parts.pretty:键盘 PCB 常用封装与元件库;- ProMicro KiCad:Pro Micro 主控封装库;
- 布局阶段可使用 Keyboard Layout Editor 规划配列,用 Keyboard Plate & Case Builder 生成定位板与外壳,也可借助 QMK Online Configurator 在线生成固件。
这些信息对想要复刻或自行设计类似 MediaPad 的开发者具有直接的参考价值——Aplx6 的三明治结构(空白 PCB + M2.5 螺丝/垫片)本身就是一种低门槛的键盘自制方案。
8. 小结
Aplx6 rev1 是 QMK 生态中典型的"小而美"定制键盘:2×3 矩阵 + Pro Micro 主控,默认键位覆盖播放/暂停、音量、切歌等媒体操作,并通过MO(1)功能层扩展出计算器、翻页与 Bootloader 入口;WS2812 RGB 底灯则可在任意空闲引脚上自行接入并按需启用。本文涉及的 keyboard.json、默认键位 与 rev2 扩展实现 均可在仓库中直接查阅,作为你编写或移植自己 MediaPad 固件的起点。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考