Proffie V3 No Sound

Just finished my second Proffieboard saber. Everything works great but there is no sound. I’ve tried several speakers and am mostly confident that I have it wired correctly (though I might still be an idiot). Nonetheless, I still get no sound. Below is the config file I’ve been working with. It’s a slightly modified version of what I got from the configurator, though I’ve had the same problem using the vanilla configurator config. I’ve tried everything I can think of on the computer side including using a different computer and an older version of Arduino IDE (V 1.8.3). Is there anything else I might be missing or is it a hardware issue.

I apologize if there is an obvious mistake or if I’m repeating a previous post. Thanks

#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 5
#define NUM_BUTTONS 1
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 3.5
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ENABLE_SSD1306
#define SHARED_POWER_PINS
#define IDLE_OFF_TIME 60 * 10 * 1000
#define ENABLE_SERIAL

#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
   { "TeensySF", "tracks/venus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    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> >(),
    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>(),
    StyleFirePtr<RED, YELLOW, 3>(),
    StyleFirePtr<RED, YELLOW, 4>(), "fire"},
   { "SmthFuzz", "tracks/uranus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    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>(),
    StyleFirePtr<BLUE, CYAN, 3>(),
    StyleFirePtr<BLUE, CYAN, 4>(), "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> >(),
    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>(),
    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>(),
    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> >(),
    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>(),
    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>(),
    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>(),
    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>(),
    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>(),
    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),
    WS281XBladePtr<8, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >(),
    WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin1> >()
  , CONFIGARRAY(presets) },
};
#endif

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

If you remove the SD card, do you get any error messages on startup? If not, then it’s a hardware issue. Without the SD card present I’d expect to hear “Font Directory Not Found, SD Card not Found”

Especially if lights and such work and sound is the only issue.

No error messages, and I agree that it sounds like a hardware issue. Is there anything on the board, beyond the obvious speaker connection pads, that might be easily damaged that would affect this functionality?

It’s fairly easy to bridge the connections if the legs of the speaker are too close to the back housing (they’re close to begin with)

If you have a multimeter I’d check for continuity between SPKR+ and SPKR- as there shouldn’t be any. You should be able to measure ~4 or 8 ohms (depending on your speaker) between those two pads.

Shouldn’t there be? it’s a coil.

1 Like

There should not be. Just double-checked with a speaker and multimeter myself to fact-check.

It won’t register continuity, but it will register resistance. My particular multimeter does beep whenever there’s very low resistance, but that’s because it registers it as voltage drop from a diode (as it’s a combination mode for measuring diodes), not a proper short.

By the nature of things if there’s resistance then it’s not a short. (And all speakers have a resistance)

EDIT: To expand on this further I guess I should clarify that when I say “continuity” I intend to mean “short,” I’m not sure if the two are interchangeable (they may well not be). If not, then I mean “short.”

Right, the coil will still provide resistance. It might be a conductor but it’s a very thin and long conductor.

I don’t have a multimeter but I plan to check with one at work on Monday. My hIGhlY CalIBRatEd eyeball on the other hand doesn’t see any shorts.

Also, I would think that they are interchangeable.

lol, gotcha, keep us posted on what the multimeter says.

What are interchangeable?

Ignore me, I’m tired…

Yeah, I could see the argument for them to not be but I typically use them as if they were.

Eyeballing it, while not entirely invalid, only gives you half the picture if you’ll forgive the pun. It’s like looking through a telescope at the sky and then saying you’re certain there is no such thing as the moon because you can’t see it through the scope. You need a multimeter for anything like this. You don’t need anything fancy and they can be found for less than ten pounds/dollars. Just check it can measure resistance from zero ohms as some start at 20 or 100 ohms.

Ar Ryry says, if you use it to measure resistance between the two speaker pads on the Proffieboard, it should show roughly the same resistance as the speaker rating, i.e. 4 ohms showing on the meter for a 4 ohm speaker. Some meters might also interpret that as a short in continuity test mode (mine does), but the resistance test is the one that matters. In reality, the resistance reading given can vary by perhaps half an ohm, but if you’re in the ballpark on that test, then you can be pretty sure the wiring and speaker are OK, which then leaves Proffie components.

But it all starts with a meter.
:slight_smile:

2 Likes

It actually depends on how the meter measures continuity.
Some meters will show continuity, some will not.
It’s better to measure the resistance, but that can also show somewhat weird values since there are active components involved.

1 Like