Arduino on the Portenta H7

Olof Astrand
2 min readMay 22, 2022

Like a Pro

The Arduino Portenta H7.

The portenta H7 is quite a capable beast, packing a 480Mhz Cortex M7 and a 240Mhz Cortex M4 in the form of a STM32H747 chip. It contains 2MB flash and 1MB SRAM onboard the MCU, as well as 8MB external SDRAM and 16MB flash over QSPI.

If you are not happy with this specs, you can always get the H7 X8. It also includes the NXP’s i.MX8M Mini system-on-chip with 4x up to 1.8GHz Cortex-A53 cores and an integrated Cortex-M4 at up to 400MHz.

At first I was a bit hesitant to spend the the money on the H7 as the SWD- debug pins only was available on the high density connector, which means there is no easy way to run the debugger as a pro. Quite disappointing, although it is easily available over the breakout board.

Surprisingly enough all the software is open sourced. Here is the collection of the links.

The 2.0 IDE, Bootloader, Arduino env (on top of mbed),

Other interesting related repositories,

Rust , OpenMV

If you get the breakout board, you can get the openMV camera module only instead of the vision shield. https://github.com/openmv/openmv

Pinouts
  • STM32H747 dual-core processor with graphics engine
  • 8MB SDRAM
  • 16MB NOR Flash
  • 10/100 Ethernet
  • USB-C 2.0/Hi-Speed (HS): 480 Mbps
  • NXP SE050C2 Crypto
  • Murata 1DX dual WiFi 802.11b/g/n 65 Mbps and Bluetooth 5.1 BR/EDR/LE
  • DisplayPort over USB-C
  • Board Power 5V (VIN or USB)
  • ADC — 3 × ADCs with 16-bit max. resolution (up to 36 channels, up to 3.6 MSPS)

The following devices are available on the I2C bus (Address (7bit), Device)

Schematics

Datasheet STM32H747Xi

Board schematics

Debug connection on the breakout board.

The breakout board’s official pinout documentation for the JTAG header is wrong.

Corrected diagram.

In the next article I will look at the startup code of the bootloader and Arduino sketches

--

--