🛠 Premier programme : installer le core et faire clignoter la LED (M7 à 480 MHz !)
Objectifs
Découvrir l'Arduino Portenta H7, le porte-drapeau industriel d'Arduino (SKU ABX00042, ~120,80 € sur la boutique officielle en octobre 2026) : un dual-core ST STM32H747XI avec un Cortex-M7 jusqu'à 480 MHz (FPU double précision) et un Cortex-M4 jusqu'à 240 MHz, 2 Mo de flash interne, 8 Mo de SDRAM et 16 Mo de NOR flash externes. Tu vas installer le bon core dans le Board Manager, comprendre le double mode de programmation (M7 et/ou M4), et faire clignoter la LED avec un premier programme série.
Matériel
- 1 × Arduino Portenta H7 (les variantes H7 Lite / Lite Connected fonctionnent pareil pour ce tuto)
- 1 × câble USB-C data (les câbles de charge bon marché n'ont que l'alimentation)
- Arduino IDE 2.x ou Arduino CLI
- Dans le Board Manager : « Arduino Mbed OS Portenta Boards » (le core historique) ou « Arduino Zephyr Boards » (le nouveau core appelé à le remplacer) — pour ce tuto, le core Mbed
Code complet
// premier_programme.ino — blink + série sur la Portenta H7
// Dans l'IDE, sélectionne "Portenta H7" puis la cible M7 (ou M4).
int compteur = 0;
void setup {
Serial.begin(115200); // série sur le port USB-C
while (!Serial) {} // attends l'ouverture du moniteur série
pinMode(LEDG, OUTPUT); // LED verte embarquée (il y a aussi LEDR)
Serial.println("Portenta H7 - core M7 par defaut");
}
void loop {
digitalWrite(LEDG, HIGH); // LED ON
delay(250);
digitalWrite(LEDG, LOW); // LED OFF
delay(750);
Serial.print("tick "); Serial.println(compteur++);
}
Vérification attendue
La LED verte clignote (250 ms ON / 750 ms OFF) et le moniteur série affiche les ticks. Le programme tourne par défaut sur le Cortex-M7 ; le M4 reste au repos — c'est le tuto dual-core RPC qui l'éveillera. Si la carte semble morte, double-tape sur RESET : tu entres dans le bootloader MCUboot (la LED défile), et « Burn bootloader » dans l'IDE restaure un bootloader propre.
Erreurs fréquentes
- Câble USB-C « de charge » sans lignes data : la carte s'alimente mais n'apparaît jamais dans l'IDE — c'est la cause n°1 de fausse panne.
- Chercher la doc sur docs.portenta.io : l'ancien site dédié ne résout plus (DNS en échec) et le dépôt arduino/PortentaDocs renvoie 404 ; tout a migré sur docs.arduino.cc — beaucoup d'anciens liens profonds sont morts.
- Confondre les deux cores du Board Manager : le core Mbed (mbed_portenta) et le core Zephyr n'ont pas le même modèle de flash (le Zephyr passe par un loader, voir le tuto avancé) ; n'installe pas les deux « au cas où » sans savoir lequel tu cibles.
- Oublier que la carte a DEUX coeurs : quand tu flasheras des exemples RPC, il faudra flasher le même sketch sur M7 et M4, sinon l'appel distant échoue silencieusement.
- Rester bloqué en mode bootloader après un double-tap : re-double-tape RESET ou branche-toi sur l'IDE pour reflasher ; le mode bootloader est signalé par un comportement LED particulier.
- >
Autres tutoriels pour cette carte
- Se connecter au Wi-Fi avec le module Murata 1DX (station WPA2)
- Apprivoiser les connecteurs 80 broches : bouton, LED et entrée analogique
- Dual-core M7 ↔ M4 : appels de fonctions distants avec la bibliothèque RPC
- Client HTTPS/TLS : interroger une API sécurisée via le Murata 1DX
- Serveur web sur le port Ethernet 10/100 embarqué
- MicroPython + machine vision : le firmware OpenMV sur un cœur, C++ sur l'autre
Exemples de code pour cette carte
clignotante.inoArduinobouton-poussoir.inoArduinopwm-respiration.inoArduinoentree-analogique.inoArduinomulti-uart.inoArduinocapteur-i2c-bmp280.inoArduino