什麼是 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)

BASH
# 安裝相依套件
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

編譯步驟

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

Fedora 注意事項

在 Fedora 上編譯時,需要注意 FFmpeg 共用庫路徑問題。參考 BUILD.md 中的 workaround:

BASH
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

BASH
# 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 深度解析