I have been investigating some mathematical problems and algorithms using the Zero. It works well but I now find I need a very large array which the program will read and write to continuously. 2D, perhaps 100 by 100 or more, maybe 100 bytes in each cell in the array. The Zero runs out of memory real fast.
I see that the H7 has mucho memory available. 8MB in SDRAM where the array will live.
Questions: Is the H7 really supported by the "standard" Arduino IDE?
Do uploads work via the same type USB cable I currently use for the Zero? Does serial monitor work well?
Any gotchas with the H7?
I never got around to using the debugger with the Zero and use print statements instead. I see the H7 has a 'true' debugger. Are people happy with it?
As the H7 is pretty cheap I should just go out and buy one. My current simulations easily take an hour to run, so the H7 increased speed would be kinda breathtaking.
I enormously value a computer system - hardware and software and documentation - that works nearly perfectly out of the box. For hobby people, not computer science gurus. That's why I love Arduino and am hoping the H7 fits the bill.
Yes. I'll provide instructions you can follow to install support for the Portenta H7 in Arduino IDE:
Select Tools > Board > Boards Manager... from the Arduino IDE menus to open the "Boards Manager" view in the left side panel.
Find the "Arduino Mbed OS Portenta Boards" entry in the list of boards platforms.
Click the "INSTALL" button at the bottom of the entry.
Wait for the installation process to finish, as indicated by a notification at the bottom right corner of the Arduino IDE window:
Successfully installed platform ...
You can do this and compile sketches for the Portenta H7 even if you don't own the hardware. Although this is no substitute for observing the runtime behavior of your program on hardware, doing so will give you some insight into how the board is supported by Arduino IDE and the basic compatibility of your code with the board.
No. The Zero board has a micro USB socket. The Portenta H7 has a Type-C (AKA "USB-C") socket.
So you will need a Type-C cable to use with the Portenta H7. These cables are quite common so there is a good chance you already own one. If not, you can obtain them from any store that sells computer accessories. Arduino sells a nice one on the Arduino Store:
Yes, it works just the same as for the Zero.
It uses a different microcontroller than the one on the Zero, with a different low level framework upon which the standard Arduino core API is implemented. This means that sketches or libraries that contain low level code written specifically for the Zero will not work for the Portenta H7, unless the developer of that sketch/library also provided equivalent low level code specifically for the Portenta H7.
This situation is not unique to the Portenta H7. You will encounter the same any time you switch from a board of one architecture to another. The level of support for a given board/architecture within the Arduino ecosystem increases over time. So boards/architectures that have been around the longest (e.g., the UNO R3 and AVR architecture) will have the most mature support. The converse is true for brand new boards that use microcontrollers of an architecture not previously used in the Arduino ecosystem. But of course when you are looking for high performance, a well supported board from a decade ago may not meet your needs. Although the Portenta H7 is relatively new, it has been out for some years now so the Arduino ecosystem has had time to embrace it.
The same standardized Arduino core API is implemented for both boards, so code that only uses the core API will work for both. When it comes to mathematical operations, it is unlikely that the code will contain anything that is hardware-specific in this context, and so it should be equally compatible with both boards.
The Portenta H7 is a very powerful and advanced board. Its microcontroller has two processor cores, which allow you to perform multiple operations in parallel. The "Arduino Mbed OS Portenta Boards" core is built on the Mbed OS operating system, which facilitates complex applications. These things increase the complexity of working with the Portenta H7.
The Portenta H7 is part of Arduino's "PRO" line of products, which are targeted specifically to professional users as opposed to the other lines that are targeted to the "maker" and educational markets. The focus for the "PRO" products is generally toward supporting advanced applications rather than being beginner friendly, as is the case for the other lines.
I don't have any experience using the 3rd party "Lauterbach TRACE32" debugger application, so I can't offer any input on this subject. Hopefully the other forum helpers will be able to comment on that.
In order to make the subject matter more clear to interested parties, I'll share a link to the related tutorial:
It sounds like it would definitely be worth a try!
As with any Arduino board, once you have installed the boards platform via the Arduino IDE Boards Manager, you are all set to upload sketches to the board.
Wow, what a nicely written and informative reply. I want to thank you. People like you who go over and above helping newbies make the world a great place.
The main problem is needing space to store "big arrays". XEQ speed is nice but not critical to my need for the H7. I am using my current Zero purely as a computation engine, not waiting for any hardware inputs.
Yes, the Arduino GIGA R1 (STM32H7) is officially supported in the standard Arduino IDE and works well out of the box.
Uploads and Serial Monitor work over the same USB cable, just like the Zero.
Main gotchas are higher complexity (SDRAM and cache handling), but examples and docs are solid.
The built-in debugger is reliable, and the speed and memory increase are substantial.