Opta upload failed - No DFU capable USB device available

Hello,

I tried to upload a sketch to the Opta PLC by Arduino IDE, PLC IDE or Web Editor and Create Agent following those tutorials but all of them fail with the same error.
I tried two different cables and all of my usb ports.

This is the error:

Sketch uses 134032 bytes (17%) of program storage space. Maximum is 786432 bytes.
Global variables use 59336 bytes (11%) of dynamic memory, leaving 464288 bytes for local variables. Maximum is 523624 bytes.
dfu-util 0.10-dev

Copyright 2005-2009 Weston Schmidt, 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 dfu-util / Tickets

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release
Cannot open DFU device 2341:0364 found on devnum 37 (LIBUSB_ERROR_NOT_FOUND)
No DFU capable USB device available
Failed uploading: uploading error: exit status 74

In my device manager I noticed that in bootloader mode a driver is missing:


I think that should be the second COM port for bootloader mode.

I tried to install the drivers via
C:\Users\xxxx\AppData\Local\Arduino15\packages\arduino\hardware\mbed_opta\4.0.2\drivers\dpinst-amd64.exe

But it shows me that it failed for some of them:

Does anybody have an idea? I would be very happy about that. At the moment it is quite disappointing

Thanks!

I have similar problems. A week trying to load the runtime. Until the third computer I have not succeeded. Now I try to work by modbus tcp to avoid the serial and now it connects but it doesn't let me upload new programs. It's a drama. So you can't compete with the Logo! from Siemens. What a disappointment!

Solved few minutes ago, you have to use https://zadig.akeo.ie/ to update the DFU opta driver.

Power up your Opta from usb, then click twice the reset button so it will boot in DFU, then open Zadig and update the driver

4 Likes

Thanks for your input. Now it works! Improvment of that process by the Arduino team will be appreciated :wink:

This trick works for me too!! thanks!!

How to resolve this problem with Linux OS?
Thanks

On linux I resolved this by adding the following to a new file called /etc/udev/rules.d/60-dfu.rules

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0364", TAG+="uaccess"

I could then program the Opta after plugging it in again and switching to bootloader mode (double click the reset button)

The values could be different for you, or for different boards. You can get them by plugging in the arduino, running sudo dmesg -w, then switch the arduino to bootloader mode (will print the values).

https://sourceforge.net/p/dfu-util/tickets/173/

2 Likes

This worked for me, too --

  1. I closed my IDE
  2. I inserted the file 60-dfu.rules into /etc/udev/rules.d
  3. double-pressed "reset" on the face of the Opta (the bootloader will have a fade-in/fade-out type pulse when active)

I need to add that when I restarted my IDE, it updated the OPTA board manager to version 4.1.1 and that may have been the "fix."