Qu'est-ce que Openterface KeyMod
Openterface KeyMod est un simulateur HID USB + Bluetooth 100% open source développé par TechXArtisan Studio. Sa fonction principale est de transformer votre smartphone en clavier et pavé tactile portable - il suffit de brancher KeyMod sur le port USB de l'appareil cible, et vous pouvez contrôler l'ordinateur cible, l'écran publicitaire, la télévision intelligente ou le kiosque libre-service via l'application mobile (KeyCmd).
Contrairement aux commutateurs KVM commerciaux qui dépendent de firmwares propriétaires, KeyMod est entièrement open source, des schémas matériels, de la conception PCB au code source du firmware et à l'application mobile. Le projet suit la licence logicielle AGPL-3.0 et la licence open source matérielle CERN-OHL-S-2.0, et a obtenu la certification OSHWA pour le matériel open source (UID CN000015).
KeyMod fait partie de la gamme de produits Openterface, qui comprend également :
| Produit | Positionnement | Stars du dépôt open source |
|---|---|---|
| Mini-KVM | Contrôle KVM portable au niveau BIOS | 299 (matériel) + 162 (bureau) |
| KVM-GO | KVM portable amélioré | 21 (matériel) |
| KeyMod Series | Clavier/pavé tactile HID USB + BLE | Sujet de cet article |
| Extension KVM uConsole | Carte d'extension KVM portable uConsole | 5 (matériel) |
Forme du produit : deux versions Mini et Plus
KeyMod est disponible en deux versions matérielles, partageant les mêmes fonctionnalités de base :
| Caractéristique | KeyMod Mini | KeyMod Plus |
|---|---|---|
| Interface USB | Connecteur USB-C | Connecteur USB-A + port USB-C |
| Scénarios d'utilisation | Appareils modernes (USB-C) | Appareils traditionnels + traversée pour charge |
| Bluetooth | BLE HID | BLE HID |
| Connexion mobile | USB / BLE | USB / BLE |
| Dimensions | EDC ultra-compact | Un peu plus grand, avec port de traversée |
Le flux de connexion est : Smartphone (application KeyCmd) → KeyMod (USB ou Bluetooth) → Appareil cible. L'appareil cible n'a pas besoin d'installer de logiciel - KeyMod est une véritable simulation HID au niveau matériel.
Solution matérielle principale : CH32V208
La puce de contrôle principale de KeyMod est le WCH CH32V208, un microcontrôleur domestique basé sur l'architecture RISC-V. Le CH32V208 intègre un protocole compatible CH9329, permettant une simulation directe de clavier/souris USB HID sans avoir besoin d'installer des pilotes sur l'appareil cible.
Points forts de la conception matérielle
┌─────────────────────────────────────────────┐
│ PCB KeyMod │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ CH32V208 │ │ Module │ │
│ │ RISC-V │◄──►│ BLE 5.x │ │
│ │ MCU │ │ │ │
│ └────┬─────┘ └──────────┘ │
│ │ │
│ ┌────┴─────┐ │
│ │ Interface│ → Connexion appareil cible │
│ │ USB │ (clavier/souris HID) │
│ └──────────┘ │
│ │
│ ┌──────────┐ │
│ │ Bouton │ Bouton programmable │
│ │ program- │ (macros personnalisées/ │
│ │ mable │ commutation de config) │
│ └──────────┘ │
└─────────────────────────────────────────────┘
Sélection matérielle clé :
- Puce de contrôle principale : CH32V208 (RISC-V, protocole compatible CH9329)
- Connexion sans fil : BLE Bluetooth (clavier/souris HID)
- Interface USB : Version Mini connecteur USB-C / Version Plus connecteur USB-A + port USB-C
- Bouton programmable : Prend en charge les commandes macro personnalisées et la commutation de configuration
- Certifications : CE, UKCA, RoHS, WEEE
Pourquoi choisir le CH32V208 ?
Par rapport aux solutions courantes RP2040 ou ESP32, le CH32V208 présente plusieurs avantages uniques :
- Compatibilité native du protocole CH9329 : Pas besoin d'implémenter des descripteurs USB HID à partir de zéro, prêt à l'emploi
- Architecture RISC-V : Jeu d'instructions open source, cohérent avec la philosophie open source du projet
- Faible coût : Puce domestique, coût BOM contrôlable
- Faible consommation : Adapté aux appareils EDC portables
- Petit boîtier : Aide à réaliser une conception matérielle ultra-compacte
Application KeyCmd : contrôle mobile tout-en-un
L'application compagnon de KeyMod s'appelle KeyCmd, prenant en charge Android et iPadOS (y compris iOS). KeyCmd n'est pas seulement un simple clavier/pavé tactile, mais une plateforme de contrôle HID riche en fonctionnalités.
Matrice de fonctionnalités
| Module de fonctionnalités | Description |
|---|---|
| Clavier & Souris (Base) | Clavier plein écran + répétition par appui long + aperçu des touches + pavé numérique |
| Clavier & Souris Pro | Disposition composite + barre de raccourcis Shortcut Hub + clavier divisé + entrée IME |
| Mode Présentation | Télécommande de diapositives + minuterie (prise en charge de Google Slides, etc.) |
| Manette de jeu | Manette virtuelle + dispositions prédéfinies personnalisables + multi-touch |
| Shortcut Hub | Raccourcis basés sur des profils (Blender, KiCAD, Photoshop, VS Code) |
| Commandes Macro | Séquences de touches programmables + contrôle du délai |
| Entrée vocale | Conversion voix-vers-clavier basée sur l'API Whisper |
| Terminal | Accès à distance aux commandes SSH via Bluetooth |
| Agent | Contrôle direct des commandes HID/SSH piloté par l'IA |
Détails du Shortcut Hub
Shortcut Hub est l'une des fonctionnalités les plus distinctives de KeyCmd. Elle permet aux utilisateurs de créer, importer et exporter des profils de raccourcis pour différents logiciels professionnels :
Exemples de profils Shortcut Hub
├── Blender.json # Raccourcis de modélisation 3D
├── KiCAD.json # Raccourcis de conception PCB
├── Photoshop.json # Raccourcis d'édition d'image
├── VS Code.json # Raccourcis d'édition de code
└── Custom.json # Configuration personnalisée par l'utilisateur
Les développeurs peuvent créer des configurations exclusives pour leurs outils couramment utilisés et les partager via la communauté.
Mode Agent : Contrôle HID piloté par l'IA
Le mode Agent de KeyCmd est une fonctionnalité prospective - contrôler directement l'ordinateur cible en générant des commandes HID ou SSH via l'IA. Cela signifie que vous pouvez décrire les opérations en langage naturel, et l'IA les convertira en séquences d'entrée clavier/souris spécifiques.
Structure du dépôt GitHub
Le projet Openterface utilise une organisation multi-dépôts sur GitHub, maintenue par TechxArtisanStudio :
Aperçu des dépôts principaux
| Dépôt | Stars | Contenu | Licence |
|---|---|---|---|
| Openterface | 124 | Site officiel (GitHub Pages) | — |
| Openterface_Mini-KVM_Hardware | 299 | Conception matérielle, schémas, BOM | CERN-OHL-S-2.0 |
| Openterface_QT | 162 | Version bureau Windows/Linux | AGPL-3.0 |
| Openterface_MacOS | 62 | Version bureau macOS | AGPL-3.0 |
| Openterface_Android | 39 | Application Android | AGPL-3.0 |
| Openterface_WebExtension | 6 | Extension de navigateur Chrome/Firefox | AGPL-3.0 |
| Openterface_KVM-GO_Hardware | 21 | Conception matérielle KVM-GO | CERN-OHL-S-2.0 |
| Openterface_KVM_Ext_Hardware | 5 | Matériel de carte d'extension KVM uConsole | CERN-OHL-S-2.0 |
Structure du répertoire du dépôt (exemple avec Mini-KVM Hardware)
Openterface_Mini-KVM_Hardware/
├── docs/ # Documentation matérielle
├── hardware/ # Fichiers de conception PCB KiCad
│ ├── schematics/ # Schémas
│ ├── pcb/ # Disposition PCB
│ └── gerber/ # Fichiers de production
├── models/ # Modèles 3D (boîtier)
├── part/ # Informations sur les composants
├── LICENSE # CERN-OHL-S-2.0
└── README.md
Structure du code de la version bureau (Openterface_QT)
Openterface_QT/
├── CMakeLists.txt # Configuration de construction CMake
├── src/
│ ├── main.cpp # Point d'entrée
│ ├── mainwindow.cpp # Fenêtre principale
│ ├── video/ # Capture vidéo HDMI
│ ├── hid/ # Communication USB HID
│ └── ui/ # Composants UI Qt
├── packaging/ # Fichiers d'intégration bureau
└── docs/
└── BUILD.md # Guide de compilation
Interprétation des licences open source
Openterface adopte une stratégie de double licence :
Logiciel : AGPL-3.0
Tout le code logiciel (version bureau, version Android, firmware) utilise la GNU Affero General Public License v3.0 :
- Utilisation libre : Usage personnel et commercial autorisés
- Modification doit être open source : Les travaux dérivés doivent être publiés sous la même licence
- Clause d'utilisation réseau : Même en fournissant un service via le réseau (SaaS), le code source doit être publié
- Scénarios adaptés : Assure que les améliorations de la communauté profitent au projet
Matériel : CERN-OHL-S-2.0
Les fichiers de conception matérielle utilisent la CERN Open Hardware License — Strongly Reciprocal :
- Fabrication libre : Vous pouvez produire des PCB vous-même en fonction des fichiers de conception
- Modification et distribution autorisées : Les conceptions modifiées doivent être publiées sous la même licence
- Utilisation commerciale autorisée : Permet de vendre des produits basés sur la conception open source
- Documentation complète : Doit être accompagné des fichiers de conception originaux et des descriptions de modification
Pratique : Construire la version bureau à partir des sources
Prenons l'exemple d'Openterface_QT (version bureau Windows/Linux) pour montrer comment construire à partir des sources :
Préparation de l'environnement (Ubuntu/Debian)
# Installer les dépendances
sudo apt install cmake build-essential qt6-base-dev \
qt6-multimedia-dev libusb-1.0-0-dev libfftw3-dev
# Cloner le dépôt
git clone https://github.com/TechxArtisanStudio/Openterface_QT.git
cd Openterface_QT
Étapes de compilation
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_SHARED_FFMPEG=ON
make -j$(nproc)
Notes pour Fedora
Lors de la compilation sur Fedora, faites attention au problème de chemin des bibliothèques partagées FFmpeg. Consultez la solution de contournement dans BUILD.md :
cmake .. -DFFMPEG_PREFIX=/usr/local/ffmpeg
Problèmes courants
| Problème | Solution |
|---|---|
undefined symbol: vaMapBuffer2 |
Ne pas mélanger FFmpeg système et bibliothèque VA intégrée |
| CMake réussit mais pas de binaire | Besoin d'exécuter make supplémentaire |
| Catégorie bureau incorrecte | Utiliser Categories=Utility; |
Scénarios d'utilisation pratiques
Scénario 1 : Maintenance d'écran publicitaire extérieur
Les écrans publicitaires LED extérieurs nécessitent généralement une configuration sur place, mais transporter un clavier est peu pratique :
1. Branchez KeyMod Mini sur le port USB-C de l'écran publicitaire
2. Ouvrez KeyCmd sur le smartphone, connectez-vous à KeyMod via BLE
3. Utilisez le clavier virtuel du smartphone pour entrer les commandes de configuration
4. Retirez KeyMod une fois la maintenance terminée
Scénario 2 : Débogage de kiosque libre-service
1. Branchez KeyMod Plus sur le port USB-A du kiosque
2. Connectez le smartphone à KeyMod via USB (plus stable)
3. Utilisez Shortcut Hub pour charger la configuration dédiée au kiosque
4. Entrez rapidement les commandes de débogage
Scénario 3 : Accélération du flux de travail des développeurs
1. Branchez KeyMod sur la machine de développement
2. KeyCmd charge la configuration Shortcut Hub VS Code
3. Utilisez les commandes macro pour exécuter rapidement les opérations répétitives
4. Utilisez le mode Agent pour exécuter des tâches complexes en langage naturel
Comment contribuer
Openterface est une communauté open source active, bienvenue pour toute forme de contribution :
Soumettre un Issue
- Rapport de bug : Décrivez le problème, les étapes de reproduction, la version du firmware
- Suggestion de fonctionnalité : Décrivez le scénario d'utilisation et le comportement attendu
- Problème matériel : Utilisez l'étiquette Issue du dépôt correspondant
Soumettre une Pull Request
# 1. Fork du dépôt
# 2. Créer une branche de fonctionnalité
git checkout -b feature/your-feature
# 3. Développer et tester
# 4. Soumettre la PR vers la branche main
Amélioration de la documentation
Le dépôt de documentation Openterface/Openterface utilise MkDocs pour la construction, prenant en charge plusieurs langues (chinois, anglais, japonais, coréen, français, allemand, italien, portugais, roumain). Les PR de traduction sont les bienvenues.
Canaux communautaires
- Discord : openterface.com/discord — Communication en temps réel
- GitHub Discussions : Discussion de fonctionnalités et questions techniques
- Forum : openterface.com/forum — Discussion à long terme
- YouTube : TechxArtisan — Démonstrations de produits et tutoriels
Comparaison avec d'autres solutions HID open source
| Caractéristique | Openterface KeyMod | TinyUSB HID | Arduino HID | BluePill HID |
|---|---|---|---|---|
| Contrôle principal | CH32V208 (RISC-V) | Multi-plateforme | AVR/ARM | STM32F103 |
| Bluetooth | ✅ BLE | ❌ Nécessite module externe | ❌ Nécessite module externe | ❌ Nécessite module externe |
| Application mobile | ✅ KeyCmd | ❌ Développement personnel | ❌ Développement personnel | ❌ Développement personnel |
| Matériel open source | ✅ CERN-OHL | ❌ Firmware uniquement | ❌ Firmware uniquement | ✅ Partiel |
| Plug-and-play | ✅ Sans pilote | ✅ Sans pilote | ✅ Sans pilote | ✅ Sans pilote |
| Niveau de produit | Produit en série | Framework de développement | Framework de développement | Solution DIY |
| Intégration IA | ✅ Mode Agent | ❌ | ❌ | ❌ |
Questions fréquentes
Quelle est la différence entre KeyMod et un commutateur KVM traditionnel ?
Les commutateurs KVM traditionnels sont utilisés pour basculer un ensemble clavier/souris/écran entre plusieurs ordinateurs. KeyMod a un positionnement différent - il transforme le smartphone en clavier et pavé tactile pour contrôler une seule machine cible sans périphériques d'entrée. Adapté aux scénarios tels que les écrans publicitaires extérieurs, les kiosques libres-service, les télévisions intelligentes, etc.
KeyMod nécessite-t-il l'installation de logiciels sur l'appareil cible ?
Non. KeyMod est une véritable simulation HID au niveau matériel, l'appareil cible le reconnaîtra comme un clavier et une souris USB standard, sans besoin de pilote ou de logiciel.
Peut-on fabriquer KeyMod soi-même ?
Oui. Les fichiers de conception matérielle sont open source sous la licence CERN-OHL-S-2.0, vous pouvez télécharger les fichiers Gerber pour produire vous-même des PCB et acheter des composants selon la BOM pour l'assemblage.
Quelles plateformes l'application KeyCmd prend-elle en charge ?
Actuellement, elle prend en charge Android et iPadOS (iOS). Les versions bureau (Windows/macOS) existent déjà dans l'écosystème Openterface avec les applications natives QT et macOS.
Quelles sont les restrictions de la licence open source pour l'utilisation commerciale ?
Le logiciel utilise AGPL-3.0, l'utilisation commerciale est autorisée, mais le code modifié doit être open source. Le matériel utilise CERN-OHL-S-2.0, permettant la production et la vente de produits basés sur la conception open source, mais les conceptions modifiées doivent également être open source.
Résumé
Openterface KeyMod représente les meilleures pratiques de développement collaboratif open source pour le matériel et le logiciel :
- 100% open source : Conception matérielle, firmware, application tous publics, certifié OSHWA
- Outil pratique : Résout des scénarios réels tels que la maintenance d'appareils extérieurs, le débogage de terminaux, l'accélération du flux de travail
- Technologie avancée : Contrôle principal CH32V208 RISC-V + BLE + mode Agent IA
- Communauté active : Collaboration multi-dépôts, documentation multilingue, communication en temps réel sur Discord
Que vous souhaitiez apprendre le développement embarqué RISC-V, comprendre le protocole USB HID, ou avoir besoin d'un outil d'entrée portable pratique, Openterface KeyMod mérite une attention approfondie.
Liens connexes : - Organisation GitHub : github.com/TechxArtisanStudio - Documentation officielle : docs.openterface.com/products/keymod - Site officiel : openterface.com - Communauté Discord : openterface.com/discord - Tutoriels connexes : Analyse approfondie d'Openterface Mini-KVM