Arduino "Cannot open DFU Error"

If you’re getting this after the upload is done, then you’re fine.
If you’re getting it before the upload starts, and no upload happens, then you’re not.

I did get the error at the end, but when ejecting my saber after it comes back, Im still unable to get to my 19th font I added

is this a result of not running Zadig the first time around?

Do you have KEEP_SAVEFILES_WHEN_PROGRAMMING in your config file?

I do have that define in my config, I had also ensured that my folder name for the new font was the same as the blade style in my config

So it’s possible I may have inadvertently changed the driver for my STM32 BootLoader?

When going to Upload my config to the board I am now getting the DFUn error before any upload starts. and when going to Zadig it is showing a different name on the driver than WinUSB

Well then that’s why you’re not seeing the edits you made. That define is to make the board use the presets.ini file info and ignore the uploaded config presets. see this:

Understanding how the board dual boots should clarify the mode you’re in vs what you’re seeing.
The board normally boots into ProffieOS and is seen in Arduino on a COM port as “Proffieboard”. This device is a multi serial device and CDC Data is a typical way the PC sees it.
When you upload, Arduino puts the board into bootloader to send programming, then when finished, the board reboots back to ProffieOS.
If you manually force bootloader mode, then it’s already primed for programming, hence why hitting upload regardless of the board not showing on a COM port works as it does.

Correct, looks like you did.
Install WinUSB (v6.1.7600.16385) for STM32BOOTLOADER.

When i put my board in Bootloader and open Zadig it is showing the above imagine…however when I unplug my saber and reseat it, it shows up like this in Zadig

The arrow was orange before I done a “replace driver” install so im unsure on how to correct this if the USB ID is incorrect

Ok, first you should remove the screenshots since you could just type the info shown. House rules.

That said, what you’ve done is somehow reversed the drivers.
You installed the bootloader driver for the Proffieboard,
and the Proffieboard driver for bootloader.

Go to Device manager, uninstall the driver for CDC Data, include checkmark to remove/delete this device.
Then plug the board in again (without pressing onboard buttons), and allow Windows to install the driver for “Proffieboard”…which it should do fine on its own.

Then do the manual bootloader and reinstall the correct driver in Zadig for STM32BOOTLADER.
That is the only device you should use Zadig for in this rocess, and it should be a on-time deal. All boards you connect from then on should be fine.

My apologies, i felt it would serve better to have an idea of what im seeing.

I’ll give your fix a go and report back, thank you! :slight_smile:

Ok so I followed along with your instructions, however when I put my board in Bootloader manually it is still showing the driver as “usbser (v1.0.0.0)”, however the USB ID (0483, DF11) does match up with the correct one according to the Zadig wiki.

Should I proceed and and replace the “WinUSB (v6.1.7600.16385)” driver with this or is this also incorrect?

edit** i would also like to note that STM32 BOOTLOADER is showing in my Ports with a yellow exclamation. I had originally seen this under USB Serial Devices before but i think this may have been from me selecting “Upgrade” on the USB Serial CDC driver, as i thought this is what i needed to do in order to get the Arduino upload to finish :confused:

Correct it’s probably showing there’s a driver conflict because you also installed the same driver for CDC data.

You should first manually uninstall / delete CDC data from device manager.
Restart computer.
Connect the board via USB and let Windows install the correct driver for it while it is a Proffieboard.
Then reinstall/replace STM32BOOTLOADER to use WinUSB (v6.1.7600.16385) with Zadig.

tl;dr *By all means follow the above suggestions since either way you need the ability to upload properly and all of this is good learning.

What’s your overall goal here? Change fonts? Add fonts and additional bladestyle presets? Use what you have that is “factory”? Do you want to possibly add to it as well? Are you also considering using a different prop option?

Did you simply try putting their version of the prop file into the ProffieOS prop folder? This will provide the opportunity to put the saber back to its “factory” setup, give you a basic framework, and allow basic expansion to bladestyles and associated fonts.

Did you try simply editing the config keeping the config top and bottom intact to try to edit from there?

Just making sure I understand. So after deleting the CDC Data driver…restart PC > plug in saber > and then put saber in Bootloader mode before opening Zadig?

You don’t need to open and activate Zadig every time. It’s a one and done thing to setup the pc.

My goal was mainly to add fonts ive purchased to my saber.

To somewhat summarize up till now, I had gotten to a point where i could upload BUT was getting the DFU error at the veyr end. I had gone into Zadig and replaced the CDC Data driver with the STM32 Bootloader driver, thinking that would fix it and of course…here we are now.

It is definitely a learning experience and honestly makes me want to create a more cohesive updated “how to” video for adding fonts as the tutorials i followed were okay but honestly didnt account very well for the Zadig portion…

in my case it seems i may have to run in a few times to get things back to normal. at this juncture im all for running it 100 times in order to get back to the point where i was just getting the DFU error at the end of my upload :sweat_smile:

Can’t get clearer than this:
Plug in the board via USB not holding BOOT button.
Delete the CDC Data driver and include the checkmark to remove/delete this device.
At that point, you should likely hear the computer bing sound that a USB device connected. That should be the PC finding the board and it should install the correct driver for Proffieboard (CDC Data etc…) by itself.
You can check when it’s done that Arduino sees a Proffieboard under menu Tools>Port.
Restarting computer is just for good measure, but prob not required.
After the Proffieboard driver had been installed by Windows, hold BOOT, press and release RESET, then release BOOT.
Open Zadig and drop down menu for Show All Devices.
Select STM32BOOTLOADER and install driver WinUSB (v6.1.7600.16385)

That’s the last time, other than a crash or disconnect during upload, that you should ever need to worry about bootloader again.

1 Like

Thank you for the super clear instructions :slight_smile: , it looks like STM32 Bootloader is now back under Universal Serial Bus devices in Device Manager!

In this case now, with my saber plugged in and still in Bootloader-mode, would it be alright to attempt a Verify and Upload of my new config?
Or should I disconnect and reconnect my saber first and have it connect normally before doing so?

Yes, that’s totally fine.

Uploading by putting the board in bootloader mode is always fine, with two caveats:

  1. it’s extra work compared to having arduino put it into bootloader mode for you (which is what happens when you have a port selected in arduno → tools → port)
  2. If you end up using the BOOT/RESET buttons a lot, they will eventually wear out and fall apart. Don’t do that.