🛠 Mise en route avancée de la carte Romu
Objectifs
Ce tutoriel vise à maîtriser l'initialisation matérielle et logicielle de la carte Romu de Bitmerse. Contrairement aux cartes classiques, l'absence de broches GPIO externes impose une approche spécifique. Vous apprendrez à exploiter le connecteur USB Type-A natif pour le téléchargement de code et le débogage, en tirant parti de l'architecture hybride RP2354A (Cortex-M33 et RISC-V). L'objectif est de valider la chaîne de compilation et le boot sécurisé sur ce format ultra-compact de 15,5 x 12 mm.
Matériel nécessaire
- Une carte Romu de Bitmerse.
- Un ordinateur avec port USB-A standard (ou adaptateur USB-C vers A).
- Un environnement de développement compatible Raspberry Pi Pico (SDK C/C++ ou MicroPython).
- Un outil de conversion de format (ex:
uf2conv.py) si nécessaire pour le mode bootloader. - Un terminal série (comme PuTTY ou l'IDE Arduino/Raspberry Pi Pico).
Étapes
Installez le SDK Raspberry Pi Pico. La Romu utilise le RP2354A ; assurez-vous que votre chaîne d'outils supporte cette puce spécifique. Configurez les variables d'environnement pour pointer vers les outils de compilation ARM et RISC-V si vous ciblez les deux cœurs.
- Préparation de l'environnement
La carte n'ayant pas de bouton de reset externe visible, la méthode standard pour entrer en mode bootloader (pour flasher un nouveau firmware) consiste à maintenir le bouton de boot (si présent ou via les pads de débogage selon la révision) lors de l'insertion dans le port USB. Sinon, le premier branchement sur un PC vierge peut nécessiter une procédure spécifique de récupération via l'interface USB DFU si le firmware par défaut est absent.
- Accès au mode BOOTSEL
Créez un projet minimaliste. Étant donné la nature HID/USB, compilez un exemple simple qui fait clignoter la LED RGB. Notez que sans GPIO, la sortie se fait via la LED embarquée ou via les commandes USB. ``bash cmake -DPICO_BOARD=romu .. make ``
- Compilation du firmware de test
Insérez la carte directement dans un port USB-A. Si en mode BOOTSEL, un lecteur de masse apparaît. Copiez le fichier .uf2 généré sur ce lecteur. La carte redémarre automatiquement.
- Flashage via USB
Ouvrez un terminal série sur le port COM/VCP associé. Envoyez une commande simple pour vérifier que le microcontrôleur répond, confirmant que l'interface USB est correctement énumérée comme périphérique série ou HID selon votre configuration.
- Vérification série
Vérification
La LED RGB doit s'illuminer selon le motif défini dans votre code. Le port série doit afficher les messages de démarrage. Si la carte est reconnue comme un périphérique USB mais que la LED ne réagit pas, vérifiez les broches internes de la LED dans le schéma électrique (non fourni ici, se référer à la doc Bitmerse).
Pour aller plus loin
Explorez l'activation d'Arm TrustZone pour sécuriser vos applications d'authentification. Testez les pads de débogage avec un JTAG/SWD adapté pour un contrôle bas niveau.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
romu-rgb-led-pwm.inoC/C++ (Pico SDK)romu-hid-keyboard-macro.inoC/C++ (TinyUSB)romu-internal-flash-storage.inoC/C++ (Pico SDK)romu-midi-controller.inoC/C++ (TinyUSB)romu-secure-boot-check.inoC/C++ (Pico SDK)romu-hid-custom-keyboard.inoC++ (Arduino)