I use the Portenta H7 board - a great piece of HW.
I am struggling to so much with the Arduino IDE (2.0 rc6) for it (and actually also ARM mbed).
The SW for it is a nightmare.
-
Arduino IDE gets so slow after a while:
A fresh start of IDE is fine: flashing board is quite OK.
But after some iterations, new upload of FW - the flash loader messages are sooooooo! slow.
OK, notification tells me: "upload finished" (and it is true: even all the erase and download messages are still tickling in (1 character per second!) - board is ready.
==> What is this?
(almost impossible to make a change on code and try again - you have to wait minutes just to
let these message finish, no way to interrupt, no way to kill a running command, your "turn-around-time" increases to tens of minutes for small code changes - "rrrrrr") -
Arduino IDE is not working in my company office:
I need Portenta H7 and Arduino actually in my company office. But it turns out: NOT USABLE!
It looks like, due to virus scanner running (and some company IT tools to monitor) - the compilation process is almost broken.
It takes hours - really hours! - just to compile a small sketch. No fun in office (it works just at home).
And - the worst case:
Any USB device is prohibited to be used on office devices (IT policy).
Even the UART from Portenta H7 works fine - the flash loader is completely blocked - no way to flash the board (assuming it comes up as another USB device and is blocked/prohibited).
To be honest: I do not understand this Arduino IDE - for what is it useful?
a) there is not any debug feature for Portenta H7 - a nightmare to debug with UART print strings (I thought this 1980's debug approach is gone)
b) I cannot open and browse any H-file, cannot open the declaration of functions etc.
Sometimes it works a bit to see the "Loading..." and hints popping up. But it looks like, if you have a syntax
error in your file, you try to see the hint for function call with typo ... it never displays anything anymore (seems to keep running endlessly).
c) the syntax highlighting lacks so behind: I change a piece of code - it takes minutes to see
the curly line disappearing, to see the color changed etc.
d) any #if 0 or #if 1 looks the same: the editor does not show me which code is inactive, all
looks active.
d) If I use Arduino IDE, esp. compile code - it makes the PC/laptop 100% busy. I saw, esp. in office a 100% CPU utilization. Even at home, the fan is always running, cooling down my CPU, when the IDE is open.
To be honest: it is painful to use Arduino IDE. I have never seen such a feature-less and full-of flaws IDE.
==> why I cannot use any other IDE, e.g. STM CubeIDE, IAR, Keil, ...? Why I am forced to use Arduino IDE only (which does not provide what I am expecting from an IDE)?
My productivity on this board is so bad - I have to give up with Portenta (and any Arduino HW/SW at the end).
And this ARM mbed drives me crazy:
I want to follow the examples, e.g. for Web Server based on this EthernetClient.
Even the sample code works - it is sooooooo slow:
There is a call like c = client.read(), for single characters received on ETH, get these from buffer - after approx. 120 characters pulled from receiver buffer - it is soooooooo slow. The characters tickle in with approx. 500ms delay even all must have been received already.
Any HTTP request takes seconds just to get their characters into my code.
Has anybody tested the examples also in terms of "reasonable" performance?
And I saw also so many bugs and missing features in ARM mbed LIBs, e.g.:
- SPI devices cannot be set to use "LSB first" on SPI packets - nothing to change from MSB vs. LSB first on the SPI wire. It is a HW feature in Portenta, but not available on API. I do not want
to flip bits just because ARM mbed does not let me change the HW feature to do. - in function transfer16 is the same code for Little and Big endian, this code would never swap the bytes of 16bit or larger words. When I saw it - why the hell nobody has realized that it cannot do what is should do? (code reviews missing for ARM mbed library?)
My BIG WISH to Arduino team, the Portenta H7 HW guys etc.:
! - please, publish and provide the BSP, HAL, the source code for the FW, startup, config of Portenta H7 boards (esp. the config of this I2C based power controller, ETH, DDR RAM etc.)
!- make it possible to create a project with other IDEs, e.g. STM CubeIDE, IAR, ...
!- and make it possible to flash this FW via SWD debug interface, to have a real debug with breakpoints, to use STM FlashProgrammer to burn the OB bits etc. (e.g. to disable CM4)
Another productivity hindering issue:
When I have 100 clients - how could I send them just a new FW version (of my stuff) and let them flash the new version?
It looks like, there is not any other tool besides Arduino IDE, to flash a new firmware (via this very slow, sensitive and always complaining flash loader in Arduino).
==> I want to provide and distribute just a new FW bin file and let all my users to update their
boards. But how? Is there any simple flash loader out there for this Portenta H7 board.
Please, provide a standalone flash tool just to burn a FW image file (w/o IDE). Thank you.
Such a nice board, such a great feature rich piece of HW but the SW and tool chain for it makes is only reasonable to be used by hobbyists (with more time as me), not for a professional, commercial and efficient business approach.
The Arduino IDE is too slow, has so many lacking features and flaws , the ARM mbed so many
bugs - it makes it quite obsolete to use the Portenta H7 in any commercial/company environment.
I am sorry. Even I could get "something" to work on this board - the efficiency and "my performance" with all the trouble is so bad - I cannot convince my boss anymore to use this board for our needs (test of other HW systems, e.g. SPI, network traffic).
I am short before to give up (and never to use anymore any Arduino, mainly because of the IDE, esp. when you have seen other IDEs before).
Torsten
PS: I am so familiar with MCUs, STM, also the dual-core used on Portenta H7. But never seen such a "strange" IDE for STM chips (with so many lacking features).
I hope, the Portenta H7 will be dead just because of its SW tool chain (IDE).