"Please set CONFIG FILE as shown above"

Your computer is accessing the SD card.
Try unmounting the SD card from the computer and see if it works better.

With the SD card removed, I get “Font directory not found, font directory not found, SD card not found” (all distorted) when I plug it into the computer and then on the serial monitor following an on, clash, off cycle I get:

Ignition.
SD card is busy, flags= medium
No sounds found: hum
SD card is busy, flags= medium
unit = 0 vol = 0.00, No sounds found: poweron
No sounds found: hum
Audio underflows: 1

“SD card is busy, flags= medium” means the SD card is not available for the board to use.
Obviosly if the card is not insterted in the board, this will occur.
If the SD card IS in the board, then you just need to turn off the mass storage option. Maybe you aren’t understanding what that means.

If you upload with the option in Arduino menu Tools>USB Type set to Serial + Mass Storage, your computer is going to mount the SD card like an external USB drive when you connect the Proffieboard. The board can’t use the SD card when it’s being used by the computer like that.
Leave the SD card in the board.
Change the USB Type option to just Serial.
Upload.
When it’s finished, leave the cable plugged in and try everything out.

Alright, much better luck doing that. It also sounds much better, though still somewhat distorted. I get the following:

Playing HeroPack/swingl/swingl4.wav
channels: 1 rate: 44100 bits: 16
EVENT: Clash ON millis=12030
unit = 1 vol = 0.50, Playing HeroPack/clsh/clsh8.wav
channels: 1 rate: 44100 bits: 16
unit = 1 vol = 0.50, Playing HeroPack/in/in2.wav
channels: 1 rate: 44100 bits: 16
No sounds found: pstoff
Amplifier off.
Unmounting SD Card.
Battery voltage: 3.74

However, when I disconnect from the computer it’s back to badly distorted sound and the same font directory error.

That’s weird.
Although I guess it could mean that the board has a bad connection with the battery.
On a V3, the USB power is actually fed into the booster (by way of the battery charger) so USB can actually power sound, unlike V2 boards.

2 Likes

That what I’ve heard from a lot of people but with a different config file there are no issues, no distortion, errors, etc. (and it’s louder).

I’ve double checked my wiring for power and it’s quite solid. Wondering if there’s a remote possibility there’s an issue with the board itself?

Are you saying you can load one config and it’s fine, and then a different config file causes issues?
Can you go back and forth between them and recreate the problem reliably?
Have you posted both config files here for comparison?

Exactly, my config file lights perfectly but the sound is distorted. If I use a Proffie v3 verifcication config, I get good lights and non-distorted sound (the voice saying font directory not found is very clear). When I use a default config (meant for Proffie V1), I get crystal clear sounds (though no crystal chamber lights, but I imagine that’s just because it isn’t configured for that since it’s a default config).
My config is posted above but the default I’m using is:

// This is a sample configuration file.
// This saber has:
//   o Proffieboard V1 hardware.
//   o Two buttons
//   o An XP-E2 RGB LED star on LED 4-5-6
//   o A neopixel blade on LED 1-2-3 and neopixel data 1.
// If you have a saber similar to this one, make a copy and use the copy.
// This is also the default configuration file. Pre-programmed boards will
// use this configuration file.

#ifdef CONFIG_TOP
#include "proffieboard_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#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 SAVE_STATE
#define ENABLE_ALL_EDIT_OPTIONS
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
  { "TeensySF", "tracks/venus.wav",
    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> >(), "blue"},
  { "SmthGrey", "tracks/mercury.wav",
    StyleFirePtr<RED, YELLOW, 0>(),
    StyleFirePtr<RED, YELLOW, 1>(), "fire"},
  { "SmthFuzz", "tracks/uranus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(), "red"},
  { "RgueCmdr", "tracks/venus.wav",
    StyleFirePtr<BLUE, CYAN, 0>(),
    StyleFirePtr<BLUE, CYAN, 1>(), "blue fire"},
  { "TthCrstl", "tracks/mars.wav",
    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>(), "white"},
  { "SmthJedi", "tracks/uranus.wav",
    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> >(), "magenta"},
  { "SmthFuzz", "tracks/mars.wav",
    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>(), "rainbow"},
  { "TthCrstl", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(), "strobe"},
  { "TeensySF", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
  { "SmthJedi", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"}
};
BladeConfig blades[] = {
 { 0, WS2811BladePtr<97, WS2811_800kHz>(),
     SimpleBladePtr<CreeXPE2WhiteTemplate<550>,
                    CreeXPE2BlueTemplate<240>,
                    CreeXPE2BlueTemplate<240>, NoLED, bladePowerPin4, bladePowerPin5, bladePowerPin6, -1>(),
     CONFIGARRAY(presets) },
  };
#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif

The Proffie V3 verification that has good lights and non-distorted sound is:

/* Proffieboard V3 light stapler test config.
 */
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 100
const unsigned int maxLedsPerStrip = 144; 
#define CLASH_THRESHOLD_G 3.5
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#define SAVE_STATE
#define BLADE_DETECT_PIN aux2Pin
#define ENABLE_DEVELOPER_COMMANDS
#define IDLE_OFF_TIME 60 * 2 * 1000
#define MOTION_TIMEOUT 60 * 1 * 1000

#define BLASTER_SHOTS_UNTIL_EMPTY 15  // (whatever number)
#define BLASTER_JAM_PERCENTAGE 10     // if not defined, random.

#endif

#ifdef CONFIG_PROP
#include "../props/dual_prop.h"
#include "../props/saber.h"
#undef PROP_TYPE
#include "../props/blaster.h"
#undef PROP_TYPE
#define PROP_TYPE SaberBlasterProp<Saber, Blaster>
#endif


#ifdef CONFIG_PRESETS
Preset saber [] = {
{ "teensysf", "tracks/mars.wav",
  StylePtr<Layers<
  Red,
  InOutTrL<TrWipe<300>,TrWipeInX<WavLen<EFFECT_RETRACTION> >>>>(),
  StylePtr<Red>(),
  StylePtr<Red>(),
  "Teensy"},
};

Preset blaster[] = {
{ "blaster/bank1", "tracks/venus.wav",
  StylePtr<White>(),
  StylePtr<White>(),
  StylePtr<White>(),
  "blaster"},
};

BladeConfig blades[] = {
{ 0,  
  WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin3> >(),
  WS281XBladePtr<144, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin3> >(),
  WS281XBladePtr<4, blade5Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(),
  CONFIGARRAY(saber),
  "SaberSave"}, 
{ NO_BLADE, 
  WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin3> >(),
  WS281XBladePtr<144, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin3> >(),
  WS281XBladePtr<4, blade5Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(),
  CONFIGARRAY(blaster),
  "blasterSave"}
};
#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif

Hmm, so after replying to NoSloppy with another config file (meant for Proffie V1s) I noticed that I have clear sounds when using the serial monitor but when I disconnect and use the battery, it is distorted again.

When I use the verification config for V3s, I don’t have any sounds loaded but the error voice I get is very clear on both the serial monitor and on battery power.

My own config file is distorted on both serial monitor and battery power.

Please make sure you compare apples to apples.
The error voice just isn’t a very good sample, and the volume is lower than most fonts. Either use the error voice for all comparisons, or use a font for all comparisons, don’t mix them, as that can lead to weird conclusions.

I recommend picking a font, and then just change the first preset in whatever configuration you want to test to use that font, then see if it sounds fine or not.

I suspect that you’ll get more or less the same results with all configs if you do that.

In default V1 config, no voice to compare to but clear sounds via serial monitor and distorted on battery.
In V3 verification config, clear voice saying “Font directory not found”
In my config, distorted voice saying “Error in font directory”

I’ll try to upload the same font and see what I get.

Is this the one with a volume of 100?
(Make sure that the volumes are the same when you compare as well…)