Hello,
after carrying out several successful experiments with the Giga R1 WiFi, I suddenly ran into strange issues. When trying to upload code, I get the following messages during upload:
dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Deducing device DFU version from functional descriptor length
dfu-util: No DFU capable USB device available
I'm using the IDE version 2.3.3 under Ubuntu 22.04.
It seems there are several reasons and fixes for this resp. similar problems, but none seems to help here. I tried:
- Executing the post-install script described here:
ArduinoCore-mbed/post_install.sh at main · arduino/ArduinoCore-mbed · GitHub
No effect... (it should be noticed that I did not execute the script initially when everything
was still fine, although I had installed other Arduino-related rules before).
- I tried to reinstall the bootloader as described here:
https://support.arduino.cc/hc/en-us/articles/7991505977116-Burn-the-bootloader-on-GIGA-R1-WiFi#troubleshooting
This is not working either and I'm getting similar error messages:
dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Deducing device DFU version from functional descriptor length
dfu-util: Cannot open DFU device 0483:df11 found on devnum 21 (LIBUSB_ERROR_ACCESS)
dfu-util: No DFU capable USB device available
- I did wipe-out the existing things installed through the Arduino IDE (virtually deleting
~/Arduino and ~/-arduino15 directories), but the problem persists.
- There are reports regarding problems with USB cables, USB hubs, USB ports. I tried different
setups here without any effect.
As for the bootloader update It should be noticed that the website mentioned above suggests a version "0.11.0-arduino5" for the executable path whilst in my installation I only find "0.10.0-arduino1". This is kind of strange, but might be normal.
I will also try this on a completely different host that has never seen Arduino before, but I suspect the issue is within the Giga R1. It should be noticed that the device appears to have no working firmware any more. Maybe there went something wrong within the last firmware upload. When I turn it on, the red LED s blinking repeatedly with 4 long and 4 short blinks. But strange that the bootloader update process isn't working either.
Thanks for any hints about what could go wrong here,
Mario
Update: After further search for the issue I learned from here:
https://docs.arduino.cc/tutorials/giga-r1-wifi/cheat-sheet/
that the red LED blinking pattern (4 long, 4 short) indicates some sort ob malfunctioning MbedOS image and that there is an option to press reset twice. I did that and afterwards I was able to upload code as usual. So this did the trick.
Though, it is a bit strange that my attempt to update the bootloader did fail during my inital investigations. But I won't try this again now unless it is not really necessary...
Have the same problem, bit why does this occur in the first place, never had this issue with the Uno or Nano? Is Arduino support aware of this problem?
The different thing with the Arduino Giga is that it is internally making use of Mbed OS. So your Arduino application is sort of a user process. For the other Arduino systems there are other, more light-weight operating infrastructures. This blinking pattern does indicate some sort of "application crash" (maybe also directly a crash of Mbed OS - I'm not sure).
In my particular case I did trigger that crash by using an unsupported I2C clock frequency.
Where can I get more information about what is unsupported code as the Giga R1 seems to be very sensitive to some code and starts flashing red?
I don't know whether there is somewhere a list about all these details. I doubt there is one....
This forum is a good start for info, but answers rarely appear in the post's title. I find crashing my board happens quite often when working on something new.
There are many different things that can crash the Mbed OS operating system of the GIGA R1 WiFi board. But this will occur when there is a bug in your code. The crash is actually useful as a clear indicator that there is a bug in your code. When using an UNO or Nano, you might only notice that there is a bug when your project doesn't work as expected.
There is the difference that the bug will cause the GIGA R1 WiFi to no longer produce a port, and not accept uploads, as @digitalforce experienced. That can be disruptive if you don't know the double reset technique for recovering the board from that "soft bricked" state, but once you know the technique, it is not any inconvenience. You would actually encounter this same "soft bricking" behavior with any Arduino board that has a native USB interface, including the Leonardo.
Debug information is printed on Serial1 when Mbed OS crashes. However, in my experience the information is often quite vague and cryptic so there is no guarantee it will be useful. In case you are interested, I'll provide instructions:
-
Disconnect the USB cable of the Arduino board from your computer.
-
Make the following connections between a USB to TTL serial adapter (AKA "FTDI") and your board:
| Adapter |
GIGA R1 WiFi |
| RX |
TX0 |
| GND |
GND |
-
Connect the serial adapter to your computer with a USB cable.
-
Select the port of the serial adapter from Arduino IDE's Tools > Port menu.
-
Select Tools > Serial Monitor from the Arduino IDE menus.
-
Set the baud rate menu at the bottom right corner of Serial Monitor to 115200.
-
Connect the USB cable of the Arduino board to your computer.
You will now see the debug output from Mbed OS printed in Serial Monitor.
For example, I uploaded this nasty little sketch to my GIGA R1 WiFi to crash Mbed OS:
void setup() {
volatile byte foo = 1 / 0; // The variable must be volatile to prevent it from being optimized out.
}
void loop() {}
I then see this from the USB to serial adapter:
++ MbedOS Fault Handler ++
FaultType: HardFault
Context:
R0 : 2400B0C0
R1 : 00000000
R2 : 00000000
R3 : 00000000
R4 : 00000000
R5 : 00000000
R6 : 00000000
R7 : 00000000
R8 : 00000000
R9 : 00000000
R10 : 00000000
R11 : 00000000
R12 : 08043351
SP : 2400B208
LR : 080420EF
PC : 0804034C
xPSR : 61000000
PSP : 2400B1E8
MSP : 2407FF78
CPUID: 411FC271
HFSR : 40000000
MMFSR: 00000000
BFSR : 00000000
UFSR : 00000001
DFSR : 00000000
AFSR : 00000000
Mode : Thread
Priv : Privileged
Stack: PSP
-- MbedOS Fault Handler --
++ MbedOS Error Info ++
Error Status: 0x80FF013D Code: 317 Module: 255
Error Message: Fault exception
Location: 0x804034C
Error Value: 0x2400B250
Current Thread: main Id: 0x240029B8 Entry: 0x8044441 StackSize: 0x8000 StackMem: 0x24003210 SP: 0x2400B208
For more info, visit: https://mbed.com/s/error?error=0x80FF013D&osver=61700&core=0x411FC271&comp=2&ver=90200&tgt=GIGA
-- MbedOS Error Info --

Thank you all for your responses, much appreciated 
1 Like