Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Notes: For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.
The first time I encountered the Arduino Portenta X8, I wasn’t sure what to make of it. Here was a board that promised to run full Linux containers alongside real-time Arduino sketches on the same hardware. After years of choosing between Linux SBCs for flexibility or microcontrollers for determinism, suddenly there was a platform claiming to deliver both. I was skeptical—but after months of deploying these boards in industrial settings, I can confirm the Portenta X8 genuinely delivers on that promise.
The Arduino Portenta X8 represents something fundamentally different in the embedded world: a true hybrid architecture that doesn’t compromise. You get a full Yocto-based Linux distribution running Docker containers for complex software stacks, while an integrated STM32H7 microcontroller handles time-critical real-time operations through the familiar Arduino environment. Two industrial products in one compact module.
Understanding the Arduino Portenta X8 Architecture
The Arduino Portenta X8 combines two distinct processing systems that would traditionally require separate boards:
The primary application processor is the NXP i.MX 8M Mini—a quad-core Arm Cortex-A53 running at up to 1.8GHz per core with an additional Cortex-M4 at 400MHz. This powerful MPU hosts the Linux operating system, runs Docker containers, handles networking, and manages complex application logic.
Working alongside the i.MX 8M Mini is the STMicroelectronics STM32H747XI—the same dual-core Cortex-M7 (480MHz) plus Cortex-M4 (240MHz) microcontroller found in the Portenta H7. The M4 core on this MCU is programmable through the Arduino IDE for real-time applications like motor control and sensor acquisition, while the M7 core runs firmware that exposes all peripherals as Linux devices.
The result? A total of nine processing cores in a 66.04 × 25.40 mm form factor, capable of running complex Linux applications and deterministic real-time control simultaneously.
Arduino Portenta X8 Technical Specifications
Specification
Details
Application Processor
NXP i.MX 8M Mini
A53 Cores
4× Arm Cortex-A53 @ up to 1.8 GHz
i.MX M4 Core
1× Arm Cortex-M4 @ 400 MHz
Microcontroller
STM32H747XI
STM32 M7 Core
1× Arm Cortex-M7 @ 480 MHz
STM32 M4 Core
1× Arm Cortex-M4 @ 240 MHz
Total Cores
9
RAM
2 GB LPDDR4
Storage
16 GB eMMC
Operating System
Linux (Yocto-based)
WiFi
802.11 a/b/g/n/ac (2.4/5 GHz)
Bluetooth
BLE 5.0
Security
NXP SE050C2 Crypto Chip
Operating Temperature
-40°C to +85°C
Dimensions
66.04 × 25.40 mm
Certifications
PSA Certified, Arm SystemReady
The 2GB of LPDDR4 RAM and 16GB eMMC storage provide substantial resources for running multiple Docker containers simultaneously—far more than typical microcontroller-based solutions can offer.
Linux Operating System and Container Architecture
The Portenta X8 ships with a Yocto-based Linux distribution preloaded on the eMMC. This isn’t a stripped-down embedded Linux—it’s a full-featured OS capable of running standard Linux applications through Docker containers.
Docker Container Support
The containerized architecture is central to how the Portenta X8 operates. Rather than installing applications directly onto the root filesystem, you deploy Docker containers that encapsulate your applications with all their dependencies:
Container Capability
Details
Container Runtime
Docker
Image Sources
Docker Hub, custom registries
Networking
Bridge, host, overlay modes
Storage
Persistent volumes on eMMC/SD
Multi-container
Docker Compose supported
This approach provides several practical advantages. Containers are isolated from each other and from the base system, preventing dependency conflicts. You can run multiple services (web servers, databases, ML inference, ROS nodes) on the same board without compatibility issues. Updates and rollbacks become straightforward—deploy a new container version, and if something breaks, roll back to the previous image.
Practical Container Examples
The Portenta X8 can run sophisticated containerized applications:
WordPress + MariaDB: Full web server stack for industrial HMI dashboards
ROS2 (Robot Operating System): Complete robotics framework for AGVs
Python/Node.js applications: Custom automation and data processing
TensorFlow/PyTorch: Edge AI inference for machine vision
Grafana + InfluxDB: Industrial data visualization and time-series storage
Real-Time Arduino Integration
While Linux handles complex application logic, the STM32H7’s M4 core provides deterministic real-time control through the Arduino environment. You program this core using the standard Arduino IDE or Arduino Cloud—the same workflow you’d use with any Arduino board.
How the Dual Environment Works
Environment
Processor
Purpose
Linux (Containers)
i.MX 8M Mini (A53)
Complex applications, networking, AI
FreeRTOS
i.MX 8M Mini (M4)
Reserved for future use
Arduino Firmware
STM32H7 (M7)
Linux device mapping
Arduino Sketch
STM32H7 (M4)
Real-time control
The STM32H7 M7 core runs Arduino-developed firmware that exposes all hardware peripherals as Linux device files. This means Linux applications can access GPIOs, I2C, SPI, and other interfaces through standard Linux APIs. Meanwhile, the M4 core remains available for your Arduino sketches—motor control, sensor acquisition, or any application requiring microsecond-level timing precision.
Communication Between Linux and Arduino
The M7’s firmware implements RPC (Remote Procedure Call) mechanisms that enable seamless communication between the Linux environment and Arduino sketches. A Python script running in a Docker container can send commands to your Arduino sketch, receive sensor data, or coordinate complex multi-system operations.
Security and Fleet Management
The Portenta X8 was designed with industrial security requirements in mind:
Hardware Security
Security Feature
Implementation
Crypto Chip
NXP SE050C2
Key Generation
Hardware-based
Secure Storage
Protected key vault
Crypto Operations
Hardware accelerated
Certifications
PSA Certified, Common Criteria
The NXP SE050C2 provides hardware-level security for cryptographic operations, key storage, and secure boot. This isn’t software security that can be compromised through firmware exploits—the crypto operations happen in dedicated hardware with physical protection against tampering.
Foundries.io Integration
Arduino partnered with Foundries.io to provide enterprise-grade device management:
Continuous Updates: Automatic security patches for the Linux kernel
Fleet Management: Deploy updates to thousands of devices remotely
OTA Updates: Over-the-air firmware and container updates via WiFi
The Portenta X8 Manager subscription service (optional) provides these enterprise features, though the board functions fully without subscription—you simply manage updates manually.
Portenta X8 Carrier Boards and Expansion
Like other Portenta boards, the X8 uses high-density connectors for expansion:
The Max Carrier transforms the Portenta X8 into a complete industrial single-board computer:
Max Carrier Feature
Specification
Cellular
Cat-M1 / NB-IoT
Long Range
LoRa module support
Serial
RS232/422/485
Storage
Mini-PCIe SSD, microSD
Audio
3× 3.5mm jacks
Display
HDMI via USB-C adapter
Power
Barrel jack, 18650 battery clips
This combination enables applications from industrial gateways to autonomous vehicle controllers—all running containerized software with real-time Arduino control.
Industrial Applications for Arduino Portenta X8
The Portenta X8’s hybrid architecture enables applications that previously required multiple separate systems:
Application
How Portenta X8 Helps
Autonomous Guided Vehicles
Linux runs ROS2 for navigation; Arduino handles motor control
Industrial Gateways
Containers run protocol converters; real-time I/O interfaces with PLCs
Edge AI Processing
Docker runs TensorFlow; Arduino interfaces with cameras/sensors
Smart Agriculture
Linux handles GPS/mapping; Arduino controls irrigation valves
HMI Dashboards
Web server in container; Arduino reads physical controls
Predictive Maintenance
ML inference in Docker; Arduino reads vibration sensors
AGV Implementation Example
Consider an Automated Guided Vehicle implementation:
Linux side: ROS2 containers handle SLAM (simultaneous localization and mapping), path planning, and LIDAR processing
Arduino side: Motor drivers, encoder feedback, and safety stop switches operate with guaranteed real-time response
Communication: RPC calls coordinate between navigation decisions and motor commands
This architecture ensures the vehicle stops immediately when a safety sensor triggers, regardless of what the Linux system is processing.
Development Workflow
Getting started with Portenta X8 development involves two parallel workflows:
Linux Development
Connect via ADB (Android Debug Bridge) or SSH
Create Docker containers for your applications
Deploy using docker-compose or Docker Hub
Monitor with standard Linux tools
Arduino Development
Open Arduino IDE
Select “Arduino Portenta X8” board
Write sketch targeting M4 core
Upload via USB-C
The two environments coexist—updating your Arduino sketch doesn’t affect running Linux containers, and container updates don’t disrupt real-time control.
WordPress Server Setup: docs.arduino.cc/tutorials/portenta-x8/wordpress-webserver
Community Resources
Arduino Forum (Portenta section): forum.arduino.cc
Arduino Help Center FAQ: support.arduino.cc
Docker Hub: hub.docker.com (container images)
FAQs About Arduino Portenta X8
How does communication work between the Linux and Arduino environments?
The STM32H7’s M7 core runs firmware that implements RPC (Remote Procedure Call) mechanisms for inter-processor communication. Linux applications—whether Python scripts, C++ programs, or code running in containers—can communicate with Arduino sketches running on the M4 core through these RPC calls. The M7 firmware also exposes STM32 peripherals as standard Linux device files, allowing Linux applications to access GPIOs, I2C, SPI, and other interfaces through familiar Linux APIs. This means you can have a Python script in a Docker container sending commands to your Arduino sketch and receiving sensor data back, all through standardized interfaces.
Can I install packages using apt-get like a normal Linux system?
No, apt is not available in the Portenta X8’s base image. The system is designed around Docker containers rather than traditional package management. To install additional software, you create or download Docker containers that include the required packages and dependencies. This containerized approach actually provides better isolation and reproducibility—your application and all its dependencies are packaged together, preventing conflicts and making deployment consistent across devices. You can pull pre-built container images from Docker Hub or build custom images on your development machine and deploy them to the X8.
What’s the difference between Portenta X8 and Portenta H7?
The Portenta H7 is a powerful microcontroller board based solely on the STM32H747 dual-core MCU—it runs Arduino code (or MicroPython) directly on the hardware without an operating system. The Portenta X8 adds the NXP i.MX 8M Mini application processor running full Linux, while retaining the same STM32H747 for real-time tasks. Think of the X8 as an H7 plus a complete Linux computer in one module. Choose H7 when you need pure real-time performance without OS overhead; choose X8 when you need Linux capabilities (containers, complex networking, standard Linux tools) alongside real-time control. The X8 costs more (~$239 vs ~$100) but provides capabilities that would otherwise require separate Linux SBC and microcontroller boards.
Can I use the Portenta X8 with cloud services other than Arduino Cloud?
Yes, the Portenta X8 works with any cloud platform. While Arduino provides integration with their IoT Cloud and the optional Foundries.io-based X8 Manager, the Linux environment supports standard cloud clients. You can connect to AWS IoT, Azure IoT Hub, Google Cloud IoT, or any service that provides Linux clients—which is essentially all of them. Since you’re running standard Docker containers, any containerized application that works on ARM64 Linux will work on the Portenta X8. You can deploy MQTT clients, REST APIs, or proprietary cloud connectors just as you would on any Linux system.
Is the Arduino Portenta X8 suitable for production deployment or just prototyping?
The Portenta X8 is explicitly designed for production deployment, not just prototyping. It carries PSA and Arm SystemReady certifications, includes hardware security (NXP SE050C2 crypto chip), supports industrial temperature ranges (-40°C to +85°C), and provides enterprise fleet management through Foundries.io. The containerized architecture supports OTA updates for maintaining deployed devices, and the security infrastructure meets enterprise requirements. Many companies use Portenta X8 in production for industrial gateways, AGVs, smart agriculture equipment, and factory automation. The primary limitation is volume—for very high-volume production (tens of thousands of units), you’d typically transition to custom hardware using the Portenta X8 as a reference design.
Final Thoughts on Arduino Portenta X8
The Arduino Portenta X8 solves a genuine problem that has plagued industrial embedded developers for years: the choice between Linux flexibility and microcontroller determinism. By integrating both on a single board with proper inter-processor communication, Arduino created a platform that handles complex software stacks and real-time control without compromise.
Is it the right choice for every project? No. Simple sensor nodes don’t need nine cores and Docker containers. And at around $239, it’s not cheap for makers exploring embedded development. But for industrial applications requiring both sophisticated software (web interfaces, databases, AI inference, ROS) and reliable real-time control (motors, safety systems, precise timing), the Portenta X8 eliminates the headache of coordinating separate Linux and MCU boards.
The containerized approach deserves particular appreciation. Being able to deploy WordPress, ROS2, or custom Python applications as isolated Docker containers—then update them remotely without affecting the underlying system or real-time operations—represents a maturity level that industrial IoT has long needed.
After deploying Portenta X8 boards in factory automation and autonomous vehicle applications, I’ve come to see it as the first truly unified platform for modern industrial IoT. It combines the Arduino ecosystem’s accessibility with enterprise-grade security and the full power of Linux. That’s a combination that simply didn’t exist before in this form factor.
Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Notes: For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.