Arduino Portenta X8
Image Gallery






Overview
The Arduino Portenta X8 is the most powerful board in the Portenta family and Arduino's first Linux-capable board designed for industrial and professional applications. It combines two distinct processing systems on a single board: an NXP i.MX 8M Mini with four ARM Cortex-A53 cores running at 1.8 GHz for Linux applications, and an STM32H747XI with a Cortex-M7 at 480 MHz plus a Cortex-M4 at 240 MHz for real-time Arduino I/O.
This hybrid architecture allows the Linux side to handle complex tasks — cloud connectivity, container orchestration, computer vision, edge AI, and networking — while the STM32H747 provides deterministic real-time control of hardware peripherals. The two processors communicate via RPC (Remote Procedure Call), enabling seamless data exchange between the Linux and Arduino layers.
The board runs a Yocto-based Linux distribution maintained by Arduino, and supports Docker containers, making it possible to deploy containerized applications — including cloud agents, ML inference servers, and MQTT brokers — directly on the board.
Quick Overview
| Property | Value |
|---|---|
| Linux SoC | NXP i.MX 8M Mini (quad Cortex-A53 @ 1.8 GHz) |
| Microcontroller | STM32H747XI (Cortex-M7 @ 480 MHz + M4 @ 240 MHz) |
| RAM | 2 GB LPDDR4 |
| Storage | 16 GB eMMC |
| Wireless | Wi-Fi 802.11 b/g/n + Bluetooth 5.0 |
| USB | USB-C (USB 3.0 via hub) |
| Video Output | micro-HDMI |
| I/O Connectors | 2 × 80-pin high-density connectors |
| OS | Yocto Linux (Arduino-maintained) |
| Container Support | Docker |
| SKU | ABX00049 |
Key Features
- Hybrid dual-OS architecture: Linux on A53 cores for applications, Arduino on STM32H747 for real-time I/O
- NXP i.MX 8M Mini with four Cortex-A53 cores at 1.8 GHz powering the Linux environment
- STM32H747XI with Cortex-M7 at 480 MHz and Cortex-M4 at 240 MHz for deterministic hardware control
- 2 GB LPDDR4 RAM for Linux applications and workloads
- 16 GB eMMC storage for the OS, containers, and application data
- Murata 1DX Wi-Fi 802.11 b/g/n and Bluetooth 5.0 connectivity
- USB-C with USB 3.0 capability via on-board USB hub
- Micro-HDMI video output for display-connected applications
- Two 80-pin high-density connectors compatible with entire Portenta carrier board ecosystem
- Docker container support — deploy containerized applications at the edge
- RPC communication between Linux (A53) and Arduino (M7/M4) layers
- Yocto Linux distribution maintained and supported by Arduino
- Industrial and professional-grade board
Technical Specifications
| Parameter | Value |
|---|---|
| Linux SoC | NXP i.MX 8M Mini |
| Linux Cores | 4 × ARM Cortex-A53 @ 1.8 GHz |
| Microcontroller | STM32H747XI |
| MCU Core 1 | ARM Cortex-M7 @ 480 MHz |
| MCU Core 2 | ARM Cortex-M4 @ 240 MHz |
| RAM | 2 GB LPDDR4 |
| Storage | 16 GB eMMC |
| Internal MCU Flash | 2 MB |
| Wireless Module | Murata 1DX |
| Wi-Fi Standard | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | 5.0 |
| USB | USB-C (USB 3.0 via hub) |
| Video Output | micro-HDMI |
| I/O Connectors | 2 × 80-pin high-density (bottom) |
| Operating System | Yocto Linux (Arduino-maintained) |
| Container Runtime | Docker |
| Inter-Processor Comm | RPC (Remote Procedure Call) |
| Dimensions | 66.04 × 25.4 mm |
Pinout
The Portenta X8 exposes I/O via two 80-pin high-density connectors (J1 and J2) on the bottom of the board. These connectors carry signals from both the NXP i.MX 8M Mini (Linux side) and the STM32H747 (Arduino/real-time side). A Portenta Breakout board or compatible carrier board is required for individual pin access.
| Signal Group | Source | Description |
|---|---|---|
| Digital I/O (GPIO) | STM32H747 | 3.3V logic GPIO pins |
| Analog Inputs | STM32H747 | ADC channels (up to 16-bit) |
| PWM | STM32H747 | PWM output channels |
| UART | STM32H747 / i.MX 8M Mini | Serial interfaces |
| SPI | STM32H747 | SPI bus |
| I2C | STM32H747 | I2C bus |
| CAN | STM32H747 | CAN bus |
| USB | i.MX 8M Mini | USB 3.0 (via hub) |
| Ethernet | i.MX 8M Mini | 10/100/1000 Mbps (via carrier board) |
| MIPI DSI | i.MX 8M Mini | Display output |
| MIPI CSI | i.MX 8M Mini | Camera input |
Power
| Power Parameter | Value |
|---|---|
| Input Voltage (USB) | 5V via USB-C |
| Input Voltage (External) | 5V via high-density connector VIN |
| MCU Operating Voltage | 3.3V (STM32H747 I/O) |
| Linux SoC Voltage | Managed internally |
| RAM Voltage | 1.1V LPDDR4 (managed internally) |
The STM32H747 I/O operates at 3.3V. The NXP i.MX 8M Mini power domains are managed internally by the PMIC on the board. Do not apply 5V signals to the 3.3V MCU I/O pins.
On-Board Components
| Component | Part | Function |
|---|---|---|
| Linux SoC | NXP i.MX 8M Mini | Quad Cortex-A53, Linux application processor |
| Microcontroller | STM32H747XI | Cortex-M7 + M4, real-time Arduino I/O controller |
| RAM | 2 GB LPDDR4 | Main memory for Linux |
| eMMC Storage | 16 GB | OS, containers, and application storage |
| Wireless Module | Murata 1DX | Wi-Fi 802.11 b/g/n + Bluetooth 5.0 |
| USB Hub | On-board | USB 3.0 hub enabling USB-C connectivity |
| PMIC | On-board | Power management for all voltage domains |
| High-Density Connectors | 2 × 80-pin | Carrier board interface (J1 and J2) |
| micro-HDMI | On-board | Video output from i.MX 8M Mini |
Microcontroller
The Portenta X8 contains two processors:
Linux Application Processor — NXP i.MX 8M Mini
| Feature | Value |
|---|---|
| Core | 4 × ARM Cortex-A53 |
| Clock Speed | Up to 1.8 GHz |
| RAM | 2 GB LPDDR4 (shared) |
| Storage | 16 GB eMMC |
| OS | Yocto Linux (Arduino-maintained) |
| Containers | Docker runtime included |
Real-Time Microcontroller — STM32H747XI
| Feature | Value |
|---|---|
| Core 1 | ARM Cortex-M7 @ 480 MHz |
| Core 2 | ARM Cortex-M4 @ 240 MHz |
| Internal Flash | 2 MB |
| Internal SRAM | 1 MB |
| Framework | Arduino |
| Communication with A53 | RPC (Remote Procedure Call via shared memory) |
The M7 and M4 run Arduino sketches. They communicate with the Linux side via RPC, allowing the Linux application to read sensors, trigger outputs, and exchange data with the Arduino layer in near real time.
Wireless Connectivity
| Wireless Feature | Value |
|---|---|
| Module | Murata 1DX |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | 5.0 |
| Accessible From | Linux side (i.MX 8M Mini) and Arduino side (STM32H747) |
Getting Started
Prerequisites
- Arduino IDE 2.x (for the M7/M4 Arduino layer)
- Arduino Mbed OS Portenta Boards package installed
- USB-C cable (data-capable)
- Optional: Portenta Breakout or carrier board for pin access
- For Linux layer: SSH client or serial terminal
Blink Example (M7 Arduino Layer)
RPC Communication Example (Arduino side sending data to Linux)
Programming
| Layer | Environment | Details |
|---|---|---|
| Arduino (M7/M4) | Arduino IDE | Program the STM32H747 real-time layer |
| Linux (A53) | SSH / serial terminal | Manage Linux OS, deploy Docker containers |
| Linux (A53) | Python | Write Python apps on the Linux side |
| Linux (A53) | Docker | Deploy containerized apps (MQTT, ML, web servers, etc.) |
The Linux and Arduino layers communicate via RPC over a shared memory interface. This allows Linux applications to call Arduino functions and vice versa, enabling tightly integrated hybrid applications.
Package Contents
| Item | Quantity |
|---|---|
| Arduino Portenta X8 board | 1 |
A USB-C cable and carrier board are sold separately.
Applications
- Industrial edge computing with Linux and real-time I/O
- Cloud-connected gateways running containerized MQTT brokers
- Machine vision applications (MIPI CSI camera + Linux AI frameworks)
- Digital signage (HDMI output + Linux media player)
- Predictive maintenance with cloud upload
- Industrial automation requiring Linux flexibility and real-time hardware control
- Docker-based OTA (Over-the-Air) update deployments
- Secure industrial IoT nodes
Where to Buy
- Arduino Official Store — official source
- Amazon — search for Arduino Portenta X8
Equivalent Boards
| Board | Key Difference |
|---|---|
| Arduino Portenta H7 | No Linux, single MCU only (STM32H747), less RAM and storage, lower cost |
| Arduino Portenta C33 | No Linux, single Cortex-M33 MCU, lower cost and power |
| Raspberry Pi Compute Module 4 | Linux only, no built-in real-time MCU |
Documentation
Notes
- The STM32H747 I/O layer operates at 3.3V. Do not connect 5V signals to MCU I/O pins without verifying tolerance.
- The Linux partition runs a Yocto-based OS maintained by Arduino. Custom Yocto builds are possible but require Linux embedded development expertise.
- Docker containers on the Linux side can be updated remotely via Arduino's FoundriesFactory service or manually via SSH.
- The RPC interface connects the Linux and Arduino layers; latency is not suitable for hard real-time synchronization but is adequate for data exchange at sensor polling rates.
- A Portenta Breakout board is strongly recommended for prototyping as there are no accessible pin headers on the X8 itself.
Community
- Arduino Forum — official community
- Arduino Discord — real-time chat
- r/arduino (Reddit) — community
- Arduino Project Hub — projects
Revision History
| Version | Date | Notes |
|---|---|---|
| v1.0 | 2026-06 | Initial entry |
