Eco NPXL v4 Hilt PCB not lighting up

Hello. I’m wrapping up another saber install, and I have an issue with the Eco NPXL v4 not lighting up (neither does a confirmed good blade when inserted). For reference, here’s the connector I’m using.

ECO NPXL V4 Hilt Side PCB Connectors by ShtokCustomWorx – The Saber Armory

Another connector needed in this install was a thin neck PCB set. It’s probably not relevant to the issue, but it’s a connector I haven’t used before.

Thin Neck Micro PCB Connector Set – The Saber Armory

On to the issue. Sound works fine, but no lights. I followed first troubleshooting steps at these pages to attempt a diagnosis.

ProffieOS Documentation: How to test a FET

and

ProffieOS Documentation: How to test if data pins are working.

Here are my troubleshooting steps thus far:

  1. Tested Batt- to Batt+ to confirm nominal voltage to Proffie board (~4V)

  2. Tested Batt+ to FETs to confirm no voltage drop

  3. Tested continuity on all neopixel connections (-/+/data)

  4. Measured AC voltage between NPXL PCB negative and data (~400 mV)

  5. Swapped data line from data1 to data2

  6. Wired data line from Proffie board directly to center pogo pin on NPXL PCB

None of these steps remedied what I’m seeing from this install. Does anyone have any suggestions what might be happening here and how to fix it? I’ve included my config below. It’s a slight modification on the one that came on the SD card to enable certain FETT263 prop file options, and adjust hardware configuration.

#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 2
#define VOLUME 1200
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.8
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#define ENABLE_SERIAL
#endif

//Customized Options
//Edit Mode
#define FETT263_EDIT_MODE_MENU
#define ENABLE_ALL_EDIT_OPTIONS
#define FETT263_DUAL_MODE_SOUND
//Gesture Control
#define FETT263_TWIST_ON
#define FETT263_TWIST_OFF
#define FETT263_THRUST_ON
#define FETT263_SWING_ON
//Battery
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_MULTI_PHASE
//Motion Timeout
#define MOTION_TIMEOUT 60 * 3 * 1000  

//Include FETT263 Prop File
#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif

#ifdef CONFIG_PRESETS


// Fire speed, valid values are 1 - 10
#define FIRE1_SPEED 2
// How long to wait before firing up crossguards.
#define FIRE1_DELAY 800

// Each of these have three values: A, B, C
// A = non-random intensity
// B = random intensity
// C = cooling
// The first two control temperature, and as we add
// A + rnd(B) to the base of the blade each animation frame.
// The second controls how rapidly the fire cools down

// This is used during normal operation.
#define FIRE1_NORMAL 0, 1000, 2

// This is used when a clash occurs
#define FIRE1_CLASH  3000, 0, 0

// This is used during lockup.
#define FIRE1_LOCKUP 0, 5000, 10

// Helper
#define FIRE1PTR(NUM, DELAY) \
  StyleFirePtr<RED, YELLOW, NUM, DELAY, FIRE1_SPEED, \
    FIRE1_NORMAL, FIRE1_CLASH, FIRE1_LOCKUP>()



Preset presets[] = {


  { "Windu;MC", "tracks/Windu.wav",
     StylePtr<Layers<Stripes<16000,-1000,RotateColorsX<Variation,Magenta>,Pulsing<RotateColorsX<Variation,Rgb<128,0,128>>,RotateColorsX<Variation,Magenta>,800>,RotateColorsX<Variation,Magenta>>,TransitionEffectL<TrConcat<TrFade<600>,RandomFlicker<RotateColorsX<Variation,Magenta>,RotateColorsX<Variation,Rgb<128,0,128>>>,TrDelay<30000>,RotateColorsX<Variation,Magenta>,TrFade<800>>,EFFECT_FORCE>,AlphaL<StrobeL<Black,Int<20>,Int<1>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,White,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveStabL<Red,TrWipeIn<600>,TrWipe<600>>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,SimpleClashL<White>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<300>,TrWipeIn<500>,Black>>>(), "0"},  
  { "Graflex3;MC", "tracks/Graflex3.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},   
  { "Luke;MC", "tracks/Luke.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Green,Rgb16<0,38402,0>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Graflex4;MC", "tracks/Graflex4.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Green,Rgb16<0,38402,0>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "GL9;MC", "tracks/GL9.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Cyan,DeepSkyBlue>,Pulsing<Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Graflex8;MC", "tracks/Graflex.wav",
     StylePtr<Layers<Stripes<16000,-1000,RotateColorsX<Variation,Blue>,Pulsing<RotateColorsX<Variation,Rgb<0,0,90>>,RotateColorsX<Variation,Blue>,800>,RotateColorsX<Variation,Blue>>,TransitionEffectL<TrConcat<TrFade<600>,RandomFlicker<RotateColorsX<Variation,Blue>,RotateColorsX<Variation,Rgb<0,0,160>>>,TrDelay<30000>,RotateColorsX<Variation,Blue>,TrFade<800>>,EFFECT_FORCE>,AlphaL<StrobeL<Black,Int<20>,Int<1>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,White,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveStabL<Red,TrWipeIn<600>,TrWipe<600>>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,SimpleClashL<White>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<300>,TrWipeIn<500>,Black>>>(), "0"},  
  { "Ezra;MC", "tracks/Ezra.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<Layers<Green,AlphaL<Green,Int<16000>>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,500,500>>(),"0"},
  { "BLAN;MC", "tracks/BLAN.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Ben;MC", "tracks/Ben.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Cyan,DeepSkyBlue>,Pulsing<Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},   
  { "ObiWan 2;MC", "tracks/ObiWan 2.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "ObiWan 3;MC", "tracks/ObiWan 3.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "ObiWan4;MC", "tracks/ObiWan4.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "RVJ;MC", "tracks/RVJ.wav",
     StylePtr<Layers<Stripes<16000,-1000,RotateColorsX<Variation,Magenta>,Pulsing<RotateColorsX<Variation,Rgb<128,0,128>>,RotateColorsX<Variation,Magenta>,800>,RotateColorsX<Variation,Magenta>>,TransitionEffectL<TrConcat<TrFade<600>,RandomFlicker<RotateColorsX<Variation,Magenta>,RotateColorsX<Variation,Rgb<128,0,128>>>,TrDelay<30000>,RotateColorsX<Variation,Magenta>,TrFade<800>>,EFFECT_FORCE>,AlphaL<StrobeL<Black,Int<20>,Int<1>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,White,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveStabL<Red,TrWipeIn<600>,TrWipe<600>>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,SimpleClashL<White>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<300>,TrWipeIn<500>,Black>>>(), "0"},  
  { "KyloRenTLJ;MC", "tracks/KyloRenTLJ.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "KyloRenTROS;MC", "tracks/KyloRenTROS.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Dooku;MC", "tracks/Dooku.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "DVS;MC", "tracks/DVS.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Darth Vader 3;MC", "tracks/Darth Vader 3.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Darth Vader 6;MC", "tracks/Darth Vader 6.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "QuiGone;MC", "tracks/QuiGone.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Green,Rgb16<0,38402,0>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "CalKestis;MC", "tracks/CalKestis.wav",
     StylePtr<Layers<Stripes<16000,-1000,RotateColorsX<Variation,Blue>,Pulsing<RotateColorsX<Variation,Rgb<0,0,90>>,RotateColorsX<Variation,Blue>,800>,RotateColorsX<Variation,Blue>>,TransitionEffectL<TrConcat<TrFade<600>,RandomFlicker<RotateColorsX<Variation,Blue>,RotateColorsX<Variation,Rgb<0,0,160>>>,TrDelay<30000>,RotateColorsX<Variation,Blue>,TrFade<800>>,EFFECT_FORCE>,AlphaL<StrobeL<Black,Int<20>,Int<1>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,White,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveStabL<Red,TrWipeIn<600>,TrWipe<600>>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,SimpleClashL<White>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<300>,TrWipeIn<500>,Black>>>(), "0"},  
  { "Carl;MC", "tracks/Carl.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Darth Maul;MC", "tracks/Darth Maul.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "Darksaber;MC", "tracks/Darksaber BOBF.wav",
    StylePtr<Layers<  StyleFire<Stripes<2500,-5000,BrownNoiseFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black,20>,RotateColorsX<Variation,Rgb<4,4,6>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<115,115,170>>,70>,RotateColorsX<Variation,Rgb<50,50,75>>>,RotateColorsX<Variation,Rgb<31,31,47>>,0,5,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>>,  TransitionEffectL<TrConcat<TrFade<400>,RotateColorsX<Variation,Rgb<175,175,225>>,TrDelay<1000>,RotateColorsX<Variation,Rgb<175,175,225>>,TrFade<800>>,EFFECT_FORCE>,  AlphaL<Stripes<1000,-2000,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black>,White,RotateColorsX<Variation,Rgb<100,100,150>>,White>,SwingSpeed<600>>,  LockupTrL<Layers<    AlphaL<AudioFlickerL<Red>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,    AlphaL<Red,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,AlphaL<Mix<SmoothStep<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<1000>>,Stripes<1500,2000,White,Rgb<100,100,150>>,Stripes<1500,-2500,White,Rgb<100,100,150>>>,Int<18000>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,  ResponsiveLightningBlockL<Strobe<Red,AudioFlicker<Red,Black>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<Red,Int<16000>>,30>,TrSmoothFade<600>>>,  AlphaL<White,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,  MultiTransitionEffectL<TrConcat<TrDelay<300>,RandomPerLEDFlickerL<Red>,TrDelay<1000>,RandomPerLEDFlickerL<Red>,TrFade<500>>,EFFECT_STAB>,  AlphaL<Mix<IsLessThan<BladeAngle<>,Int<26000>>,MultiTransitionEffectL<TrConcat<TrWipeIn<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipeIn<200>>,EFFECT_STAB>,MultiTransitionEffectL<TrConcat<TrWipe<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipe<200>>,EFFECT_STAB>>,Int<32768>>,  ResponsiveBlastWaveL<Red,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,  ResponsiveBlastWaveL<Red,Int<300>,Int<100>,Int<300>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>,EFFECT_CLASH>,  AlphaL<Black,SmoothStep<Scale<SlowNoise<Int<2400>>,Int<22000>,Int<40000>>,Int<22000>>>,  LockupTrL<AlphaL<BrownNoiseFlickerL<Red,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,  LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,  InOutTrL<TrWipe<300>,TrWipeIn<500>>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<BrownNoiseFlickerL<RotateColorsX<Variation,Rgb<100,100,150>>,Int<30>>,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,TrDelay<2000>>,EFFECT_RETRACTION>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<Mix<Trigger<EFFECT_PREON,Int<3000>,Int<2000>,Int<1000>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<100,100,150>>,100>,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Rgb<50,50,50>>,BrownNoiseFlicker<Mix<NoisySoundLevel,RotateColorsX<Variation,Rgb<100,100,150>>,RotateColorsX<Int<4000>,RotateColorsX<Variation,Rgb<100,100,150>>>>,White,50>>,SmoothStep<Scale<NoisySoundLevel,Int<-10000>,Int<36000>>,Int<-4000>>>,TrDelay<6000>>,EFFECT_PREON>>>(),"0"}, 
  { "Depa Bilaba;MC", "tracks/Depa Bilaba.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "ScavengersDestiny;MC", "tracks/ScavengersDestiny.wav",
    StylePtr<IgnitionDelay<167,InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,Pulsing<Gradient<AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,HumpFlicker<DeepSkyBlue,Cyan,50>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>>,Gradient<AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,HumpFlicker<DeepSkyBlue,Cyan,50>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>,AudioFlicker<Rgb16<65535,38402,0>,Rgb16<47361,30457,0>>>,3500>,HumpFlicker<Cyan,LightCyan,50>>>,White>,Pink,400>,200,500>>>(),"0"},   
  { "Yoda;MC", "tracks/Yoda.wav",
     StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<Layers<Green,AlphaL<Green,Int<16000>>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,500,500>>(),"0"},
  { "CodeFulcrumAhsoka;MC", "tracks/CodeFulcrumAhsoka.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<White,Rgb16<38402,38402,38402>>,Gradient<AudioFlicker<White,Rgb16<38402,38402,38402>>,AudioFlicker<White,Rgb16<38402,38402,38402>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<White,Rgb16<38402,38402,38402>>,AudioFlicker<White,Rgb16<38402,38402,38402>>>,Gradient<AudioFlicker<White,Rgb16<38402,38402,38402>>,AudioFlicker<White,Rgb16<38402,38402,38402>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"},  
  { "SentinelShan;MC", "tracks/SentinelShan.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(), "0"}, 
  { "TheSecondSister;MC", "tracks/TheSecondSister.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,Pulsing<Gradient<AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,HumpFlicker<Green,Yellow,50>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>>,Gradient<AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,HumpFlicker<Green,Yellow,50>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>>,3500>,Gradient<AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,AudioFlicker<Rgb16<65535,0,50000>,Rgb16<65535,0,45000>>,HumpFlicker<Green,Cyan,50>>>>,White>,Pink,400>,200,500>>(), "0"},  
  { "Ahsoka;MC", "tracks/Ahsoka.wav",
    StylePtr<Layers<  StyleFire<Stripes<2500,-5000,BrownNoiseFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black,20>,RotateColorsX<Variation,Rgb<4,4,6>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<115,115,170>>,70>,RotateColorsX<Variation,Rgb<50,50,75>>>,RotateColorsX<Variation,Rgb<31,31,47>>,0,5,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>>,  TransitionEffectL<TrConcat<TrFade<400>,RotateColorsX<Variation,Rgb<175,175,225>>,TrDelay<1000>,RotateColorsX<Variation,Rgb<175,175,225>>,TrFade<800>>,EFFECT_FORCE>,  AlphaL<Stripes<1000,-2000,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black>,White,RotateColorsX<Variation,Rgb<100,100,150>>,White>,SwingSpeed<600>>,  LockupTrL<Layers<    AlphaL<AudioFlickerL<Red>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,    AlphaL<Red,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,AlphaL<Mix<SmoothStep<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<1000>>,Stripes<1500,2000,White,Rgb<100,100,150>>,Stripes<1500,-2500,White,Rgb<100,100,150>>>,Int<18000>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,  ResponsiveLightningBlockL<Strobe<Red,AudioFlicker<Red,Black>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<Red,Int<16000>>,30>,TrSmoothFade<600>>>,  AlphaL<White,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,  MultiTransitionEffectL<TrConcat<TrDelay<300>,RandomPerLEDFlickerL<Red>,TrDelay<1000>,RandomPerLEDFlickerL<Red>,TrFade<500>>,EFFECT_STAB>,  AlphaL<Mix<IsLessThan<BladeAngle<>,Int<26000>>,MultiTransitionEffectL<TrConcat<TrWipeIn<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipeIn<200>>,EFFECT_STAB>,MultiTransitionEffectL<TrConcat<TrWipe<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipe<200>>,EFFECT_STAB>>,Int<32768>>,  ResponsiveBlastWaveL<Red,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,  ResponsiveBlastWaveL<Red,Int<300>,Int<100>,Int<300>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>,EFFECT_CLASH>,  AlphaL<Black,SmoothStep<Scale<SlowNoise<Int<2400>>,Int<22000>,Int<40000>>,Int<22000>>>,  LockupTrL<AlphaL<BrownNoiseFlickerL<Red,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,  LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,  InOutTrL<TrWipe<300>,TrWipeIn<500>>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<BrownNoiseFlickerL<RotateColorsX<Variation,Rgb<100,100,150>>,Int<30>>,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,TrDelay<2000>>,EFFECT_RETRACTION>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<Mix<Trigger<EFFECT_PREON,Int<3000>,Int<2000>,Int<1000>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<100,100,150>>,100>,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Rgb<50,50,50>>,BrownNoiseFlicker<Mix<NoisySoundLevel,RotateColorsX<Variation,Rgb<100,100,150>>,RotateColorsX<Int<4000>,RotateColorsX<Variation,Rgb<100,100,150>>>>,White,50>>,SmoothStep<Scale<NoisySoundLevel,Int<-10000>,Int<36000>>,Int<-4000>>>,TrDelay<6000>>,EFFECT_PREON>>>(),"0"}, 
  { "Heavy;MC", "tracks/Heavy.wav",
    StylePtr<Layers<StyleFire<StripesX<Int<3000>,Scale<SlowNoise<Int<2000>>,Int<-1000>,Int<-5000>>,BrownNoiseFlicker<RotateColorsX<Variation,Rgb<95,0,210>>,Black,100>,
RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<21,0,52>>,RotateColorsX<Variation,Rgb<4,0,8>>>,RotateColorsX<Variation,Rgb<115,15,220>>,RotateColorsX<Variation,Rgb<42,0,105>>>,RotateColorsX<Variation,
Rgb<30,0,66>>,0,5,FireConfig<3,3000,0>,FireConfig<3,3000,0>,FireConfig<3,3000,0>,FireConfig<3,3000,0>>,AlphaL<Stripes<2500,-3000,Red,Rgb<60,0,0>,Pulsing<Rgb<30,0,0>,Black,800>>,
SwingSpeed<600>>,LockupTrL<Layers<AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,
AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,White,
TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,
TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveStabL<Red,TrWipeIn<600>,TrWipe<600>>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,
Int<100>,Int<400>>,Int<400>>,ResponsiveClashL<White,TrInstant,TrFade<400>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>,Int<20000>>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,
SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,
TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipeSparkTip<White,2056>,TrConcat<TrWipe<200>,Mix<SmoothStep<Int<27500>,Int<-2000>>,Black,RotateColorsX<Variation,Rgb<95,0,210>>>,
TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<200>,Int<300>,Int<200>,Int<0>>,Mix<SmoothStep<Int<22000>,Int<-2000>>,Black,RotateColorsX<Variation,Rgb<95,0,210>>>,
TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<250>,Int<300>,Int<250>,Int<0>>,Mix<SmoothStep<Int<16500>,Int<-2000>>,Black,RotateColorsX<Variation,Rgb<95,0,210>>>,
TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<300>,Int<300>,Int<300>,Int<0>>,Mix<SmoothStep<Int<11000>,Int<-2000>>,Black,RotateColorsX<Variation,Rgb<95,0,210>>>,
TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<350>,Int<300>,Int<350>,Int<0>>,Mix<SmoothStep<Int<5500>,Int<-2000>>,Black,RotateColorsX<Variation,Rgb<95,0,210>>>,
TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<400>,Int<300>,Int<400>,Int<0>>,Black,TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<400>,Int<300>,Int<400>,Int<0>>,Black,TrInstant>,Black>,
TransitionEffectL<TrConcat<TrInstant,AlphaL<BrownNoiseFlickerL<RotateColorsX<Variation,Rgb<95,0,210>>,Int<30>>,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,TrDelay<2000>>,
EFFECT_RETRACTION>,TransitionEffectL<TrConcat<TrDelay<1500>,AlphaL<HumpFlickerL<RotateColorsX<Variation,Rgb<95,0,210>>,30>,Bump<Int<0>,Int<3000>>>,TrFade<2000>,
AlphaL<HumpFlickerL<RotateColorsX<Variation,Rgb<95,0,210>>,30>,Bump<Int<0>,Int<4000>>>,TrFade<2500>,AlphaL<HumpFlickerL<RotateColorsX<Variation,Rgb<95,0,210>>,30>,Bump<Int<0>,Int<5000>>>,TrBoing<1950,7>>,
EFFECT_PREON>,TransitionEffectL<TrConcat<TrInstant,TransitionLoopL<TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<500>,Int<200>,Int<500>,Int<32768>>>,TrDelay<1500>,
TransitionLoopL<TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<300>,Int<300>,Int<300>,Int<32768>>>,TrDelay<2000>,TransitionLoopL<TrWaveX<RotateColorsX<Variation,Rgb<95,0,210>>,Int<100>,Int<400>,Int<100>,
Int<32768>>>,TrDelay<3000>,AlphaL<RotateColorsX<Variation,Rgb<95,0,210>>,Bump<Int<0>,Int<6000>>>,TrBoing<1450,5>>,EFFECT_PREON>>>(),"0"}, 
  { "Fire;MC", "tracks/Fire.wav",
    StyleFirePtr<Red, Yellow>(), "0"},  
  { "RgueCmdr;MC", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(), "rainbow"},
  { "Power;MC", "tracks/Power.wav",
    &style_charging, "strobe"},
};

BladeConfig blades[] = {
  { 0, WS281XBladePtr<128, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    CONFIGARRAY(presets) },
};
#endif

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

What was the measurement for this?
And was the blade ignited when you did this?

And is this ~0, or significantly lower when the blade is not on?

And did you also update the config file to match?
(And did you switch it back afterwards?)

This might not work so well as the pixels on the PCB are also connected and they will fight each other.

Did you measure ~4 volts between + and - on the NPXL pcb when the blade is ignited and the blade is connected?

What kind of battery do you have?

Thank you for the reply. In answer to your questions:

The voltage was the same ~4V as the board power. The measurement was taken when the blade was ignited.

The voltage does read ~0V when the blade is not on.

I did update the config. It’s using blade2Pin/Data2. I haven’t switched it back in either config or wiring.

I measured ~4V between + and - on the NPXL pcb when the blade is ignited. I can’t think of a good way to do that with a blade connected without risking short via misalignment holding everything together manually.

I’m using an 18500 battery. Keeppower 18500 3.7v 1500mah 15A Discharge PCB Protected Lithium Ion B – The Saber Armory

Update on this one: I replaced the hilt PCB, but the issue remains. Still getting nominal battery voltage across the pos and neg pogo pins.

You could try using a different data pin on the proffieboard. (And update the config to match of course.)

I tried this before, moving from Data1 to Data2. I double-checked the config last night, and re-uploaded for good measure. Do you think Data1 and Data2 are both failing in the same way?

While not impossible, it’s not very likely.

I’m a bit stumped on this one.
Maybe post some pictures and see we can spot anything wrong?




Here are some photos I took of the install, along with a graphic for how it’s supposed to work. The thin neck pcb set provides continuity for the neopixel lines, while preserving a semi-removable chassis.

I would check the wiring from the emitter to the female side of the thin neck connector for any possibly loose wires.

Also for future builds I would switch the male and female side to keep the pins protected.

Also, I had a build with the same issue and the problem turned out to be the NPXL connector had a missing resistor.

That was my thought too. I checked continuity from the female thin neck pcb to the hilt side pcb. All three measurements showed continuity (the data line had the resistance of the onboard NPXL resistor). I even re-soldered both ends when I swapped out the NPXL hilt-side pcb.

1 Like

Sadly it might be time to try a new NPXL connector.

That’s what I did before. Everything seemed fine with the one I had (I believe it was an eco version). I upgraded to v4, but the issue remains.

How did you wire from the thin neck to the board?


IMG_2927

Pos to pos, neg to neg, and D to Din. On the v4 connector, I wired D to D2.

1 Like

That all looks good.

What about the other side?

I wired Batt+ to pos on the pcb, LED2/LED3 to neg on the pcb, and Data2 to D on the pcb. I wired to Data1 at first and saw this issue, so I tried Data2 instead. Same result.

When you say Batt+ do you mean the battery tab or the through hole on the board?

It’s been a minute since I wired everything up, and it’s glued together now, but I only get continuity between the tab and the pcb pin when the kill switch is in the closed position. I’m thinking I wired pcb pos to the kill switch leg not connected to the tab. The same leg has the wire that goes back to the Proffie board.