Arduino Portenta H7

ArduinoMCU 8-32 bitarduino

⚡ L’essentiel en 60 secondes

La Portenta H7 d'Arduino se positionne comme le fleuron de la gamme industrielle, incarnant une transition majeure vers des systèmes embarqués de haute performance capables de rivaliser avec des ordinateurs monocarte tout en conservant la simplicité de programmation des microcontrôleurs classiques. Introduite en 2020, cette carte repose sur un cœur de processeur double cœur très puissant, le STM32H747XI de STMicroelectronics. Pour comprendre la puissance de cette architecture, il faut savoir qu'elle intègre deux unités de calcul distinctes mais complémentaires. Le premier cœur, un Cortex-M7, peut atteindre une fréquence de 480 MHz, ce qui signifie qu'il peut exécuter jusqu'à 480 millions de cycles d'horloge par seconde. Cette fréquence élevée, combinée à une unité de virgule flottante double précision, permet de réaliser des calculs mathématiques complexes et des traitements de signal en temps réel sans latence perceptible. Le second cœur, un Cortex-M4, fonctionne jusqu'à 240 MHz et est dédié aux tâches de contrôle temps réel et à la gestion des périphériques, libérant ainsi le cœur principal pour les calculs lourds. Cette dualité permet une parallélisation des tâches : on peut, par exemple, faire tourner une interface graphique sur un cœur tandis que l'autre gère les capteurs critiques, le tout communiquant via un mécanisme de communication inter-processus (RPC) intégré.

La gestion de la mémoire est tout aussi impressionnante pour un microcontrôleur. En plus de la mémoire flash interne de 2 Mo et de la RAM de 1 Mo, la carte embarque 8 Mo de SDRAM externe et 16 Mo de mémoire flash NOR. La SDRAM, ou mémoire vive dynamique synchrone, offre un espace de stockage temporaire rapide, indispensable pour le traitement d'images ou le stockage de tampons de données volumineux, tandis que la flash NOR permet de stocker des données persistantes et des bibliothèques logicielles lourdes. Cette capacité est renforcée par un accélérateur graphique intégré, le Chrom-ART Accelerator, qui fonctionne comme un petit processeur graphique dédié. Il permet de générer des interfaces utilisateur riches et fluides, avec des animations et des rendus 3D simples, et de les afficher directement sur un moniteur via une sortie DisplayPort transportée par le port USB-C. Cette capacité graphique, rare sur ce type de plateforme, ouvre la voie à des applications de type borne interactive ou tableau de bord industriel sans nécessiter de carte graphique externe.

En matière de connectivité, la Portenta H7 est équipée d'un module Murata 1DX qui offre une connexion Wi-Fi double bande et Bluetooth 5.1. Le Wi-Fi permet des vitesses de transfert allant jusqu'à 65 Mbps, suffisantes pour la transmission de flux vidéo ou la mise à jour à distance du logiciel. La présence d'un port Ethernet 10/100 Mbps, accessible via les connecteurs à haute densité, assure une connexion filaire robuste, souvent préférée dans les environnements industriels où le Wi-Fi peut être sujet aux interférences. La sécurité est également un pilier central de cette carte. Elle intègre un élément sécurisé dédié, le NXP SE050C2, qui agit comme un coffre-fort matériel pour les clés de chiffrement et les identifiants, protégeant les données sensibles contre les attaques physiques. De plus, le démarrage sécurisé (Secure Boot) garantit que seul un firmware signé par le fabricant peut être exécuté, empêchant l'installation de logiciels malveillants.

L'écosystème logiciel de la Portenta H7 est en pleine mutation, offrant plusieurs environnements de développement. Traditionnellement, elle utilise le noyau Arduino basé sur Mbed OS, qui permet d'écrire du code C++ classique. Cependant, Arduino migre progressivement vers un nouveau noyau basé sur Zephyr RTOS, un système d'exploitation temps réel moderne et modulaire. Cette transition introduit un modèle de chargement dynamique où le code de l'utilisateur est compilé en un fichier ELF chargé à la volée par un chargeur précompilé, permettant des mises à jour plus rapides et une meilleure isolation des applications. Pour les amateurs de programmation rapide ou de prototypage, la carte supporte également MicroPython et JavaScript, permettant d'exécuter des scripts interprétés sur l'un des cœurs tandis que l'autre tourne en C++. Il est important de noter que la Portenta H7 elle-même ne fait pas tourner Linux ; pour des besoins de système d'exploitation complet avec conteneurs Docker, il faut la coupler au module complémentaire Portenta X8.

La carte se distingue aussi par son format physique et ses connecteurs. Elle utilise deux connecteurs à 80 broches à haute densité, une norme industrielle qui permet une grande flexibilité de câblage pour les entrées/sorties numériques (GPIO), les communications série (UART, SPI, I2C) et l'alimentation. Ce format permet une compatibilité ascendante avec une gamme de cartes porteuses (carriers) et de modules d'extension, comme le Vision Shield pour la vision par ordinateur ou le Machine Control pour la commande de moteurs. La présence d'un accélérateur de reconnaissance vocale (Syntiant NDP101/120) et de bibliothèques pour TensorFlow Lite permet de réaliser de l'intelligence artificielle directement sur la carte, sans dépendre d'un serveur cloud.

Malgré ses atouts, la Portenta H7 présente certaines complexités inhérentes à sa puissance. La gestion des deux cœurs nécessite une attention particulière à la synchronisation, car les exemples officiels montrent qu'il faut parfois ajouter des délais pour s'assurer que les fonctions distantes sont bien chargées avant d'être appelées. De plus, la migration entre les noyaux Mbed et Zephyr peut engendrer des incompatibilités temporaires avec certaines bibliothèques tierces. La documentation historique a également connu des discontinuités, avec la fermeture de sites dédiés, obligeant les utilisateurs à se tourner vers les ressources centralisées sur docs.arduino.cc. Enfin, bien que la carte soit conçue pour un démarrage rapide, les performances Wi-Fi peuvent nécessiter des ajustements logiciels spécifiques en cas de perte de connexion, comme la réinitialisation manuelle du module. En somme, la Portenta H7 est un outil puissant destiné aux développeurs avancés et aux applications industrielles exigeantes, offrant un compromis remarquable entre la facilité d'utilisation de l'écosystème Arduino et la puissance d'un système embarqué professionnel.

Forum (1 sujet) →

AttrSpecsvérifié
socSTMicroelectronics STM32H747XI dual-core Arm MCU. - Cortex-M7 up to 480 MHz, FPU with single- and double-precision (IEEE 754), DSP instructions, MPU (ST). - Cortex-M4 up to 240 MHz (single-precision FPU), real-time coprocessor role (ST / Arduino). - Both cores share all on-chip peripherals; cores communicate through Arduino's RPC mechanism (OpenAMP/rpmsg-based) (docs.arduino.cc).✔
graphicson-chip Chrom-ART Accelerator (DMA2D) "GPU" plus dedicated JPEG encode/decode; DisplayPort over USB-C output on the board (Arduino docs + store page).? non vérifié
memory- On-chip: dual-bank flash up to 2 MB, up to 1 MB RAM (192 KB TCM, up to 864 KB user SRAM, 4 KB backup SRAM) (ST). - On-board: 8 MB SDRAM (external, FMC) and 16 MB NOR flash (store page "default configuration" list).? non vérifié
connectivity- Murata 1DX module: dual-band-capable Wi-Fi (802.11n, up to 65 Mbps, AP / STA / simultaneous AP+STA modes) + Bluetooth 5.1 (Classic and Low Energy) (Arduino docs + store page). - 10/100 Ethernet PHY on-board, exposed via the 80-pin connector pair (store page). - USB-C HS multipurpose port: programming, power, USB host/hub, DisplayPort alt-mode, OTG power delivery (store page).? non vérifié
analog_digital_peripherals_stm32h7473 ADCs, 2 DACs, 2 ultra-low-power comparators, low-power RTC, high-resolution timer, 12 general 16-bit timers, 2 motor-control PWM timers, 5 low-power timers, RNG, 4× DFSDM sigma-delta filters (ST product page).? non vérifié
gpio_expansiontwo 80-pin high-density "Arduino industrial" connectors at the bottom (plus MKR-style connector footprint); expose UART/SPI/I2C and, via the 80-pin pair, Ethernet and more (store page).? non vérifié
securityNXP SE050C2 secure element (crypto co-processor), plus STM32 TrustZone-M, MPU, RNG (store page; ST).? non vérifié
powerpowered from USB-C (5 V VBUS) or carrier/80-pin supplies; LiPo charging circuitry present on board.? non vérifié
bootMCUboot-based secure bootloader, updatable (MCUboot library ships in the core; official tutorials: updating-the-bootloader, secure-boot).✔
  • Fabricant : Arduino (Arduino AG / Arduino S.r.l., Italie). Depuis octobre 2025, la société Arduino appartient à Qualcomm (Wikipedia — Arduino, consulté le 2026-10-13).
  • Produit : Portenta H7, produit phare de la gamme industrielle « Portenta » ; configuration par défaut commandable sous le nom de code H7-15EUNWAD, famille de SKU boutique ABX00042 (SKU visible sur les images produit de la boutique, p. ex. ABX00042_00.iso.jpg) (store.arduino.cc/products/portenta-h7, consulté le 2026-10-13).
  • Année d'introduction : 2020 (annoncé à la mi-2020).
  • Statut : Actif / produit actuel. Référencé et vendu sur la boutique officielle à €120.80 (prix extrait du JSON/HTML de la page boutique, consulté le 2026-10-13).
  • Variantes (toutes avec des pages actives sur docs.arduino.cc, consultées le 2026-10-13 via sitemap-0.xml) : - Portenta H7 — fiche technique complète (hardware/portenta-h7) - Portenta H7 Lite / H7 Lite Connected — variantes à coût réduit (lite, lite connected) - Portenta X8 — module compagnon ajoutant un processeur Linux NXP i.MX 8MP (hardware/portenta-x8) - Écosystème de carriers : Portenta Breakout, Max Carrier, Mid Carrier, Hat Carrier, Machine Control, Vision Shield, shields de classe carrier.

+ Points forts

  • Vrai parallélisme double cœur avec RPC transparent : exécuter du Arduino/C++ compilé sur un cœur et MicroPython sur l'autre ; appels distants RPC.bind/RPC.call sur OpenAMP (docs.arduino.cc/hardware/portenta-h7 ; bibliothèque RPC : libraries/RPC).
  • Chaîne graphique : Chrom-ART (DMA2D) + codec JPEG + DisplayPort-sur-USB-C → piloter un moniteur depuis un MCU ; tutoriel GUI LVGL officiel (creating-gui-with-lvgl).
  • Vision machine / ML : Vision Shield (caméras de classe Himax HM01B0 / GC2145 prises en charge par les bibliothèques du core Camera, Arduino_H7_Video, Himax_HM01B0, Himax_HM0360, OV7670 — toutes présentes dans ArduinoCore-mbed/libraries) ; inférence TensorFlow Lite et CMSIS-NN (bibliothèque MLC) ; prise en charge du moteur de reconnaissance vocale Syntiant NDP101/120 (bibliothèques syntiant_ilib, NDP ; tutoriel speech-recognition-engine).
  • Sécurité industrielle : élément sécurisé SE050C2 + secure boot + mises à jour OTA signées (tutoriel over-the-air-update, tutoriel secure-boot).
  • Standard mézzanine 80 broches haute densité → mises à niveau broche-compatibles H7 ↔ H7 Lite ↔ X8 sur le même carrier (page boutique).
  • Pile hôte USB (bibliothèques USBHOST/USBMSD/USBHID/USBAudio/USBMIDI ; tutoriel usb-host), audio PDM (Portenta_Audio), carte SD (Portenta_SDCARD), API SDRAM externe (Portenta_SDRAM), CAN (Arduino_CAN), Ethernet — le tout fourni dans le core.
  • Positionnement démarrage rapide : « high-speed booting computation (ms) » pour les dispositifs critiques (page boutique).

− Points faibles

  • Le Wi-Fi ne se reconnecte pas après une perte de PA (core Mbed classique) : WiFi.begin seul ne parvenait pas à rejoindre un PA rétabli ; un WiFi.end avant le nouveau begin était nécessaire. Signalé avec MRE complète dans arduino/ArduinoCore-mbed#382 (2022, fermé).
  • Le firmware Wi-Fi peut être perdu/corrompu → Wi-Fi mort après de mauvaises mises à jour ; la récupération officielle consiste à exécuter le sketch FlashFormat pour restaurer le firmware du module (FAQ README ArduinoCore-zephyr, consulté le 2026-10-13).
  • Tracasserie de migration de core : le core Mbed est remplacé par le core Zephyr ; les API, la compatibilité des bibliothèques et le modèle de téléversement (chargeur llext, modes « Standard/Debug », shell Zephyr) diffèrent, et certaines fonctions Zephyr ne sont pas encore exportées vers les sketches (llext_exports.c contournement) (README ArduinoCore-zephyr).
  • Rupture de documentation : le site dédié docs.portenta.io ne résout plus (DNS ENOTFOUND, 2026-10-13) et le dépôt arduino/PortentaDocs est en 404 (2026-10-13) ; le contenu est désormais sur docs.arduino.cc — beaucoup d'anciens liens profonds sont morts.
  • Pièges du double cœur : les sketches doivent être téléversés sur les deux cœurs pour que les exemples RPC fonctionnent, et le M7 doit laisser au M4 le temps de lier les fonctions distantes (les exemples officiels insèrent un delay(100) explicite après RPC.begin sur le M7) (exemple Basic_AddSub).
  • Piège de taille de pile du chargeur Zephyr : le chargement de sketch via le shell Zephyr demande une grande pile ; les utilisateurs doivent réduire la pile du shell dans le .conf de la carte sur les builds à RAM contrainte (FAQ README ArduinoCore-zephyr).
  • Pas d'exemple websocket historiquement pour la pile Wi-Fi Mbed (demande communautaire arduino/ArduinoCore-mbed#589) ; des piles tierces (p. ex. celles de khoih-prog) ont comblé le manque.
  • Retour d'expérience expert expert — expert-arduino
    • Je passe sur la Portenta H7 pour un projet industriel. La dualité des coeurs est réelle : je tourne du C++ sur le M7 et du MicroPython sur le M4 via l'RPC, ça marche bien. Par contre, attention au Wi-Fi. Comme documenté dans l'issue 382, si l'AP tombe, WiFi.begin ne suffit pas. Il faut impérativeme… — expert-arduino
    • Salut, je découvre la carte. Tu parles de la corruption Wi-Fi, c'est arrivé à la livraison ou après un update ? J'ai vu que la fiche source mentionne que la doc officielle docs.portenta.io ne répond plus (DNS error), ce qui est embêtant pour la migration depuis l'autre core. Pour la partie graphiqu… — maker-hobby-99
    • @maker-hobby-99 Pour le display, ça tourne mais faut lire le tuto LVGL sur docs.arduino.cc, c'est pas plug-and-play. Pour le Wi-Fi, expert-arduino a raison sur le hack WiFi.end. Le souci c'est que si tu perds la config, tu perds aussi l'accès à certaines fonctions réseau complexes une fois le modul… — debug-user-01

Retours et projets de la communauté

  • Energy meter application note

    Energy meter application note — official three-phase energy-meter design on Portenta H7: (retrieved 2026-10-13). (unverified au 2026-10-13) GUI with LVGL on a DisplayPort monitor — official tutorial using the Chrom-ART accelerator: . (unverified au 2026-10-13…

  • Portenta H7 websocket control project

    Portenta H7 websocket control project — (community): GitPod-hosted websocket server + browser UI driving the board — (linked from ). (unverified au 2026-10-13) Third-party connectivity stacks — khoih-prog's Portenta H7 Wi-Fi/Ethernet/WebServer libraries ecosy…

Contenu indisponible pour le moment.

  • Le Wi-Fi ne se reconnecte pas après une perte de PA (core Mbed classique) : WiFi.begin seul ne parvenait pas à rejoindre un PA rétabli ; un WiFi.end avant le nouveau begin était nécessaire. Signalé avec MRE complète dans arduino/ArduinoCore-mbed#382 (2022, fermé).
  • Le firmware Wi-Fi peut être perdu/corrompu → Wi-Fi mort après de mauvaises mises à jour ; la récupération officielle consiste à exécuter le sketch FlashFormat pour restaurer le firmware du module (FAQ README ArduinoCore-zephyr, consulté le 2026-10-13).
  • Tracasserie de migration de core : le core Mbed est remplacé par le core Zephyr ; les API, la compatibilité des bibliothèques et le modèle de téléversement (chargeur llext, modes « Standard/Debug », shell Zephyr) diffèrent, et certaines fonctions Zephyr ne sont pas encore exportées vers les sketches (llext_exports.c contournement) (README ArduinoCore-zephyr).
  • Rupture de documentation : le site dédié docs.portenta.io ne résout plus (DNS ENOTFOUND, 2026-10-13) et le dépôt arduino/PortentaDocs est en 404 (2026-10-13) ; le contenu est désormais sur docs.arduino.cc — beaucoup d'anciens liens profonds sont morts.
  • Pièges du double cœur : les sketches doivent être téléversés sur les deux cœurs pour que les exemples RPC fonctionnent, et le M7 doit laisser au M4 le temps de lier les fonctions distantes (les exemples officiels insèrent un delay(100) explicite après RPC.begin sur le M7) (exemple Basic_AddSub).
  • Piège de taille de pile du chargeur Zephyr : le chargement de sketch via le shell Zephyr demande une grande pile ; les utilisateurs doivent réduire la pile du shell dans le .conf de la carte sur les builds à RAM contrainte (FAQ README ArduinoCore-zephyr).
  • Pas d'exemple websocket historiquement pour la pile Wi-Fi Mbed (demande communautaire arduino/ArduinoCore-mbed#589) ; des piles tierces (p. ex. celles de khoih-prog) ont comblé le manque.
  • Premier programme : installer le core et faire clignoter la LED (M7 à 480 MHz !) debutant Schéma : IMG-portenta-h7-debutant-1-portenta-h7-premier-programme.svg — Arduino Portenta H7 vue de dessus avec le SoC STM32H747XI (double coeur M7/M4) et la LED utilisateur LEDG mise en évidence, câble USB-C branché, deux connecteurs 80 broches annotés sous la carte
  • Se connecter au Wi-Fi avec le module Murata 1DX (station WPA2) debutant Schéma : IMG-portenta-h7-debutant-2-portenta-h7-connexion-wifi.svg — Portenta H7 sur un bureau, ondes Wi-Fi reliant le module blindé Murata 1DX à une box Internet, terminal série affichant l'adresse IP obtenue, étiquette 802.11n 65 Mbps
  • Apprivoiser les connecteurs 80 broches : bouton, LED et entrée analogique debutant Schéma : IMG-portenta-h7-debutant-3-portenta-h7-broches-gpio.svg — Portenta H7 sur breadboard avec ses deux connecteurs 80 broches en bas de carte, bouton poussoir sur une broche D avec pull-up interne, potentiomètre sur une broche A, porteuse Breakout à côté annotée compatible H7 Lite et X8
  • Dual-core M7 ↔ M4 : appels de fonctions distants avec la bibliothèque RPC intermediaire Schéma : IMG-portenta-h7-intermediaire-1-portenta-h7-dual-core-rpc.svg — SoC STM32H747XI éclaté en deux coeurs Cortex-M7 480 MHz et Cortex-M4 240 MHz reliés par une flèche double étiquetée RPC/OpenAMP, croquis identique flashé sur chaque coeur, terminal série affichant add(1,2)=3
  • Client HTTPS/TLS : interroger une API sécurisée via le Murata 1DX intermediaire Schéma : IMG-portenta-h7-intermediaire-2-portenta-h7-client-tls.svg — Portenta H7 envoyant un tunnel TLS en pointillés verts vers un serveur web distant via la box Internet, cadenas sur le tunnel, terminal série affichant le début de la réponse HTTP, étiquette certificats en flash
  • Serveur web sur le port Ethernet 10/100 embarqué intermediaire Schéma : IMG-portenta-h7-intermediaire-3-portenta-h7-serveur-web-ethernet.svg — Portenta H7 reliée par un câble RJ45 (via porteuse ou connecteurs 80 broches) à un switch, un navigateur laptop affichant la page servie par l'IP de la carte, étiquettes PHY 10/100 et connecteurs 80 broches
  • MicroPython + machine vision : le firmware OpenMV sur un cœur, C++ sur l'autre avance Schéma : IMG-portenta-h7-avance-1-portenta-h7-micropython-openmv.svg — Portenta H7 avec caméra branchée sur le connecteur CSI, écran OpenMV IDE affichant une image QVGA avec rectangle de détection, étiquettes MicroPython OpenMV sur un coeur et Arduino C++ sur l'autre, Vision Shield à côté
  • Le core Zephyr : sketches ELF chargés à chaud via llext (fin du reflash complet) avance Schéma : IMG-portenta-h7-avance-2-portenta-h7-zephyr-llext.svg — architecture du core Zephyr sur Portenta H7 : loader Zephyr précompilé en bas, sketch compilé en ELF chargé dynamiquement par llext au-dessus, flèche d'upload sans reset, terminal Zephyr shell affichant la commande sketch
  • Sécurité industrielle : bootloader MCUboot, secure boot, SE050 et OTA signé avance Schéma : IMG-portenta-h7-avance-3-portenta-h7-securite-boot-ota.svg — chaîne de confiance de la Portenta H7 en maillons : bootloader MCUboot, secure boot vérifiant la signature, élément sécurisé NXP SE050C2, mise à jour OTA signée entrant par le Wi-Fi, TrustZone-M en arrière-plan du SoC

Bibliothèque de code — exemples écrits pour cette carte

  • clignotante.ino Arduino

    Le blink de mise en jambe sur la Portenta H7 : le core Arduino Mbed masque la complexité du STM32H747 double cœur. Le moniteur série passe par l'USB-C ; le core tourne sur le Cortex-M7 à 480 MHz.

  • bouton-poussoir.ino Arduino

    Le montage bouton/LED passe tel quel sur la Portenta : le core Arduino Mbed fournit INPUT_PULLUP et digitalRead avec la même sémantique. Le commentaire pense déjà à la version interruption pour le mo…

  • pwm-respiration.ino Arduino

    Les timers du H7 montent à des fréquences PWM bien au-delà des AVR : 100 kHz ici, idéal pour filtrer en vraie tension analogique avec un simple RC. La courbe gamma garde la respiration naturelle à l'…

  • entree-analogique.ino Arduino

    L'ADC 12 bits du H7 offre seize fois la résolution des Uno classiques. La fenêtre glissante de 16 mesures donne des tensions stables pour un capteur industriel 0-3,3 V ou un diviseur de batterie.

  • multi-uart.ino Arduino

    La signature des grosses cartes STM32 : plusieurs UART matériels simultanés. Ce pont à trois ports (console USB-C, GPS sur Serial1, module sur Serial2) illustre le multiplexage sans bibliothèque supp…

  • capteur-i2c-bmp280.ino Arduino

    Le BMP280 sur le bus I2C de la Portenta, en écritures Wire brutes : reset, mode forcé, déclenchement et lecture des 20 bits de pression. Comprendre le protocole avant de sortir les bibliothèques tout…

  • rpc-coeur-m4.ino Arduino

    La fonctionnalité signature de la Portenta : le M7 appelle une fonction exportée par le M4 avec la syntaxe d'un appel local. Deux cerveaux Arduino dans le même module, communiquant par RPC — le croqu…

  • servo-angle.ino Arduino

    La bibliothèque Servo du core Mbed génère l'impulsion 50 Hz en matériel sur les timers du H7. Un balayage 0-180° complet valide la chaîne avant de l'intégrer à un bras robotisé piloté par RPC.

  • ruban-neopixel.ino Arduino

    Les WS2812 exigent des microsecondes précises : le core Mbed les génère proprement sur la Portenta. Une tête cyan qui tourne sur 16 LED sert de premier banc d'essai, pendant que le M7 fait autre chos…

  • buzzer-melodie.ino Arduino

    Une mélodie de test pour le buzzer passif : tone() du core Mbed s'appuie sur un timer matériel, la fréquence reste juste quelle que soit la charge du M7. La table de notes se joue en séquence non cri…

Exemples et dépôts trouvés en ligne