Newbie problems - card no longer recognized after compile

Gentlebeings: I’m a long time saber collector and just got myself into a world of hurt with trying to play around with Arduino for the first time.

Trying to keep this short: I finally figured out how to run a successful compile in Arduino and uploaded it. Halfway through the upload, everything went sideways. My computer (Win 11) started making a continuous usb disconnect chime and the upload looked like it stopped. I waited about 15 minutes (no action on Arduino) and unplugged the saber.

When I plugged it back in to the computer, I got the Windows chime of a USB device connected, and then I get a continuously playing disconnect sound.

Pressing BOOT/REST stops the sound (and identifies as Bootloader in Windows devices) but the problem returns as soon as I unplug/replug the cable.

Also, the COM port is no longer identified in Arduino (greyed out).

I’m kicking myself for experimenting with a saber I just got… All I wanted to do was add some fonts. Honestly, at this point, I just want to get it back to basic functionality!

I did make a backup of the SD card before playing with anything, but there’s no config file there, just the sound font it came with.

Any hand-holding you can offer would be greatly appreciated!

Probably too late for this time, but next time you try to “mess” with a new Proffieboard saber:

To be done before you try to upload a new config so you can always go back to the “out of the box” programming. Or you can also use it after you get your present saber working and before you “mess” with it again.

That’s not how you link to the POD.
Try this:

Sorry @profezzorn, I didn’t know that was on the POD. I linked where I had found the information and I had bookmarked github. I have updated my bookmark. Thanks

Before anything else - thank you all for these helpful, kind and fast replies! I’m really grateful - it’s not always easy to ask for help and your made me feel really supported.

@profezzorn - Thanks for the note that the port won’t be detected and that I should just upload anyway. Phew!

@olivierflying747-8 - Definitely too late for this time, and I appreciate knowing best practices for going forward.

Thinking about this a little more (I literally had a dream about this issue last night), I’m realizing that I didn’t use the right version of the generator to create my config file. Just found the configuratior for v3 - I realize now I was using the one for v1. Is it possible that was the cause of the failure?

I’m heading in to work and will try again later today. I’ll keep you posted!

If you have a chance, could you please let me know if this makes sense for next steps:

  1. Generate a new file with the v3 configurator
  2. With killkey off, plug saber into computer
  3. Fun the BOOT/RESET fix
  4. Start Arduino
  5. Upload the new file (even though COM won’t show up as active)

Thank you all once again!

Program a V3 board with Arduino setup for a V2 board can generate some odd problems, but I think this was caused by something else, since you said it seemed like it stopped in the middle of an upload.

Compiled v3 congif file and upload looked fine. Eended with:
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

Immediately after the download completed, it started giving the “usb disconnect” chime without stopping. I waited a few minutes and unplugged the saber. It wouldn’t turn on.

I looked closer at the card and saw that there are two loose wires and one oddly truncated one. This issue seems to have a hardware component (though I’m at a complete loss how - it turned on fine before I went to load the new fonts).

I’m barely a software guy and not at all an electronics guy. My son (in high school) has a good hand for electronics soldering. Can anyone advise on which of the two loose wires should be connected - and where? it’s looking like there’s only one missing wire but two candidates. And what’s the blue thing???

It’s not letting me embed multiple pics, so here’s a Dropbox link:

https://www.dropbox.com/scl/fo/hldjc5gpj64n4roe51g47/AKrlqeuVY9YdC_gvzY_EDjc?rlkey=sbrk7xwe0q9iml63v48kf8rdn&dl=0

Thank you once again - I really appreciate your guidance!

Most likely the red wire is meant to connect to the “oddly truncated” wire.
The “oddly truncated” wire is actually a resistor with a heat shrink.

The orange wire looks like it’s supposed to go to the 5v pad, which is a bit odd.

It’s hard to know if this is correct without knowing where those wires actually go though.

Thanks for the insight - my son looked it at and immediately agreed with your assessment. He stripped the heat shrink for soldering, at which point the resistor fell off.

We’re going to have at it on Tuesday. Our working theory, since there’s two loose cables and three places it could go, is that the 5v was a mistake (ignore) and both oranges are for the speaker (they’re twisted around each other). Which means the red goes to BATT+.

We’re going to take it slow.

Will keep posting!

Could use any advice about next steps… Still not working - here’s what I did.

My son and I soldered the loose wires into place. I ran the configurator for v3 with the correct config for the saber (as best I could guess).

I placed a battery into the saber. With the killswitch off, I plugged the saber into the computer with a data cable. The computer made the expected repeating “USB disconnect chime”, which stopped when I did the BOOT/RESET sequence.

I started up Ardunio, making sure it was using the new my_saber1.h file I uploaded the file to the saber. After it ran, I immediately got the dreaded repeating “USB disconnect chime”.

I turned on the saber at the killswitch. There was no boot sound and I couldn’t get the saber to ignite. The custom LED did illuminate and then turned off after a while.

I have no idea what to do from here - any guidance would be most appreciated. Thank you for anything you can offer!

What USB type did you choose when you programmed? (did it include “mass storage”? If so, do it again, but just with “serial”.)
Does the font names on the SD card match those in your config file?
Have you checked that the SD card hasn’t become corrupt?
Can you post your config file?
Does it work better if you try it without an SD card in the proffieboard?

Thank you for the incredibly swift reply!

UPDATE - I realized that I hadn’t corrected an earlier error in ProffieOS.ino (was pointing to a config file that no longer existed). Corrected, so is now pointing to my_saber1.h

After I uploaded, I didn’t get the dreaded repeating disconnect sound! PROGRESS!!!

That said, there is still no boot sound (or sound at all) and it still doesn’t ignite.

  1. USB type was Serial + Mass Storage. Changed it to serial.
  2. I’m not installing any custom sound fonts right now - was that a mistake? I had thought there were stock fonts that were included. Thoughts?
  3. I haven’t, but could do so. Best practices?
  4. Good question - tried it both ways, but doesn’t make a difference.

Here’s the my_saber1.h file. Saber has one switch and a kill-key. Nothing else fancy except an led that activates when the kill-switch turns on.

Thank you again - very much!!!

#ifdef CONFIG_TOP
#include "my_saber1.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 1
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
   { "TeensySF", "tracks/venus.wav",
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    StyleNormalPtr<CYAN, WHITE, 300, 800>(), "cyan"},
   { "SmthJedi", "tracks/mars.wav",
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(), "blue"},
   { "SmthGrey", "tracks/mercury.wav",
    StyleFirePtr<RED, YELLOW, 0>(),
    StyleFirePtr<RED, YELLOW, 1>(),
    StyleFirePtr<RED, YELLOW, 2>(), "fire"},
   { "SmthFuzz", "tracks/uranus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(), "red"},
   { "RgueCmdr", "tracks/venus.wav",
    StyleFirePtr<BLUE, CYAN, 0>(),
    StyleFirePtr<BLUE, CYAN, 1>(),
    StyleFirePtr<BLUE, CYAN, 2>(), "blue fire"},
   { "TthCrstl", "tracks/mars.wav",
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(), "green"},
   { "TeensySF", "tracks/mercury.wav",
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(), "white"},
   { "SmthJedi", "tracks/uranus.wav",
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(), "yellow"},
   { "SmthGrey", "tracks/venus.wav",
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(), "magenta"},
   { "SmthFuzz", "tracks/mars.wav",
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(), "gradient"},
   { "RgueCmdr", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(),
    StyleRainbowPtr<300, 800>(),
    StyleRainbowPtr<300, 800>(), "rainbow"},
   { "TthCrstl", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(), "strobe"},
   { "TeensySF", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
   { "SmthJedi", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"}
};
BladeConfig blades[] = {
 { 0, WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
    SubBladeWithStride(1, 15, 2, NULL)
  , CONFIGARRAY(presets) },
};
#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
#endif

This is most likely your problem.
When you buy a saber, it comes with a set of fonts, but it’s almost certainly not the free fonts available on my site, so the fonts referenced in the config file and the fonts on your SD card are probably not the same.

Basically, you need to change “TeensySF”, “SmthJedi”, etc. to the font directories that actually exists on your saber.

In addition, my site generates a very simple config file with simple controls and simple styles.
If you want more bells and whistles, I suggest using the Fett263 configuration generator to add more stuff to your config file.

(My configurator is really just meant to configure the hardware aspect and give you a starting point for presets and styles, while the Fett263 configurator is highly focused on giving you customized and interesting styles for your blades.)

BZZZZT

This should say #include "proffieboard_v3_config.h".
This config file cannot possibly work right now.

Please read this page:

Drat! It DID say that before, and I changed it, thinking that was the mistake. I bet that it was the change to the serial port that made the difference. Serves me right for changing too many variables at the same time. :blush:

I’ll correct and try again!

Thanks for the clarification. I’m really grateful for the tools you’ve created for us!

Right now, I’m just looking for basic functionality, so I’ll hold off on anything too fancy for now.

I’ll add the one font that came with the saber, since I know that it worked when it arrived.

More to come, and thank you again!

How strange… It did give me the result:
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

Magic???

Maybe you actually uploaded a different file?

One of the best ways to check is to put an error in your config file on purpose and see if it still works.