Off behavior in crystal chamber

Hi everyone, I’m having trouble getting my sabers crystal chamber to work with the blade off. Whoever wired this put the blade and crystal chamber all to LED2, which is enclosed in a removable chassis. Everything compiles fine in Arduino.
When I power off the blade the off behavior starts for a few seconds then switches off instead of looping.
My 1st try with OS7.
Here is my config and font, thanks for any help,

#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#define VOLUME 2500
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 3.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ENABLE_ALL_EDIT_OPTIONS
#define ENABLE_SERIAL
#define FETT263_EDIT_SETTINGS_MENU
#define MOTION_TIMEOUT 60 * 15 * 1000 // keeps motion chip active for 15 minutes while blade is Off
#define IDLE_OFF_TIME 60 * 15 * 1000
#define COLOR_CHANGE_DIRECT
#define DISABLE_DIAGNOSTIC_COMMANDS
#define DISABLE_BASIC_PARSER_STYLES
#define NO_REPEAT_RANDOM
#define FETT263_THRUST_ON // enables Thrust On Ignition
#define FETT263_THRUST_ON_NO_BM
#define FETT263_SWING_ON // enables Swing On Ignition
#define FETT263_SWING_ON_NO_BM
#define FETT263_SWING_ON_SPEED 350
#define FETT263_TWIST_ON // enables Twist On Ignition
#define FETT263_TWIST_ON_NO_BM
#define FETT263_TWIST_OFF // enables Twist Off Retraction
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_SAY_COLOR_LIST
#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_SAY_BATTERY_VOLTS
#define FETT263_QUOTE_PLAYER_START_ON
#define FETT263_SPECIAL_ABILITIES
#define FETT263_DISABLE_CHANGE_STYLE
#define FETT263_DISABLE_CHANGE_FONT
#define FETT263_DISABLE_COPY_PRESET
#define FETT263_FORCE_PUSH_ALWAYS_ON
#define FETT263_SAVE_GESTURE_OFF
#define FETT263_MOTION_WAKE_POWER_BUTTON
#define SAVE_STATE

#endif

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

#ifdef CONFIG_PRESETS
Preset presets[] = {

{"Starkiller;common", "Starkiller/tracks/SKepic.wav",
/* copyright Fett263 CustomBlade (Primary Blade) OS7 Style
https://fett263.com/fett263-proffieOS7-style-library.html#CustomBlade
OS7.12 v1.017-p
Single Style
Multi Phase (Original - Color Change)
Default: Unstable Rage [BaseColorArg]
1: Hyper Responsive Rotoscope (Erratic) [AltColorArg]

Multi Phase Control: use Color Change with COLOR_CHANGE_DIRECT define (to enable click-to-change).

NOTE:This style includes Control Layer. Only one Control Layer should be used per preset.

--Effects Included--
Ignition Effect: SparkTip Ignition [Color: IgnitionColorArg]
Retraction Effect: Standard Retraction [Color: RetractionColorArg]
PostOff Effect: Exit Hyperspace [Color: AltColorArg]
Lockup Effect: Intensity Lockup V1, Begin Effect: Real Clash, End Effect: Ripple [Color: LockupColorArg]
LightningBlock Effect: Responsive Lightning Block [Color: LBColorArg]
Drag Effect: Intensity Sparking Drag [Color: DragColorArg]
Melt Effect: Intensity Melt [Color: StabColorArg]
Stab Effect: Normal Stab [Color: StabColorArg]
Blast Effect (Randomly Selected): Blast Fade (Random), Blast Fade (Sound Based), Responsive Blast Fade (Random) [Color: BlastColorArg]
Clash Effect: Real Clash V3 [Color: ClashColorArg]
Emitter Effect: Emitter Flare [Color: AltColorArg]
Battery Level: % Blade (Green to Red)
Special Ability 5: Play Sound - Ignite Uses quote.wav #16

*/
StylePtr<Layers<ColorChange<TrInstant,Stripes<3000,-3500,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RandomPerLEDFlicker<Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,Black>,BrownNoiseFlicker<RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<3855>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,200>,RandomPerLEDFlicker<Mix<Int<10280>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,Mix<Int<3855>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,Mix<Scale<IsLessThan<SlowNoise<Int<2000>>,Int<18000>>,Int<0>,Int<32768>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,Stripes<12000,-800,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<16448>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>>>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>>>,AlphaL<RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,SmoothStep<IntArg<EMITTER_SIZE_ARG,2000>,Int<-6000>>>,TransitionEffectL<TrConcat<TrJoin<TrDelayX<WavLen<>>,TrWipeIn<200>>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<2000>>>,TrWipe<200>>,EFFECT_STAB>,TransitionEffectL<TrRandom<TrConcat<TrInstant,AlphaMixL<Bump<EffectPosition<EFFECT_BLAST>,Scale<EffectPosition<EFFECT_BLAST>,Int<9000>,Int<12000>>>,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>>>,TrFade<300>>,TrConcat<TrInstant,AlphaMixL<Bump<EffectPosition<EFFECT_BLAST>,Scale<WavLen<>,Int<9000>,Int<12000>>>,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>>>,TrFade<300>>,TrConcat<TrInstant,AlphaMixL<Bump<Scale<BladeAngle<>,Int<28000>,Int<8000>>,Scale<EffectPosition<EFFECT_BLAST>,Int<9000>,Int<13000>>>,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>>>,TrFade<300>>>,EFFECT_BLAST>,AlphaL<TransitionEffectL<TrSelect<Scale<ClashImpactF<>,Int<0>,Int<4>>,TrConcat<TrInstant,AlphaL<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<8000>,Int<12000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<600>>>>,TrWaveX<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,TrSparkX<Remap<CenterDistF<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,Stripes<1500,-3000,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>>>>,Int<100>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,TrConcat<TrInstant,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,TrConcat<TrInstant,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,TrFadeX<Scale<ClashImpactF<>,Int<300>,Int<500>>>>>,EFFECT_CLASH>,Scale<ClashImpactF<>,Int<24000>,Int<32768>>>,LockupTrL<TransitionEffect<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Int<200>>,StripesX<Int<1800>,Scale<NoisySoundLevel,Int<-3500>,Int<-5000>>,Mix<Int<6425>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12850>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10280>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Int<13000>>>,TrJoin<TrDelay<8000>,TrInstant>,TrFade<3000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrJoin<TrDelay<50>,TrInstant>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,AlphaL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrSparkX<Remap<CenterDistF<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,Stripes<1200,-3600,Mix<Int<6425>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12850>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>>,Int<30>,Scale<Sum<ClashImpactF<>,SwingSpeed<600>>,Int<50>,Int<200>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrInstant,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Int<16000>>,30>,TrSmoothFade<600>>>,LockupTrL<AlphaL<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrFade<4000>>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Remap<Scale<RampF,Int<65536>,Int<0>>,StaticFire<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,InOutTrL<TrSelect<IncrementWithReset<ThresholdPulseF<EffectPulseF<EFFECT_USER5>,Int<30000>>,EffectPulseF<EFFECT_RETRACTION>,Int<1>,Int<1>>,TrWipeSparkTipX<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,BendTimePowInvX<IgnitionTime<1500>,Mult<IntArg<IGNITION_OPTION2_ARG,4992>,Int<98304>>>>,TrInstant>,TrWipeInX<BendTimePowInvX<RetractionTime<0>,Mult<IntArg<RETRACTION_OPTION2_ARG,10992>,Int<98304>>>>,Black>,TransitionEffectL<TrConcat<TrInstant,Black,TrWipeSparkTipX<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,Int<1000>>>,EFFECT_USER5>,TransitionEffectL<TrDoEffectAlwaysX<TrDoEffectAlwaysX<TrInstant,EFFECT_FAST_ON,Int<-1>,Int<-1>>,EFFECT_QUOTE,Int<16>,Int<-1>>,EFFECT_USER5>,TransitionEffectL<TrConcat<TrJoin<TrDelayX<Mult<Scale<IsLessThan<WavLen<EFFECT_POSTOFF>,Int<200>>,WavLen<EFFECT_POSTOFF>,Int<4000>>,Int<8192>>>,TrCenterWipeX<Mult<Scale<IsLessThan<WavLen<EFFECT_POSTOFF>,Int<200>>,WavLen<EFFECT_POSTOFF>,Int<4000>>,Int<8192>>>>,Remap<CenterDistF<>,Stripes<2000,-1500,Black,Rgb<100,100,150>>>,TrFadeX<Mult<Scale<IsLessThan<WavLen<EFFECT_POSTOFF>,Int<200>>,WavLen<EFFECT_POSTOFF>,Int<4000>>,Int<8192>>>,Remap<CenterDistF<>,Stripes<1000,-500,Black,Rgb<100,100,150>,Black>>,TrFadeX<Mult<Scale<IsLessThan<WavLen<EFFECT_POSTOFF>,Int<200>>,WavLen<EFFECT_POSTOFF>,Int<4000>>,Int<8192>>>>,EFFECT_POSTOFF>,TransitionEffectL<TrConcat<TrJoin<TrDelay<2000>,TrWipe<1000>>,AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>>>(),

/* copyright Fett263 CustomBlade (Crystal Chamber) OS7 Style
https://fett263.com/fett263-proffieOS7-style-library.html#CustomBlade
OS7.12 v1.017-p
Single Style
Multi Phase (Original - Color Change)
Default: Unstable Rage [BaseColorArg]
1: Hyper Responsive Rotoscope (Erratic) [AltColorArg]

Off Behavior: Heart Beat [Color: BaseColorArg]

Multi Phase Control: use Color Change with COLOR_CHANGE_DIRECT define (to enable click-to-change).

--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
*/
StylePtr<Layers<ColorChange<TrInstant,Stripes<3000,-3500,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RandomPerLEDFlicker<Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,Black>,BrownNoiseFlicker<RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<3855>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,200>,RandomPerLEDFlicker<Mix<Int<10280>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,Mix<Int<3855>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,Mix<Scale<IsLessThan<SlowNoise<Int<2000>>,Int<18000>>,Int<0>,Int<32768>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,Stripes<12000,-800,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<16448>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>>>>,RgbArg<ALT_COLOR_ARG,Rgb<0,0,255>>>>,InOutTrL<TrInstant,TrInstant,TransitionLoop<RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,TrConcat<TrBoing<1200,2>,Mix<Int<1285>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,TrFade<1200>>>>>>()},

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

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

You can’t have 2 separate blade definitions like this if you have them wired in parallel.
Each blade needs it’s own bladePin (data pad) assignment.

 WS281XBladePtr<140, bladePin, Color8::GRB, PowerPINS<bladePowerPin2> >(),
 WS281XBladePtr<2, bladePin, Color8::GRB, PowerPINS<bladePowerPin2> >(),

To control the crystal LED independently, you need to either wire it’s data line to it’s own data pad on the board, or wire it in series with the blade and use SubBlade in your BladeConfig for them.

Unless you rewire, you are stuck with them mimicking each other and sharing a single blade style.

Yes i can do that! I’ve tried everything to fix this, thank you

Do I need to use a resistor if its Data pad 2?

A data resistor is suggested on data pads other than #1 (which has it built-in already).
However, at such a short distance, people have found it works fine without.

1 Like

Excellent!

It worked NoSloppy, thanks again for your expertise