什么是 Openterface KeyMod

Openterface KeyMod 是 TechXArtisan Studio 推出的 100% 开源 USB + 蓝牙 HID 模拟器。它的核心功能是将你的手机变成一台便携式键盘和触控板——只需将 KeyMod 插入目标设备的 USB 口,通过手机 App(KeyCmd)即可控制目标电脑、广告机、智能电视或自助终端。

与市面上依赖专有固件的商业 KVM 切换器不同,KeyMod 从硬件原理图、PCB 设计、固件源码到手机 App 全部开源。项目遵循 AGPL-3.0 软件许可证和 CERN-OHL-S-2.0 硬件开源许可证,并获得了 OSHWA 开源硬件认证(UID CN000015)。

KeyMod 隶属于 Openterface 产品线,该产品线还包括:

产品 定位 开源仓库 Stars
Mini-KVM 便携式 BIOS 级 KVM 控制 299(硬件)+ 162(桌面端)
KVM-GO 增强版便携 KVM 21(硬件)
KeyMod Series USB + BLE HID 键盘/触控板 本文主题
uConsole KVM 扩展 uConsole 便携 KVM 扩展板 5(硬件)

产品形态:Mini 与 Plus 两个版本

KeyMod 提供两个硬件版本,共享相同的核心功能:

特性 KeyMod Mini KeyMod Plus
USB 接口 USB-C 公头 USB-A 公头 + USB-C 母口
适用场景 现代设备(USB-C) 传统设备 + 透传充电
蓝牙 BLE HID BLE HID
手机连接 USB / BLE USB / BLE
尺寸 超紧凑 EDC 略大,带透传口

连接流程为:手机(KeyCmd App)→ KeyMod(USB 或蓝牙)→ 目标设备。目标设备无需安装任何软件——KeyMod 是真正的硬件级 HID 模拟。

核心硬件方案:CH32V208

KeyMod 的核心主控芯片是 WCH CH32V208,这是一款基于 RISC-V 架构的国产微控制器。CH32V208 内置 CH9329 兼容协议,可直接实现 USB HID 键盘/鼠标模拟,无需在目标设备上安装驱动。

硬件设计亮点

┌─────────────────────────────────────────────┐
│                 KeyMod PCB                   │
│                                              │
│  ┌──────────┐    ┌──────────┐               │
│  │ CH32V208 │    │ BLE 模块 │               │
│  │ RISC-V   │◄──►│ 蓝牙 5.x │               │
│  │ MCU      │    │          │               │
│  └────┬─────┘    └──────────┘               │
│       │                                      │
│  ┌────┴─────┐                               │
│  │ USB 接口 │ → 连接目标设备(HID 键盘/鼠标)│
│  └──────────┘                               │
│                                              │
│  ┌──────────┐                               │
│  │ 可编程   │  可编程按钮(自定义宏/切换)    │
│  │ 按钮     │                               │
│  └──────────┘                               │
└─────────────────────────────────────────────┘

关键硬件选型:

  • 主控芯片:CH32V208(RISC-V,CH9329 兼容协议)
  • 无线连接:BLE 蓝牙(HID 键盘/鼠标)
  • USB 接口:Mini 版 USB-C 公头 / Plus 版 USB-A 公头 + USB-C 母口
  • 可编程按钮:支持自定义宏命令和配置切换
  • 认证:CE、UKCA、RoHS、WEEE

为什么选择 CH32V208?

CH32V208 相比常见的 RP2040 或 ESP32 方案,有几个独特优势:

  1. 原生 CH9329 协议兼容:无需从零实现 USB HID 描述符,开箱即用
  2. RISC-V 架构:开源指令集,与项目的开源理念一致
  3. 低成本:国产芯片,BOM 成本可控
  4. 低功耗:适合便携 EDC 设备
  5. 小封装:有助于实现超紧凑的硬件设计

KeyCmd App:功能全面的手机控制端

KeyMod 的配套 App 名为 KeyCmd,支持 Android 和 iPadOS(包括 iOS)。KeyCmd 不仅是简单的键盘/触控板,而是一个功能丰富的 HID 控制平台。

功能矩阵

功能模块 说明
键盘 & 鼠标(基础) 全屏键盘 + 长按重复 + 按键预览 + 数字键盘
键盘 & 鼠标 Pro 复合布局 + Shortcut Hub 快捷键条 + 分体键盘 + IME 输入
演示模式 幻灯片遥控 + 计时器(支持 Google Slides 等)
游戏手柄 虚拟手柄 + 可自定义预设布局 + 多点触控
Shortcut Hub 基于配置文件的快捷键(Blender、KiCAD、Photoshop、VS Code)
宏命令 可编程按键序列 + 延迟控制
语音输入 基于 Whisper API 的语音转键盘
终端 蓝牙 SSH 远程命令访问
Agent AI 驱动的 HID/SSH 命令直接控制

Shortcut Hub 详解

Shortcut Hub 是 KeyCmd 最具特色的功能之一。它允许用户为不同的专业软件创建、导入和导出快捷键配置文件:

Shortcut Hub 配置文件示例
├── Blender.json      # 3D 建模快捷键
├── KiCAD.json        # PCB 设计快捷键
├── Photoshop.json    # 图像编辑快捷键
├── VS Code.json      # 代码编辑快捷键
└── Custom.json       # 用户自定义配置

开发者可以为自己常用的工具创建专属配置,并通过社区分享。

Agent 模式:AI 驱动的 HID 控制

KeyCmd 的 Agent 模式是一个前瞻性功能——通过 AI 直接生成 HID 或 SSH 命令来控制目标计算机。这意味着你可以用自然语言描述操作,AI 会将其转化为具体的键盘/鼠标输入序列。

GitHub 仓库结构

Openterface 项目在 GitHub 上采用多仓库组织方式,由 TechxArtisanStudio 维护:

核心仓库一览

仓库 Stars 内容 许可证
Openterface 124 官方网站(GitHub Pages)
Openterface_Mini-KVM_Hardware 299 硬件设计、原理图、BOM CERN-OHL-S-2.0
Openterface_QT 162 Windows/Linux 桌面端 AGPL-3.0
Openterface_MacOS 62 macOS 桌面端 AGPL-3.0
Openterface_Android 39 Android 端 App AGPL-3.0
Openterface_WebExtension 6 Chrome/Firefox 浏览器扩展 AGPL-3.0
Openterface_KVM-GO_Hardware 21 KVM-GO 硬件设计 CERN-OHL-S-2.0
Openterface_KVM_Ext_Hardware 5 uConsole KVM 扩展板硬件 CERN-OHL-S-2.0

仓库目录结构(以 Mini-KVM Hardware 为例)

Openterface_Mini-KVM_Hardware/
├── docs/               # 硬件文档
├── hardware/           # KiCad PCB 设计文件
│   ├── schematics/     # 原理图
│   ├── pcb/            # PCB 布局
│   └── gerber/         # 生产文件
├── models/             # 3D 模型(外壳)
├── part/               # 元器件资料
├── LICENSE             # CERN-OHL-S-2.0
└── README.md

桌面端代码结构(Openterface_QT)

Openterface_QT/
├── CMakeLists.txt      # CMake 构建配置
├── src/
│   ├── main.cpp        # 入口
│   ├──mainwindow.cpp   # 主窗口
│   ├── video/          # HDMI 视频捕获
│   ├── hid/            # USB HID 通信
│   └── ui/             # Qt UI 组件
├── packaging/          # 桌面集成文件
└── docs/
    └── BUILD.md        # 编译指南

开源许可证解读

Openterface 采用双重许可策略:

软件:AGPL-3.0

所有软件代码(桌面端、Android 端、固件)使用 GNU Affero General Public License v3.0:

  • 可以自由使用:个人和商业使用均可
  • 修改必须开源:衍生作品必须以相同许可证发布
  • 网络使用触发条款:即使通过网络提供服务(SaaS),也必须公开源码
  • 适合场景:确保社区改进回馈项目

硬件:CERN-OHL-S-2.0

硬件设计文件使用 CERN Open Hardware License — Strongly Reciprocal:

  • 可自由制造:你可以基于设计文件自行生产 PCB
  • 可修改分发:修改后的设计必须以相同许可证发布
  • 可商业使用:允许基于开源设计销售产品
  • 文档齐全:必须附带原始设计文件和修改说明

实战:从源码构建桌面端

以 Openterface_QT(Windows/Linux 桌面端)为例,展示如何从源码构建:

环境准备(Ubuntu/Debian)

# 安装依赖
sudo apt install cmake build-essential qt6-base-dev \
    qt6-multimedia-dev libusb-1.0-0-dev libfftw3-dev

# 克隆仓库
git clone https://github.com/TechxArtisanStudio/Openterface_QT.git
cd Openterface_QT

编译步骤

mkdir build && cd build
cmake .. \
    -DCMAKE_BUILD_TYPE=Release \
    -DUSE_SHARED_FFMPEG=ON
make -j$(nproc)

Fedora 注意事项

在 Fedora 上编译时,需要注意 FFmpeg 共享库路径问题。参考 BUILD.md 中的 workaround:

cmake .. -DFFMPEG_PREFIX=/usr/local/ffmpeg

常见问题

问题 解决方案
undefined symbol: vaMapBuffer2 不要混用系统 FFmpeg 和捆绑的 VA 库
CMake 成功但没有二进制文件 需要额外运行 make
桌面分类错误 使用 Categories=Utility;

使用场景实战

场景 1:户外广告机维护

户外 LED 广告机通常需要现场配置,但携带键盘不方便:

1. 将 KeyMod Mini 插入广告机的 USB-C 口
2. 手机打开 KeyCmd,通过 BLE 连接 KeyMod
3. 使用手机屏幕键盘输入配置命令
4. 完成维护后拔出 KeyMod

场景 2:自助终端调试

1. KeyMod Plus 插入终端的 USB-A 口
2. 手机通过 USB 连接 KeyMod(更稳定)
3. 使用 Shortcut Hub 加载终端专用配置
4. 快速输入调试命令

场景 3:开发者工作流加速

1. KeyMod 插入开发机
2. KeyCmd 加载 VS Code Shortcut Hub 配置
3. 使用宏命令快速执行重复性操作
4. Agent 模式用自然语言执行复杂任务

如何参与贡献

Openterface 是一个活跃的开源社区,欢迎各种形式的贡献:

提交 Issue

  • Bug 报告:描述问题、复现步骤、固件版本
  • 功能建议:描述使用场景和期望行为
  • 硬件问题:使用对应仓库的 Issue 标签

提交 Pull Request

# 1. Fork 仓库
# 2. 创建功能分支
git checkout -b feature/your-feature

# 3. 开发并测试
# 4. 提交 PR 到 main 分支

文档改进

文档仓库 Openterface/Openterface 使用 MkDocs 构建,支持多语言(中、英、日、韩、法、德、意、葡、罗)。翻译 PR 非常受欢迎。

社区渠道

与其他开源 HID 方案对比

特性 Openterface KeyMod TinyUSB HID Arduino HID BluePill HID
主控 CH32V208 (RISC-V) 多平台 AVR/ARM STM32F103
蓝牙 ✅ BLE ❌ 需外挂 ❌ 需外挂 ❌ 需外挂
手机 App ✅ KeyCmd ❌ 自行开发 ❌ 自行开发 ❌ 自行开发
开源硬件 ✅ CERN-OHL ❌ 仅固件 ❌ 仅固件 ✅ 部分
即插即用 ✅ 免驱 ✅ 免驱 ✅ 免驱 ✅ 免驱
产品化程度 量产产品 开发框架 开发框架 DIY 方案
AI 集成 ✅ Agent 模式

常见问题

KeyMod 和传统 KVM 切换器有什么区别?

传统 KVM 切换器用于在多台电脑间切换一套键盘/鼠标/显示器。KeyMod 的定位不同——它是将手机变成键盘和触控板,用于控制单台没有输入设备的目标机器。适合户外广告机、自助终端、智能电视等场景。

KeyMod 需要目标设备安装软件吗?

不需要。KeyMod 是真正的硬件级 HID 模拟,目标设备会将其识别为标准 USB 键盘和鼠标,无需任何驱动或软件。

可以自行制造 KeyMod 吗?

可以。硬件设计文件以 CERN-OHL-S-2.0 许可证开源,你可以下载 Gerber 文件自行生产 PCB,并根据 BOM 采购元器件组装。

KeyCmd App 支持哪些平台?

目前支持 Android 和 iPadOS(iOS)。桌面版(Windows/macOS)在 Openterface 生态中已有 QT 和 macOS 原生应用。

开源许可证对商业使用有什么限制?

软件使用 AGPL-3.0,商业使用可以,但修改后的代码必须开源。硬件使用 CERN-OHL-S-2.0,允许基于开源设计生产和销售产品,但修改后的设计也必须开源。

总结

Openterface KeyMod 代表了开源硬件和软件协同开发的最佳实践:

  • 100% 开源:硬件设计、固件、App 全部公开,获得 OSHWA 认证
  • 实用工具:解决户外设备维护、终端调试、工作流加速等真实场景
  • 技术先进:CH32V208 RISC-V 主控 + BLE + AI Agent 模式
  • 社区活跃:多仓库协作,多语言文档,Discord 实时交流

无论你是想学习 RISC-V 嵌入式开发、了解 USB HID 协议、还是需要一个实用的便携输入工具,Openterface KeyMod 都值得深入关注。

相关链接: - GitHub 组织:github.com/TechxArtisanStudio - 官方文档:docs.openterface.com/products/keymod - 官方网站:openterface.com - Discord 社区:openterface.com/discord - 相关教程:Openterface Mini-KVM 深度解析