Proffieboard Blaster

Hey there!
I’m just getting started with proffieboard, trying to make a simple Westar-35 prop, trigger only, no mode switch.

I’ve downloaded the proffieOS files, and I found a blaster_config.h file that looked to be doing most of what I want.

For lighting, I have a 22LED neopixel ring, connected to LED2 and LED3.

I find the config stuff to be fairly opaque, is there a guide on config creation somewhere?
At any rate, the specific problem I’m having is that:

  1. The neo pixel ring isn’t lighting. With the simple config generated by fredrik.hubbe.net, the lights would turn on, but would stay on, as that config was designed for a saber.
  2. I think I have a soundfont for Bo-Katan, but I’m also not hearing anything when I pull the trigger.

Any help would be greatly appreciated.

Thanks!

See below for the code:

#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 1
#define VOLUME 2000
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
#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
  { "BoKatan", "tracks/boot1.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>>>() }
};

BladeConfig blades[] = {
 { 0, WS2811BladePtr<125, WS2811_ACTUALLY_800kHz | WS2811_GRB>(),
   WS2811BladePtr<14, WS2811_ACTUALLY_800kHz | WS2811_GRB, 7, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
   CONFIGARRAY(presets) },
};

#endif

#ifdef CONFIG_BUTTONS
Button FireButton(BUTTON_POWER, powerButtonPin, "fire");
#endif

This is the config that lights up my neopixels as if they were a saber:

#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 1
#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
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
   { "BoKatan", "tracks/boot1.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(), "cyan"}
};
BladeConfig blades[] = {
 { 0, WS281XBladePtr<22, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), CONFIGARRAY(presets) },
};
#endif

#ifdef CONFIG_BUTTONS
Button FireButton(BUTTON_POWER, powerButtonPin, "fire");
#endif

Make sure your soundfont is blaster font, not saber font. I used Plecter Labs blaster pack as they are compatible with Proffie.

Your bladestyle is fine but why do you need 2 blades where blade1 has 125 LEDs and blade2 has 14 LEDs? while you only have a 22 ring LED
Just use your second bladeconfig presets “WS281XBladePtr”, you didn’t define data pin on the first one.

You want to use the blaster prop file.

Add this above your CONFIG_PRESETS section

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

There is a LOT of information about configuration creation.
I suggest staring with reading about blades here:

The blades array you use for your saber config looks correct, but the one used for the blaster is not, so I suggest that you start by copying the blades array from the second config and put it into the first config.

That also means changing NUM_BLADES to 1, and deleting one of the styles in your preset.

1 Like

For the font, I used bank1 from BlasterCoreDefaultPackageV5 from plector labs. I get a different boot sound, and a hum that is unaffected by the trigger.

Here’s what my config currently looks like:

#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 1
#define VOLUME 2000
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
#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
  { "bank1", "tracks/boot1.wav",
    StylePtr<Lockup<BlastFadeout<BlastFadeout<Black,AudioFlicker<Black,Red>,250,EFFECT_FIRE>,AudioFlicker<Black,Blue>,1500,EFFECT_STUN>,AudioFlicker<Black,Red>>>() }
};

BladeConfig blades[] = {
 { 0, WS281XBladePtr<22, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), CONFIGARRAY(presets) },
};

#endif

#ifdef CONFIG_BUTTONS
Button FireButton(BUTTON_POWER, powerButtonPin, "fire");
#endif

If I’m reading the style definition right, on Blast, it’s supposed to flash red. How do I get the trigger button to send a blast event? If I’m beginning to understand, the button I have wired up will turn on the blade (black/off by default), and then if a Blast event were triggered, it would flash red and plan an appropriate sound?

As I just realized I never posted my wiring, here’s what I’m working with:
Wiring

This bit says that this button generates “BUTTON_POWER” events.

Try changing it to:

#ifdef CONFIG_BUTTONS
Button FireButton(BUTTON_FIRE, powerButtonPin, "fire");
#endif
1 Like

That did the trick! Thank you very much for your help!