Error when flashing board

Just got my first proffie from sabertrio and was trying to add some fonts that I had purchased. I made the mistake of zadigging the cdc data driver when the saber was first plugged in instead of first putting it into bootloader mode and installing that driver. I tried to flash the board and got a message saying “cannot open dfu device” or something along those lines. The saber just plays a “font directory not found” sound when powered on and then will not turn on again. I can only fix it by putting the board into bootloader mode and reflashing the original fonts and config. I followed one of the video guides I was seeing all over about deleting the wrong drivers so I tried that. Now when I plug my saber in, it shows up but it says there is no driver for cdc data and I can uninstall driver but can no longer uninstall and delete the driver. Not sure what else to do because the other drivers for my board seem to be the correct ones. Any help would be greatly appreciated!

This is the video you should check out:

If you already followed that video. and you still can’t fix it, then I’m not sure exactly how to help you with the CDC driver.

“cannot open dfu device” means you need to run zadig

If you follow the directions here:

Then there is no chance of doing it wrong.

However, it sounds like the CDC data driver is still being weird, but I’m not sure how to help with that, at least not without a lot more information about what is going on.

Yes that is exactly the one i followed! My board has more device functions listed, one of those being the cdc data. It actually detects it in arduino as well.

When in bootloader mode it was giving me a percent completion of the upload and then ending with the dfu device error but when I just plug the board in and select it through the port it counts up to 10 and nothing happens.

When I select cdc data on zadig I am given an option to install drivers from Microsoft although I am not sure those are the ones I need.

When flashing in bootloader mode, it says that the file was downloaded successfully after reaching 100 percent and then gives me the dfu device error.

Please take a movement to review the rules of this forum regarding screenshots.

Screenshots are not allowed if cut-n-paste will work.

Your first screenshot is technically ok, but the ones of the Arduino window are not.
The first screenshot is fuzzy and difficult to read because you included the entire screen instead of just the interesting bits.

These rules are not arbitrary. Screenshots are hard to read, both for humans and for search engines, having the information as text makes it easier to help you, and, because it can be read by search engines, other people may be able to find the discussion and benefit from it as well. Finally, images take up more space on my server than text.

Please edit your posts, my personal policy is to not provide help until the rules are respected.

Got it. Sorry about that.

Looking at the screenshot, it seems like the COM port is working fine.
Did you select it in Arduino? (In Arduino → Tools → Port)
The “CDC Data” endpoint might be the WebUSB endpoint. If that’s what it is, then any problems you have with it shouldn’t affect programming, only the ProffieOS Workbench would be affected.

Yes. If I just plug my board in without forcing boot mode, my PC recognizes it as “SABERTRIO” and it pops up under Arduino → Tools → Port. It still gives me the dfu error when it finishes though.

  1. Make sure the right port is selected in Arduino → Tools → Port
  2. Run zadig again, and follow the directions linked above.

I think this will make programming work.

To resolve the “CDC Data” device problem, can you bring up the properties for that device and see what it says? (Yes, you can take screenshot to show us, but please, only screenshot the window, not the entire screen.)

The proffieboard is recognized as “proffieboard” (Your screenshot shows this.)
The proffieboard has a mass storage device, which has an SD card in it. That SD card has an “SABERTRIO” label, which will pop up on your desktop when the board is connected.

The DFU error indicates that you need to run zadig properly.

When I open arduino with the saber plugged in I can select it under COM3 (Butterfly-L433CC, Proffieboard, Proffieboard V2, Proffieboard V3) which is what I have tried before. I entered bootloader mode and followed the steps in the directions exactly making sure that the usb id was correct and I was reinstalling the correct target driver. Attempting to upload the default sabertrio config returns this:
Download done.
File downloaded successfully
Cannot open DFU device 0483:df11
Transitioning to dfuMANIFEST state

Here is a screenshot of the cdc data properties

Ok so I have completely disregarded my PC and attempted to do things on my sister’s Macbook Pro to escape the driver issues. This time, the uploading process actually worked. However, once I turned the saber on and got to where a new font should have been, the saber said “Font directory not found” and then proceeded to shut off and not turn on again. This happened before when I was trying to flash it through my computer so I just went to reflash the factory settings. It worked, but now all the fonts have a noticeable crackle when I swing the saber.

If you switch to the “driver” tab in the “cdc data properties”, what do you see?

Font crackles are often related to slow SD cards.
What does “sdtest” say?

This might be normal, but I would need to see the full contents of the window, not the last four lines.

In the driver tab, the driver provider is unknown and the date and version are not available. I am not familiar with “sdtest”, is it a program I need to install or is it something done through Windows?

Funnily enough, I ended up plugging my saber into a usb 3.0 port instead of the 2.0 I was using before. I selected it through the port in arduino and it seemed to work this time. Here is the full log from the flash:

:/users/jacob/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/…/lib/gcc/arm-none-eabi/9.3.1/…/…/…/…/arm-none-eabi/bin/ld.exe:C:\Users\jacob\AppData\Local\Arduino15\packages\proffieboard\hardware\stm32l4\3.6\variants\STM32L433CC-ProffieboardV2/linker_scripts/STM32L433CC_FLASH.ld:224: warning: memory region `SRAM2’ not declared
Sketch uses 198312 bytes (75%) of program storage space. Maximum is 262144 bytes.
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util / Tickets

Opening DFU capable USB device…
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #0
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 198320

Download [ ] 0% 0 bytes
Download [ ] 2% 4096 bytes
Download [= ] 4% 8192 bytes
Download [= ] 6% 12288 bytes
Download [= ] 7% 14336 bytes
Download [== ] 8% 16384 bytes
Download [== ] 9% 18432 bytes
Download [== ] 11% 22528 bytes
Download [=== ] 12% 24576 bytes
Download [=== ] 13% 26624 bytes
Download [=== ] 15% 30720 bytes
Download [==== ] 16% 32768 bytes
Download [==== ] 18% 36864 bytes
Download [===== ] 20% 40960 bytes
Download [===== ] 22% 45056 bytes
Download [====== ] 24% 49152 bytes
Download [====== ] 25% 51200 bytes
Download [====== ] 27% 55296 bytes
Download [======= ] 28% 57344 bytes
Download [======= ] 29% 59392 bytes
Download [======== ] 32% 63488 bytes
Download [======== ] 34% 67584 bytes
Download [======== ] 35% 69632 bytes
Download [========= ] 36% 71680 bytes
Download [========= ] 37% 73728 bytes
Download [========= ] 39% 77824 bytes
Download [========== ] 40% 79872 bytes
Download [========== ] 41% 81920 bytes
Download [========== ] 43% 86016 bytes
Download [=========== ] 44% 88064 bytes
Download [=========== ] 46% 92160 bytes
Download [============ ] 48% 96256 bytes
Download [============ ] 50% 100352 bytes
Download [============= ] 52% 104448 bytes
Download [============= ] 53% 106496 bytes
Download [============= ] 55% 110592 bytes
Download [============== ] 56% 112640 bytes
Download [============== ] 57% 114688 bytes
Download [============== ] 59% 118784 bytes
Download [=============== ] 60% 120832 bytes
Download [=============== ] 61% 122880 bytes
Download [================ ] 64% 126976 bytes
Download [================ ] 65% 129024 bytes
Download [================ ] 67% 133120 bytes
Download [================= ] 68% 135168 bytes
Download [================= ] 69% 137216 bytes
Download [================= ] 71% 141312 bytes
Download [================== ] 72% 143360 bytes
Download [================== ] 73% 145408 bytes
Download [================== ] 74% 147456 bytes
Download [=================== ] 76% 151552 bytes
Download [=================== ] 78% 155648 bytes
Download [==================== ] 80% 159744 bytes
Download [==================== ] 82% 163840 bytes
Download [==================== ] 83% 165888 bytes
Download [===================== ] 84% 167936 bytes
Download [===================== ] 85% 169984 bytes
Download [===================== ] 87% 174080 bytes
Download [====================== ] 88% 176128 bytes
Download [====================== ] 89% 178176 bytes
Download [====================== ] 91% 182272 bytes
Download [======================= ] 92% 184320 bytes
Download [======================= ] 95% 188416 bytes
Download [======================== ] 96% 190464 bytes
Download [======================== ] 97% 192512 bytes
Download [======================== ] 99% 196608 bytes
Download [=========================] 100% 198320 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

Yep, this is definitely a successful upload.
Let me know if you still need help with the “CDC data” thingy.

It’s a proffieos command you can run from the serial monitor in Arduino.
Note that if you have DISABLE_DIAGNOSTIC_COMMANDS in your config file, it won’t be available to save memory.