Overview

The Arduino Portenta H7 is a professional-grade, dual-core microcontroller board aimed at industrial, AI, and machine vision applications. At its heart is the STM32H747XI, which combines an ARM Cortex-M7 running at 480 MHz and a Cortex-M4 running at 240 MHz. Both cores can be programmed independently — the M7 typically handles the main application while the M4 handles real-time tasks or offloaded processing.

Released in 2020, the Portenta H7 was Arduino's first board targeting the professional and industrial market segment. It introduced the high-density connector standard — two 80-pin connectors on the bottom of the board — which allows it to slot into a wide range of carrier boards and shields, including the Portenta Hat Carrier, Portenta Max Carrier, Portenta Breakout, and various Vision Shields.

The board supports multiple programming environments: the Arduino framework (for both cores), MicroPython, OpenMV (for machine vision and ML inference), and JavaScript via Espruino. This flexibility makes it suitable for rapid prototyping through to production deployment.

Quick Overview

Property Value
MCU STM32H747XI (Cortex-M7 @ 480 MHz + Cortex-M4 @ 240 MHz)
SRAM 1 MB internal + 8 MB external SDRAM
Flash 2 MB internal + 16 MB external QSPI
Wireless Wi-Fi 802.11 b/g/n + Bluetooth 5.0
USB USB-C (USB OTG HS 480 Mbit/s)
Video Output 2 × micro-HDMI (up to 1080p60)
Camera MIPI CSI connector
I/O Connectors 2 × 80-pin high-density connectors
Operating Voltage 3.3V
Input Voltage 5V via USB-C or external
SKU ABX00042

Key Features

  • Dual-core STM32H747XI: Cortex-M7 at 480 MHz and Cortex-M4 at 240 MHz, both independently programmable
  • 1 MB internal SRAM plus 8 MB external SDRAM for memory-intensive workloads
  • 2 MB internal Flash plus 16 MB external QSPI Flash for program and data storage
  • Murata 1DX module providing Wi-Fi 802.11 b/g/n and Bluetooth 5.0 in a single chip
  • USB-C with native USB OTG High-Speed at 480 Mbit/s
  • Dual micro-HDMI ports supporting video output up to 1080p at 60 fps via MIPI DSI
  • MIPI CSI camera interface for direct camera module attachment
  • Two 80-pin high-density connectors enabling modular expansion with carrier boards
  • Compatible with Portenta Hat Carrier, Max Carrier, Vision Shield, and Breakout boards
  • Supports Arduino framework, MicroPython, OpenMV (for ML vision), and JavaScript (Espruino)
  • Designed for AI and machine learning on the edge
  • Industrial and professional application tier

Technical Specifications

Parameter Value
Microcontroller STM32H747XI
Core Architecture ARM Cortex-M7 + ARM Cortex-M4 (dual-core)
M7 Clock Speed 480 MHz
M4 Clock Speed 240 MHz
Internal SRAM 1 MB
External SDRAM 8 MB (QSPI)
Internal Flash 2 MB
External QSPI Flash 16 MB
Wireless Module Murata 1DX
Wi-Fi Standard 802.11 b/g/n (2.4 GHz)
Bluetooth 5.0
USB USB-C, USB OTG HS (480 Mbit/s)
Video Output 2 × micro-HDMI (MIPI DSI, up to 1080p60)
Camera Interface MIPI CSI
I/O Connectors 2 × 80-pin high-density (bottom)
Operating Voltage 3.3V (some pins 5V tolerant — check datasheet)
Input Voltage 5V via USB-C or external supply
ADC Resolution Up to 16-bit
PWM Yes (multiple channels)
Dimensions 66.04 × 25.4 mm

Pinout

The Portenta H7 exposes its I/O via two 80-pin high-density connectors on the bottom of the board (J1 and J2). When used standalone, a Portenta Breakout board is required to access individual pins. When mounted on a carrier board, the carrier routes the signals to accessible headers or terminal blocks.

Key signal groups available on the high-density connectors:

Signal Group Description
Digital I/O Multiple GPIO pins at 3.3V logic
Analog Inputs 12-bit and 16-bit ADC channels
PWM Multiple PWM-capable pins
UART Multiple UART interfaces
SPI SPI bus
I2C I2C bus
CAN CAN bus interface
USB USB OTG HS differential pair
MIPI DSI 4-lane display interface (drives micro-HDMI outputs)
MIPI CSI Camera serial interface
SDIO SD card interface
Ethernet 10/100 Mbps Ethernet (via carrier board)

High-Density Connector Notes

The two 80-pin connectors (J1 and J2) are board-to-board connectors. They require a mating carrier board or the Portenta Breakout board for access. Always verify 3.3V logic compatibility before connecting external peripherals.

Power

Power Parameter Value
Input Voltage (USB) 5V via USB-C
Input Voltage (External) 5V via high-density connector VIN pin
Operating Voltage (I/O) 3.3V
5V Tolerance Some pins only — refer to official datasheet
Battery Support Via carrier board (e.g., Portenta Hat Carrier)
Power Consumption Varies by core activity and wireless use

The Portenta H7 operates at 3.3V I/O. Some pins may be 5V tolerant, but this must be verified in the official STM32H747 datasheet before connecting 5V peripherals. Do not assume 5V tolerance across all pins.

On-Board Components

Component Part Function
Microcontroller STM32H747XI Dual-core M7 + M4 application processor
Wireless Module Murata 1DX Wi-Fi 802.11 b/g/n + Bluetooth 5.0
External SDRAM 8 MB Extended RAM via QSPI
External Flash 16 MB Extended program/data storage via QSPI
USB Controller Built into STM32H747 USB OTG HS 480 Mbit/s
Video Bridge On-board MIPI DSI to HDMI Drives 2 × micro-HDMI outputs
Camera Connector MIPI CSI Direct camera attachment
High-Density Connectors 2 × 80-pin Carrier board interface (J1 and J2)
Power LED On-board Power indicator
User LED On-board (RGB) Programmable status LED

Microcontroller

The STM32H747XI from STMicroelectronics is an asymmetric dual-core microcontroller from the STM32H7 series. The two cores share peripherals and memory but operate independently.

Core Details
Cortex-M7 480 MHz, FPU, DSP instructions, primary application core
Cortex-M4 240 MHz, FPU, DSP instructions, secondary/real-time core

Both cores can access the peripherals, with hardware semaphores and mailboxes used for inter-core communication. In the Arduino environment, the M7 core runs the main sketch by default. The M4 can be programmed separately via the Arduino IDE by selecting the Portenta H7 (M4 core) target.

The STM32H747XI includes hardware floating-point units on both cores, making it capable of signal processing and lightweight ML inference without an external coprocessor.

Wireless Connectivity

The Murata 1DX module integrates Wi-Fi and Bluetooth in a compact package certified for multiple regions.

Wireless Feature Value
Module Murata 1DX
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth 5.0 (Classic + LE)
Antenna On-board PCB antenna
Certification CE, FCC, IC (regional certifications)
Arduino Library WiFi (built into Arduino Mbed OS Portenta core)

Getting Started

Prerequisites

  • Arduino IDE 2.x (recommended) or Arduino IDE 1.8.19+
  • Install the Arduino Mbed OS Portenta Boards package via Boards Manager
  • USB-C cable (data-capable, not charge-only)
  • Optional: Portenta Breakout board for pin access

Board Setup

  1. Open Arduino IDE
  2. Go to Tools > Board > Boards Manager
  3. Search for "Arduino Mbed OS Portenta Boards" and install
  4. Select Tools > Board > Arduino Portenta H7 (M7 core)
  5. Connect the Portenta H7 via USB-C
  6. Select the correct port under Tools > Port

Blink Example (M7 Core)

// Arduino Portenta H7 — Blink example (M7 core) // The built-in RGB LED uses active-LOW logic on Portenta H7 // LEDB = Blue LED (active LOW) void setup() { pinMode(LEDB, OUTPUT); Serial.begin(115200); while (!Serial); Serial.println("Portenta H7 ready"); } void loop() { digitalWrite(LEDB, LOW); // LED ON (active LOW) delay(500); digitalWrite(LEDB, HIGH); // LED OFF delay(500); }

Wi-Fi Connection Example

// Arduino Portenta H7 — Wi-Fi connection example #include <WiFi.h> const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; void setup() { Serial.begin(115200); while (!Serial); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("Wi-Fi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); } void loop() { // Your networked application here }

Programming

The Portenta H7 supports several programming environments:

Environment Details
Arduino IDE Full Arduino framework support for M7 and M4 cores separately
Arduino Pro IDE Advanced IDE with OpenMV integration for ML vision workflows
MicroPython Flash MicroPython firmware to run Python scripts on M7
OpenMV Machine vision framework — camera processing, object detection, QR codes
Espruino JavaScript runtime for the Portenta H7

Dual-Core Programming

In Arduino IDE, you can select either the M7 or M4 core as the programming target. The M7 sketch runs as the main application. The M4 sketch is embedded within the M7 firmware and launched by the M7 at startup using the BootM4() call.

Package Contents

Item Quantity
Arduino Portenta H7 board 1

A USB-C cable and carrier board are sold separately. A Portenta Breakout board is recommended for prototyping.

Applications

  • Industrial edge computing and IIoT gateways
  • Machine vision and AI inference (with Vision Shield or MIPI CSI camera)
  • Robotics and motion control (dual-core enables real-time + application layers)
  • Predictive maintenance and vibration analysis
  • High-speed data acquisition
  • Smart building automation
  • Audio processing and voice recognition
  • Fleet and asset tracking with wireless connectivity
  • Digital signage (dual micro-HDMI outputs)
  • Production-grade IoT devices requiring wireless + compute

Where to Buy

Equivalent Boards

Board MCU Key Difference
Arduino Portenta C33 Renesas R7FA6M5 (Cortex-M33, 200 MHz) Lower cost, single-core, same form factor
Arduino Portenta X8 NXP i.MX 8M Mini (A53) + STM32H747 (M7+M4) Linux-capable, more powerful, higher cost
Arduino GIGA R1 WiFi STM32H747XI (same MCU) Arduino Mega form factor, no high-density connectors

Notes

  • All I/O on the Portenta H7 operates at 3.3V logic. Connecting 5V signals directly to I/O pins may damage the board. Always verify 5V tolerance in the STM32H747XI datasheet for specific pins before use.
  • The high-density connectors are not breadboard-compatible. A Portenta Breakout board or a compatible carrier board is required for prototyping.
  • The M4 core must be started programmatically by the M7 core using BootM4(). It is not automatically activated at power-on.
  • When flashing MicroPython or OpenMV firmware, the board will no longer run Arduino sketches until Arduino firmware is reflashed.
  • USB-C cables must support data transfer. Charge-only USB-C cables will not allow programming.

Community

Revision History

Version Date Notes
v1.0 2026-06 Initial entry