The Arduino® Portenta Max Carrier provides developers an unlimited range of applications, from robotics and medical devices to industrial or automotive applications; the Portenta Max Carrier possibilities are endless. The Portenta Max Carrier can be used as a single-board computer (SBC) or reference design. It couples the Arduino® Portenta H7 board as a central high-performance unit, granting Edge AI and cutting edge connectivity features into an industry-standard embedded Next Unit of Computing (eNUC) form factor ready. In this tutorial, you will learn about the core features of the Portenta Max Carrier and how to get started with it.
The Portenta Max Carrier was designed to augment the capabilities of the Portenta H7 board and provide easy access to its onboard peripherals. It is designed to enable research and develop industrial grade advanced applications, from fast prototyping to a deployable robust single board computer. The Portenta Max Carrier establishes connection with Portenta H7 via High Density connectors. This interface grants access to extensive modules and peripherals on-board Portenta Max Carrier.
In this tutorial, we will describe the following features of the Portenta Max Carrier:
The Portenta Max Carrier provides several peripherals and modules to cover a wide spectrum of applications. For these peripherals and modules to be powered up and run, the Portenta Max Carrier bases on a sophisticated electric power distribution architecture. To power the Portenta Max Carrier, you can use the barrel jack connector (X1) or a 3.7V 18650 Li-Ion battery connected to the Portenta Max Carrier's battery clips (J16 and J18). You can also power the Portenta Max Carrier directly from the USB-C® connector of the Portenta H7 board.
You can see the detailed Portenta Max Carrier's power tree in the image below:
The Portenta Max Carrier's power inputs are indicated in the following image:
These power feed line options power up different peripherals and modules depending on the line configuration. The Portenta H7 powered by USB-C® cable while attached to Portenta Max Carrier enables Audio, LoRa, USB Hub, SD ports, Camera, and Fieldbus including the Debugger while it is also possible to upload the Code. This power line use case will be useful to develop and debug the code.
If the Arduino IDE throws an error failing to upload the Code, please put the Portenta H7 in Bootloader Mode before uploading.
The external power supply goes through MPM3550EGLE, which is a DC/DC power module, to provide +5V to power up the peripherals and the modules. The module provides the power to BQ24195RGET, which is a battery charge and power path management, and it is used in Portenta Max Carrier for the Li-Ion battery source and to boost the voltage to +5V. The battery charger IC feeds the power to Modem above all the peripherals and modules mentioned previously. The external power supply has the highest priority in the power line.
A Micro USB port is available for debbugging on the Arduino® Portenta Max Carrier. The debugging module is a separate segment, and it is powered by Micro USB port using its own power supply AP2112K, which is a low-dropout linear regulator. The debugger is available for use without the Portenta H7 paired to the Portenta Max Carrier.
The Portenta Max Carrier is equipped with a wide spectrum of connectors for expandability. The following table will show briefly the connectors that are available on the carrier.
|USB Hub (U3)||USB2514Bi/M2 4-port USB 2.0 Hub IC|
|LoRa® Header (CN2)||Debug Header|
|Debug Header (CN3)||LoRa® Debug Header|
|High Density Connectors (J1,J2)||DF40HC(3.5)-80DS-0.4V(51) High Density Connectors|
|Modem SMA Connector (J3)||Right-Angle SMA Connector for Modem|
|LoRa® SMA Connector (J9)||Right-Angle SMA Connector for LoRa®|
|FPC Connector (J4)||2-1734248-0 FPC Connector|
|JTAG Header (CN1)||FTSH-105-01-F-DV 10-pin JTAG Header|
|USB DBG0 (J10)||ZX62-AB-5PA(31) Micro USB Debugger Connector with VBUS|
|USB DBG1 (J19)||ZX62-AB-5PA(31) Micro USB Debugger Connector without VBUS|
|Grove Connector for Audio (J20)||110990030 Grove Connector for a Speaker|
|Header Connector (J5)||FW-20-05-G-D-254-150 Signal Break|
|4P4C CAN Connector (J7)||J6 615006138421 RS232/RS485 Connector J7 6|
|6P6C Serial Connector (J6)||615006138421 RS232/RS485 Connector|
|PCIe Connector (J8)||1759546-1 Mini PCIe Connector|
|Micro SD Connector (J11)||114-00841-68 Micro SD Connector|
|Ethernet Connector (J17)||TRJK7003A97NL Gigabit Ethernet Connector|
PCIe connector is available on-board. However, only USB and I2C is available for use at the moment.
It is worth noting that a 4P4C connector establishes the connection to the CAN Transceiver based on a TJA1049T/3J IC.
The Serial Transceiver based on SP335 IC, which is a multi-protocol transceiver with support for RS-232, RS-485, and RS-422. It establishes connection via 6P6C connector and its default configurations are as follows:
The Portenta Max Carrier equips two different memory units on-board: Flash Memory and Mini SD Card slot.
On-Board Flash Memory
For more information on how to use the Flash Memory storage, please follow this guide to get most out of the Flash Memory.
Mini SD Card slot
To learn on how to use the Mini SD card slot to expand the storage size, please follow this guide.
If it requires to reduce library size and uses FAT16/FAT32 formats, please look into this library, created and maintained by Bill Greiman.
The Portenta Max Carrier has on-board Murata CMWX1ZZABZ-078 LoRaWAN® Module and SARA-R412M-02B Cell Modem as the following image below:
One of the notable features of Portenta Max Carrier is the Murata CMWX1ZZABZ-078 that enables LoRaWAN® connectivity. LoRaWAN® is a Low Power Wide Area Network (LPWAN) designed to connect low power devices to the Internet. It was developed to meet and fulfill Internet of Things (IoT) devices' requirements, such as low-power consumption and low data throughput.
Depending on the region, it will require to use the appropriate antenna for the respective frequencies. The common frequencies are 915 MHz for North America and Australia, and 863 MHz for European region. Frequencies are on a range, so for example Australia region it is possible to use 928 MHz compatible antenna and configuration.
For more in-depth information about LoRa® and LoRaWAN®, please read The Arduino Guide to LoRa® and LoRaWAN®.
The LoRa® Connection tutorial with in-depth details on how to power up the module and establish connection to The Things Network (TTN), please go here for more information.
The Portenta Max Carrier carries a cellular modem SARA-R412M-02B to carry out tasks requiring general network connectivity. This cellular modem is capable of establishing 2G / Cat-M1 / NB-IoT connections globally. It is powered by bidirectional logic level shifter SN74LVC1T45 and an internal regulator, implemented for the use of SIM card and I/O. The cellular modem requires SIM card integration, which can be fulfilled by intriducing SIM card in the available microSIM slot (SIM1). The modem has dedicated SMA connector (J3) for the antenna.
Please DO NOT USE the cellular modem without the external antenna attached to the SMA connector. It might damage the Portenta Max Carrier if used without.
To begin using the modem, it will require some packages to be installed beforehand. Given the network technology, Cat-M1 and NB-IoT, it will require the use of the
library. Please also make sure to have the
up to date from the board manager.
Arduino Mbed OS Portenta Core
We will use the
header file for PIN and APN configuration of the SIM card that will be inserted into microSIM slot on-board Portenta Max Carrier.
If you want to learn how to run a sketch with this library or how to switch between Cat M1 and NB IoT, please take a look at our Portenta Max Carrier and Portenta H7 Cat M1/NB IoT tutorial
The antenna connectors for both LoRaWAN® and cellular modem with the microSIM slot are indicated as the following image:
The Portenta Max Carrier has a physical Ethernet interface on-board, which is directly connected via High-Density Connectors of the Portenta board. The connector provides network activity status and speed indication via LED indicator. The 10/100 Ethernet is supported and Gigabit connection is reserved for future use at the moment. The physical interface is indicated visually with the previous image showing antenna connectors and microSIM slot.
The Portenta Max Carrier features a stereo CODEC, the CS42L52 from Cirrus Logic®. The CS42L52 is a 24-bit, low-power stereo CODEC that can provide up to 1W per channel of Class D stereo/mono amplification to external speakers (8-ohm stereo speakers and 4-ohm mono speakers) or enough power to drive 44mW per channel into stereo headphones. There are four analog audio interfaces in the Portenta Max Carrier, as shown in the image below:
You can use this cable assembly and make your mono speaker. The CS42L52 stereo CODEC operates using an I2C interface, with the CODEC acting as a secondary device.
Arduino Portenta H7 establishes I2C interface using the
library included in
package. The Arduino Portenta Max Carrier, while having paired the Portenta H7 via High-Density Connectors, can be expanded via Header Connector J5 for I2C interface interoperability. External modules requiring I2C interface can be established via header Connector J5 with up to 2 available I2C bridges.
For more information on I2C protocol, please have a look at this guide to Arduino & the I2C Protocol (Two Wire).
Part of the development process, debugging process is crucial and it is required step if we are aiming now to work with industrial grade devices. The Portenta Max Carrier provides discrete debugging capability on-board. The feature can be accessed via micro USB to J-Link debugger.
It is driven by STM32F405RGT6 controller and compatible with Segger® J-Link OB and Blackmagic probes. The module itself does not require Portenta H7 to be attached on the Portenta Max Carrier, meaning it does not require VBUS.
For more in-depth information about Debugging, please read Debugging Fundamentals.
The following image indicates the connectors that enables and allows to establish connection to Portenta Max Carrier's on-board debugger.
The Portenta Max Carrier only requires the Portenta H7 as main unit to be able to use it. External components are required to enable the on-board module's capability and correct operation, such as cellular modem and LoRaWAN® connectivity. As the Portenta H7 is the central control unit of the Portenta Max Carrier, it will need to have the latest Arduino Mbed OS Portenta Core installed.
In case it is not installed or requires an update, it is possible to navigate under Tools > Board > Board Manager and search for the
and proceed with the update.
Arduino Mbed OS Portenta Core
To take advantage of Portenta Max Carrier's Power Architecture, an important physical configuration requires to be verified. A DIP Switch for Boot mode selection is present on the Portena Max Carrier board. It requires to set BOOT_SEL to select between 2 boot addresses, which will enable Portenta H7 and Max Carrier to run the firmware. BOOT parameter will switch the Portenta H7 state into Boot mode.
Every time it initiates at Boot mode, the Portenta H7 will fade the Green LED to indicate its state. This will help to understand the board is in Boot mode and not turned off due to unavailable electric supply as it shutted off. As the power lines are alive even if the board shows no indication of operating instance.
The Arduino® Portenta Max Carrier uses the Arduino® Portenta H7 as the main central processing unit and that powers up the carrier's modules mentioned above. Both systems possess High-Density Connectors to establish communication interface in between. It is simple as attaching the Portenta H7 to Portenta Max Carrier's High-Density Connectors. The following connection scheme shows how exactly the device is paired with correct orientation.
Rest of the connection population will depend on the development requirement. It is important that if the connectivity modules are to be utilized, respective antennas should be attached before powering up. Otherwise, the Portenta Max Carrier may suffer from severe electronic hardware damage. Such details are drawn on the table with briefly mentioned content above in
1.4. Wireless Connectivity
For all the information detailed as above for it to be used, we will need to develop the code and flash it to the system. It is possible to use following development environment designed by Arduino®.
The Arduino® IDE 2 allows the developers to design and upload the code to Portenta H7 in offline. It will also help you with organizing packages needed to program the Portenta H7. It will require a USB-C® Type cable that will allow to connect and program the Portenta H7. In here, you will be able to find the latest version of the Arduino IDE 2.
If you want to know how to setup the Arduino® IDE 2 adequately, please look into Quick Guide to Arduino® IDE 2.0.
All Arduino® boards work Out-of-the-Box with the Arduino® Web Editor, and the Portenta H7 with Portenta Max Carrier is no exception. The Arduino® Web Editor requires online connection with Arduino® account and a simple plugin to be able to develop on. The features are always up-to-date and support every Arduino® boards. By following this link to Arduino® Web Editor, you will be able to access and begin developing the code.
If you want to know how to get started with Arduino® Web Editor, please look into Getting started with the Web Editor.
The Arduino® boards that are IoT enabled, can use the Arduino® IoT Cloud to develop automated system and a feedback system that gathers useful data for analysis purposes. By following this link to Arduino® IoT Cloud, you will be able to access and begin developing the code.
If you want to know how to get started with Arduino® IoT Cloud, please look into Getting Started With the Arduino® IoT Cloud.
The following peripheral table will help you guide through quickly about the select available connectors on Portenta Max Carrier.
|LoRa® Header (CN2)|
|1||+3V3||Power||+3V3 Power Rail|
|2||LoRa_SWDIO||Digital||LoRa® SWD Data Line|
|3, 5, 9||GND||Power||Ground|
|6 ~ 8||NC||NC||Not Connected|
|4||LoRa_SWCLK||Digital||LoRa® SWD Clock Line|
|10||LORA_RST||Digital||LoRa® module reset pin|
|Debug Header (CN3)|
|1||3V3_DBG||Power||+3V3 Power Rail|
|2||DBG_SWDIO||Digital||SWD Data Line|
|3, 5, 9||GND||Power||Ground|
|4||DBG_SWCLK||Digital||SWD Clock Line|
|6 ~ 8||NC||NC||Not Connected|
|JTAG Header (CN1)|
|1||3V3||Power||+3V3 Power Rail|
|2||JTAG_SWD||Digital||JTAG SWD Data Line|
|4||JTAG_SCK||Digital||JTAG Clock Line|
|6||JTAG_SWO||Digital||JTAG Trace Data Line|
|8||JTAG_TDI||Digital||JTAG Test Data In Line|
|9||JTAG_TRST||Digital||JTAG Test Reset Line|
|10||JTAG_RST||Digital||JTAG Reset Line|
|Header Connector (J5)|
|1||3V3||Power||+3V3 Power Rail|
|2, 13, 14||GND||Power||Ground|
|3||VREF_P||Analog||Positive Analog Voltage Reference|
|4||VREF_N||Analog||Negative Analog Voltage Reference|
|5 ~ 12||A0 ~ A7||Analog||Analog input 0 ~ 7|
|15||SAI_CK||Digital||SAI Clock Line|
|16||CS||Digital||SPI1 Clock Select|
|17||SAI_FS||Digital||SAI Frame Synchronization|
|18||CK||Digital||SPI1 Clock Line|
|19||SAI_D0||Digital||SAI Data Line 0|
|20||MISO||Digital||SPI Main In Secondary Out|
|21||SAI_D1||Digital||SAI Data Line 1|
|22||MOSI||Digital||SPI1 Main Out Secondary In|
|27||SDA||Digital||I2C1 Data Line|
|28||RTS||Digital||Serial3 Ready to Send|
|29||SCL||Digital||I2C1 Clock Line|
|30||CTS||Digital||Serial3 Clear to Send|
|31||3V8||Power||+3V8 Power Rail|
|32||SDA||Digital||I2C2 Data Line|
|33||PWM0||Digital||PWM Output 0|
|34||SCL||Digital||I2C2 Clock Line|
|35||PWM1||Digital||PWM Output 1|
|36||5V||Power||+5V Power Rail|
|37||PWM2||Digital||PWM Output 2|
|38||CAN1_TX||Digital||CAN Transmission Line|
|39||PWM3||Digital||PWM Output 3|
|40||CAN1_RX||Digital||CAN Receive Line|
|4P4C CAN Connector (J7)|
|2||CANL||Diff.||CAN Differential Signal Low|
|3||CANH||Diff.||CAN Differential Signal High|
|6P6C Serial Conn. (J6)|
|2||Z||Digital||SP335 Out 1|
|3||Y||Digital||SP335 Out 2|
|4||A||Digital||SP335 In 2|
|5||B||Digital||SP335 In 1|
|PCIe Connector (J8)|
|1, 3, 5, 6, 8, 10, 12, 14, 16, 17, 19, 20, 24, 28, 37, 42 ~ 49, 51||NC||NC||Not Connected|
|2, 39, 41, 52||3V3_PCIE||Power||+3V3 Power Rail|
|3, 9, 15, 18, 21, 26, 27, 29, 34, 35, 40, 50||GND||Power||Ground|
|7||PCIE_CLKREQ||Digital||PCIE Clock Request Signal|
|11||mPCIe_CK_N||Diff.||PCIe Clock Differential Negative|
|13||mPCIe_CK_P||Diff.||PCIe Clock Differential Positive|
|22||mPCIe_RST||Digital||PCIe Reset Signal|
|23||mPCIe_RX_N||Diff.||PCIe Receive Differential Negative|
|25||mPCIe_RX_N||Diff.||PCIe Receive Differential Positive|
|30||SCL||Digital||I2C Clock Line|
|31||mPCIe_TX_N||Diff.||PCIe Transmission Differential Negative|
|32||SDA||Digital||I2C Data Line|
|33||mPCIe_TX_P||Diff.||PCIe Transmission Differential Positive|
|36||USB_DN||Diff.||USB Data Differential Negative|
|38||USB_DN||Diff.||USB Differential Positive|
These are a quick reference to commonly used interfaces and if custom connectors are to be used, above quick peripheral table will assist you to verify the correct polarity of connector pins.
You now have a quickstart guide of the Portenta Max Carrier with its rich modules and peripherals to design and implement real world solutions. The Portenta Max Carrier provides wide spectrum of tools and ports to enable a scalable design solution. With this guide, you now also acquired brief knowledge about the Portenta Max Carrier and will be able to solidify the requirements and devise more clearly.
In-depth guides for each distinctive module on-board Portenta Max Carrier can be found under each section of the features listed previously on this guide.
One may encounter issues setting up and initializing for the first time the Portenta Max Carrier. Following troubleshooting will help you with the possible issues that might occur in the beginning.
When sketch upload fails, please check if the Portenta H7 attached to Portenta Max Carrier is in bootloader mode. Double-press the RESET button and the Green LED will be waving, indicating it has entered bootloader mode. Please retry uploading the sketch afterward.
Verify that the BOOT DIP switch of the Portenta Max Carrier has been configured to an address. Otherwise, the paired Portenta H7 will go into bootloader mode after power-on and it will not initialize the program.