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)

// Arduino Portenta X8 — Blink on STM32H747 M7 core // RGB LED is active-LOW void setup() { pinMode(LEDB, OUTPUT); Serial.begin(115200); while (!Serial); Serial.println("Portenta X8 Arduino layer ready"); } void loop() { digitalWrite(LEDB, LOW); // LED ON (active LOW) delay(500); digitalWrite(LEDB, HIGH); // LED OFF delay(500); }

RPC Communication Example (Arduino side sending data to Linux)

// Portenta X8 — Send sensor data from M7 to Linux via RPC #include <RPC.h> void setup() { Serial.begin(115200); RPC.begin(); } void loop() { int sensorValue = analogRead(A0); // Send value to Linux side via RPC RPC.println("SensorValue: " + String(sensorValue)); delay(1000); }

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

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

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

Revision History

Version Date Notes
v1.0 2026-06 Initial entry