Openterface KeyMod とは
Openterface KeyMod は TechXArtisan Studio が提供する 100% オープンソースの USB + Bluetooth HID エミュレータです。コア機能は、スマートフォンをポータブルキーボードとタッチパッドに変換すること——KeyMod を対象デバイスの USB ポートに挿すだけで、スマホアプリ(KeyCmd)から対象のパソコン、デジタルサイネージ、スマートテレビ、キオスク端末を操作できます。
市販の独自ファームウェア依存の KVM スイッチとは異なり、KeyMod はハードウェア回路図、PCB 設計、ファームウェアソースコード、スマホアプリに至るまで完全にオープンソースです。プロジェクトは 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 の2バージョン
KeyMod は2つのハードウェアバージョンを提供し、同じコア機能を共有します:
| 特徴 | KeyMod Mini | KeyMod Plus |
|---|---|---|
| USB インターフェース | USB-C オスコネクター | USB-A オスコネクター + USB-C メスコネクター |
| 用途 | モダンデバイス(USB-C) | レガシーデバイス + パススルー充電 |
| Bluetooth | BLE HID | BLE HID |
| スマホ接続 | USB / BLE | USB / BLE |
| サイズ | 超コンパクト EDC | やや大きい、パススルーポート付き |
接続フロー:スマホ(KeyCmd App)→ KeyMod(USB または Bluetooth)→ 対象デバイス。対象デバイスにソフトウェアのインストールは不要——KeyMod は真のハードウェアレベル HID エミュレーションを実現します。
コアハードウェア方案:CH32V208
KeyMod のコアコントローラーチップは WCH CH32V208 で、RISC-V アーキテクチャベースの国産マイクロコントローラーです。CH32V208 は CH9329 互換プロトコルを内蔵し、対象デバイスにドライバをインストールすることなく USB HID キーボード/マウスエミュレーションを直接実現できます。
ハードウェア設計のハイライト
┌─────────────────────────────────────────────┐
│ KeyMod PCB │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ CH32V208 │ │ BLE モジュール │ │
│ │ RISC-V │◄──►│ Bluetooth 5.x │ │
│ │ MCU │ │ │ │
│ └────┬─────┘ └──────────┘ │
│ │ │
│ ┌────┴─────┐ │
│ │ USB 接続 │ → 対象デバイスに接続(HID キーボード/マウス)│
│ └──────────┘ │
│ │
│ ┌──────────┐ │
│ │ プログラ │ プログラマブルボタン │
│ │ マブル │ (カスタムマクロ/切り替え) │
│ │ ボタン │ │
│ └──────────┘ │
└─────────────────────────────────────────────┘
主要ハードウェア選定:
- 主控チップ:CH32V208(RISC-V、CH9329 互換プロトコル)
- ワイヤレス接続:BLE Bluetooth(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 の専用アプリは KeyCmd という名前で、Android と iPadOS(iOS を含む)に対応しています。KeyCmd は単なるキーボード/タッチパッドではなく、機能豊富な HID 制御プラットフォームです。
機能マトリックス
| 機能モジュール | 説明 |
|---|---|
| キーボード & マウス(基本) | フルスクリーンキーボード + 長押しリピート + キープレビュー + テンキー |
| キーボード & マウス Pro | 複合レイアウト + Shortcut Hub ショートカットバー + 分離キーボード + IME 入力 |
| プレゼンモード | スライドリモコン + タイマー(Google Slides などに対応) |
| ゲームパッド | 仮想コントローラー + カスタマイズ可能なプリセットレイアウト + マルチタッチ |
| Shortcut Hub | プロファイルベースのショートカット(Blender、KiCAD、Photoshop、VS Code) |
| マクロコマンド | プログラマブルキーシーケンス + ディレイ制御 |
| 音声入力 | Whisper API ベースの音声からキーボードへの変換 |
| ターミナル | Bluetooth 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 版アプリ | 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 のワークアラウンドを参照してください:
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 の提出
- バグ報告:問題の説明、再現手順、ファームウェアバージョン
- 機能提案:ユースケースと期待される動作の説明
- ハードウェアの問題:対応リポジトリの Issue ラベルを使用
Pull Request の提出
# 1. リポジトリをフォーク
# 2. 機能ブランチを作成
git checkout -b feature/your-feature
# 3. 開発とテスト
# 4. main ブランチに PR を提出
ドキュメント改善
ドキュメントリポジトリ Openterface/Openterface は MkDocs で構築されており、多言語(中国語、英語、日本語、韓国語、フランス語、ドイツ語、イタリア語、ポルトガル語、ルーマニア語)に対応しています。翻訳 PR を大歓迎します。
コミュニティチャンネル
- Discord:openterface.com/discord — リアルタイム交流
- GitHub Discussions:機能議論と技術 Q&A
- フォーラム:openterface.com/forum — 長期的な議論
- YouTube:TechxArtisan — 製品デモとチュートリアル
他のオープンソース HID 方案との比較
| 特徴 | Openterface KeyMod | TinyUSB HID | Arduino HID | BluePill HID |
|---|---|---|---|---|
| 主控 | CH32V208 (RISC-V) | マルチプラットフォーム | AVR/ARM | STM32F103 |
| Bluetooth | ✅ BLE | ❌ 外付け必要 | ❌ 外付け必要 | ❌ 外付け必要 |
| スマホアプリ | ✅ KeyCmd | ❌ 自行開発 | ❌ 自行開発 | ❌ 自行開発 |
| オープンハードウェア | ✅ CERN-OHL | ❌ ファームウェアのみ | ❌ ファームウェアのみ | ✅ 一部 |
| プラグアンドプレイ | ✅ ドライバ不要 | ✅ ドライバ不要 | ✅ ドライバ不要 | ✅ ドライバ不要 |
| 製品化レベル | 量産製品 | 開発フレームワーク | 開発フレームワーク | DIY 方案 |
| AI 統合 | ✅ Agent モード | ❌ | ❌ | ❌ |
よくある質問
KeyMod と従来の KVM スイッチの違いは?
従来の KVM スイッチは複数のパソコン間で1セットのキーボード/マウス/モニターを切り替えるために使用されます。KeyMod の位置づけは異なります——スマートフォンをキーボードとタッチパッドに変換し、入力デバイスのない単一の対象マシンを制御するためのものです。屋外広告機、キオスク端末、スマートテレビなどのシーンに適しています。
KeyMod は対象デバイスにソフトウェアのインストールが必要ですか?
いいえ。KeyMod は真のハードウェアレベル HID エミュレーションであり、対象デバイスは標準 USB キーボードとマウスとして認識します。ドライバやソフトウェアは不要です。
KeyMod を自行製造できますか?
はい。ハードウェア設計ファイルは CERN-OHL-S-2.0 ライセンスでオープンソース化されており、Gerber ファイルをダウンロードして自行生産し、BOM に基づいて部品を調達・組み立てできます。
KeyCmd App はどのプラットフォームに対応していますか?
現在、Android と iPadOS(iOS)に対応しています。デスクトップ版(Windows/macOS)については、Openterface エコシステムに QT と macOS ネイティブアプリが既に存在します。
オープンソースライセンスは商用利用にどのような制限がありますか?
ソフトウェアは AGPL-3.0 を使用しており、商用利用は可能ですが、改変後のコードはオープンソースにする必要があります。ハードウェアは CERN-OHL-S-2.0 を使用しており、オープンソース設計に基づいた製品の製造・販売を許可していますが、改変後の設計もオープンソースにする必要があります。
まとめ
Openterface KeyMod はオープンソースハードウェアとソフトウェアの協調開発のベストプラクティスを体現しています:
- 100% オープンソース:ハードウェア設計、ファームウェア、アプリすべて公開、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 深度解析