Showing results for 
Search instead for 
Did you mean: 

Is a STM32CubeMX file available for Arduino Portenta H7

Mick P. F.


has someone created a complete definition of the "Arduino Portenta H7" board including the clocks in STM32CubeMX?

I would like to use this board to develop and test some parts of projects.

The creation of the IOC file is a lot of work that I want to save myself as much as possible.

Thanks in advance,


ST Employee

Hello @Mick P. F.​ ,

Thanks for your feedback,

There are some examples available under C:\Users\<Your_User_Name>\STM32Cube\Repository\STM32Cube_FW_H7_V1.9.1\Projects for the STM32H747I-DISCO and for STM32H747I-EVAL which both have the same MCU as a Portenta H7 ( STM32H747XI ). These examples don't come with an .ioc file but they are helpful.

You can also find some examples under Example selector in CubeMX, some of which are Compatible with STM32CubeMX.

0693W00000HrPHBQA3.pngI Hope this helps!

If you issue is solved, please close this post by clicking the "Select as Best" button. This will help other members of the community find this response more quickly 🙂


It would help if boards in common use, and circulation, get some brief analysis and IOC templates.

Also doing some real-world testing of the tools and code generation in these scenarios would significantly help the reliability and reach of the tools.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Mick P. F.

Hello Sara,

Sorry, I do not know how far your hints should be helpful?

Finding the right MCU from the list takes round about 10 seconds, but for a complete and correct definition of all IOs and clocks in STM32CubeMX you would spend many hours or some days. Without this IOC file you can't start any project.

And if you are already familiar with the H7 series and you have already done some DIY projects with these MCUs, the named examples are useless because it is not much different from the code for STM32H743 MCUs.

A simple "no" from you would have sufficed at this point!

Sorry for this harsh judgment on your answer.

In the meantime I have postponed the desire to use the Protenta-H7 board because it simply means too much effort to create the 1st IOC file, even if it would be very incomplete in the 1st step.

For me it is much more important to finally make progress with the design of hardware and software in the project.

Kind Regards,


0693W00000HrTlyQAF.pngTry to ask on Arduino's forum. In my opinion, it's theirs job to do IOC files and/or examples for this board. Also contact them by using this form and describe your problem

I can help with your project (spending hours on making IOC and more), contact by e-mail in my profile if interested.

Mick P. F.

Hello "",

This idea is not bad...

I made such request there, but I don't think they would do it even if it were their job. Nowadays everything is different than it was in the past ...

As I said, at the moment I am using the NUCLEO144-H743ZI board to develop and test the software. It is the fastest and easiest way to do this with STM32CubeIDE. I would never use Arduino SDK, I hate this (dirty) mix of C and C++. Millions of years ago I learned C, thousands of years ago I learned the genuine C++, but I'll never accept/learn this mix. I would use the MCU H743xx in this project anyway because I only need the two M7 cores.

Many thanks,


If you need a STM32CubeH7 HAL based project - I have it here: 

It is not really based on CubeMX: you can use the tool for some drivers to generate, but not for the entire project. The Portenta H7 has a very specific HW (e.g. PMU chip) and is intended to run Arduino code (esp. Bootloader).

You cannot generate a full project with CubeMX tool - it will not be complete and it will not run. In particular, the startup code, the stuff to do in main() first - will be not correct for this board:

  • The Portenta H7 MCU module comes with an Arduino Bootloader
  • The only way to flash you FW code is: use the Bootloader!
    There is not a debugger on Portenta H7 module - you would need the Breakout Board for connecting an external debugger (the MCU module itself does not have any debug features)
  • When generating a FW intended to flash with Bootloader - it must not start at address 0x08000000. Instead, the FW must be relocated to start address 0x08040000
  • The Portenta H7 has a PMU chip (to enable and generate all the voltages on board)!
    This chip must be configured via I2C, as the very first action.
    The Bootloader will do. If you flash your FW from start 0x08000000 - you will rip out the Bootloader:
  • In this case - your FW code has to have the I2C configuration and the configuration of the MCU chip!
    This code is not generated by CubeMX! There is nothing in STM CubeHAL drivers!
  • Also: you can never flash a new FW when bootloader is overwritten, except: you have the Breakout Board with an external ST-LINK debugger.

You can use my project as a reference: it is based on STM32 Cube HAL drivers (some CubeMX generated code), intended for the STM32CubeIDE. Nothing related to Arduino.

Related links in forum: 

If you have any specific question about Portenta H7 - you can ping me: maybe I can help as a user of this board.

Sorry: the PMU chip must be configured via I2C.