Hey all,
I am working with an Arduino Portenta Machine Control and looking to control a motor with it.
To start learning this new board I looked through the examples and uploaded one. This all worked fine, however now it does not want to upload a sketch anymore.
I am using the new 2.0.0 Arduino IDE
Trying to upload the Arduino_MachineControl.h Digital_Input.ino sketch
And I get the following error.
Sketch uses 164024 bytes (20%) of program storage space. Maximum is 786432 bytes.
Global variables use 70848 bytes (13%) of dynamic memory, leaving 452776 bytes for local variables. Maximum is 523624 bytes.
dfu-util 0.10-dev
Copyright 2005-2009 Weston SchmiWarning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release
No DFU capable USB device available
dt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Failed uploading: uploading error: exit status 74
I already looked through the forum and found something similar, however, nothing worked, since those were fixes from 5 years ago.
2 Likes
Make sure you set the right board. Then double click the reset button on the board, let it blink Green in reset mode. Set the Port to the port belonging to the board (it should be different than the runtime port).
It should then upload. To view the Serial data, after startup, switch the port to the runtime port (if it does not happen automatically), and you should be good to go.
2 Likes
The tip worked!!!
Double tapping reset, set the port to a new COM9
I have the board set as Arduino Portenta H7 (M7 core)
Could you explain the difference between the board's port and the runtime port? When I plug in the board it shows up as a Arduino Portenta H7 (M7 core)

It would have been nice if the ports could have been independent, but alas that is not the case. The programming port as far as I know is only for program loading. It is not always needed, as one can often load via the runtime port.
However, I have found that if the program has crashed, or for other ill defined reasons, the runtime port cannot accept a new or an updated recompiled version of the same program that is currently loaded, without doing the double reset.
A little off topic but,
If you have access to a Segger J-link, it can help the turnaround quite a bit. You can compile once, and then can upload the program via the Jtag connector. If a program is crashing frequently, and need to single step to figure out where, it helps by decreasing the compile/upload time that is wasted each time.
I was using Visual Micro (software only) for the debugging but found the limitation of no serial port access (ie no Serial.prints) and really slow compiling versus Arduino IDE made it too painful to use.