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

[FR] STM32 Nucleo-144 boards based on STMicro STM32H7 (STM32 H7) SoC with 480MHz Cortex-M7 MCU #19751

Closed
Gamester17 opened this issue Oct 15, 2020 · 21 comments
Labels

Comments

@Gamester17
Copy link
Contributor

Gamester17 commented Oct 15, 2020

Description

Requesting HAL support for STMicroelectronics STM32 Nucleo-144 boards based on newer STMicro STM32H7 Cortex-M7 MCU.

STMicroelectronics now has relatively inexpensive development boards and evaluation board with very fast STM32 H7 series SoCs.

STM32H7 is a low-cost 32-Bit MCU series based on single-core ARM Cortex-M7 or dual-core combining Cortex-M7 and Cortex-M4.

There are many variants though most are clocked at 480MHz or 550MHz for the Cortex-M7 MCU core, with some dual-core models also feature a 240MHz Cortex-M4 MCU core as well, plus practically all variants also include embedded flash storage on-chip as well as featuring Ethernet PHY interfaces for wired networking (meaning integrated 10/100Mbps Ethernet with RJ-45 port). All MCUs in the STM32H7 series also features an integrated JPEG codec accelerator (JPEG image decoder and encoder).

All "Nucleo-144" (a.k.a. Nucleo144) boards get the "144" their name from its header ("ST Zio connector") having 144-pins.

Most of the STM32 Nucleo-144 development boards with a powerful STM32H7 MCU only goes for around $27 to $29 US-dollars.

image

There are many STM32 Nucleo-144 development boards and evaluation boards model variants available from STMicroelectronics today, however, for this STM32H7 (STM32 H7) series I read that it is suggested to first look at either NUCLEO-H745ZI-Q or NUCLEO-H755ZI-Q development board as the reference model of STM32 Nucleo-144 model with STM32H7 MCU (SoC).

https://www.st.com/resource/en/data_brief/nucleo-h743zi.pdf

NUCLEO-H745ZI-Q or NUCLEO-H755ZI-Q development boards have STMicro STM32H745ZI and STM32H755ZI MCU respectively which both are dual-core variants which feature one ARM Cortex-M7 core running at 480MHz and one ARM Cortex-M4 core running at 240MHz, 1MB RAM, 2MB flash memory, as well as Ethernet PHY interface so that model covers most variations. The only difference between those two is that NUCLEO-H755ZI-Q includes an including a
Cryptographic Accelerator (Crypto/Hash processor).

https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-h743zi.html

https://www.st.com/en/microcontrollers-microprocessors/stm32h745zi.html

Features and board specifications copied from https://www.st.com/resource/en/data_brief/nucleo-h743zi.pdf

  • Common features

    • STM32 microcontroller in LQFP144 package
    • 3 user LEDs
    • 2 user and reset push-buttons
    • 32.768 kHz crystal oscillator
    • Board connectors:
      • SWD
      • ST Zio expansion connector including ARDUINO Uno V3
      • ST morpho expansion connector
    • Flexible power-supply options: ST-LINK, USB VBUS or external sources
    • On-board ST-LINK debugger/programmer with USB re-enumeration capability: mass storage, Virtual COM port, and debug port
    • Comprehensive free software libraries and examples available with the STM32Cube MCU Package
    • Support of a wide choice of Integrated Development Environments (IDEs) including IAR, Keil, and STM32CubeIDE
  • Board-specific features

    • External or internal SMPS to generate Vcore logic supply
    • Ethernet compliant with IEEE-802.3-2002
    • USB OTG full speed or device only
    • Board connectors:
      • USB with Micro-AB or USB Type-C
      • Ethernet RJ45
    • Arm Mbed Enabled compliant

image

stm32duino has Arduino core STM32 support STM32H743ZI and NUCLEO-H743ZI2 plus generic STM32H7 with STM32H750IB

https://github.com/stm32duino/Arduino_Core_STM32

Documentation, CAD resources, and software tools on their product page.

https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html

https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-h743zi.html#documentation

https://www.st.com/en/evaluation-tools/stm32-nucleo-boards.html

Additional Information

Alternative STM32 Nucleo-144 board models also with STM32H7 (STM32 H7) SoCs are:

The official STM32H735G-DK Discovery Kit with STM32H735IG MCU costs $87 and comes with a 4.3-inch touchscreen display:

Interestingly all feature embedded Ethernet PHY interfaces for integrated wired networking.

More information about the specifications in this article CNXSoft website:

https://www.cnx-software.com/2020/09/30/new-stm32h7-cortex-m7-mcus-clock-at-550-mhz-feature-octal-spi-flash-and-ethernet-interfaces/

https://www.cnx-software.com/2018/09/07/stmicro-stm32f7x0-h7x0-value-line-cortex-m7-mcu/

@Gamester17 Gamester17 added the T: Feature Request Features requested by users. label Oct 15, 2020
@thisiskeithb
Copy link
Member

It's a different variant, but support for the NUCLEO-F767ZI was just merged: #19373

@Gamester17
Copy link
Contributor Author

Gamester17 commented Oct 15, 2020

It's a different variant, but support for the NUCLEO-F767ZI was just merged: #19373

Cool! Though that is not one of the newer STM32 Nucleo-144 boards which are all based on STMicro's new STM32H7 SoC series.

NUCLEO-F767ZI has a STM32F767ZIT6U SoC which has a STM32F767 (STM32F7x7 series) MCU with Cortex-M7 @ 216MHz.

https://www.st.com/en/microcontrollers-microprocessors/stm32f7x7.html

thinkyhead commented in that mentioned #19373 saying it is not bad adding support for development boards like these as they might become the basis for real boards in the future, as it will give Marlin a chance to exercise the HAL and platforms for that MCU.

IMHO, it can even economical sense for end-users as well when looking at the price and performance of these newer STM32H7 based Nucleo-144 evaluation boards from STmicro as they cost less than a third the price of an Arduino Portenta H7 with similar MCU.

Arduino Portenta H7 it has a STM32H747 (STM32H747XI) which also contains a dual-core MCU, with ARM Cortex-M7 core running at 480 MHz and one ARM-Cortex-M4 core running at 240 MHz, but Arduino Portenta H7 'only' feature 80-pins in total.

https://www.arduino.cc/pro/hardware/product/portenta-h7

@Gamester17 Gamester17 changed the title [FR] STM32 Nucleo-144 boards support based on STMicro STM32H7 Cortex-M7 MCU [FR] STM32 Nucleo-144 boards based on STMicro STM32H7 (STM32 H7) SoC with dual-core 480MHz + 240MHz Cortex-M7 MCUs Oct 15, 2020
@sjasonsmith
Copy link
Contributor

I have a NUCLEO with an H7, but haven’t tried to add it yet. I was waiting for the F7 board to merge first to make sure I wasn’t wasting my time.

@Gamester17
Copy link
Contributor Author

Gamester17 commented Oct 16, 2020

Hopefully people in the community will make Nucleo adapter designs for RAMPS shields converting to Arduino Mega 2560 pinout.

As I understand it, STMicro made these Nucleo boards have same pinout layout design the Arduino Uno Rev3?

If and when such Nucleo adapters for RAMPS are available normal users could, in theory, be able to get started fairly quickly with it.

Example @kursatu is building a Mega2560 converter adapter for Teensy 4.1 -> https://github.com/kursatu/Teensy4.1-ramps-shield

@sjasonsmith
Copy link
Contributor

The board I have is a STM32H743ZI, which is a single-code 480 MHz MCU.

@Gamester17
Copy link
Contributor Author

The board I have is a STM32H743ZI, which is a single-code 480 MHz MCU.

That has same physical format of the board though, rights? So has same physical measurements and pinout/pins layout design?

@Gamester17 Gamester17 changed the title [FR] STM32 Nucleo-144 boards based on STMicro STM32H7 (STM32 H7) SoC with dual-core 480MHz + 240MHz Cortex-M7 MCUs [FR] STM32 Nucleo-144 boards based on STMicro STM32H7 (STM32 H7) SoC with 480MHz Cortex-M7 MCU Oct 16, 2020
@sjasonsmith
Copy link
Contributor

That has same physical format of the board though, rights? So has same physical measurements and pinout/pins layout design?

Yes, although I haven't looked at them to see how closesly they resemble one another. I don't know whether all pins will be compatible between boards, or only the portions designed to receive official ST Nucleo shields.

@Gamester17
Copy link
Contributor Author

Gamester17 commented Oct 16, 2020

That has same physical format of the board though, rights? So has same physical measurements and pinout/pins layout design?

Yes, although I haven't looked at them to see how closesly they resemble one another. I don't know whether all pins will be compatible between boards, or only the portions designed to receive official ST Nucleo shields.

I understand it as all "Nucleo-144" board headers should be fully pin-compatible with each other, "Nucleo-64" board headers should be fully pin-compatible with each other, however "Nucleo-144" and "Nucleo-64" headers are not fully pin-compatible with each other, instead they are only partially compatible.

https://www.st.com/resource/en/user_manual/dm00244518-stm32-nucleo144-boards-mb1137-stmicroelectronics.pdf

https://www.st.com/resource/en/user_manual/dm00105823-stm32-nucleo-64-boards-mb1136-stmicroelectronics.pdf

That should mean that all shields made for "Nucleo-64" boards should be fully compatible with "Nucleo-144" board, but boards that are made for "Nucleo-144" and utilize all its extra pins will obviously not be fully compatible with "Nucleo-64" boards.

But note that while all "Nucleo-32" board headers should be fully pin-compatible with each other, shields for "Nucleo-32" boards are not forward compatible with "Nucleo-64" or "Nucleo-144", this is as "Nucleo-32" follow the Arduino Nano standard.

Here is an ST community discussion clarifying making shields for Nucleo boards and portability of shields between boards:

https://community.st.com/s/question/0D50X00009XkX2V/migration-from-nucleo64-board-to-nucleo144

The "ST Zio connector" on Nucleo-64 as well as Nucleo-144 boards both include Arduino Uno Rev3 and ST Morpho extensions:

  • Arduino Uno Rev3 / Arduino Uno V3 connectivity.

  • ST Morpho extension pin headers for full access to all STM32 I/Os (and only here is where Nucleo-144 differ from Nucleo-64).

Nucleo-144 with STM32F7 (STM32 F7) and STM32H7 (STM32 H7) also looks to be fully pin-compatible with each other.

https://www.st.com/en/evaluation-tools/nucleo-h745zi-q.html

https://www.st.com/en/evaluation-tools/nucleo-f767zi.html

  • "Sharing the same connectors, STM32 Nucleo boards can easily be extended with a large number of specialized application hardware add-ons (Nucleo-64 include Arduino Uno rev3 & ST morpho connectors, Nucleo-32 include Arduino Nano connectors)."

  • "The ST Zio connector, which extends the ARDUINO Uno V3 connectivity, and the ST morpho headers provide an easy means of expanding the functionality of the Nucleo open development platform with a wide choice of specialized shields."

  • "ST Zio connector including Arduino Uno V3, ST morpho (board connectors)"

  • "Nucleo-64 include Arduino Uno rev3 & ST morpho connectors"

  • "Nucleo-32 include Arduino Nano connectors"

image

STM32 Nucleo Board matrix:

https://www.st.com/en/evaluation-tools/stm32-nucleo-boards.html

image

@Gamester17
Copy link
Contributor Author

Gamester17 commented Oct 16, 2020

Anyone know of more Nucleo-144 (or Nucleo-64) shields, RAMPS, breakout-boards, or expansion boards made for 3D-printers?

https://easyeda.com/component/f126c14dfc254dc3ac45cf7f3654c534

https://easyeda.com/component/1669b809c25e4c15bd0a1a1042d2a0df

https://easyeda.com/component/24277d33f67b4c1d99191e935f343468

AnttiNykanen has designed this Nucleo-144 Prototyping Shield 5-years ago which I believe should still be valid here too?

https://github.com/AnttiNykanen/stm32_nucleo-144_proto_shield

According to @ghent360 it sounds as if Nucleo-64 boards with their 64-pins does not have enough pins for advanced 3D-printers:

https://www.youtube.com/watch?v=WxM7jmwh20s

@ghent360 has this 3D-printer controller board open-source hardware design for Nucleo-64 and a modified board with 100-pins:

https://github.com/ghent360/PrntrBoard

https://blog.pcbxprt.com/index.php/2018/05/11/prntr-board-v1/

@Gamester17
Copy link
Contributor Author

Gamester17 commented Oct 16, 2020

FYI, apparently, @hasenbanck looks to have developed an STM32H7 based 3D printer controller board he calls "Heteromycin":

https://github.com/hasenbanck/heteromycin

Though it seems like he has abandoned that project or at least not touched it since end of April 2020?

Same with his STM32F7 based 3D-printer controller board called "RemRam"?

https://github.com/hasenbanck/remram

Both projects are however open source hardware (CERN OHL) licensed.

@Gamester17
Copy link
Contributor Author

@thinkyhead missed you had made and closed PR #16021 last year for Nucleo STM32H7 support based on #13657 by @dekra54

@dekra54 you mentioned in #13657 that you are a hardware guy and were then working on something for it, any news on that?

@Hedda
Copy link

Hedda commented Oct 22, 2020

The new BigTreeTech SKR SE-BX V1.0 board inside the upcoming BIQU BX 3D-printer is also based on an STM32H7 series MCU

https://www.kickstarter.com/projects/1440007055/biqu-bx-worlds-lightest-direct-extruder-fdm-3d-printer

BIQU specifically state STM32H743IIT6 as the chip used in their video running the 32-bit ARM Cortex-M7 core at 400MHz

https://www.youtube.com/watch?v=YuYOQ6SHBAU (same video as https://www.youtube.com/watch?v=Yu3xfzXXBYA )

The "400 MHz" was maybe confusing people since STMicro list the Cortex-M7 32-bit RISC core operating at "up to 480 MHz"

https://www.st.com/content/st_com/en/products/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32h7-series/stm32h743-753/stm32h743ii.html

Presumably that BTT SKR SE-BX V1.0 board or a newer variant of it will also be sold as stand-alone upgrade boards from BIQU.

@ghent360
Copy link
Contributor

There is STM32H750VB, chip which is relatively affordable. I made a version of my PrntrBoardV2 with that chip - it is very similar pinout to F407. However it has a downside - flash is only 128K, compared with 512k on the F407VE. One can use SPI flash to store the firmware and load it to ram or use sd-card, but it is more hustle.

It is also not clear what benefit the high clock rate does offer for Marlin, it runs quite happily on sub 100MHz MCUs.

@ghent360
Copy link
Contributor

After I finished my Nucleo-64 based board, I briefly considered using Nucleo-144. I decided against it because these nucleo boards are gigantic. You will loose quite a bit of board real estate, just in the huge headers needed to connect the two boards.

@Hedda
Copy link

Hedda commented Jan 19, 2021

FYI, MCUDev DevEBox STM32H7XX_M V2.0 STM32H750VBT6 and STM32H743VIT6 dev boards is now available from $12

stm32duino/Arduino_Core_STM32#1266

https://stm32-base.org/boards/STM32H750VBT6-STM32H7XX-M.html

https://stm32-base.org/boards/STM32H743VIT6-STM32H7XX-M.html

https://github.com/mcauser/MCUDEV_DEVEBOX_H7XX_M

https://github.com/elzoughby/STM32H7xx-Startup

https://www.aliexpress.com/item/4000300005466.html

https://www.aliexpress.com/item/1005001543610862.html

https://www.banggood.com/STM32H750VBT6-or-STM32H743VIT6-STM32H7-Development-Board-STM32-System-Board-M7-Core-Board-TFT-Interface-with-USB-Cable-p-1661383.html

image

image

image

Simple 3D model of STM32H7 DevEBox board

https://grabcad.com/library/stm32f7-devebox-board-prototype-1

It appears to use the same board design as the older STM32F407VGT6 based STM32F7XX M development board by DevEBox

https://github.com/mcauser/MCUDEV_DEVEBOX_F407VGT6

Thus I would assume that the DevEBox STM32H7XX M devboard is probably pin-compatible with DevEBox STM32F7XX M.

This is just an FYI as I have no affiliation what so ever with any manufacturers or any resellers of this of any other boards.

@dreamcat4
Copy link

dreamcat4 commented Jan 19, 2021

Thanks for the information. Currently speaking for a more proven solution we are stopped at the f4 over on the klipper firmware. (not marlin). The open source team at annex engineering have released klipper configurations for the fysetc s6 controller. Which is the current best. I asked the author of klipper software if he thought there would be any meaningful improvement in performance going from the f4 to the h7 and the response was no, not really.

Still... I would suggest it would not hurt to email somebody at fsetc to ask them if they are already working to make a new controller board based on the h7. Since given the very low cost of this MCU it would not impact the bom cost very much. And maybe if their existing s6 has already been out for a long enough time to become 'old'. Or because if fsetc want to make a new product to compete with the new flagship from BTT which is their (still f4 based) 'GTR'.

The reason Fsetc are being recommended as having good silk screen and a well thought out design. And the existing annex users feel their boards are overall better than the equivalents from BIQU / BTT.

@slowbro
Copy link
Member

slowbro commented Jun 20, 2021

It looks like stm32duino has added variant files for the H7 chips: stm32duino/Arduino_Core_STM32@2f7d688

@thisiskeithb
Copy link
Member

It looks like stm32duino has added variant files for the H7 chips: stm32duino/Arduino_Core_STM32@2f7d688

Marlin also supports the Biqu BX under the STM32 HAL which uses an STM32H743IIT6:

Marlin/ini/stm32f7.ini

Lines 42 to 65 in a006752

#
# BigTreeTech SKR SE BX (STM32H743IIT6 ARM Cortex-M7)
#
[env:BTT_SKR_SE_BX]
platform = ${common_stm32.platform}
platform_packages = ${stm_flash_drive.platform_packages}
extends = common_stm32
board = marlin_BTT_SKR_SE_BX
extra_scripts = ${common.extra_scripts}
pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
build_flags = ${common_stm32.build_flags}
${stm_flash_drive.build_flags}
-DUSE_USBHOST_HS
-DUSE_USB_HS_IN_FS
#-DUSBD_USE_CDC_MSC
-DVECT_TAB_OFFSET=0x20000
-DHAL_DMA2D_MODULE_ENABLED
-DHAL_LTDC_MODULE_ENABLED
-DHAL_SDRAM_MODULE_ENABLED
-DHAL_QSPI_MODULE_ENABLED
-DHAL_MDMA_MODULE_ENABLED
-DHAL_SD_MODULE_ENABLED
upload_protocol = cmsis-dap
debug_tool = cmsis-dap

@ag88
Copy link

ag88 commented Nov 25, 2021

a peek at a near future, hope they works well ;)
edit: this is merged in the stm32duino core
stm32duino/Arduino_Core_STM32#1559
stm32duino/Arduino_Core_STM32#1552
note that the
MCUDev DevEBox STM32H7XX_M mentioned prior has somewhat different pin assignments from the WeAct boards though both boards uses a 25 Mhz HSE crystal.

A different thought though, we need a 'different' kind of 'ramps' board which is not a 'shield'.
i.e. the motor controllers and other stuff that drives the motors, mosfets, temperature sensors and all are probably connected say using 'dupont' cables etc. to the 'controller' board. That way different boards say stm32f4xx, stm32f103, stm32f7xx etc can be hooked up to a same 'ramps' board. It'd seem like '3d printers controllers' eventually would have 'form factors' just like old 'ATX' PC cases.
https://reprap.org/forum/read.php?219,887227

there are various sorts of funky stuff for h7 hanging around these days e.g.
https://github.com/koendv/micropython-psram

@thisiskeithb
Copy link
Member

Requesting HAL support for STMicroelectronics STM32 Nucleo-144 boards based on newer STMicro STM32H7 Cortex-M7 MCU.

As far as HAL support goes, Marlin supports many STM32H7-based boards now, including the 144-pin H7 variant in the Octopus Max EZ. Take a look at stm32h7.ini for details:

  • STM32H743IIT6
  • STM32H743VIT6
  • STM32H723VGT6
  • STM32H723ZET6

https://www.st.com/resource/en/data_brief/nucleo-h743zi.pdf

If a developer wants to add a specific Nucleo board, they can submit a PR.

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Sep 18, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

8 participants