Contact Sales & After-Sales Service

Contact & Quotation

  • 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.
Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

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.

Arduino Portenta X8: Linux + Arduino in One Board

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

SpecificationDetails
Application ProcessorNXP i.MX 8M Mini
A53 Cores4× Arm Cortex-A53 @ up to 1.8 GHz
i.MX M4 Core1× Arm Cortex-M4 @ 400 MHz
MicrocontrollerSTM32H747XI
STM32 M7 Core1× Arm Cortex-M7 @ 480 MHz
STM32 M4 Core1× Arm Cortex-M4 @ 240 MHz
Total Cores9
RAM2 GB LPDDR4
Storage16 GB eMMC
Operating SystemLinux (Yocto-based)
WiFi802.11 a/b/g/n/ac (2.4/5 GHz)
BluetoothBLE 5.0
SecurityNXP SE050C2 Crypto Chip
Operating Temperature-40°C to +85°C
Dimensions66.04 × 25.40 mm
CertificationsPSA 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 CapabilityDetails
Container RuntimeDocker
Image SourcesDocker Hub, custom registries
NetworkingBridge, host, overlay modes
StoragePersistent volumes on eMMC/SD
Multi-containerDocker 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

EnvironmentProcessorPurpose
Linux (Containers)i.MX 8M Mini (A53)Complex applications, networking, AI
FreeRTOSi.MX 8M Mini (M4)Reserved for future use
Arduino FirmwareSTM32H7 (M7)Linux device mapping
Arduino SketchSTM32H7 (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 FeatureImplementation
Crypto ChipNXP SE050C2
Key GenerationHardware-based
Secure StorageProtected key vault
Crypto OperationsHardware accelerated
CertificationsPSA 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
  • Incremental Updates: Delta updates minimize bandwidth usage

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:

Carrier BoardKey Features
Portenta Max CarrierMini-PCIe, SATA, RS232/485, LoRa, Cat-M1, audio jacks
Portenta BreakoutFull pin access for prototyping
Portenta Hat CarrierRaspberry Pi HAT compatibility
Portenta Machine Control24V industrial I/O, fieldbus support

Portenta Max Carrier Capabilities

The Max Carrier transforms the Portenta X8 into a complete industrial single-board computer:

Max Carrier FeatureSpecification
CellularCat-M1 / NB-IoT
Long RangeLoRa module support
SerialRS232/422/485
StorageMini-PCIe SSD, microSD
Audio3× 3.5mm jacks
DisplayHDMI via USB-C adapter
PowerBarrel 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:

ApplicationHow Portenta X8 Helps
Autonomous Guided VehiclesLinux runs ROS2 for navigation; Arduino handles motor control
Industrial GatewaysContainers run protocol converters; real-time I/O interfaces with PLCs
Edge AI ProcessingDocker runs TensorFlow; Arduino interfaces with cameras/sensors
Smart AgricultureLinux handles GPS/mapping; Arduino controls irrigation valves
HMI DashboardsWeb server in container; Arduino reads physical controls
Predictive MaintenanceML 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

  1. Connect via ADB (Android Debug Bridge) or SSH
  2. Create Docker containers for your applications
  3. Deploy using docker-compose or Docker Hub
  4. Monitor with standard Linux tools

Arduino Development

  1. Open Arduino IDE
  2. Select “Arduino Portenta X8” board
  3. Write sketch targeting M4 core
  4. 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.

Useful Resources for Arduino Portenta X8

Official Documentation

  • Portenta X8 Documentation: docs.arduino.cc/hardware/portenta-x8
  • Portenta X8 Datasheet: Available on Arduino Docs
  • User Manual: docs.arduino.cc/tutorials/portenta-x8/user-manual

Development Tools

  • Arduino IDE: arduino.cc/en/software
  • Docker Desktop: docker.com (for local container development)
  • Foundries.io Platform: foundries.io (fleet management)

Tutorials

  • Docker Container Management: docs.arduino.cc/tutorials/portenta-x8/docker-container
  • Custom Container Deployment: docs.arduino.cc/tutorials/portenta-x8/custom-container
  • 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Sales & After-Sales Service

Contact & Quotation

  • 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.

Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

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.