Arduino Portenta H7
⚡ L’essentiel en 60 secondes
- soc — STMicroelectronics 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).
- graphics — on-chip Chrom-ART Accelerator (DMA2D) "GPU" plus dedicated JPEG encode/decode; DisplayPort over USB-C output on the board (Arduino docs + store page).
- 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).
- 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).
- analog_digital_peripherals_stm32h747 — 3 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).
- gpio_expansion — two 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).
- Sur cette fiche : 9 tutoriels · 10 codes
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.



Schéma de brochage (pinout)


| Attr | Specs | vérifié |
|---|---|---|
soc | STMicroelectronics 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). | ✔ |
graphics | on-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_stm32h747 | 3 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_expansion | two 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é |
security | NXP SE050C2 secure element (crypto co-processor), plus STM32 TrustZone-M, MPU, RNG (store page; ST). | ? non vérifié |
power | powered from USB-C (5 V VBUS) or carrier/80-pin supplies; LiPo charging circuitry present on board. | ? non vérifié |
boot | MCUboot-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é
- Performance of SD and USB Drives on Portenta H7 (and GIGA) forum.arduino.cc
- Portenta H7 WiFi Library Very Slow forum.arduino.cc
- Giga/Portenta H7 - difficulties with malloc on zephyr 0.52 forum.arduino.cc
- Energy meter application note
- Portenta H7 websocket control project
Contenu indisponible pour le moment.
- docs.arduino.cc/hardware/portenta-h7/
- store.arduino.cc/products/portenta-h7
- setting-up-portenta
- dual-core-processing
- wifi-access-point
- reading-writing-flash-memory
- over-the-air-update
- secure-boot
- updating-the-bootloader
- usb-host
- lauterbach-debugger
- github.com/arduino/ArduinoCore-mbed
- github.com/arduino/ArduinoCore-zephyr
- github.com/arduino/ArduinoCore-API
- github.com/arduino-libraries/Arduino_PortentaMachineControl
- github.com/arduino-libraries/Arduino_MachineControl
- github.com/arduino/portenta-containers
- Arduino Forum Portenta category
- ArduinoDiscord
- 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.inoArduinobouton-poussoir.inoArduinopwm-respiration.inoArduinoentree-analogique.inoArduinomulti-uart.inoArduinocapteur-i2c-bmp280.inoArduinorpc-coeur-m4.inoArduinoservo-angle.inoArduinoruban-neopixel.inoArduinobuzzer-melodie.inoArduino
Exemples et dépôts trouvés en ligne
- arduino/ArduinoCore-mbed github.com
- hpssjellis/my-examples-for-the-arduino-portentaH7 github.com
- gdobato/portenta-h7 github.com
- gdobato/portenta-h7-async github.com