Proffie blaster install help

As part of my planning, i am looking for some info on blaster configs. I have most of the parts for a blaster build. It will be going in a nerfworxlab NN-14.

Here is the diagram:


Does this all look good? Can I wire the pixel accent at the end of the pixel strip like shown?

Would it be a good idea to add a 3rd button for auto/single changing? As it is now, and how I understand is that the trigger fires and the aux “hammer” switch changes fonts. I found a video inspiring me, and it looked like he used long presses to change to auto, but would a 3rd button work better? I am designing the chassis now, so now would be the time to add one.

I have not started a config for it yet, so i will need help with that, especially making animations for the 64pixel, meter/matrix.

Thanks!

It really depends on how you want it to actually work.
Some people like 2 buttons as FIRE and MODE. Some add a dedicated 3rd switch to handle RELOAD, but of course you could do like “click FIRE while pointing down to Reload”, or “Hold MODE to Reload etc…” or you could have no bullet limits at all and never even need reload.

So I suggest a ground plan for in-hand operation, then work backwards.

As far as the wiring, it looks fine.
You can split up the pixel accent as it’s own SubBlade if you want to have discrete control.
Then you could use 2 styles for the “barrel” and the “muzzle” that sync for some motion like


// muzzle
  StylePtr<Layers<
    Black,
    TransitionEffectL<TrConcat<TrDelay<100>,White,TrFade<200>,Red,TrFade<300>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrDelay<100>,DeepSkyBlue,TrFade<200>,Blinking<Black,Blue,100,500>,TrFade<300>>,EFFECT_STUN>,
    LockupTrL<Layers<
      TransitionLoopL<TrConcat<TrInstant,White,TrFade<50>,Red,TrFade<150>>>>,TrInstant,TrConcat<TrInstant,Rgb<50,0,0>,TrFade<400>>,SaberBase::LOCKUP_AUTOFIRE>
  >>(),

// barrel
  StylePtr<Layers<
    Black,
    TransitionEffectL<TrConcat<TrWipe<100>,White,TrInstant,Red,TrWipe<150>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrWipe<100>,DeepSkyBlue,TrWipe<100>,Blinking<Black,Blue,100,500>,TrWipe<200>>,EFFECT_STUN>,
    LockupTrL<Layers<
      TransitionLoopL<TrConcat<TrWipe<50>,Red,TrWipe<150>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<White,Bump<Int<0>,Int<25000>>>,TrFade<100>,AlphaL<Black,Int<0>>,TrDelay<100>>>>,TrConcat<TrInstant,Rgb<255,100,100>,TrFade<200>>,TrJoin<TrConcat<TrInstant,AlphaL<Rgb<50,0,0>,Bump<Int<32768>,Int<60000>>>,TrFade<400>>,TrWipeX<Int<400>>,TrWaveX<Rgb<50,0,0>,Int<1800>,Int<40>,Int<400>,Int<5000>>>,SaberBase::LOCKUP_AUTOFIRE>
  >>()

ProffieOS has no special support for matrices, so making things that look good on a matrix is going to be interesting and uncharted. I (and probably other people on here) will be able to help, but it might take some work to make it do anything cool/interesting.

In theory I might be able to implement it into my the color display support, which would let you treat it like a screen instead… :slight_smile:

Sounds interesting and cool! Maybe I should bump this up my build list!

Thanks

More like this?

Is the proffie led pad placement right? Do I now need a 470ohm resistor for the single accent?

My response was saying how you can leave it wired the way you had it with the single at the end of the line of the strip and still be able to control them individually

Ah, thanks! I like that better!

I reverted my wiring diagram, but how do you program one “string” of pixels to act as 2 blades? I know they are sequential, so the muzzle would be pixel 10.

would that be in the blade config? Still trying to wrap my head around blade styles, I see no reference to pixel sequence.

Using subblades in your blade config section you break it up into separate blades that can then have their own style.

2 Likes

Yes in your BladeConfig, each blade is normally done one per data pad.
If you want to wire more than one blade to one data pad, and the pixels are in series, you can specify that by splitting that one blade into smaller sub blades of x amount of pixels each.

Does this look correct for blade config using the first diagram above?

BladeConfig blades[] = {
{ 0, 
SubBlade(9, 9, WS281XBladePtr<1, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()), /* muzzle */
SubBlade(0, 8, WS281XBladePtr<10, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()), /* barrel */
WS281XBladePtr<64, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), /* accents */
CONFIGARRAY(presets) },
};

Its is a pixel strip with 9 pixels, that connects right into the muzzle accent pixel.

No, your second SubBlade should have a nullptr instead of this:

And your first WS281XBlade should have a length of 10, not 1.

Oh, I missed null.
How is this?

BladeConfig blades[] = {
{ 0, 
SubBlade(9, 9, WS281XBladePtr<10, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()), /* muzzle */
SubBlade(0, 8, NULL), /* barrel */
WS281XBladePtr<64, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), /* accents */
CONFIGARRAY(presets) },
};

Looks reasonable to me.

2 Likes