Proffie 2-based A180 woes

Yes. When it didn’t change anything, I changed it back.

Honestly, it’s probably my crappy soldering or I broke a wire or something. I’m looking over it now.

What if you change the second style to: StylePtr<Rainbow>() ?

This should make the second blade be always on and show a rainbow effect.

I’m not sure, but I think I might’ve just blown the board. It was working fine, then suddenly it stopped. I’m not sure if it’s the board or if the wiring just gave up because it’s been moved around so much it’s pretty messed up right now. I will try and fix it over the weekend and see if anything that has been suggested works.

The board is not recognized by Arduino when I plug it in either. It’s just dead.

Okay, so. I blew the board, somehow. But I had another, and the trigger did need to be rewired. So I basically pulled everything out and started over. I was very careful and wired everything according to the diagram from the Proffieboard site.

Sound works as expected; the muzzle light works as expected, but the barrell lights don’t do anything. I changed the “Barrel” style to Rainbow, as profezzorn suggested, and it changed the muzzle light. Aha! said I. I clearly had my blade config reversed. So I corrected that, and… nothing. Same behavior as before. So I changed the style to Rainbow again, and it did nothing–the LED strips are dark no matter what.

I must have wired something wrong, but damned if I can tell what. The wires are soldered to the correct pads, I know. Am I doing something wrong in the way I’ve wired them? Each wire goes from the board to a Y junction, then each arm of the Y goes to the LED strip’s pads. Is that wrong?

Anyway, this is the (verified!) config file, in case I screwed something up in there.

#ifdef CONFIG_TOP
// #include "proffieboard_v2_config.h"
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#define VOLUME 100
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[] = {

// Custom Wipe to tip blast

{ "A180", "tracks/medley1.wav",
// 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,TrWipe<100>,Red,TrWipe<200>>,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<100>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<White,Bump<Int<0>,Int<25000>>>,TrFade<150>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<White,Bump<Int<0>,Int<25000>>>,TrFade<150>>>>,TrConcat<TrInstant,Rgb<255,100,100>,TrFade<150>>,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>>>(),
},

{ "DL44", "tracks/medley1.wav",
// muzzle
  StylePtr<Layers<
    Black,
    TransitionEffectL<TrConcat<TrDelay<100>,Red,TrFade<200>,Black,TrFade<300>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrDelay<100>,White,TrFade<200>,Blinking<Black,Red,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>,Red,TrWipe<100>,Black,TrWipe<200>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrWipe<100>,White,TrWipe<100>,Blinking<Black,Red,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<200>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<White,Bump<Int<0>,Int<25000>>>,TrFade<200>>>>,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>>>(),
},

{ "Westar", "tracks/medley1.wav",
// muzzle
  StylePtr<Layers<
    Black,
    TransitionEffectL<TrConcat<TrDelay<100>,DarkOrange,TrFade<200>,Black,TrFade<300>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrDelay<100>,Green,TrFade<200>,Blinking<Black,Yellow,100,500>,TrFade<300>>,EFFECT_STUN>,
    LockupTrL<Layers<
      TransitionLoopL<TrConcat<TrInstant,DeepSkyBlue,TrFade<50>,DarkOrange,TrFade<150>>>>,TrInstant,TrConcat<TrInstant,Rgb<50,0,0>,TrFade<400>>,SaberBase::LOCKUP_AUTOFIRE>>>(),

// barrel
  StylePtr<Layers<
    Black,
    TransitionEffectL<TrConcat<TrWipe<100>,DarkOrange,TrWipe<100>,Black,TrWipe<200>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrWipe<100>,Green,TrWipe<100>,Blinking<Black,Yellow,100,500>,TrWipe<200>>,EFFECT_STUN>,
    LockupTrL<Layers<
      TransitionLoopL<TrConcat<TrWipe<50>,DarkOrange,TrWipe<150>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<DeepSkyBlue,Bump<Int<0>,Int<25000>>>,TrFade<200>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<White,Bump<Int<0>,Int<25000>>>,TrFade<200>>>>,TrConcat<TrInstant,Rgb<255,100,100>,TrFade<200>>,TrJoin<TrConcat<TrInstant,AlphaL<Rgb<50,25,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>>>(),
},

{ "Imp", "tracks/medley1.wav",
// muzzle
  StylePtr<Layers<
    Black,
    TransitionEffectL<TrConcat<TrDelay<100>,Red,TrFade<200>,Black,TrFade<300>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrDelay<100>,Blue,TrFade<200>,Blinking<Black,Red,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>,Red,TrWipe<100>,Black,TrWipe<200>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrWipe<100>,Blue,TrWipe<100>,Blinking<Black,Red,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<200>>>,
      TransitionLoopL<TrConcat<TrInstant,AlphaL<White,Bump<Int<0>,Int<25000>>>,TrFade<200>>>>,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>>>(),
},};

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

#endif

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

#endif

Just occurred to me–I have the wires running basically directly from the battery to the LED strips. Should I have wired them to the 5v pad on the board?

No.
Stay away from powering things from the 5v and 3.3v pads on the board unless absolutely necessary.

What you “corrected” the muzzle/barrel mixup, what did you actually do?

Can you post pictures that show the wiring?

Here’s a photo of the board. photo

I really can’t get a photo of where the wires link up; it’s in the slide of the prop and you can’t see it from the outside anymore.

Well, obviously I can’t tell if the wiring is correct from these pictures.
I wonder though… when you switched the data1/data2 pins, did you also switch the FETs? (basically, are they right or not?)

I’m afraid I’m too stupid to answer that. If you mean the bladePin/blade2Pin, and/or the PowerPINS, then yes. If that means something else, then no. probably not.

So, according to your config file, blade2Pin, LED4 and LED5 goes to the muzzle and bladePin, LED2 and LED3 goes to the barrel. The question is if that is correct, or is it possible that blade2Pin, LED2 and LED3 goes to the muzzle and bladePin, LED4 and LED5 goes to the barrel?

The config file is correct.

Muzzle: blade2Pin, LED4, LED5
Barrell: bladePin, LED2, LED3

Well, then it’s time to start measuring.
I would switch both to rainbow so you don’t need to measure short bursts (which is much harder).

Start by making sure that the strips have power (measure DC voltage between + and -) on the strip.
Then measure that it gets data by switching your multimeter to AC and measure between - and data on the strip. (Should see maybe one volt or so…)

Okay. Setup: My LED strips are mounted on the TOP and BOTTOM of the barrell.

The TOP strip is getting 3.7v and the BOTTOM strip is getting 2.5.

When I switch to AC and measure between - and Data, the top varies between 2.0 and .9, while the bottom reads nothing at all. Now, neither the top nor bottom strip is lighting, even when set to Rainbow, but when I was probing the connection on the bottom strip, the first LED flickered with color.

That’s not really possible if they are wired together.

Again, if they are wired in parallel, you should get the same readings from them.

Either the wiring or the measurements off somehow…

Hmm. I verified the readings multiple times. Could a bad soldering job cause the discrepancy?

I have new LED strips arriving soon; I may see what happens if I replace these without installing them first.

Yes. cold solder joints sometimes produce very bad conductivity.

I am deeply chagrined, but also happy, to report that indeed, my piss-poor solder joints were the problem all along. I took both strips off, turned down the heat on my soldering station, and very carefully tinned the pads on new strips, then soldered the existing wires to the strips.

Both work perfectly.

This project has been a headache, but I have learned so much. I am grateful beyond measure to those of you whose work inspired and helped me do this. You deserve all the accolades you get from the community.

I have a long way to go before I can offer my services to anyone–maybe never–but I’m not stopping; I have a bunch of projects on the horizon, but right now I’m going to finish this one and take a break from blasters/sabers while I finish some real-world stuff.

Thank you for your patience and aid!

2 Likes

I’m jealous you have a working A-180. My favourite blaster.