Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ACELL01][ACELL07] Portenta X8/C33/H7 compatibility with Portenta Mid Carrier not clearly communicated #1968

Open
aliphys opened this issue May 21, 2024 · 2 comments
Assignees
Labels
arduino Bugs and fixes added by the Arduino Team documentation Improvements or additions to documentation pro

Comments

@aliphys
Copy link
Contributor

aliphys commented May 21, 2024

There are a few inaccuracies in the Portenta Mid Carrier Docs page
Untitled

  • Technically, all interfaces are accessible to a User who wants to hack at it (yay open source!). Yet, we do have a specific OoB experience that we provide support for (see Details)
  • There are some limitations in what we can support with the STM32 included inside the Portenta X8, since the peripherals are shared with the i.MX core.
  • The GNSS support is not part of the Portenta Mid Carrier, nor is it provided by both version of the Pro 4G module.

Details

The Portenta Mid Carrier is indeed compatible with the Portenta boards - Portenta C33 (ABX00074), Portenta H7 (ABX00042 and variants) and Portenta X8 (ABX00049). The final customer solution will likely involve the Pro 4G EMEA (SKU: TPX00201) or GNSS (SKU: TPX00200) PCIE boards.

Network connectivity is handled differently between the Portenta C33/H7 (arduino-libraries/Arduino_Cellular/) and the Portenta X8 (Yocto Linux). One is with a Arduino library, the other is via the Linux stack.

Here is the information in a table format:

Portenta Board Carrier Board Pro 4G Module Cellular Support
Portenta C33/H7 Portenta Mid Carrier EMEA (No GPS)/GNSS (with GPS) Arduino_Cellular library
Portenta X8 Portenta Mid Carrier EMEA (No GPS)/GNSS (with GPS) Yocto Linux

This difference is explained inside the Portenta X8 User Manual

As you can see, Portenta X8 features two powerful computing units:
* **NXP® i.MX 8M Mini** Cortex®-A53 quad-core up to 1.8GHz per core + 1x Cortex®-M4 up to 400 MHz. This microprocessor is the one where the Yocto Linux distribution is running together with Docker containers (check [this section](#linux-environment) of this user manual to learn more).
* **STMicroelectronics STM32H747XI** dual-core Cortex®-M7 up to 480 MHz + M4 32 bit Arm® MCU up to 240 MHz. This microcontroller is the one where the "Arduino Mbed OS Portenta Boards" Core is running. M4 core is accessible and programmable by the user, while M7 is dedicated to establishing and guaranteeing the communication between i.MX 8M Mini and M4 as well as to manage peripherals through RPC. Check [this section](#arduino-environment) of this user manual to learn more.
The two computing units are responsible for different tasks, which are summarized in the table below.
| NXP® i.MX 8M Mini | STMicroelectronics STM32H747XI (M4) |
| ------------------------------------------------------- | -------------------------------------------------------------- |
| Running Yocto Linux distribution with Docker containers | Running Arduino sketches with the Mbed OS Portenta Boards Core |
| Dedicated to high level tasks | Dedicated to real-time tasks |
| Manage network connectivity | No direct connection to any network stack |
| Manage network-based buses (e.g. Modbus TCP, etc.) | Manage field buses (e.g. Modbus RTU, CANbus, etc.) |
| Access to peripherals without concurrent access control | Access to peripherals without concurrent access control |

Note that the User Manual conflicts with the statement made here

The carrier is also compatible with the Portenta H7, Portenta C33, and the auxiliary core of the Portenta X8, being fully compatible with the Arduino code ecosystem.

@aliphys
Copy link
Contributor Author

aliphys commented May 21, 2024

Related arduino/arduino-examples#74

@aliphys aliphys added documentation Improvements or additions to documentation arduino Bugs and fixes added by the Arduino Team labels May 21, 2024
@jcarolinares
Copy link
Contributor

@TaddyHC do me a favor, please follow the analyses done by @aliphys and send me internal conclusions and potential actions if need it, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arduino Bugs and fixes added by the Arduino Team documentation Improvements or additions to documentation pro
Projects
None yet
Development

No branches or pull requests

3 participants