Blaster help needed

So i am trying to use the config posted by megtooth sith to make a proffie blaster.

I am struggling to get the config to verify for a proffieboard v2
Config below:

#ifdef CONFIG_TOP
#include “proffieboard_v2_config.h”
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#define VOLUME 2000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_WS2811
#define ENABLE_SD
#define DELAYED_OFF
#define ENABLE_BLASTER_AUTO
#define BLASTER_SHOTS_UNTIL_EMPTY 30
#define BLASTER_JAM_PERCENTAGE 3

#endif

#ifdef CONFIG_PROP
#include “…/props/blaster.h”
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
// Default basic blast color with red audio flicker on blast
{ “blstr1”, “tracks/fates.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank1”,“tracks/tracks/credits.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank2”,“tracks/tracks/swars.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank3”,“tracks/tracks/fates.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank4”,“tracks/tracks/march.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank5”,“tracks/tracks/credits.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank6”,“tracks/tracks/swars.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

};
template
struct CreeXPE2DRedTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 255;
static const int Green = 0;
static const int Blue = 0;
};
template
struct CreeXPE2DRed2Template {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 255;
static const int Blue = 0;
};
template
struct CreeXPE2RBlueTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 3.4;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 3.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 0;
static const int Blue = 255;
};

BladeConfig blades[] = {
{ 0, SimpleBladePtr<CreeXPE2DRedTemplate<1200>, CreeXPE2DRed2Template<1200>,CreeXPE2BlueTemplate<300>, NoLED>(),
WS2811BladePtr<2, WS2811_800kHz | WS2811_GRB, blade2Pin, PowerPINS>(),
CONFIGARRAY(presets) },
};

#endif

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

I think maybe im on the wrong track because the error is talking bout teensyduino. I dont know?
error below:
In file included from E:\Lightsaber\ProffieOS\ProffieOS.ino:43:0:
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:2:10: error: #include expects “FILENAME” or
#include �proffieboard_v2_config.h�
^
In file included from E:\Lightsaber\ProffieOS\blades\ws2811_blade.h:37:0,
from E:\Lightsaber\ProffieOS\ProffieOS.ino:552:
E:\Lightsaber\ProffieOS\blades\monopodws.h:41:2: error: #error “Teensyduino version 1.21 or later is required to compile this library.”
#error “Teensyduino version 1.21 or later is required to compile this library.”
^
In file included from E:\Lightsaber\ProffieOS\ProffieOS.ino:586:0:
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:19:10: error: #include expects “FILENAME” or
#include ��/props/blaster.h�
^
exit status 1
Error compiling for board Proffieboard V2.

Also I am using the latest OS. I dont know if that makesa difference.

You have some weird quotes in your ProffieOS.ino file.
You probably used wordpad or some other “smart” app to edit ProffieOS.ino which “helpfully” changed your doublequotes into fancy unicode quotes.

Please use a text editor, like notepad or notepad++ to edit ProffieOS.ino.

It only changed to this when i pasted it onto crucible.
I use wordpad to edit all my configs. Used it today to upload a couple of saber configs and it always works fine.

just in case, I changed to Notepad ++
config below:
#ifdef CONFIG_TOP
#include “proffieboard_v2_config.h”
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#define VOLUME 2000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_WS2811
#define ENABLE_SD
#define DELAYED_OFF
#define ENABLE_BLASTER_AUTO
#define BLASTER_SHOTS_UNTIL_EMPTY 30
#define BLASTER_JAM_PERCENTAGE 3

#endif

#ifdef CONFIG_PROP
#include “…/props/blaster.h”
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
// Default basic blast color with red audio flicker on blast
{ “blstr1”, “tracks/fates.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank1”,“tracks/tracks/credits.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank2”,“tracks/tracks/swars.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank3”,“tracks/tracks/fates.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank4”,“tracks/tracks/march.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank5”,“tracks/tracks/credits.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank6”,“tracks/tracks/swars.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

};
template
struct CreeXPE2DRedTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 255;
static const int Green = 0;
static const int Blue = 0;
};
template
struct CreeXPE2DRed2Template {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 255;
static const int Blue = 0;
};
template
struct CreeXPE2RBlueTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 3.4;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 3.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 0;
static const int Blue = 255;
};

BladeConfig blades[] = {
{ 0, SimpleBladePtr<CreeXPE2DRedTemplate<1200>, CreeXPE2DRed2Template<1200>,CreeXPE2BlueTemplate<300>, NoLED>(),
WS2811BladePtr<2, WS2811_800kHz | WS2811_GRB, blade2Pin, PowerPINS>(),
CONFIGARRAY(presets) },
};

#endif

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

It won’t look like a question mark in your file.
It will look like doublequotes, but angled in two different directions.

These worked fine:

But these did not:

So there is definitely some difference between them.

Actually, when I look at it closer, I think these doublequotes are also wrong.
yours: ”
mine: "

I think you are right

Apparently Notepad++ also does these “smartquotes” in some cases nowadays.
Maybe someone else has a better recommendation for a windows text editor?

from what i can tell when it was pasted to the crucible it changed them somehow to the angle speach marks. I have now chaged them all to the correct non angled " but it is giving me errors to do with my led template. Im lost now. My skills stretch to copying and pasting bit in the right place.

In file included from E:\Lightsaber\ProffieOS\ProffieOS.ino:582:0:
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:67:28: error: ‘milliohms’ was not declared in this scope
static constexpr float R = milliohms / 1000.0;
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:71:1: error: explicit instantiation of non-template type ‘CreeXPE2DRedTemplate’
};
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:78:28: error: ‘milliohms’ was not declared in this scope
static constexpr float R = milliohms / 1000.0;
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:82:1: error: explicit instantiation of non-template type ‘CreeXPE2DRed2Template’
};
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:89:28: error: ‘milliohms’ was not declared in this scope
static constexpr float R = milliohms / 1000.0;
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:93:1: error: explicit instantiation of non-template type ‘CreeXPE2RBlueTemplate’
};
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:96:21: error: ‘CreeXPE2DRedTemplate’ is not a template
{ 0, SimpleBladePtr<CreeXPE2DRedTemplate<1200>, CreeXPE2DRed2Template<1200>,CreeXPE2BlueTemplate<300>, NoLED>(),
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:96:49: error: ‘CreeXPE2DRed2Template’ is not a template
{ 0, SimpleBladePtr<CreeXPE2DRedTemplate<1200>, CreeXPE2DRed2Template<1200>,CreeXPE2BlueTemplate<300>, NoLED>(),
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:97:69: error: no matching function for call to ‘WS2811BladePtr()’
WS2811BladePtr<2, WS2811_800kHz | WS2811_GRB, blade2Pin, PowerPINS>(),
^
E:\Lightsaber\ProffieOS\config\megtoothblaster.h:97:69: note: candidate is:
In file included from E:\Lightsaber\ProffieOS\ProffieOS.ino:552:0:
E:\Lightsaber\ProffieOS\blades\ws2811_blade.h:299:18: note: template<int LEDS, int CONFIG, int DATA_PIN, class POWER_PINS, template<int , int , Color8::Byteorder , int , int , int , int > class PinClass, int reset_us, int t0h, int t1h, int POWER_OFF_DELAY_MS> BladeBase* WS2811BladePtr()
class BladeBase *WS2811BladePtr() {
^
E:\Lightsaber\ProffieOS\blades\ws2811_blade.h:299:18: note: template argument deduction/substitution failed:
exit status 1
Error compiling for board Proffieboard V2.

This is my config now

#ifdef CONFIG_TOP
#include “proffieboard_v2_config.h”
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#define VOLUME 2000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_WS2811
#define ENABLE_SD
#define DELAYED_OFF
#define ENABLE_BLASTER_AUTO
#define BLASTER_SHOTS_UNTIL_EMPTY 30
#define BLASTER_JAM_PERCENTAGE 3

#endif

#ifdef CONFIG_PROP
#include “…/props/blaster.h”
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
// Default basic blast color with red audio flicker on blast
{ “blstr1”, “tracks/fates.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank1”,“tracks/tracks/credits.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank2”,“tracks/tracks/swars.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank3”,“tracks/tracks/fates.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank4”,“tracks/tracks/march.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank5”,“tracks/tracks/credits.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

{“bank6”,“tracks/tracks/swars.wav”,
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
},

};
template
struct CreeXPE2DRedTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 255;
static const int Green = 0;
static const int Blue = 0;
};
template
struct CreeXPE2DRed2Template {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 255;
static const int Blue = 0;
};
template
struct CreeXPE2RBlueTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 3.4;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 3.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 0;
static const int Blue = 255;
};

BladeConfig blades[] = {
{ 0, SimpleBladePtr<CreeXPE2DRedTemplate<1200>, CreeXPE2DRed2Template<1200>,CreeXPE2BlueTemplate<300>, NoLED>(),
WS2811BladePtr<2, WS2811_800kHz | WS2811_GRB, blade2Pin, PowerPINS>(),
CONFIGARRAY(presets) },
};

#endif

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

So, when you paste code into the crucible, please add three backticks (`) before the code and three backticks after, that makes the code show up better, like this:

CodeGoesHere()

Also, in this case, the code got messed up because the template lines are missing some parts. The crucible is interpreting the < sometexthere > as html and removing it. Using the triple-backticks will prevent that.

Ill try and paste the config herr with back ticks, if that helps. I just saw this thread, apologies.

Tom

EditPlus is a great editor for all the various languages. There are quite a few, but my fav is EditPlus.

https://www.editplus.com/

I love Atom as it makes managing the various files easier using tabs and sessions.

#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#define VOLUME 2000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_WS2811
#define ENABLE_SD
#define DELAYED_OFF
#define ENABLE_BLASTER_AUTO
#endif

#ifdef CONFIG_PROP
#include "../props/blaster.h"
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
  // Default basic blast color with red audio flicker on blast
{ "blstr1", "tracks/fates.wav",
 StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
 StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(),
 },

{"bank1","tracks/tracks/credits.wav",
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
},

{"bank2","tracks/tracks/swars.wav",
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
},

{"bank3","tracks/tracks/fates.wav",
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
},

{"bank4","tracks/tracks/march.wav",
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
},

{"bank5","tracks/tracks/credits.wav",
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
},

{"bank6","tracks/tracks/swars.wav",
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
StylePtr<BlastFadeout<Black,AudioFlicker<Black,Red>,375>>(), 
},

};
template<int milliohms = 1200>
struct CreeXPE2DRedTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 255;
static const int Green = 0;
static const int Blue = 0;
};
template<int milliohms = 1200>
struct CreeXPE2DRed2Template {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 2.5;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 2.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 255;
static const int Blue = 0;
};
template<int milliohms = 300>
struct CreeXPE2RBlueTemplate {
static constexpr float MaxAmps = 1.0;
static constexpr float MaxVolts = 3.4;
static constexpr float P2Amps = 0.35;
static constexpr float P2Volts = 3.1;
static constexpr float R = milliohms / 1000.0;
static const int Red = 0;
static const int Green = 0;
static const int Blue = 255;
};

BladeConfig blades[] = {
{ 0, SimpleBladePtr<CreeXPE2DRedTemplate<1200>, CreeXPE2DRed2Template<1200>,CreeXPE2BlueTemplate<300>,  NoLED>(),
WS2811BladePtr<14, WS2811_800kHz | WS2811_GRB, blade2Pin, PowerPINS<bladePowerPin6>>(),
CONFIGARRAY(presets) },
};

#endif

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

Sorry so late, I couldn’t find it. Found the file tonight.

This is missing stuff.
Should be something more like template<int milliohms = 420>

Also, your PowerPINS are missing in the BladeConfig array.
Should have a pin assigned like PowerPINS<bladePowerPin4> >(),

With these things corrected, and all of the quotation marks made proper, it compiles fine.