资讯详情

QMK EB46:一款 40% + 宏键自定义键盘的完整构建与键位解析

发布时间:2026/9/16 17:45:40

500+
企业客户服务经验
120+
行业领域内容覆盖
3000+
原创页面设计沉淀
98%
客户满意度

QMK EB46:一款 40% + 宏键自定义键盘的完整构建与键位解析

QMK EB46一款 40% 宏键自定义键盘的完整构建与键位解析【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmwareEB46 是由 Elliot PowellGitHub: e11i0t23设计的 40% 配列键盘主打紧凑布局并保留一排功能宏键使用 ATmega32U4 单片机运行 QMK 固件。本文以仓库中该键盘的官方说明 readme.md 为主体结合其数据驱动配置 keyboard.json 和默认键位 keymap.c带你完成从固件编译、硬件矩阵理解到三层键位设计的完整实战读完后可独立构建 EB46 固件、读懂其矩阵接线与按键行为并能按 QMK 规范修改出自己的键位布局。一、键盘定位与基本信息官方说明给出的核心信息如下源自 readme.md项目内容键盘名称EB46配列定位40% plus macro keys40% 配列 一排宏键键盘维护者Elliot PowellGitHub e11i0t23 / Reddit u/e11i0t23硬件EB46 专用 PCB主控芯片ATmega32U4AVR 家族见 keyboard.json 中processor字段烧录方式atmel-dfu引导加载器USB DFU 模式40% plus macro keys 的含义是键盘保留了传统 60% 键盘的功能键区思路数字、方向键、F 键、音量等但把这些功能收纳进 40% 的主区之下通过 QMK 的层Layer机制调用从而把省下的空间留给自定义宏键。这一设计完全依赖 QMK 的多层键位能力相关机制可参阅仓库文档 feature_layers.md。二、编译固件一条命令构建 EB46EB46 属于 QMK 的数据驱动键盘——目录中没有rules.mk、config.h或board.h所有硬件定义全部来自 keyboard.json构建时由 QMK CLI 自动生成这一机制的完整原理见 data_driven_config.md 和 reference_info_json.md。按官方说明配置好构建环境后执行make akb/eb46:default该命令的语义是为键盘akb/eb46编译default键位即keymaps/default/keymap.c产物为可直接用 DFU 方式烧录的.hex文件。构建环境方面官方 readme 指向 QMK 文档的 Build Tools 与 Make Guide 两个章节在当前仓库中对应 getting_started_introduction.md、getting_started_make_guide.md 以及 newbs_building_firmware.md从零入门的完整流程。烧录流程可参考 flashing.mdATmega32U4 atmel-dfu 组合意味着你可以通过 BootmagicESCESC或 QK_BOOT 键让键盘进入 DFU 状态再用make akb/eb46:default:flash或dfu-util完成烧写。三、数据驱动配置解析EB46 的 hardware 档案keyboard.json 是 EB46 唯一的硬件真源single source of truth逐项解读如下1. USB 描述符usb: { vid: 0x4646, pid: 0xFEED, device_version: 0.0.1 }vidVendor ID为0x4646属于 QMK 官方保留的共享 VIDQMK 厂商标识的 ASCII 编码pid为0xFEED设备版本0.0.1表明这是一个初始阶段的设计readme 中也标注了硬件 Coming Soon。在 Linux 下可用lsusb看到464f:feed来确认固件正在运行这也是排查键盘没响应的第一步。2. 按键矩阵与二极管方向matrix_pins: { cols: [B0, B1, B2, B3, B7, D0, D1, D2, D3, D5, D4, D6, C6], rows: [B5, B4, D7, B6] }, diode_direction: COL2ROWEB46 的矩阵为4 行 × 13 列 52 个矩阵位实际使用 46 个按键与名称 EB46 呼应。引脚名如B0、D7是 AVR 的端口-引脚记法PB0、PD7等。diode_direction: COL2ROW表示二极管从列线接向行列线即行列线高电平驱动、行/列线采样方向按 col→row 导通。这与矩阵扫描方向一致决定了固件中MATRIX_ROWS4、MATRIX_COLS13的生成结果。矩阵的物理含义第一列cols 的 B0~C6 中每行对应一位是左侧功能宏键列其余列覆盖主键区。若日后自己焊线需保持与 JSON 中引脚顺序严格一致否则按键会错位。3. 功能开关featuresfeatures: { bootmagic: true, command: true, console: true, extrakey: true, mousekey: false, nkro: false }各开关对 EB46 的实际影响功能开启/关闭影响bootmagic开上电连按 ESC 可强制进入 DFU救砖必备原理见 feature_eeprom.mdcommand开支持*/#魔法键命令重映射、EEPROM 操作等console开可打开 USB 控制台调试配合qk_debugextrakey开提供 F 键、方向键、音量等扩展键支持——EB46 层 1/层 2 大量使用mousekey关不编译鼠标模拟代码节省 AVR 宝贵的 flash 空间nkro关不做 N-Key Rollover 修正滚线方案未启用这些布尔值会被构建系统映射为编译宏如EXTRAKEY_ENABLE、CONSOLE_ENABLE并反映进最终固件体积。AVR 芯片资源紧张ATmega32U4 仅 256KB flash / 32KB SRAM按需关闭不用的功能如本键盘关闭 mousekey 和 nkro是 40% 键盘的典型做法背景可参阅 squeezing_avr.md。4. 布局几何layoutsLAYOUT宏定义了 46 个键位在统一坐标系下的位置单位为键宽第 0 行ESC占整列 13 个键位第 1 行Tab键宽 1.25、右侧Enter键宽 1.75第 2 行LSFT宽 1.75、RSFT宽 1.25第 3 行最底层LCTL1.25、LALT1.25、SPC2.25、中间键 2.75、MO(2)1.25 等异形宽度合计约 13.5u 宽。这套几何信息同时服务于两件事一是LAYOUT(...)宏按行优先顺序把参数绑定到具体矩阵位二是 QMK 前端如 VIA 类工具渲染键位图。你在keymaps/default/keymap.c中看到的参数排列顺序正与 JSON 中matrix字段的[row, col]索引一致。四、默认键位设计三层结构逐层拆解默认键位 keymap.c 是 GPLv2 许可文件头注明 Copyright 2019 Elliot Powell包含 3 个层。整体结构const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] { [0] LAYOUT( /* Base */ ... ), [1] LAYOUT( /* Base */ ... ), [2] LAYOUT( /* Base */ ... ), };层 0Base 主层主层是40% 宏键列形态最左侧一列KC_F5/KC_PGUP/KC_PGDN/KC_ESC就是 readme 所指的macro keys预留区——默认被赋予了辅助功能键等待用户改写为宏KC_F5, QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_PGUP, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_ESC, LCTL_T(KC_LBRC), KC_LGUI, KC_LALT, KC_SPC, LT(1, KC_SPC), KC_RALT, MO(2), RCTL_T(KC_RBRC)几个关键设计点QK_GESC放在 Esc 位这是 QMK 的优雅 ESC键码定义见 quantum_keycodes.h 一族头文件按住时行为等同普通 Esc但如果期间按下了其他键它会自动释放修饰键状态避免 Esc 与修饰键组合造成的输入法/窗口焦点意外——是自定义布局的推荐用法。LCTL_T(KC_LBRC)/RCTL_T(KC_RBRC)典型的 tap/hold 键码——轻敲输出[或]长按变为左/右 Ctrl。仓库中该宏即MT(MOD_LCTL, kc)见 quantum_keycodes.h把 Ctrl 隐藏在两侧 1.25u 的方括号键下。LT(1, KC_SPC)与MO(2)中间偏右的 2.75u 大键是 Layer Tap——轻敲是空格长按进入层 1数字/方向/音量层其右侧 1.25u 键是纯层切换MO(2)无条件进入层 2F 键层。两种层码的区别LT 有轻敲输出、MO 无详见 feature_layers.md 与 mod_tap.md。主层还保留了KC_LGUI、KC_LALT/KC_RALT三个系统修饰键符合 Windows 桌面习惯。层 1数字与导航层由 Base 层的LT(1, KC_SPC)长按进入专门收纳 40% 布局中最稀缺的键_______, _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______1~0数字行复用主区字母键位方向键四方向落在H J K L附近音量三键VOLD/MUTE/VOLU与/-落在底排。层 2F 键层含烧录键由MO(2)无条件切换进入_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_NUHS, _______, _______, _______, KC_NUBS, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT )完整 F1~F12 一行排开右侧补充了;\/等符号及KC_NUHS/KC_NUBSNum Lock/Caps Lock 切换右下角放置QK_BOOT连按两次该键即可重启进 DFU 烧录模式这是没有物理复位键时最重要的自救入口bootmagic 之外的第二条烧录路径。五、修改键位与重新构建修改 EB46 键位的完整工作流复制键位以keymaps/default/为模板新建keymaps/你的键位名/keymap.cQMK 支持同键盘多键位构建时用make akb/eb46:键位名区分编辑LAYOUT参数按行优先顺序替换键码tap/hold 用MT(MOD_xxx, kc)或XXX_T(kc)语法层切换用MO(n)/LT(n, kc)键码全集见 keycodes.md重新编译烧录make akb/eb46:键位名 make akb/eb46:键位名:flash # 或 make akb/eb46:键位名:dfu由于 EB46 的矩阵引脚、二极管方向均由 keyboard.json 声明普通用户无需接触rules.mk/config.h只有改变硬件换 MCU、改矩阵才需要修改该 JSON其字段规范见 reference_info_json.md。六、小结EB46 展示了 QMK 数据驱动配置体系下最精简的键盘接入形态一份 keyboard.json 声明 4×13 COL2ROW 矩阵、ATmega32U4 atmel-dfu 烧录链路与 5 个功能开关一份 keymap.c 用宏键列 双功能层承载 40% 配列的全部功能。一条make akb/eb46:default即可构建固件而QK_GESC、LCTL_T、LT/MO、QK_BOOT这些键码的配合正是把40% plus macro keys从硬件口号变成日常可用体验的关键。若需深入了解多层键位与 tap/hold 时序可继续阅读 feature_layers.md 与 mod_tap.md。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
热门专题

继续阅读更多专题内容

围绕企业服务、数字化转型与官网运营的常青话题,持续输出深度内容

企业官网建设指南 企业托管服务模式 财税政策与解读 企业数字化转型 官网SEO与获客 网站安全与运维
配套服务

读完这篇文章,了解更多服务

从整站搭建到SEO布局,17项核心服务助您打造高转化的企业官网

01

企业托管整站搭建

从信息架构到栏目预留,搭建可生长的企业站点骨架,每个页面独立原创设计。...

了解详情
02

规整可信网页设计

雪地靴温暖风原创设计,金属铜线条贯穿全页,拒绝通用模板与AI流水线。...

了解详情
03

企业服务SEO布局

关键词体系与语义化结构,从建站源头为搜索排名而生。...

了解详情
04

业务预约咨询表单

多场景表单与线索收集体系,把访问流量转化为可追踪的销售线索。...

了解详情
05

企业服务站点运维

安全巡检、数据备份与内容更新支持,全年守护网站稳定运行。...

了解详情
06

全终端商务适配

电脑、平板、手机一致呈现,移动端体验与转化同样出色。...

了解详情
需要专业建议?

让专业顾问为您解读行业趋势

关于企业官网建设、SEO获客与数字化转型的任何疑问,欢迎一对一咨询我们的专业顾问。