| | | | | |

Transformer un XIAO en clavier Wi-Fi ou Bluetooth piloté par smartphone

Il est possible d’écrire sur un ordinateur depuis un smartphone sans installer de logiciel sur cet ordinateur.

Pour réaliser ce projet, nous allons transformer un Seeed Studio XIAO ESP32-S3 en clavier USB. Le téléphone se connectera directement à la carte en Wi-Fi et affichera une interface permettant d’écrire ou de dicter du texte.

Une fois la configuration terminée, Windows, Linux ou macOS reconnaîtra le XIAO ESP32-S3 comme un clavier USB standard.

Cette solution peut notamment servir à :

  • dicter un texte depuis un smartphone ;
  • saisir rapidement un texte préparé sur le téléphone ;
  • créer un clavier adapté à certains besoins ;
  • écrire sur un ordinateur sur lequel aucun logiciel ne peut être installé ;
  • contrôler plusieurs ordinateurs avec une interface identique.

Important : le XIAO peut écrire dans n’importe quelle fenêtre active. Pour les premiers essais, utilisez uniquement un éditeur de texte simple, comme le Bloc-notes sous Windows ou Xed sous Linux Mint.

Comment fonctionne ce clavier Wi-Fi ?

Le fonctionnement est relativement simple :

  1. Le XIAO ESP32-S3 est branché sur un port USB de l’ordinateur.
  2. Il crée un réseau Wi-Fi privé appelé « MD-Clavier ».
  3. Le smartphone se connecte à ce réseau.
  4. Le navigateur du téléphone ouvre l’adresse http://192.168.4.1.
  5. Une interface aux couleurs de md.lu apparaît.
  6. Le texte saisi ou dicté sur le téléphone est envoyé au XIAO.
  7. Le XIAO transmet le texte à l’ordinateur comme de véritables frappes de clavier.

Le XIAO ESP32-S3 possède un contrôleur USB natif. Il peut donc être reconnu comme un périphérique USB HID, c’est-à-dire comme un clavier ou une souris standard.

Aucun pilote particulier n’est normalement nécessaire sous Windows, Linux ou macOS.

Matériel nécessaire

Pour réaliser ce projet, il faut :

  • un Seeed Studio XIAO ESP32-S3 ;
  • l’antenne Wi-Fi fournie avec la carte ;
  • un câble USB-C capable de transporter les données ;
  • un ordinateur pour programmer la carte ;
  • un smartphone, comme le Honor Magic V3 ;
  • le logiciel Arduino IDE 2 ;
  • le programme Arduino fourni avec cet article.

Attention à ne pas confondre le XIAO ESP32-S3 avec le XIAO ESP32-C3. Pour ce projet, il faut bien utiliser la version ESP32-S3, car elle dispose du contrôleur USB nécessaire pour émuler correctement un clavier.

Connecter l’antenne Wi-Fi

Le XIAO ESP32-S3 possède un petit connecteur destiné à l’antenne Wi-Fi.

Placez le connecteur de l’antenne bien à la verticale, puis appuyez doucement jusqu’à ce qu’il soit correctement fixé.

Ce connecteur est fragile. Il faut éviter de tirer sur le câble ou de brancher et débrancher l’antenne trop souvent.

Sans cette antenne, la portée et la stabilité de la connexion Wi-Fi risquent d’être fortement réduites.

Installer Arduino IDE sous Windows ou macOS

Téléchargez la version stable d’Arduino IDE depuis le site officiel :

https://www.arduino.cc/en/software/#ide

Installez ensuite le logiciel normalement, puis lancez-le.

Dans Arduino IDE :

  1. Ouvrez le menu « Fichier ».
  2. Sélectionnez « Préférences ».
  3. Recherchez le champ « URL de gestionnaire de cartes supplémentaires ».
  4. Ajoutez l’adresse suivante :
https://espressif.github.io/arduino-esp32/package_esp32_index.json

Si une autre adresse est déjà présente, utilisez le bouton situé à droite du champ pour ajouter une nouvelle ligne.

Validez ensuite avec le bouton « OK ».

Vous pouvez alors passer directement à la section « Installer ou vérifier la prise en charge des cartes ESP32 ».


Installation automatique sous Linux Mint

Copiez et collez l’ensemble des commandes suivantes dans un terminal. Elles téléchargeront l’archive, la décompresseront et lanceront automatiquement l’installation :

curl -fL "https://md.lu/wp-content/uploads/2026/09/installation-arduino-linux-mint.zip" \
  -o installation-arduino-linux-mint.zip \
&& unzip -o installation-arduino-linux-mint.zip \
&& bash installation-arduino-linux-mint.sh.txt

Lancez ces commandes avec votre utilisateur normal, sans ajouter sudo. Le mot de passe administrateur sera demandé automatiquement lorsque cela sera nécessaire.

À la fin de l’installation, fermez complètement votre session Linux Mint, puis reconnectez-vous avant de brancher et de programmer le XIAO ESP32-S3.

Sous Linux Mint, Arduino CLI peut être installé pour gérer l’environnement Arduino depuis le terminal. Arduino CLI ne possède cependant aucune interface graphique.

Nous allons donc conserver Arduino CLI et installer également Arduino IDE pour poursuivre ce tutoriel avec les menus et les boutons de l’application.

Arduino CLI et Arduino IDE peuvent rester installés simultanément.

Installer Arduino CLI et le cœur ESP32

Ouvrez un terminal, puis installez curl :

sudo apt update
sudo apt install -y curl

Téléchargez ensuite Arduino CLI :

curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh

Copiez son exécutable dans /usr/local/bin :

sudo install -m 0755 bin/arduino-cli /usr/local/bin/arduino-cli

Vérifiez l’installation :

arduino-cli version

Initialisez ensuite la configuration d’Arduino CLI :

arduino-cli config init

Si un message indique que le fichier de configuration existe déjà, vous pouvez continuer.

Ajoutez l’adresse officielle du gestionnaire de cartes ESP32 :

arduino-cli config add board_manager.additional_urls https://espressif.github.io/arduino-esp32/package_esp32_index.json

Actualisez l’index des cartes :

arduino-cli core update-index

Installez le cœur ESP32 d’Espressif :

arduino-cli core install esp32:esp32

Pour vérifier que l’installation a réussi, utilisez :

arduino-cli core list

Une ligne commençant par esp32:esp32 doit apparaître.

Autoriser l’accès aux ports USB

Ajoutez votre utilisateur au groupe autorisé à accéder aux ports USB et série :

sudo usermod -aG dialout "$USER"

Fermez complètement votre session Linux Mint, puis reconnectez-vous.

Cette étape est importante : la nouvelle autorisation ne sera pas entièrement appliquée tant que la session n’aura pas été redémarrée.

Installer l’application graphique Arduino IDE

Arduino CLI étant uniquement un outil en ligne de commande, il faut également télécharger l’application graphique Arduino IDE.

Téléchargez la version Linux AppImage depuis le site officiel :

https://www.arduino.cc/en/software/#ide

Une fois le fichier téléchargé, ouvrez un terminal et placez-vous dans le dossier des téléchargements :

cd ~/Téléchargements

Si votre dossier utilise son nom anglais, utilisez plutôt :

cd ~/Downloads

Autorisez l’exécution du fichier AppImage :

chmod +x arduino-ide_*_Linux_64bit.AppImage

Démarrez Arduino IDE :

./arduino-ide_*_Linux_64bit.AppImage

Si une erreur concernant FUSE apparaît, essayez cette commande :

./arduino-ide_*_Linux_64bit.AppImage --appimage-extract-and-run

Arduino IDE doit maintenant s’ouvrir normalement.

Arduino CLI et Arduino IDE utilisent généralement les mêmes dossiers de données Arduino. Le cœur ESP32 installé précédemment peut donc déjà être visible dans l’application graphique.

Installer ou vérifier la prise en charge des cartes ESP32

Dans Arduino IDE, ouvrez le gestionnaire de cartes depuis la barre latérale gauche.

Recherchez :

esp32

Le paquet suivant doit apparaître :

esp32 by Espressif Systems

S’il est indiqué comme installé, vous pouvez continuer.

Dans le cas contraire, cliquez sur « Installer ». Le téléchargement peut prendre plusieurs minutes.

Les bibliothèques nécessaires au clavier USB sont déjà intégrées à ce paquet. Il n’est donc normalement pas nécessaire d’installer manuellement les bibliothèques USB.h et USBHIDKeyboard.h.

Télécharger et ouvrir le programme

Téléchargez l’archive suivante :

https://md.lu/wp-content/uploads/2026/09/clavier-wifi-md-lu-xiao-esp32s3.zip

Décompressez ensuite l’archive ZIP.

Elle contient le fichier suivant :

clavier-wifi-xiao-esp32s3.ino

Ouvrez ce fichier avec Arduino IDE.

Le programme contient :

  • le serveur web ;
  • l’interface pour smartphone ;
  • la connexion Wi-Fi ;
  • la gestion du clavier USB ;
  • la disposition française AZERTY ;
  • la gestion des caractères accentués les plus courants ;
  • les couleurs correspondant à la charte graphique de md.lu.

Modifier le nom et le mot de passe Wi-Fi

Au début du programme, recherchez ces lignes :

const char *WIFI_NAME = "MD-Clavier";
const char *WIFI_PASSWORD = "ChangezMoi-2026";

Vous pouvez conserver le nom MD-Clavier.

En revanche, il est fortement recommandé de remplacer le mot de passe par un mot de passe personnel.

Par exemple :

const char *WIFI_PASSWORD = "VotreMotDePasseSolide";

Le mot de passe doit contenir au minimum huit caractères.

N’utilisez pas le même mot de passe que pour votre messagerie, votre routeur Internet ou un autre service important.

Personnaliser les couleurs de l’interface

L’interface reprend les couleurs principales du site md.lu :

--brand-primary: #75a0c0;
--brand-secondary: #586274;
--brand-light: #d7e5f2;
--brand-background: #f1f3f6;

Ces quatre couleurs correspondent aux éléments suivants :

  • brand-primary : le bleu principal de md.lu ;
  • brand-secondary : le gris bleuté utilisé pour les textes ;
  • brand-light : le bleu clair des boutons secondaires ;
  • brand-background : la couleur de fond générale.

Le logo md.lu est affiché directement sous forme de texte. L’interface ne dépend donc d’aucune image externe et fonctionne même sans connexion Internet.

Sélectionner la carte dans Arduino IDE

Branchez le XIAO ESP32-S3 à l’ordinateur avec un câble USB-C capable de transmettre les données.

Dans Arduino IDE, ouvrez le menu « Outils », puis configurez les options suivantes :

  • Type de carte : XIAO_ESP32S3
  • USB Mode : USB-OTG (TinyUSB)
  • USB CDC On Boot : Disabled
  • USB Firmware MSC On Boot : Disabled
  • USB DFU On Boot : Disabled
  • Upload Mode : UART0 / Hardware CDC, si cette option apparaît
  • Port : sélectionnez le port correspondant au XIAO ESP32-S3

Les noms exacts peuvent légèrement changer selon la version du paquet ESP32 installée.

Le réglage le plus important est l’utilisation du mode USB-OTG avec TinyUSB. C’est ce mode qui permet au XIAO d’être reconnu comme un clavier.

Téléverser le programme

Une fois les réglages terminés :

  1. Cliquez sur le bouton « Vérifier » pour compiler le programme.
  2. Attendez la fin de la compilation.
  3. Si aucune erreur n’apparaît, cliquez sur « Téléverser ».
  4. Attendez le message confirmant la fin du téléversement.
  5. Débranchez le XIAO.
  6. Rebranchez-le sur l’ordinateur.

La carte devrait redémarrer au


Solution en Bluetooth avec le XIAO nRF52840 Plus

Cette solution permet d’utiliser un XIAO nRF52840 Plus pour écrire sur un ordinateur depuis un téléphone Android.

Le XIAO reste branché en USB sur l’ordinateur et se présente comme un clavier. L’application Android MD’s KeyBridge transmet directement le texte à la carte en Bluetooth.

Attention : le programme Bluetooth est réservé au XIAO nRF52840 Plus. Ne téléversez pas le programme de l’ESP32-S3 sur cette carte. Les deux firmwares ne sont pas interchangeables.

Fonctionnement de la version Bluetooth

Le texte suit ce parcours :

Téléphone Android
        ↓
Application MD’s KeyBridge
        ↓
Bluetooth
        ↓
XIAO nRF52840 Plus
        ↓
USB
        ↓
Ordinateur

Aucune connexion Internet n’est nécessaire pour écrire, coller ou dicter du texte.

Matériel nécessaire

Pour réaliser cette version, il faut :

  • un Seeed Studio XIAO nRF52840 Plus ;
  • un câble USB-C capable de transmettre les données ;
  • un ordinateur pour programmer puis utiliser la carte ;
  • un téléphone Android, comme le Honor Magic V3 ;
  • Arduino IDE 2 ;
  • le firmware MD-Clavier-BLE ;
  • l’application Android MD’s KeyBridge.

Télécharger les fichiers nécessaires

Deux téléchargements sont nécessaires : le firmware destiné au XIAO et l’application destinée au téléphone.

Télécharger le firmware du XIAO

Téléchargez l’archive suivante :

Télécharger le firmware MD-Clavier-BLE

L’archive contient :

clavier-bluetooth-xiao-nrf52840.ino
LISEZ-MOI.txt

Décompressez l’archive avant de poursuivre.

Télécharger l’application Android

Téléchargez l’application MD’s KeyBridge :

Télécharger MD’s KeyBridge pour Android

Décompressez l’archive sur le téléphone. Elle contient :

MDs-KeyBridge-1.0.0-test.apk
LISEZ-MOI-INSTALLATION.txt

Cette version est actuellement destinée aux essais. Elle sera remplacée par une version définitive après validation de toutes les fonctions.

Installer la prise en charge du XIAO nRF52840 Plus

Dans Arduino IDE, ouvrez « Fichier », puis « Préférences ».

Ajoutez cette adresse dans le champ « URL de gestionnaire de cartes supplémentaires » :

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Ouvrez ensuite le gestionnaire de cartes et recherchez :

seeed nrf52

Installez le paquet :

Seeed nRF52 Boards

N’utilisez pas l’ancien paquet portant la mention « mbed-enabled » pour ce projet.

Ouvrir et téléverser le programme Bluetooth

Dans l’archive du firmware, ouvrez le fichier suivant avec Arduino IDE :

clavier-bluetooth-xiao-nrf52840.ino

Branchez le XIAO nRF52840 Plus à l’ordinateur, puis sélectionnez :

  • Type de carte : Seeed XIAO nRF52840 Plus
  • Port : le port USB correspondant au XIAO

Cliquez sur « Vérifier » pour compiler le programme.

Si aucune erreur n’apparaît, cliquez sur « Téléverser ».

Après le téléversement :

  1. débranchez le XIAO ;
  2. rebranchez-le sur l’ordinateur ;
  3. attendez quelques secondes.

La carte doit diffuser un périphérique Bluetooth appelé :

MD-Clavier-BLE

Elle doit également être reconnue par l’ordinateur comme un clavier USB.

Installer MD’s KeyBridge sur Android

Sur le téléphone :

  1. décompressez l’archive de l’application ;
  2. ouvrez le fichier MDs-KeyBridge-1.0.0-test.apk ;
  3. autorisez temporairement l’installation depuis cette source si Android le demande ;
  4. confirmez l’installation.

Comme l’application est distribuée directement depuis md.lu et non depuis Google Play, Google Play Protect peut afficher un avertissement.

Dans ce cas :

  1. ouvrez « Plus de détails » ;
  2. sélectionnez « Installer quand même » ;
  3. terminez l’installation.

N’installez l’application que si elle a été téléchargée depuis le lien officiel présent dans cet article.

Connecter l’application au XIAO

  1. Branchez le XIAO sur l’ordinateur qui doit recevoir le texte.
  2. Activez le Bluetooth du téléphone.
  3. Lancez MD’s KeyBridge.
  4. Autorisez l’accès aux appareils Bluetooth à proximité.
  5. Appuyez sur « Connecter ».
  6. Attendez que l’application affiche « MD-Clavier-BLE connecté ».

L’ordinateur doit utiliser la disposition de clavier :

Français (France) - AZERTY

Pour les premiers essais, ouvrez un éditeur de texte simple et placez le curseur dans une page vide.

Écrire sur l’ordinateur

Dans l’onglet « Écrire », vous pouvez :

  • écrire avec SwiftKey ;
  • coller un passage copié depuis un article ;
  • modifier le texte avant son envoi ;
  • utiliser le microphone de SwiftKey pour dicter ;
  • envoyer la touche Entrée ;
  • envoyer un retour arrière ;
  • enregistrer le texte pour le réutiliser plus tard.

Lorsque le texte est prêt :

  1. cliquez dans la fenêtre de l’ordinateur qui doit recevoir le texte ;
  2. vérifiez la position du curseur ;
  3. appuyez sur « Écrire sur l’ordinateur ».

Le texte est alors transmis directement au XIAO en Bluetooth, puis écrit sur l’ordinateur comme de véritables frappes de clavier.

Utiliser les textes enregistrés

L’onglet « Textes » permet d’enregistrer sur le téléphone les contenus utilisés régulièrement.

Vous pouvez notamment enregistrer :

  • des instructions de dépannage ;
  • des réponses destinées aux clients ;
  • des procédures techniques ;
  • des adresses Internet ;
  • des signatures ;
  • des textes fréquemment utilisés.

Ces contenus restent enregistrés uniquement sur le téléphone.

Télécharger des commandes depuis une page WordPress

L’onglet « Commandes » peut récupérer une bibliothèque depuis une page WordPress publique.

L’adresse de cette page est modifiable dans l’onglet « Réglages ».

Elle peut par exemple être :

https://md.lu/commandes-clavier/

La page WordPress doit utiliser la structure suivante :

  • un titre H2 pour la catégorie ;
  • un titre H3 pour le nom de la commande ;
  • un paragraphe facultatif pour l’explication ;
  • un bloc Code pour la commande à envoyer.

Exemple :

H2 : Windows

H3 : Vérifier les fichiers système

Paragraphe :
Analyse et répare les fichiers protégés de Windows.

Bloc Code :
sfc /scannow

Après avoir modifié la page WordPress :

  1. ouvrez l’onglet « Réglages » ;
  2. vérifiez l’adresse de la page ;
  3. appuyez sur « Enregistrer et synchroniser ».

Les commandes téléchargées restent ensuite disponibles sans connexion Internet.

Envoyer une commande en toute sécurité

Lorsqu’une commande est sélectionnée, MD’s KeyBridge affiche son contenu avant de l’envoyer.

L’application permet de :

  • modifier la commande ;
  • écrire la commande sans l’exécuter ;
  • écrire la commande et envoyer automatiquement la touche Entrée ;
  • annuler l’opération.

Avant tout envoi, vérifiez que le curseur se trouve dans la bonne fenêtre de l’ordinateur.

Une commande administrative doit être envoyée dans un terminal ou une invite de commandes disposant des autorisations nécessaires.

Limites et précautions

  • les emojis et certains caractères rares peuvent être remplacés par un point d’interrogation ;
  • l’ordinateur doit utiliser une disposition de clavier AZERTY français ;
  • le XIAO peut écrire dans n’importe quelle fenêtre active ;
  • vérifiez toujours la fenêtre sélectionnée avant un envoi ;
  • contrôlez chaque commande avant de choisir « Écrire et exécuter » ;
  • débranchez le XIAO lorsqu’il n’est pas utilisé.

Prochaine évolution : version avec écran tactile

Une future version équipée d’un écran tactile pourra afficher l’état des connexions, le mode actif et les erreurs.

Elle pourra également proposer des boutons permettant de sélectionner différents profils ou d’exécuter des actions préenregistrées directement depuis la carte.