Proffie Arduino uploading issues, plus more

Hello, I need help with the Arduino software mainly but there is also another issue that involves my saber though, I don’t know whether or not it’ll be that important. I wish I could send a video on here but I do not have the permissions to do so.

Long story short, With my first issue, I found myself struggling with uploading config data to my board as I was trying to upload a new soundfont. I kept receiving a countdown to ten with the repeated message of “Cannot open DFU device 0483:df11” in the text box.

Leading to my second issue, I have tried to follow some tutorials on how I could fix the first problem (i followed one from HeXek sabers and one from Fredrik’s). I’ve tried reflashing the board with Zadig multiple times, I’ve Uninstalled Serials and Coms yadayadayada… But then, I was suddenly left with it finally uploading!! Yay! I finally fixed it right? Nope… I winded up with a Buggy, malfunctioning pile of Crackling sounds, a laggy lightsaber flicker, heavy delays within the animations and sounds also including sudden crashes. I tested it with the serial monitor as well)

(Btw before all of this started, my saber was working perfectly until after this specific upload made my saber all buggy jsut so you’re aware)

I’d like to get started with solving the first issue just to hopefully see whether or not that’ll also fix the second issue without having to worry about anything else.
i hope this is clear enough to read, sorry if it’s long. Either way, I would really appreciate the help! Thank you for reading! :smiley:

1 Like

I’m no expert, but I can help with your first issue with the numbers counting to 10.

After it happens, usually pressing both buttons on the proffiboard at the same time, then releasing them at the same time, then try uploading again. It should work. (Leave the board plugged though the whole process).

I will help when this post follows the screenshot rule.
More information: @(&#)(@&*@)(#$& screenshots

I deeply apologize! should i delete them?

ok i deleted them just in case!

This means you need to run zadig:

Note, Zadig does not reflash the board, it just creates an association between the Proffieboard bootloader USB ID and the right driver on your computer, which lets other programs (like Arduino) talk to the proffieboard properly.

Most often, this indicates a problem with the SD card. For instance, this can happen if the SD card on the saber is not ejected safely before disconnecting OR PROGRAMMING the proffieboard. It’s also possible that this starts happening for no reason since SD cards wear down over time.

Usually, it’s enough to take the SD card out, copy all the files to your computer. (Which you want to do either way to make sure you have a backup) and then format the card and copy the files back. If that doesn’t help, you might want to try a different SD card. It is also possible that the problem is something else, but start by checking the SD card.

Ok! so I reformated the SD card but I come up with no luck, unfortunately. during the prcess though, I ran a small experiment on the board while I was waiting for the sd card to finish formatting and what i found out was that I still get a delay within the beep as I am pressing the auxiliary button to switch fonts. After formatting was finished, I plugged the SD back in the board I still get the same messiness as usual. So it’s likely the sd card seems to be just fine, it’s just the board that might be acting up, however.

I’ll try following up for the Zadig stuff tomorrow. it’s possible that I might need more help on the DFU device stuff later on too.

Without an SD card there is definitely going to be a delay, because it will try to mount the SD card lots of times before giving up.

Now, if it’s not the SD card, we’re probably going to need more information to get to the bottom of this problem. Like:

Do you see “buffer underrun” messages in the serial monitor when you have crackling sounds?
What does “sdtest” say? (If you have DISABLE_DIAGNOSTIC_COMMANDS in your config file, you would need to remove that to make it work.)

What version of ProffieOS do you have?
What version of the arduino-proffieboard do you have?
Can you post your config file?
If possible, could you take a video of the problem and post it? (Usually the easiest thing to do is to upload it to youtube and then post the link here.)

Finally, I would recommend trying a different SD card to see if that helps.

1 Like

On the Serial Monitor, I don’t see any buffer underrun messages however it does spam a lot of “Audio underflow” messages from when the saber is on. When the saber crashes, it either completely stops or it gives me a spam wall of “Audio underflows: 303 and 306”.

Here is the “sdtest” diagnostics:

Playing Jedi/enddrag1.wav
Playing Jedi/enddrag2.wav
Playing Jedi/enddrag3.wav
Playing Jedi/enddrag4.wav
Playing Jedi/enddrag5.wav
Playing Jedi/enddrag6.wav
Playing Jedi/enddrag7.wav
Playing Jedi/enddrag8.wav
Playing Jedi/bgndrag1.wav
Playing Jedi/bgndrag2.wav
Playing Jedi/bgndrag3.wav
Playing Jedi/swingh01.wav
Playing Jedi/swingh02.wav
Playing Jedi/swingh03.wav
Playing Jedi/swingh04.wav
Playing Jedi/swingh05.wav
Playing Jedi/swingh06.wav
Playing Jedi/swingh07.wav
Playing Jedi/swingh08.wav
Playing Jedi/swingl01.wav
Playing Jedi/swingl02.wav
Playing Jedi/swingl03.wav
Playing Jedi/swingl04.wav
Playing Jedi/swingl05.wav
Playing Jedi/swingl06.wav
Playing Jedi/swingl07.wav
Playing Jedi/swingl08.wav
Playing Jedi/slsh01.wav

Playing Jedi/slsh02.wav

Playing Jedi/slsh03.wav

Playing Jedi/slsh04.wav

Playing Jedi/slsh05.wav

Playing Jedi/slsh06.wav

Playing Jedi/slsh07.wav

Playing Jedi/slsh08.wav

Playing Jedi/slsh09.wav

Playing Jedi/slsh10.wav

Playing Jedi/swng01.wav

Playing Jedi/swng02.wav

Playing Jedi/swng03.wav

Playing Jedi/swng04.wav

Playing Jedi/swng05.wav

Playing Jedi/swng06.wav

Playing Jedi/swng07.wav

Playing Jedi/swng08.wav

Playing Jedi/swng09.wav

Playing Jedi/swng10.wav

Playing Jedi/swng11.wav

Playing Jedi/swng12.wav

Playing Jedi/swng13.wav

Playing Jedi/swng14.wav

Playing Jedi/swng15.wav

Playing Jedi/swng16.wav

Playing Jedi/swng17.wav

Playing Jedi/swng18.wav

Playing Jedi/lock01.wav
Playing Jedi/out01.wav
Playing Jedi/out02.wav
Playing Jedi/out03.wav
Playing Jedi/out04.wav
Playing Jedi/out05.wav
Playing Jedi/out06.wav
Playing Jedi/in01.wav

Playing Jedi/in02.wav

Playing Jedi/in03.wav

Playing Jedi/in04.wav

Playing Jedi/clsh01.wav

Playing Jedi/clsh02.wav

Playing Jedi/clsh03.wav
Playing Jedi/clsh04.wav

Playing Jedi/clsh05.wav

Playing Jedi/clsh06.wav

Playing Jedi/clsh07.wav

Playing Jedi/clsh08.wav

Playing Jedi/clsh09.wav

Playing Jedi/clsh10.wav

Playing Jedi/clsh11.wav

Playing Jedi/clsh12.wav

Playing Jedi/clsh13.wav

Playing Jedi/clsh14.wav

Playing Jedi/clsh15.wav

Playing Jedi/clsh16.wav

Playing Jedi/blst01.wav

Playing Jedi/blst02.wav

Playing Jedi/blst03.wav

Playing Jedi/blst04.wav

Playing Jedi/blst05.wav

Playing Jedi/blst06.wav

Playing Jedi/blst07.wav
Playing Jedi/blst08.wav

Playing Jedi/endlock1.wav
Playing Jedi/endlock2.wav
Playing Jedi/endlock3.wav
Playing Jedi/endlock4.wav
Playing Jedi/bgnlock1.wav
Playing Jedi/bgnlock2.wav
Playing Jedi/bgnlock3.wav
Playing Jedi/font.wav
Playing Jedi/stab01.wav
Playing Jedi/stab02.wav
Playing Jedi/stab03.wav
Playing Jedi/stab04.wav
Playing Jedi/stab05.wav
Playing Jedi/stab06.wav
Playing Jedi/stab07.wav
Playing Jedi/stab08.wav
Playing Jedi/hum01.wav
Playing Jedi/boot.wav
Time to open files: Average time: 6737.37 us
. :
…: .:: :
x100us 1 2 3 4 5
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
Time to read blocks: Average speed: 504.28 kb/s, 5.72 simultaneous audio streams.

               ::...                   ..                                                       

x100us 1 2 3 4 5
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

Here is my Config file:

#include “proffieboard_v2_config.h”
#define NUM_BLADES 1
#define NUM_BUTTONS 2
#define VOLUME 993
const unsigned int maxLedsPerStrip = 144;
#define ENABLE_WS2811
#define ENABLE_SD

Preset presets[] = {
{ “Jedi”, “tracks/BattleOfHeros.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<350>,AudioFlicker<Rgb16<0,4569,65535>,Rgb16<0,3239,31585>>,Rgb16<0,4569,65535>,Rgb16<0,10307,65535>>,BrownNoiseFlicker<Blue,White,100>,RandomPerLEDFlicker<Blue,LightCyan>>,Bisque,60>,Rgb16<65535,47835,0>>,RandomFlicker<Rgb16<54757,56828,65535>,Rgb16<30086,35913,65535>>,310>,120,500>>(), “Jedi Knight”},
{ “Jedi”, “tracks/BattleOfHeros.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<350>,AudioFlicker<Rgb16<591,65535,0>,Rgb16<216,24485,0>>,Rgb16<169,65535,0>,Green>,BrownNoiseFlicker<Rgb16<65,22863,0>,White,100>,RandomPerLEDFlicker<Rgb16<93,37981,0>,LightCyan>>,Bisque,60>,Rgb16<65535,33124,0>>,RandomFlicker<Rgb16<54757,56828,65535>,Rgb16<30086,35913,65535>>,310>,120,500>>(), “Jedi Consular”},
{ “Battle”, “tracks/mars.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<500>,AudioFlicker<Green,Rgb16<1113,31585,0>>,Mix<SwingSpeed<600>,Green,Rgb16<5257,65535,0>>>,BrownNoiseFlicker<Green,White,100>,RandomPerLEDFlicker<SpringGreen,White>>,LemonChiffon,50>,Cyan>,RandomFlicker<White,HoneyDew>,500>,95,500>>(), “Green”},
{ “Battle”, “tracks/mars.wav”,
{ “Battle”, “tracks/mars.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<AudioFlicker<Rgb16<65535,19216,2334>, Rgb16<54757,20095,0>>, BrownNoiseFlicker<Red,White,100>, RandomPerLEDFlicker<Coral,White>>, Rgb16<65535,2817,3239>, 40>, White, 200>, White, 300>, 95, 500, Black>>(), “Peach”},
{ “Peace”, “tracks/.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<300>,AudioFlicker<Rgb16<0,1239,65535>,Rgb16<0,468,24485>>,Rgb16<0,1239,65535>,Rgb16<0,1239,65535>>,BrownNoiseFlicker<Rgb16<0,13179,65535>,White,50>,RandomPerLEDFlicker<Blue,White>>,LightCyan>,Yellow,150>,RandomFlicker<White,LightCyan>,395>,95,500>>(), “Lightsaber”},
{ “Battle2”, “tracks/.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<600>,AudioFlicker<RED,Rgb16<26168,0,0>>,Mix<SwingSpeed<600>,Red,Red>>,BrownNoiseFlicker<Red,White,10>,RandomPerLEDFlicker<Red,White>>,PapayaWhip,60>,PeachPuff,120>,RandomFlicker<White,HoneyDew>,355>,110,500>>(), “Sith Lord Red”},
{ “TheSecond”, “tracks/.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<500>,Pulsing<Rgb16<65535,11,11>,Rgb16<52226,0,0>,200>,Red,Red>,BrownNoiseFlicker<Red,White,100>,RandomPerLEDFlicker<Red,White>>,Cyan,70>,Yellow>,Azure,210>,110,600>>(), “Apprentice Red”},
{ “Vader”, “tracks/ImperialMarch.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<450>,AudioFlicker<Red,Rgb16<30457,0,0>>,Mix<SwingSpeed<600>,Red,Red>>,BrownNoiseFlicker<Red,Cyan,10>,RandomPerLEDFlicker<Red,White>>,AliceBlue>,Cyan>,RandomFlicker<White,DeepSkyBlue>,520>,190,500>>(), “Dark Lord Red”},
{ “TheSurvivorYellow”, “tracks/JFO9.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<450>,AudioFlicker<Yellow,Rgb16<31966,29351,0>>,Rgb16<65535,61097,0>,Rgb16<63295,65535,0>>,BrownNoiseFlicker<Blue,White,100>,RandomPerLEDFlicker<Orange,White>>,LightCyan,50>,Cyan>,Pulsing<LightCyan,Rgb16<12254,0,0>,50>,650>,95,500>>(),“Rogue Yellow”},
{ “TheSurvivorIndigo”, “tracks/JFO1.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<450>,AudioFlicker<Rgb16<11366,0,65535>,Rgb16<3694,0,21301>>,Rgb16<11366,0,65535>,Rgb16<11366,0,65535>>,BrownNoiseFlicker<Rgb16<14386,0,65535>,White,50>,RandomPerLEDFlicker<Magenta,White>>,LightYellow,45>,Orange,150>,RandomFlicker<Rgb16<59477,54757,65535>,Rgb16<26168,26168,26168>>,205>,110,500>>(), “Indigo”},
{ “TFAgraflex”, “tracks/.wav”,
{ “ThePadawan”, “tracks/.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<300>,AudioFlicker<DeepSkyBlue,Rgb16<0,22546,65535>>,Rgb16<635,26511,65535>,Rgb16<4702,33124,65535>>,BrownNoiseFlicker<DeepSkyBlue,Bisque,50>,RandomPerLEDFlicker<Blue,White>>,FloralWhite>,Yellow,150>,RandomFlicker<White,LightCyan>,395>,100,500>>(), “Dan The Padawan”},
{ “Vintage”, “tracks/Training_Ambience.wav”,
StylePtr<RetractionDelay<1100,InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<450>,AudioFlicker<Rgb16<0,30086,65535>,Rgb16<1899,6628,9899>>,Rgb16<0,30086,65535>,Rgb16<0,30086,65535>>,BrownNoiseFlicker<Rgb16<0,28268,65535>,Yellow,50>,RandomPerLEDFlicker<Rgb16<6152,39252,65535>,White>>,Yellow>,LightCyan,150>,RandomFlicker<White,White>,100>,35,40>>>(), “Vintage Blue”},
{ “TLJgraflex”, “tracks/track1.wav”,
StylePtr<InOutHelper<OnSpark<BlastFadeout<SimpleClash<Lockup<Mix<SwingSpeed<500>,AudioFlicker<Rgb16<12944,35507,65535>,Rgb16<5845,15138,34304>>,Mix<SwingSpeed<600>,Rgb16<11805,36321,65535>,Rgb16<18358,40982,65535>>>,BrownNoiseFlicker<DarkOrange,LightCyan,100>,RandomPerLEDFlicker<Cyan,White>>,NavajoWhite,45>,Coral>,White,498>,171,550>>(), “Optimist Blue”},
{ “BATT”, “tracks/.wav”,
BladeConfig blades[] = {
{ 0, SimpleBladePtr<CreeXPE2RedTemplate<1000>, CreeXPE2GreenTemplate<0>, CreeXPE2BlueTemplate<240>, CreeXPE2WhiteTemplate<550>, bladePowerPin1, bladePowerPin2, bladePowerPin3, bladePowerPin4>(), CONFIGARRAY(presets) },

Button PowerButton(BUTTON_POWER, powerButtonPin, “pow”);
Button AuxButton(BUTTON_AUX, auxPin, “aux”);

I’m using ProffieOS v5.9 and using Arduino 1.8.19,
The proffie plugin in boards manager is at version 3.6.0

You want a much better SD card, that’s definitely not sufficient. The back of the Proffieboard manual has recommended cards. You want something with at least 1100 kb/s, 12 simultaneous audio streams.


i see :face_with_monocle: . So i guess it could be that my SD card is worn out. it’s funny cause last time it was working perfectly. weird how things can change so fast. i’m gonna try picking up a new SD card as soon as possible. Thank you! :grin:

You try reformatting the card (and be sure to always “eject” card from computer before use). Cards can go bad or become corrupted so if reformatting doesn’t fix then a better card is needed. The sdtest showed the card is not performing as expected which will cause all kinds of issues.

I Already reformatted the card and ejected my devices but nothing seems to be working.

though I should ask, is it possible that my SD card could also be the reason why I couldn’t upload things whilst I keep getting the “Cannot open DFU device” message ??

It really shouldn’t, “Cannot open DFU device” almost always means you need to run zadig. But if there is one thing I’ve learned, it’s that bad components sometimes cause weird problems.

I really hope a bad component isn’t the case. Everything was running completely fine before. Things only started going haywire right after I re-uploaded my config with a new font onto my board. it’s really strange…

Mind if you could give me some pointers on what I could do with the proffie using Zadig?

It’s possible that the fonts you had were 22kHz fonts, or monophonic fonts, which doesn’t require as much bandwidth from the SD card. It would be weird (but not impossible) for the SD card to suddenly get a lot slower.

For zadig, follow these instructions:

Zadig doesn’t do anything to the board itself, it just installs the right driver so that arduino can talk to it. Once zadig has run correctly, you shouldn’t have to do it again.

Note that there are some drivers that can interfere with zadig. When that happens, you’ll see that even after you run zadig, and you put your proffieboard in bootloader mode, it will still have the wrong driver associated with it.

This video has some pointers to how to check what driver Windows is using for your proffieboard. Note that this video is focused on how to check he driver when the board is NOT running in bootloader mode, but that the same methods can be used when the board is in bootloader mode as well.

Okay, I ran zadig a couple of times now and nothing seems to click.

is it possible to change the “Target driver” on Zadig in order for something to work? (for example: WinUSB to USB Serial (CDC))?