🛠 Créer un périphérique HID personnalisé avec Romu

Carte de développement USB compacte Bitmerse Romu (RP2354A) · intermediaire · Transformez la carte Romu en un périphérique d'entrée USB dédié pour automatiser des tâches complexes.

Objectifs

Ce tutoriel vise à configurer la carte Romu pour qu'elle se comporte comme un périphérique d'entrée humain (HID) personnalisé, tel qu'un pavé macro ou un contrôleur MIDI. Contrairement aux cartes classiques nécessitant des câbles, la Romu s'insère directement dans un port USB Type-A. L'objectif est de comprendre l'architecture hybride du RP2354A et d'exploiter ses capacités de sécurité pour créer des clés d'authentification ou des outils de productivité sans mot de passe.

Matériel nécessaire

Étapes

Installez le SDK officiel pour le RP2354A. Assurez-vous que le compilateur Arm Cortex-M33 est correctement configuré, car le cœur principal gère la pile USB.

  1. Configuration de l'environnement
git clone https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
make

Créez un nouveau dossier de projet. La Romu n'ayant pas de GPIO externes accessibles facilement, vous utiliserez les boutons intégrés et la LED RGB. Configurez le descripteur USB pour déclarer un périphérique HID générique.

  1. Préparation du projet HID
// Exemple de structure de descripteur HID simplifié
const uint8_t hid_report_descriptor[] = {
    0x05, 0x01, // Usage Page (Generic Desktop)
    0x09, 0x06, // Usage (Keyboard)
    0xA1, 0x01, // Collection (Application)
    // ... définition des touches ...
    0xC0
};

Écrivez le code qui lit l'état des boutons physiques sur la carte. Lors d'un appui, envoyez une trame HID spécifique (par exemple, une combinaison de touches pour un raccourci clavier).

  1. Implémentation de la logique d'entrée
void send_hid_report(uint8_t keycode) {
    uint8_t report[8] = {0};
    report[2] = keycode;
    tud_hid_report(0, report, sizeof(report));
}

Compilez le firmware. Comme il n'y a pas de connecteur USB-C standard pour le flashage en mode BOOTSEL, vous devrez probablement utiliser les pads de débogage pour connecter un adaptateur USB-Série ou utiliser un outil de flashage SWD si disponible, selon la configuration finale de la carte.

  1. Compilation et Flashage
cmake ..
make

Vérification

Une fois le firmware chargé, insérez la carte Romu directement dans un port USB Type-A de votre ordinateur. Le système d'exploitation doit détecter un nouveau périphérique HID. Ouvrez un éditeur de texte ou un outil de diagnostic USB pour confirmer que les appuis sur les boutons de la Romu déclenchent les actions programmées (ex: envoi d'une lettre ou d'une macro). La LED RGB doit s'allumer pour indiquer l'activité.

Pour aller plus loin

Explorez les fonctionnalités de sécurité Arm Trustzone et Secure Boot du RP2354A. Vous pouvez concevoir une clé de sécurité qui nécessite une authentification cryptographique avant d'envoyer les commandes HID, transformant la Romu en un token d'authentification sans mot de passe robuste pour les environnements sensibles.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels