My laptop has run out of disk space to download yet another IDE so I am thinking of other ways to use a new Nucleo board I purchased which contains the STM32H745 chip.
I've had a very quick look at the datasheets, and while I am sure there must be some differences between the STM32H747 and the STM32H745 chipsets, I could not see it. They look almost identical.
So I am wondering if I could use Arduino IDE and the Portenta H7 board files with mods to pin names etc. with my Nucleo board. Many similar boards are mbed enabled so there is plenty to work with.
Probably the first hurdle will be the bootloader but I am hoping my JTAG and OCD debugger tools might help.
Anyway I just thought to throw it out there, as maybe someone has done something similar already.
I did spot the reverse scenario on the forum where someone worked out how to use the Portenta H7 with the STM Cube IDE, so you never know...
PS. I forgot that the Arduino Giga also uses the STM32H747 chip so that is an option too, re porting across as many more pins are available on the Giga board.
I think the difference between H747 and H745 is the MIPI DSI interface.
Potentially, you could modify the pins in Arduino LIB, using the Portenta H7 files.
But - not enough:
Look at the schematics: the NUCLEO board is very different to the Portenta H7 board, e.g.:
Portenta H7 has a PMIC (power controller chip), configured via I2C
Portenta H7 has a USB PHY, used for HS USB as well as USB-C display
Portenta H7 has external SDRAM
NUCLEO does not have SD card (but possible to add as external module)
It is not only to modify the pin assignments. You have to modify also the Startup Code, e.g. the PMIC configuration (remove), the USB stack (low level USB) will be completely different (due to external PHY).
NUCLEO board comes with a debugger and does not have the same Arduino Bootloader. You had to port also the Bootloader. And no idea how to integrate ST-LINK as the debugger in Arduino IDE.
Might be possible but not so straight forward like a simply modified pin assignment.
Biggest difference is on power management (PMIC or not), USB (NUCLEO has USB for PWR/DEBUG and separate User USB, Portenta just one USB for PWR/UART/Display)
I guess, the Arduino LIB is still based (using) part of the STM HAL (drivers). Change the BSP (HAL drivers) and modify the glue logic for the upper layer Arduino LIBs.
Yes, it was only after posting did I realise that the Arduino Giga board is probably a much closer fit than the Portenta H7. Especially as both include the ARDUINO® Uno V3 format plus other pins.
I'm checking through the Giga schematic to see if there is any overlap on those pins as compared to pin ids used on the Nucleo board. E.g. Pin D13 (SPI CLK) is SPI5_SCK (PH6) on the Giga while it is SPI1_SCK (PA5) on the Nucleo board. Then PA5 on the Giga is an additional pin, shown as D85 and assigned as DAC1. Giga RGB LED is defined as PI12, PJ13, PE3 but on the Nucleo board we have LD1 as PB0 or PA5, LD2 as PE1 and LD3 as PB14 so no overlaps here either.
However, as you've highlighted, there is more to it that just pin assignments
So thanks for the tips. I will be checking through the PMIC and USB elements.
I am then hoping that as a MBED compatible folder opens when I plug in and connect the USB cable to Nucleo to my PC that I can manually drag and drop a suitable Arduino compiled binary sketch. We will have to see.
Yes, on NUCLEO board, you should see an USB memory device, with drag and drop you flush the FW.
Another heads up:
The Portenta H7 linker script assumes that the Arduino Bootloader is running. It builds your user FW at a different starting location (code placed after the bootloader).
I think, the drag and drop on Nucleo does not assume to have a similar bootloader, instead it will flash the MCU FW from the Flash Start address inside MCU.
So, you might need also to modify the Linker Script in Arduino (not a big deal).