Blade Detect Fails Upon Color Change or Edit

*Just posted another readout I pulled for you before heading out. Yes, aside from the No_Blade font pack not having unnecessary sounds it is a pack.

I don’t see an “Igniton” in the No_Blade case, which is maybe why it doesn’t play the hum?

I did press power more than once. It should be right after the very beginning where bladein and bladeout are sampled.

Weird, it won’t recognize power unless a blade is in. Where this readout stops is where I am attempting to use power with the blade out. Volume etc work, just things won’t “ignite” as far as No_Blade. Again to me this is actually better and I prefer it this way but YMMV.

Battery voltage: 0.39
EVENT: Aux-Pressed#1 millis=157985
EVENT: Aux-Pressed millis=157985
EVENT: Aux-Released#1 millis=158135
EVENT: Aux-Released millis=158135
EVENT: Aux-Shortclick#1 millis=158135
EVENT: Aux-Shortclick millis=158135
Saving Current Preset preset = 1 savedir = nbsave
Style RAM = 8
Style RAM = 8
Scanning sound font: No_Blade
 done
Scanning sound font: common
 done
Activating polyphonic font.
DISPLAY: no blade
unit = 0 vol = 0.50, Playing No_Blade/font.wav
channels: 1 rate: 44100 bits: 16
Amplifier off.
Unmounting SD Card.
Battery voltage: 4.02
EVENT: Select-On millis=161454
BLADE ID: 998.00
Blade Detected
blade = 1
WS2811 Blade with 108 leds.
Simple Blade
Style RAM = 1164
Style RAM = 8
Scanning sound font: FallenCustom
 done
Scanning sound font: common
 done
Activating polyphonic font.
Activating SmoothSwing V2
Accent Swings Enabled.
Polyphonic swings: 16
Monophonic swings: 0
Accent Slashes NOT Detected: 
unit = 0 vol = 0.50, Playing FallenCustom/bladein.wav
channels: 1 rate: 44100 bits: 16
EVENT: Select-Off millis=162788
BLADE ID: 946.00
NO Blade Detected
blade = 0
WS2811 Blade with 108 leds.
Simple Blade
Style RAM = 8
Style RAM = 8
Scanning sound font: No_Blade
 done
Scanning sound font: common
 done
Activating polyphonic font.
unit = 0 vol = 0.50, Playing No_Blade/bladeout.wav
channels: 1 rate: 44100 bits: 16
Audio underflows: 7
Amplifier off.
EVENT: Select-On millis=164055
BLADE ID: 966.00
Blade Detected
blade = 1
WS2811 Blade with 108 leds.
Simple Blade
Style RAM = 1164
Style RAM = 8
Scanning sound font: FallenCustom
 done
Scanning sound font: common
 done
Activating polyphonic font.
Activating SmoothSwing V2
Accent Swings Enabled.
Polyphonic swings: 16
Monophonic swings: 0
Accent Slashes NOT Detected: 
unit = 0 vol = 0.50, Playing FallenCustom/bladein.wav
channels: 1 rate: 44100 bits: 16
EVENT: Select-Off millis=165293
BLADE ID: 645.00
NO Blade Detected
blade = 0
WS2811 Blade with 108 leds.
Simple Blade
Style RAM = 8
Style RAM = 8
Scanning sound font: No_Blade
 done
Scanning sound font: common
 done
Activating polyphonic font.
unit = 0 vol = 0.50, Playing No_Blade/bladeout.wav
channels: 1 rate: 44100 bits: 16
Audio underflows: 6
Amplifier off.
EVENT: Power-Pressed#1 millis=166559
EVENT: Power-Pressed millis=166559
EVENT: Power-Released#1 millis=166783
EVENT: Power-Released millis=166783
EVENT: Power-Shortclick#1 millis=166783
EVENT: Power-Shortclick millis=166783
Unmounting SD Card.
EVENT: Power-Pressed#1 millis=169458
EVENT: Power-Pressed millis=169458
EVENT: Power-Released#1 millis=169668
EVENT: Power-Released millis=169668
EVENT: Power-Shortclick#1 millis=169668
EVENT: Power-Shortclick millis=169668
EVENT: Power-Pressed#1 millis=170127
EVENT: Power-Pressed millis=170127
EVENT: Power-Released#1 millis=170406
EVENT: Power-Released millis=170406
EVENT: Power-Shortclick#1 millis=170406
EVENT: Power-Shortclick millis=170406
EVENT: Power-Pressed#2 millis=170582
EVENT: Power-Pressed millis=170582
EVENT: Power-Released#2 millis=170802
EVENT: Power-Released millis=170802
EVENT: Power-Shortclick#2 millis=170802
EVENT: Power-Shortclick millis=170802
EVENT: Power-Pressed#3 millis=171019
EVENT: Power-Pressed millis=171019
EVENT: Power-Released#3 millis=171177
EVENT: Power-Released millis=171177
EVENT: Power-Shortclick#3 millis=171177
EVENT: Power-Shortclick millis=171177
EVENT: Power-Pressed#4 millis=171302
EVENT: Power-Pressed millis=171302
EVENT: Power-Released#4 millis=171442
EVENT: Power-Released millis=171442
EVENT: Power-Shortclick#4 millis=171443
EVENT: Power-Shortclick millis=171443
EVENT: Power-Pressed#4 millis=171547
EVENT: Power-Pressed millis=171547
EVENT: Power-Released#4 millis=171681
EVENT: Power-Released millis=171681
EVENT: Power-Shortclick#4 millis=171681
EVENT: Power-Shortclick millis=171681
EVENT: Power-Pressed#4 millis=171780
EVENT: Power-Pressed millis=171780
EVENT: Power-Released#4 millis=171926
EVENT: Power-Released millis=171926
EVENT: Power-Shortclick#4 millis=171927
EVENT: Power-Shortclick millis=171927
EVENT: Power-Pressed#4 millis=172142
EVENT: Power-Pressed millis=172142
EVENT: Power-Released#4 millis=172322
EVENT: Power-Released millis=172322
EVENT: Power-Shortclick#4 millis=172322
EVENT: Power-Shortclick millis=172322
EVENT: Power-Pressed#4 millis=172489
EVENT: Power-Pressed millis=172489
EVENT: Power-Released#4 millis=172635
EVENT: Power-Released millis=172635
EVENT: Power-Shortclick#4 millis=172635
EVENT: Power-Shortclick millis=172635
EVENT: Power-Pressed#4 millis=172738
EVENT: Power-Pressed millis=172738
EVENT: Power-Released#4 millis=172880
EVENT: Power-Released millis=172881
EVENT: Power-Shortclick#4 millis=172881
EVENT: Power-Shortclick millis=172881
EVENT: Power-Pressed#4 millis=172963
EVENT: Power-Pressed millis=172963
EVENT: Power-Released#4 millis=173101
EVENT: Power-Released millis=173101
EVENT: Power-Shortclick#4 millis=173101
EVENT: Power-Shortclick millis=173101
EVENT: ?48 millis=173346
EVENT MENU TURN LEFT

I think I figured it out.
You’re using ChargingStyle for your main blade in the No_Blade case.
ChargingStyle disables on/off, so there no ignition.
If you use a normal style, then it should also work normally.

Ahh, yeah, forgot I’d changed that part back when we were all discussing the charging stands. Got a correct example you can reply with so I can do a quick cut-paste to retest when I get a chance later?\

Try StylePtr<Black>() instead.

Or possibly just use the same style as you do in the blade-in case.

IIRC the one blade two button config I’d done uses StylePtr() I’ll just have to edit that preset to

{ “No_Blade;common”, “tracks/none.wav”,
//ChargingStylePtr(), //Use this if you do not want the optional low-hum for No_Blade.
StylePtr(), //Use this if you want the optional low-hum for No_Blade.
StylePtr(),

“no blade” }

I asked two others to try things out and the reports back are the same so far. No more error.

I’ll wrap this up tonight and let you know for sure but it looks like we have OS7.13 potential.
*I’ve zero experience doing Pull Requests so I’ll leave that to you.

Update: @profezzorn Repeated testing here with the hilts available and others also testing results in nothing new to report. “Error is no longer present.”

So this looks to be SOLVED. Pack it and ship it Professor. :smiley:

Config examples posted to Pastebin as well as shared below.

//Updated (Sabertrio but also works on other blade detect setups) 2 Blade and 1 Blade Configurations with Blade Detect.
//You will need the *pending* ProffieOS_7.13 that has the BladeDetect fix. https://github.com/profezzorn/ProffieOS
//Note for 1 blade config users, that config example will be at the bottom of this paste and others going forwards. 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
S3_2Blade_2Button_BladeDetect_OS7
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
//This is a simplified config file template set up for Blade Detect.
//2 Blade, 2 Button Config with BladeDetect using OS7.11
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 60
#define VOLUME 1500
#define CLASH_THRESHOLD_G 4
#define AUDIO_CLASH_SUPPRESSION_LEVEL 5
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define KILL_OLD_PLAYERS
#define MOTION_TIMEOUT 60 * 5 * 1000
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define SHARED_POWER_PINS
#define ENABLE_ALL_EDIT_OPTIONS
#define SAVE_STATE
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define BLADE_DETECT_PIN 17
//#define ENABLE_SSD1306
//#define OLED_FLIP_180
#define FETT263_EDIT_SETTINGS_MENU
//#define FETT263_EDIT_MODE_MENU
//#define FETT263_SPECIAL_ABILITIES
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_DISABLE_CHANGE_FONT
#define FETT263_DISABLE_COPY_PRESET
#define FETT263_BATTLE_MODE_ALWAYS_ON
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_SWING_ON_SPEED 250
#define FETT263_SWING_ON
#define FETT263_TWIST_OFF
#endif
 
 
#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif
 
 
#ifdef CONFIG_PRESETS
 
Preset no_blade[] = {
 
{ "No_Blade;common", "tracks/none.wav",
    //ChargingStylePtr<Black>(), //Use this if you do not want the optional low-hum for No_Blade.
    StylePtr<Black>(), //Use this if you want the optional low-hum for No_Blade.
    StylePtr<WHITE>(), //Button LED. *This will change going forwards for the programmable version. 
 
   "no blade" }
 
};
 
//---------------------------------------------------------------
 
Preset blade_in[] = {
 
{ "SABERTRIO_Deluxe;common", "tracks/none.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 (Force Change)
Default: Hyper Responsive Rotoscope (Original Trilogy) [BaseColorArg]
1: AudioFlicker (Single Color (75%)) [AltColorArg]
2: Hyper Responsive Rotoscope (Light) [AltColor2Arg]
3: RandomFlicker (Single Color (75%)) [AltColor3Arg]
4: Cal Kestis Survivor Yellow [Rgb<255,255,0>]
5: HumpFlicker Large (Single Color (50%)) [Rgb<255,68,0>]
6: Audio Rotoscope - Single Color (Sequels) [Rgb<100,100,150>]
 
Multi Phase Control: use Force to toggle phases. 
 
--Effects Included--
Preon Effect: Faulty Fire Ignition [Color: PreonColorArg]
Ignition Effect: Glitch On [Color: IgnitionColorArg]
Retraction Effect: Glitch Off [Color: RetractionColorArg]
Lockup Effect: Responsive Lockup, Begin Effect: Real Clash, End Effect: Full Blade Absorb [Color: LockupColorArg]
LightningBlock Effect: Responsive Lightning Block [Color: LBColorArg]
Drag Effect: Intensity Fire Drag [Color: DragColorArg]
Melt Effect: Intensity Melt [Color: StabColorArg]
Blast Effect: Responsive Blast Wave (Sound Based) [Color: BlastColorArg]
Clash Effect: Responsive Clash [Color: ClashColorArg]
Swing Effect: Force Boost Aura [Color: SwingColorArg] *TImed at 999ms to be easily seen and edited.
*/
StylePtr<Layers<Black,ColorSelect<IncrementModuloF<EffectPulseF<EFFECT_FORCE>,Int<32000>>,TrSelect<Ifon<Int<1>,Int<0>>,TrInstant,TrFadeX<Int<1000>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<15000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,AudioFlicker<RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,Mix<Int<24576>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,Stripes<15000,-400,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,Stripes<12000,-200,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,Mix<Int<20000>,Black,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>>,RandomFlicker<RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Mix<Int<24576>,Black,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>>>,StripesX<Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<3600>,Int<1600>>,Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<2000>,Int<4000>>,Int<-2700>,Int<-4100>>,Mix<Int<16000>,Black,Rgb<255,255,0>>,Mix<Sin<Int<20>,Int<22000>,Int<32768>>,Black,Rgb<255,255,0>>,Mix<Int<8000>,Black,Rgb<255,255,0>>>,HumpFlicker<Rgb<255,68,0>,Mix<Int<16448>,Black,Rgb<255,68,0>>,120>,AudioFlicker<Stripes<14000,-4000,Rgb<100,100,150>,Rgb<100,100,150>,Mix<Int<7710>,Black,Rgb<100,100,150>>,Rgb<100,100,150>,Mix<Int<16448>,Black,Rgb<100,100,150>>>,Rgb<100,100,150>>>,TransitionEffectL<TrConcat<TrJoin<TrDelay<999>,TrFade<300>>,AudioFlickerL<RgbArg<SWING_COLOR_ARG,Rgb<255,255,255>>>,TrFade<300>>,EFFECT_FORCE>,TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<WavLen<>,Int<100>,Int<400>>,Int<100>,Scale<WavLen<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,TransitionEffectL<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<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,LockupTrL<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AudioFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Int<200>>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,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<Stripes<2000,4000,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Mix<Sin<Int<50>>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<4096>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<Stripes<2000,3000,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Mix<Sin<Int<30>>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<8192>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>>,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<TrConcat<TrJoin<TrDelayX<Mult<IgnitionTime<300>,Int<16384>>>,TrWipeX<Mult<IgnitionTime<300>,Int<16384>>>>,Mix<SmoothStep<NoisySoundLevel,Int<-1>>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,TrWipeX<Mult<IgnitionTime<300>,Int<16384>>>>,TrConcat<TrJoin<TrDelayX<Mult<RetractionTime<0>,Int<16384>>>,TrWipeInX<Mult<RetractionTime<0>,Int<16384>>>>,Mix<SmoothStep<NoisySoundLevel,Int<-1>>,Black,RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>>,TrWipeInX<Mult<RetractionTime<0>,Int<16384>>>>,Black>,TransitionEffectL<TrConcat<TrExtendX<WavLen<EFFECT_PREON>,TrWipe<100>>,AlphaL<StripesX<Int<3000>,Sin<Int<60>,Int<-1600>,Int<-4000>>,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10772>,Black,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<24000>,Black,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>>>,SmoothStep<NoisySoundLevel,Int<-3000>>>,TrFade<100>>,EFFECT_PREON>>>(),
 
StylePtr<WHITE>(), "kellen -revo- sha'dar"},
 
};
 
BladeConfig blades[] = {
  { NO_BLADE,
    WS281XBladePtr<108, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
        SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(),
        CONFIGARRAY(no_blade), "nbsave" },
 
  { 0,
    WS281XBladePtr<108, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
        SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(),
        CONFIGARRAY(blade_in) },
 
};
#endif
 
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow"); 
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
Revo_S3_1Blade_2Button_BladeDetect_OS7.h
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
//This is a simplified config file template set up for Blade Detect.
//1 Blade, 2 Button Config with BladeDetect using OS7.11
// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 60
#define VOLUME 1500
#define CLASH_THRESHOLD_G 4
#define AUDIO_CLASH_SUPPRESSION_LEVEL 5
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define KILL_OLD_PLAYERS
#define MOTION_TIMEOUT 60 * 5 * 1000
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define SHARED_POWER_PINS
#define ENABLE_ALL_EDIT_OPTIONS
#define SAVE_STATE
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define BLADE_DETECT_PIN 17
//#define ENABLE_SSD1306
//#define OLED_FLIP_180
#define FETT263_EDIT_SETTINGS_MENU
//#define FETT263_EDIT_MODE_MENU
//#define FETT263_SPECIAL_ABILITIES
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_DISABLE_CHANGE_FONT
#define FETT263_DISABLE_COPY_PRESET
#define FETT263_BATTLE_MODE_ALWAYS_ON
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_SWING_ON_SPEED 250
#define FETT263_SWING_ON
#define FETT263_TWIST_OFF
#endif
 
 
#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif
 
 
#ifdef CONFIG_PRESETS
 
Preset no_blade[] = {
 
{ "No_Blade;common","tracks/none.wav",
    StylePtr<Black>(),
 
    "no blade" }
 
};
 
//---------------------------------------------------------------
 
Preset blade_in[] = {
 
{ "SABERTRIO_Deluxe;common", "tracks/none.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 (Force Change)
Default: Hyper Responsive Rotoscope (Original Trilogy) [BaseColorArg]
1: AudioFlicker (Single Color (75%)) [AltColorArg]
2: Hyper Responsive Rotoscope (Light) [AltColor2Arg]
3: RandomFlicker (Single Color (75%)) [AltColor3Arg]
4: Cal Kestis Survivor Yellow [Rgb<255,255,0>]
5: HumpFlicker Large (Single Color (50%)) [Rgb<255,68,0>]
6: Audio Rotoscope - Single Color (Sequels) [Rgb<100,100,150>]
 
Multi Phase Control: use Force to toggle phases. 
 
--Effects Included--
Preon Effect: Faulty Fire Ignition [Color: PreonColorArg]
Ignition Effect: Glitch On [Color: IgnitionColorArg]
Retraction Effect: Glitch Off [Color: RetractionColorArg]
Lockup Effect: Responsive Lockup, Begin Effect: Real Clash, End Effect: Full Blade Absorb [Color: LockupColorArg]
LightningBlock Effect: Responsive Lightning Block [Color: LBColorArg]
Drag Effect: Intensity Fire Drag [Color: DragColorArg]
Melt Effect: Intensity Melt [Color: StabColorArg]
Blast Effect: Responsive Blast Wave (Sound Based) [Color: BlastColorArg]
Clash Effect: Responsive Clash [Color: ClashColorArg]
Swing Effect: Force Boost Aura [Color: SwingColorArg] *TImed at 999ms to be easily seen and edited.
*/
//StylePtr<Layers<Black,ColorSelect<IncrementModuloF<EffectPulseF<EFFECT_FORCE>,Int<32000>>,TrSelect<Ifon<Int<1>,Int<0>>,TrInstant,TrFadeX<Int<1000>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<15000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,AudioFlicker<RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,Mix<Int<24576>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,Stripes<15000,-400,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,Stripes<12000,-200,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,Mix<Int<20000>,Black,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>>,RandomFlicker<RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Mix<Int<24576>,Black,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>>>,StripesX<Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<3600>,Int<1600>>,Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<2000>,Int<4000>>,Int<-2700>,Int<-4100>>,Mix<Int<16000>,Black,Rgb<255,255,0>>,Mix<Sin<Int<20>,Int<22000>,Int<32768>>,Black,Rgb<255,255,0>>,Mix<Int<8000>,Black,Rgb<255,255,0>>>,HumpFlicker<Rgb<255,68,0>,Mix<Int<16448>,Black,Rgb<255,68,0>>,120>,AudioFlicker<Stripes<14000,-4000,Rgb<100,100,150>,Rgb<100,100,150>,Mix<Int<7710>,Black,Rgb<100,100,150>>,Rgb<100,100,150>,Mix<Int<16448>,Black,Rgb<100,100,150>>>,Rgb<100,100,150>>>,TransitionEffectL<TrConcat<TrJoin<TrDelay<999>,TrFade<300>>,AudioFlickerL<RgbArg<SWING_COLOR_ARG,Rgb<255,255,255>>>,TrFade<300>>,EFFECT_FORCE>,TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<WavLen<>,Int<100>,Int<400>>,Int<100>,Scale<WavLen<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,TransitionEffectL<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<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,LockupTrL<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AudioFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Int<200>>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,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<Stripes<2000,4000,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Mix<Sin<Int<50>>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<4096>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<Stripes<2000,3000,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Mix<Sin<Int<30>>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<8192>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>>,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<TrConcat<TrJoin<TrDelayX<Mult<IgnitionTime<300>,Int<16384>>>,TrWipeX<Mult<IgnitionTime<300>,Int<16384>>>>,Mix<SmoothStep<NoisySoundLevel,Int<-1>>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,TrWipeX<Mult<IgnitionTime<300>,Int<16384>>>>,TrConcat<TrJoin<TrDelayX<Mult<RetractionTime<0>,Int<16384>>>,TrWipeInX<Mult<RetractionTime<0>,Int<16384>>>>,Mix<SmoothStep<NoisySoundLevel,Int<-1>>,Black,RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>>,TrWipeInX<Mult<RetractionTime<0>,Int<16384>>>>,Black>,TransitionEffectL<TrConcat<TrExtendX<WavLen<EFFECT_PREON>,TrWipe<100>>,AlphaL<StripesX<Int<3000>,Sin<Int<60>,Int<-1600>,Int<-4000>>,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10772>,Black,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<24000>,Black,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>>>,SmoothStep<NoisySoundLevel,Int<-3000>>>,TrFade<100>>,EFFECT_PREON>>>(),
StylePtr<
 Layers<
  Black,
  ColorSelect<IncrementModuloF<EffectPulseF<EFFECT_FORCE>,Int<32000>>,TrSelect<Ifon<Int<1>,Int<0>>,TrInstant,TrFadeX<Int<1000>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<15000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg<BASE_COLOR_ARG,Blue>,RgbArg<BASE_COLOR_ARG,Blue>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Blue>>,RgbArg<BASE_COLOR_ARG,Blue>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Blue>>>,RgbArg<BASE_COLOR_ARG,Blue>>,RgbArg<BASE_COLOR_ARG,Blue>>,AudioFlicker<RgbArg<ALT_COLOR_ARG,Cyan>,Mix<Int<24576>,Black,RgbArg<ALT_COLOR_ARG,Cyan>>>,Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,Stripes<15000,-400,RgbArg<ALT_COLOR2_ARG,Green>,Stripes<12000,-200,RgbArg<ALT_COLOR2_ARG,Green>,Mix<Int<20000>,Black,RgbArg<ALT_COLOR2_ARG,Green>>,RgbArg<ALT_COLOR2_ARG,Green>>>,RgbArg<ALT_COLOR2_ARG,Green>>,RandomFlicker<RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Mix<Int<24576>,Black,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>>>,StripesX<Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<3600>,Int<1600>>,Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<2000>,Int<4000>>,Int<-2700>,Int<-4100>>,Mix<Int<16000>,Black,Yellow>,Mix<Sin<Int<20>,Int<22000>,Int<32768>>,Black,Yellow>,Mix<Int<8000>,Black,Yellow>>,HumpFlicker<DarkOrange,Mix<Int<16448>,Black,DarkOrange>,120>,AudioFlicker<Stripes<14000,-4000,Rgb<100,100,150>,Rgb<100,100,150>,Mix<Int<7710>,Black,Rgb<100,100,150>>,Rgb<100,100,150>,Mix<Int<16448>,Black,Rgb<100,100,150>>>,Rgb<100,100,150>>>,
  TransitionEffectL<TrConcat<TrJoin<TrDelay<999>,TrFade<300>>,AudioFlickerL<RgbArg<SWING_COLOR_ARG,White>>,TrFade<300>>,EFFECT_FORCE>,
   TransitionEffectL<TrConcat<TrDelay<1000>,SparkleL<>,TrFade<1000>>,EFFECT_FORCE>,
  TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,White>,Scale<WavLen<>,Int<100>,Int<400>>,Int<100>,Scale<WavLen<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,
  TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<CLASH_COLOR_ARG,White>,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<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,
  LockupTrL<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AudioFlickerL<RgbArg<LOCKUP_COLOR_ARG,White>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,White>,Int<200>>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,White>,TrFade<400>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,White>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,
  ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,White>,AudioFlicker<RgbArg<LB_COLOR_ARG,White>,Blue>,50,1>,TrConcat<TrInstant,AlphaL<RgbArg<LB_COLOR_ARG,White>,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<RgbArg<LB_COLOR_ARG,White>,Int<16000>>,30>,TrSmoothFade<600>>>,
  LockupTrL<AlphaL<Stripes<2000,4000,RgbArg<DRAG_COLOR_ARG,White>,Mix<Sin<Int<50>>,Black,RgbArg<DRAG_COLOR_ARG,White>>,Mix<Int<4096>,Black,RgbArg<DRAG_COLOR_ARG,White>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<Stripes<2000,3000,RgbArg<DRAG_COLOR_ARG,White>,Mix<Sin<Int<30>>,Black,RgbArg<DRAG_COLOR_ARG,White>>,Mix<Int<8192>,Black,RgbArg<DRAG_COLOR_ARG,White>>>,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,DarkOrange>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,DarkOrange>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,DarkOrange>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,DarkOrange>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,DarkOrange>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,DarkOrange>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,DarkOrange>>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,
  InOutTrL<TrConcat<TrJoin<TrDelayX<Mult<IgnitionTime<300>,Int<16384>>>,TrWipeX<Mult<IgnitionTime<300>,Int<16384>>>>,Mix<SmoothStep<NoisySoundLevel,Int<-1>>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,TrWipeX<Mult<IgnitionTime<300>,Int<16384>>>>,TrConcat<TrJoin<TrDelayX<Mult<RetractionTime<0>,Int<16384>>>,TrWipeInX<Mult<RetractionTime<0>,Int<16384>>>>,Mix<SmoothStep<NoisySoundLevel,Int<-1>>,Black,RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>>,TrWipeInX<Mult<RetractionTime<0>,Int<16384>>>>,Black>,
  TransitionEffectL<TrConcat<TrExtendX<WavLen<EFFECT_PREON>,TrWipe<100>>,AlphaL<StripesX<Int<3000>,Sin<Int<60>,Int<-1600>,Int<-4000>>,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10772>,Black,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<24000>,Black,RgbArg<PREON_COLOR_ARG,Rgb<255,255,255>>>>,SmoothStep<NoisySoundLevel,Int<-3000>>>,TrFade<100>>,EFFECT_PREON>>>(),
 
  "kellen -revo- sha'dar"},
 
};
 
BladeConfig blades[] = {
  { NO_BLADE,
    WS281XBladePtr<108, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
        CONFIGARRAY(no_blade), "nbsave" },
 
  { 0,
    WS281XBladePtr<108, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
        CONFIGARRAY(blade_in) },
 
};
#endif
 
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow"); 
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif