什麼是 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 方案,有幾個獨特優勢:
- 原生 CH9329 協議相容:無需從零實現 USB HID 描述子,開箱即用
- RISC-V 架構:開源指令集,與專案的開源理念一致
- 低成本:國產晶片,BOM 成本可控
- 低功耗:適合便攜 EDC 裝置
- 小封裝:有助於實現超緊湊的硬體設計
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 非常受歡迎。
社群管道
- Discord:openterface.com/discord — 即時交流
- GitHub Discussions:功能討論和技術問答
- 論壇:openterface.com/forum — 長期討論
- YouTube:TechxArtisan — 產品展示和教學
與其他開源 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 深度解析