Proffie EE3 Blaster

Wanted to save this for posterity, in case anything happens where this is posted elsewhere. This prop file for my EE3 Blaster was created for Beta Testing the Proffie Blaster functionality, and indeed wound up installed into a commission.

Here it is:
#ifdef CONFIG_TOP

#include “proffieboard_v1_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<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

{“bank1”,“tracks/credits.wav”,

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

{“bank2”,“tracks/swars.wav”,

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

{“bank3”,“tracks/fates.wav”,

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

{“bank4”,“tracks/march.wav”,

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

{“bank5”,“tracks/credits.wav”,

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

{“bank6”,“tracks/swars.wav”,

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>(),

},

};

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<14, WS2811_800kHz | WS2811_GRB, blade2Pin, PowerPINS>(),

CONFIGARRAY(presets) },

};

#endif

#ifdef CONFIG_BUTTONS

Button FireButton(BUTTON_FIRE, powerButtonPin, “fire”);

Button ModeButton(BUTTON_MODE_SELECT, auxPin, “modeselect”);

#endif

Here it is in action:

Proffie Blaster Demo

1 Like

Gold! Thanks for sharing. I have an F11-D in the to-do pile, and between you and Mountain Sabers, I might be picking some brains at some point.

1 Like

Yup. I still want to know why i can’t use V2 at the top and the blaster prop file. all I get is power on and off. I’ve tried different things without success. I’m using all neo pixel.

Post your config file (in a new topic) and we’ll take a look.
That is what this forum is for after all. :slight_smile:

2 Likes

Gonna entice Syn to join so he can share his blaster stuff. That reload loop is definitely an interesting scenario.

MountainSabers, I’ll post my V2 config that was installed, its at home. This does work in Proffie 2.2. My primary LED was a tri cree (Red, Red, Blue), and the neopixels were for propogating the shot in the barrel.

1 Like

That would be awesome MegtoothSith. I’m using all neo pixels. I’m still scratching my head on this one. It’s all working with regular blade styles but I feel I’m missing out on some true functions.

#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
#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<14, 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

Can confirm that V2 does work. Was working with NoSloppy on trying to figure out some of the blade styles to work with the particular lighting. Need to figure out how to get the mag to stay off on empty until reload is triggered instead of on a timer. Just using some 3mm LED’s to get single color flashes.
Config I’m working with.

#ifdef CONFIG_TOP
#include “proffieboard_v2_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 ENABLE_BLASTER_AUTO
#define BLASTER_SHOTS_UNTIL_EMPTY 30

#endif

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

#ifdef CONFIG_PRESETS
Preset presets[] = {
//1st style-barrel,2nd style-magazine

// Default basic blast color with blue audio flicker on blast
{“bank5”,“tracks/track1.wav”,
StylePtr
<Lockup
<SimpleClash
<BlastFadeout
<BlastFadeout<Black,AudioFlicker<Black,Blue>,250,EFFECT_FIRE>,
AudioFlicker<Black,Blue>,1500,EFFECT_RELOAD>,
AudioFlicker<Black,Blue>,2000,EFFECT_STUN>,
AudioFlicker<Black,Blue>>>(),

StylePtr
<SimpleClash
<BlastFadeout
<BlastFadeout<Blue,AudioFlicker<Black,Blue>,250,EFFECT_FIRE>,
AudioFlicker<Black,Blue>,1500,EFFECT_RELOAD>,
Black,6000, EFFECT_EMPTY>>()
,

},

{“bank1”,“tracks/track1.wav”,
StylePtr
<Lockup
<SimpleClash
<BlastFadeout
<BlastFadeout<Black,AudioFlicker<Black,Blue>,250,EFFECT_FIRE>,
AudioFlicker<Black,Blue>,1500,EFFECT_RELOAD>,
AudioFlicker<Black,Blue>,2000,EFFECT_STUN>,
AudioFlicker<Black,Blue>>>(),

StylePtr
<SimpleClash
<BlastFadeout
<BlastFadeout<Blue,AudioFlicker<Black,Blue>,250,EFFECT_FIRE>,
AudioFlicker<Black,Blue>,1500,EFFECT_RELOAD>,
Black,6000, EFFECT_EMPTY>>(),

},

{“Maliwan”,“tracks/track2.wav”,
StylePtr
<Lockup
<SimpleClash
<BlastFadeout
<BlastFadeout<Black,AudioFlicker<Black,Blue>,250,EFFECT_FIRE>,
AudioFlicker<Black,Blue>,1500,EFFECT_RELOAD>,
AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,
AudioFlicker<Black,Blue>>>(),

StylePtr
<SimpleClash
<BlastFadeout
<BlastFadeout<Blue,AudioFlicker<Black,Blue>,250,EFFECT_FIRE>,
AudioFlicker<Black,Blue>,1500,EFFECT_RELOAD>,
Black,6000, EFFECT_EMPTY>>(),

},

};

template
struct BlueTemplate {
static constexpr float MaxAmps = 0.1;
static constexpr float MaxVolts = 3.3;
static constexpr float P2Amps = 0.08;
static constexpr float P2Volts = 3.0;
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<BlueTemplate<5000>, NoLED, NoLED, NoLED, bladePowerPin2, -1>(),
SimpleBladePtr<BlueTemplate<5000>, NoLED, NoLED, NoLED, bladePowerPin3, -1>()
, CONFIGARRAY(presets)
},
};

#endif

#ifdef CONFIG_BUTTONS
Button FireButton(BUTTON_FIRE, powerButtonPin, “fire”);
Button ModeButton(BUTTON_MODE_SELECT, auxPin, “modeselect”);
#endif

You might want to start by changing your buttons into fire buttons and mode switch buttons instead of power/aux buttons.

If you want to know why, post the error codes you’re getting.
However, we should start new threads (topics) for new problems instead of appending to other, but slightly similar problems.

I’m trying use this config but I’m getting no sounds when I trigger blast. I have the BlasterCore v5 sound font directories copied to my SD Card. I didn’t make any changes. I know the speaker and board are working because I can trigger beep. Is there something in particular I need to do with the fonts or are those just the wrong fonts?