QMK 固件实战:Ishi 80 Mk 0(mk0_avr)SouthPaw 数字区键盘的编译、刷写与键位解析
QMK 固件实战Ishi 80 Mk 0mk0_avrSouthPaw 数字区键盘的编译、刷写与键位解析【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware本指南围绕 QMK Firmware 仓库中keyboards/argo_works/ishi/80/mk0_avr键盘目录展开系统讲解这款 60% SouthPaw 镜像数字区键盘的固件结构、硬件引脚配置、默认键位方案以及从编译、刷写到进入 Bootloader 的完整实操流程。读完本文你将掌握如何为基于 ATmega32U4Pro Micro 封装子板的键盘快速构建并刷入 QMK 固件也能读懂keyboard.json数据驱动配置与键位映射之间的对应关系。键盘与固件概览Ishi 80 是 Argo Works 推出的一款 60% 布局键盘其显著特征是在主键区左侧集成了一个SouthPaw左置镜像数字小键盘数字区整体位于键盘左侧且键位排列相对标准小键盘做了镜像处理以适配左手操作习惯。整体布局为 60% 主键区 左侧数字区宽度接近 80 键位键盘。当前目录keyboards/argo_works/ishi/80/mk0_avr/是它的ATmega32U4 基础版固件面向标准 Pro Micro 封装子板。原文档特别强调该固件面向ATmega32U4 主控、标准 Pro Micro 引脚兼容封装的子板不支持 Encoder旋钮编码器与 OLED 显示屏功能——这两项能力由同目录下的另一套固件mk0_avr_extra提供详见文末对比。如果你使用的是 Elite-C 这类具备底部额外 5 个引脚的子板请改用 mk0_avr_extra 固件。构建环境与编译命令在编译前需先完成 QMK 构建环境搭建。若尚未配置环境请参照仓库文档构建环境搭建指南Make 命令详解全新入门用户建议先阅读 QMK 新手完整指南。环境就绪后编译默认键位固件make argo_works/ishi/80/mk0_avr:default编译完成后直接刷写编译 进入刷写流程make argo_works/ishi/80/mk0_avr:default:flash命令遵循 QMK 标准语法make keyboard:keymap[:target]其中argo_works/ishi/80/mk0_avr为键盘路径对应仓库内实际目录结构default为键位名对应 keymaps/default/keymap.c:flash追加目标会在构建成功后自动调用与development_board匹配的刷写工具Pro Micro 通常走 Caterina 引导程序具体取决于子板。硬件配置解析keyboard.json该键盘采用 QMK 的数据驱动配置方式全部硬件信息集中在 keyboard.json 中无需额外的config.h与rules.mk。核心字段如下配置项取值说明keyboard_nameIshi 80 Mk 0键盘名称用于qmk info等工具展示manufacturerArgo Works制造商标识maintainerjasonj2232维护者键盘作者 Jason Devadossdevelopment_boardpromicro默认子板为 Pro Micro决定引脚定义与刷写协议diode_directionCOL2ROW二极管方向列扫描、行读取usb.vid / usb.pid0x4157/0x4930USB 厂商 ID 与产品 IDusb.device_version0.0.1设备版本号bootmagic.matrix[1, 0]Bootmagic 触发键的矩阵坐标featuresbootmagic/extrakey/mousekey/nkro启用的核心功能矩阵引脚matrix_pins: { cols: [D3, F4, F5, F6, F7, D7, C6, D4, D2], rows: [B3, B1, B6, B2, D1, D0, B5, B4, E6] }矩阵规模为9 行 × 9 列 81 个矩阵节点。配合COL2ROW方向QMK 在每次扫描中逐列置低电平、逐行读回状态底层实现位于quantum/matrix.c的matrix_scan流程AVR 平台通过 GPIO 读写完成。bootmagic.matrix指向[1, 0]即第 1 行第 0 列这正好对应默认键位中左上角的KC_PMNS数字区负号键而非通常的主区 Esc 键——这也是下文中进入 Bootloader 方式一需要按住该键的原因。默认启用的功能features中启用了四类功能bootmagic开机时读取 Bootmagic 键支持按住特定键上电进入 Bootloader 等魔术操作extrakey提供系统控制/媒体控制键码如默认键位中用到的KC_AUDIO_MUTEmousekey鼠标键功能nkroN 键无冲USB 全键无冲报表由子板与操作系统共同支持时生效。默认键位方案解析默认键位定义在 keymaps/default/keymap.c包含两个自定义层enum custom_layers { BL, // 基础层Base Layer UL, // 上层Upper Layer };基础层 BL左数字区 60% 主区基础层用LAYOUT宏填充该宏由keyboard.json的layouts.LAYOUT定义自动生成。左侧 4 列是镜像数字区第 0 行KC_PMNS、KC_PAST、KC_PSLS、KC_NUM-、*、/、Num Lock第 1 行KC_PPLS、KC_P9、KC_P8、KC_P7与 9/8/7第 2 行KC_P6、KC_P5、KC_P46/5/4第 3 行KC_PENT、KC_P3、KC_P2、KC_P1Enter 与 3/2/1第 4 行KC_PDOT、KC_P0.与 0。注意数字区行序与标准小键盘相反最上是 7/8/9这里是镜像这正是 SouthPaw 镜像数字区的布局意图。主键区为标准 60% 键位KC_ESC 数字行 KC_Q..KC_BSLS字母区 修饰键与KC_SPC空格。其中值得关注的是空格行左侧的LT(1, KC_LALT)——这是一个Layer-Tap 键单击输出左 Alt长按则切换到第 1 层UL与 QMK 的 Tap-Hold 机制 完全一致。空格行右端还放置了KC_AUDIO_MUTE静音依赖extrakey功能。上层 UL功能键与媒体键上层UL通过LT(1, KC_LALT)长按进入主要内容数字行变为KC_GRAVEKC_F1~KC_F12KC_DEL数字区第三行变为KC_PSCR/KC_SCRL/KC_PAUSPrint Screen / Scroll Lock / Pause右下方向键KC_UP以及KC_LEFT、KC_DOWN右下角KC_MPLY播放/暂停。其余位置用KC_TRNS透传继承基础层键位。方向键分散在 UL 层右下方属于常见的功能层设计。三种方式进入 Bootloader原文档明确列出三种进入刷写模式的方法适用于所有基于 Pro Micro 封装的子板Bootmagic 复位按住矩阵(0,0)位置对应的键本键盘即[1, 0]默认键位中最左上角的数字区KC_PMNS键再插入 USB。因为bootmagic.matrix配置为[1, 0]触发键是数字区的负号键而非主区 Esc物理复位按钮短按 PCB 背面的复位按键部分子板没有按键需要用镊子短接对应的复位焊盘键位中的 Boot 键码若键位映射中包含QK_BOOT直接按下该键即可。默认键位中未放置QK_BOOT如需此方式可在自己的 keymap 中添加。与 mk0_avr_extra 固件的差异同目录下还存在 mk0_avr_extra 固件两者共用相同的LAYOUT与 USB 标识但对子板要求与功能支持不同对比项mk0_avr本文mk0_avr_extra目标子板标准 Pro Micro 封装Elite-C 等底部多 5 个引脚的 ATmega32U4 子板development_boardpromicroelite_c并声明pin_compatible: elite_cEncoder 支持不支持支持encoder特性旋钮接B7/D5OLED 支持不支持支持oledwpm特性编译命令make argo_works/ishi/80/mk0_avr:defaultmake argo_works/ishi/80/mk0_avr_extra:default从源码看mk0_avr_extra在 mk0_avr_extra.c 中通过oled_task_kb渲染 Argo Works 品牌 logo并在 默认键位 中通过ENCODER_MAP_ENABLE提供encoder_map基础层旋钮控制音量KC_VOLD/KC_VOLU上层控制屏幕亮度KC_BRID/KC_BRIU相关开关位于其 rules.mk。对比可见mk0_avr是面向最小子板的精简固件mk0_avr_extra则是完整功能版选择哪套取决于你的子板引脚。小结通过本文可以确认Ishi 80 Mk 0mk0_avr固件由数据驱动的 keyboard.json 定义 9×9 矩阵与 Bootmagic 触发键默认键位以LT(1, KC_LALT)实现双层切换编译刷写命令为make argo_works/ishi/80/mk0_avr:default[:flash]并可通过 Bootmagic、复位按键或QK_BOOT三种方式进入刷写模式。若你手中的子板为 Elite-C 封装且需要旋钮与 OLED请切换到mk0_avr_extra固件继续开发。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →