Battery gauge: Discovering the secrets of my Korbanth SK Apprentice V2 Proffie

I posted a topic earlier that, as it turns out, was too simplistic.
I have a Proffie 2.2 from Korbanth with what looks like their config file (edited for length):

//Newest version 3/25/2021
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 1800
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 2.8
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SAVE_STATE
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_DIAGNOSTIC_COMMANDS
#endif

#ifdef CONFIG_PROP
#include "../props/saber_korbanth_buttons.h"
#endif
...
/*
When using SubBlade, the first_led and last_led are zero based.  
SubBlade(first_led, last_led, blade_definition)

So for a blade with 130 pixels, the first_led is 0, the last_led is 129
So for a blade with 134 pixels, the first_led is 0, the last_led is 133
*/

/*
Below we have a total of 135 pixels
The first SubBlade is for the accent led / crystal chamber which has 1 pixel.  It starts and ends at 0
The second SubBlade is for the main blade which has 134 pixels.  It starts at 1 and ends at 134

They both use bladePin (data pad 1) and run in series
*/

BladeConfig blades[] = {
{ 0,
    SubBlade(0, 0, WS281XBladePtr<135, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4>>()),
	SubBlade(1, 1, NULL),
	SubBlade(2, 134, NULL),
    CONFIGARRAY(presets),
}
};
#endif

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

Now the board looks like this:

How do I “reverse engineer” and make sure the config file I have is right before I run it?
How would I config the crystal chamber to be a battey level monitor based on this being a composite blade?

It’s either your first or second blade

Or possibly the first AND the second blade.

It’s very unlikely that running the wrong config file will damage anything, so the easiest way to see if it’s the right config file is to simply install it and see if seems to work correctly.

There are two crystal chambers… I suppose the question is: if I include a “bad” confit is there any danger of permanently hurting the profile?

If everything is soldered up right, there is no chance of breaking a proffieboard by uploading a bad config file.

Worked just fine!

Ok, so first, I apologize for being a n00b here. I certainly have the right config for this saber, and if I push the original config its good to go.
I am trying to designate one of the crystals (which are sub blades) to a battery meter.

I expected to be able to replace the first blade config for each font with a basic &style_charging:

Preset presets[] = {

	//Jesse Secret Apprentice Light
	{ "sa_light", "sa_light/tracks/SKT3.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//DeepSkyBlue Default
		//DeepSkyBlue,SteelBlue converted to DodgerBlue,DeepSkyBlue
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<DodgerBlue,DeepSkyBlue>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<DeepSkyBlue,SteelBlue>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<DodgerBlue,DeepSkyBlue>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<DeepSkyBlue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<DeepSkyBlue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,DeepSkyBlue>,3500>,RandomPerLEDFlicker<DeepSkyBlue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"Secret Apprentice Light"},

	//Jesse Secret Apprentice Dark

becomes

Preset presets[] = {

	//Jesse Secret Apprentice Light
	{ "sa_light", "sa_light/tracks/SKT3.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//DeepSkyBlue Default
		//DeepSkyBlue,SteelBlue converted to DodgerBlue,DeepSkyBlue
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<DodgerBlue,DeepSkyBlue>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		&style_charging,
		
		StylePtr<InOutHelperX<AudioFlicker<DeepSkyBlue,SteelBlue>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<DodgerBlue,DeepSkyBlue>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<DeepSkyBlue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<DeepSkyBlue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,DeepSkyBlue>,3500>,RandomPerLEDFlicker<DeepSkyBlue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"Secret Apprentice Light"},

	//Jesse Secret Apprentice Dark

But it seems to be breaking the entire blade style.

Heres the full config:

//Newest version 3/25/2021
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 1800
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 2.8
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SAVE_STATE
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_DIAGNOSTIC_COMMANDS
#endif

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

#ifdef CONFIG_PRESETS
Preset presets[] = {

	//Jesse Secret Apprentice Light
	{ "sa_light", "sa_light/tracks/SKT3.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//DeepSkyBlue Default
		//DeepSkyBlue,SteelBlue converted to DodgerBlue,DeepSkyBlue
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<DodgerBlue,DeepSkyBlue>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<DeepSkyBlue,SteelBlue>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<DodgerBlue,DeepSkyBlue>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<DeepSkyBlue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DodgerBlue,DeepSkyBlue>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<DeepSkyBlue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,DeepSkyBlue>,3500>,RandomPerLEDFlicker<DeepSkyBlue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"Secret Apprentice Light"},

	//Jesse Secret Apprentice Dark
	{ "sa_dark", "sa_dark/tracks/SKT4.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast Color) with Full Transitions with ColorWheel
		//Red Default
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<Red,Rgb<128,0,0>>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<Red,Rgb<128,0,0>>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		//add a 500ms IgnitionDelay
		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<Red,Rgb<128,0,0>>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Red,Rgb<128,0,0>>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Red,Rgb<128,0,0>>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<Red,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Red,Rgb<128,0,0>>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Red,Rgb<128,0,0>>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<Red,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,Red>,3500>,RandomPerLEDFlicker<Red,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"Secret Apprentice Dark"},

	//Jesse ANH_Training
	{ "ANH_Training", "ANH_Training/tracks/Training_Ambience.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//DeepSkyBlue Default
		//DeepSkyBlue,SteelBlue converted to Cyan,Aqua
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<Cyan,Aqua>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<Cyan,Aqua>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<Cyan,Aqua>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Cyan,Aqua>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Cyan,Aqua>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<DeepSkyBlue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Cyan,Aqua>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Cyan,Aqua>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<DeepSkyBlue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,DeepSkyBlue>,3500>,RandomPerLEDFlicker<DeepSkyBlue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"ANH Training"},

	//Jesse ESB_Graflex
	{ "ESB_Graflex", "ESB_Graflex/tracks/LvsV.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//Blue Default
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<Blue,Rgb<0,0,128>>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<Blue,Rgb<0,0,128>>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<Blue,Rgb<0,0,128>>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<Blue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<Blue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,Blue>,3500>,RandomPerLEDFlicker<Blue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"ESB Graflex"},

	//Jesse TFA_Graflex
	{ "TFA_Rey", "TFA_Rey/tracks/BattleInTheWoods.wav",
		//Fett263 Light-Side AudioFlicker Style with "Responsive Blade" and Full Transitions
		// DeepSkyBlue
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<DeepSkyBlue,SteelBlue>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<DeepSkyBlue,SteelBlue>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<DeepSkyBlue,SteelBlue>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,Mix<Bump<Int<0>,Int<48000>>,Stripes<1000,1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>,Stripes<1000,-1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Mix<Bump<Int<0>,Int<44000>>,Mix<Bump<Int<32768>,Int<44000>>,TransitionEffect<DeepSkyBlue,White,TrInstant,TrFade<300>,EFFECT_LOCKUP_END>,Stripes<1000,-1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,Stripes<1000,1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,TrInstant,TrSmoothFade<800>,EFFECT_LOCKUP_END>,Pulsing<Gradient<AudioFlicker<DeepSkyBlue,SteelBlue>,BrownNoiseFlicker<White,Strobe<Red,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Red,White,50,1>,100>,AudioFlicker<DeepSkyBlue,SteelBlue>>,3500>,RandomPerLEDFlicker<AudioFlicker<DeepSkyBlue,SteelBlue>,White>,Bump<Int<16000>,Int<16000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,150,300,Black>>(),

		"Rey TFA Graflex Blue"},

	//Jesse TFA_Graflex
	{ "TFA_Finn", "TFA_Finn/tracks/BattleInTheWoods.wav",
		//Fett263 Light-Side AudioFlicker Style with "Responsive Blade" and Full Transitions
		// DeepSkyBlue
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<DeepSkyBlue,SteelBlue>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<DeepSkyBlue,SteelBlue>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<DeepSkyBlue,SteelBlue>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,Mix<Bump<Int<0>,Int<48000>>,Stripes<1000,1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>,Stripes<1000,-1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Mix<Bump<Int<0>,Int<44000>>,Mix<Bump<Int<32768>,Int<44000>>,TransitionEffect<DeepSkyBlue,White,TrInstant,TrFade<300>,EFFECT_LOCKUP_END>,Stripes<1000,-1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,Stripes<1000,1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,TrInstant,TrSmoothFade<800>,EFFECT_LOCKUP_END>,Pulsing<Gradient<AudioFlicker<DeepSkyBlue,SteelBlue>,BrownNoiseFlicker<White,Strobe<Red,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Red,White,50,1>,100>,AudioFlicker<DeepSkyBlue,SteelBlue>>,3500>,RandomPerLEDFlicker<AudioFlicker<DeepSkyBlue,SteelBlue>,White>,Bump<Int<16000>,Int<16000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,150,300,Black>>(),
	
		"Finn TFA Graflex Blue"},

	//KSith Halflex
	{ "Graflex8", "Graflex8/tracks/rey_training.wav",
		//Fett263 Light-Side AudioFlicker Style with "Responsive Blade" and Full Transitions
		// DeepSkyBlue
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<DeepSkyBlue,SteelBlue>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<DeepSkyBlue,SteelBlue>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<DeepSkyBlue,SteelBlue>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,Mix<Bump<Int<0>,Int<48000>>,Stripes<1000,1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>,Stripes<1000,-1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<DeepSkyBlue,SteelBlue>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Mix<Bump<Int<0>,Int<44000>>,Mix<Bump<Int<32768>,Int<44000>>,TransitionEffect<DeepSkyBlue,White,TrInstant,TrFade<300>,EFFECT_LOCKUP_END>,Stripes<1000,-1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,Stripes<1000,1500,DeepSkyBlue,BrownNoiseFlicker<White,DeepSkyBlue,300>>>,TrInstant,TrSmoothFade<800>,EFFECT_LOCKUP_END>,Pulsing<Gradient<AudioFlicker<DeepSkyBlue,SteelBlue>,BrownNoiseFlicker<White,Strobe<Red,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Red,White,50,1>,100>,AudioFlicker<DeepSkyBlue,SteelBlue>>,3500>,RandomPerLEDFlicker<AudioFlicker<DeepSkyBlue,SteelBlue>,White>,Bump<Int<16000>,Int<16000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,150,300,Black>>(),

		"blue"},

	//Jesse Hero Pack Obi-Wan Kenobi
	{ "ROTSOBI", "ROTSOBI/tracks/BattleOfHeros.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//Blue Default
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<Blue,Rgb<0,0,128>>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<Blue,Rgb<0,0,128>>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<Blue,Rgb<0,0,128>>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<Blue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<Blue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,Blue>,3500>,RandomPerLEDFlicker<Blue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"Obi Wan ROTS Blue"},

	//Jesse OB4
	{ "OB4", "OB4/tracks/Force_Theme.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//Blue Default
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<Blue,Rgb<0,0,128>>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<Blue,Rgb<0,0,128>>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<Blue,Rgb<0,0,128>>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<Blue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<Blue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,Blue>,3500>,RandomPerLEDFlicker<Blue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"blue"},

	//Jesse Leia
	{ "Leia", "Leia/tracks/track1.wav",
		//SHOWCASE - AudioFlicker Blade Style with "Responsive Blade" (Fast White) with Full Transitions ColorWheel
		//Blue Default
		//removed TransitionEffect for EFFECT_IGNITION and replaced with base color "AudioFlicker<Blue,Rgb<0,0,128>>"
		//removed TransitionEffect for EFFECT_RETRACTION
		
		StylePtr<RandomFlicker<Azure,LightSalmon>>(),
		
		StylePtr<InOutHelperX<AudioFlicker<Blue,Rgb<0,0,128>>,InOutFuncX<Int<1>,Int<900>>,Pulsing<White,Rgb16<3813,3813,3813>,5000>>>(),

		StylePtr<InOutHelper<Blast<LocalizedClash<Lockup<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<TransitionEffect<AudioFlicker<Blue,Rgb<0,0,128>>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<OrangeRed,White>>,TrConcat<TrWipeIn<600>,Mix<Bump<Int<32768>,Int<16000>>,AudioFlicker<Blue,Rgb<0,0,128>>,RandomPerLEDFlicker<Orange,White>>,TrWipe<600>>,TrInstant,EFFECT_STAB>,White,TrInstant,TrSmoothFade<200>,EFFECT_LOCKUP_BEGIN>,StyleFire<Blue,White,0,6>,TrInstant,TrSmoothFade<500>,EFFECT_LOCKUP_END>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<200>,EFFECT_DRAG_BEGIN>,Mix<Bump<Int<32768>,Int<10000>>,AudioFlicker<Blue,Rgb<0,0,128>>,White>,TrInstant,TrFade<300>,EFFECT_DRAG_END>,Pulsing<Gradient<Blue,BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>>,Gradient<BrownNoiseFlicker<White,Strobe<Blue,White,50,1>,100>,Blue>,3500>,RandomPerLEDFlicker<Blue,White>,Bump<Int<16000>,Int<20000>>,Bump<Int<32768>,Int<10000>>>,White>,White>,300,500,Black>>(),

		"Leia"},

	

	<<<snip here>>>
   { "Batt", "tracks/mars.wav",
    &style_charging, &style_charging, &style_charging, "Battery\nLevel"},

};
/*
When using SubBlade, the first_led and last_led are zero based.  
SubBlade(first_led, last_led, blade_definition)

So for a blade with 130 pixels, the first_led is 0, the last_led is 129
So for a blade with 134 pixels, the first_led is 0, the last_led is 133
*/

/*
Below we have a total of 135 pixels
The first SubBlade is for the accent led / crystal chamber which has 1 pixel.  It starts and ends at 0
The second SubBlade is for the main blade which has 134 pixels.  It starts at 1 and ends at 134

They both use bladePin (data pad 1) and run in series
*/

BladeConfig blades[] = {
{ 0,
    SubBlade(0, 0, WS281XBladePtr<135, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4>>()),
	SubBlade(1, 1, NULL),
	SubBlade(2, 134, NULL),
    CONFIGARRAY(presets),
}
};
#endif

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

Those are some pretty old styles, you can get far more efficient and up to date styles for OS5 from my library.

As to the problem what’s the error message you’re getting, it will give a clue to what is wrong.

I probably need to just dive in and work from scratch; have to put a little more thought into pairing SDCard content. Ill have a look at your site @Fett263 to see if theres just a template SDCard I can start with

Well you want to keep the config, I’d just recommend replacing the StylePtr<>() code in each preset with OS5 versions, those are OS3 or older and missing a lot of the current capabilities. They will also use up more FLASH on your board than updated versions. Now if you’re planning to upgrade to OS6 when it releases you may just want to wait as there’s a ton of new stuff and new style syntax coming so rather than do it twice you may just hold off. But if you want to practice and update to OS5 in the interim I would definitely swap all the style code out for Layers format.

If you get errors during upload just post them as they will explain what is causing. Otherwise it can be a bit of a needle in a haystack.

1 Like

So what actually happens?
Compile errors? Can you show us the errors you’re actually getting?

PS: Old styles are fine if you want to keep them.
New styles have lots of nifty features, but updating to them is entirely optional.

yeah 0 errors… The issue is going from “Id like the crystal to be a battery level” to learning the entire style thing is a climb… Ill get there.

Any docs on sub-blades and what thats all about?

Subblade information: SubBlade · profezzorn/ProffieOS Wiki · GitHub

I still don’t know what you mean by “they seem to be breaking the whole blade style”, but maybe I can guess:

&style_charging has some magic in it that disable on/off. Having it as the first style might not be a good idea.

You could rewrite your blades array like this:

BladeConfig blades[] = {
{ 0,
	SubBlade(2, 134, WS281XBladePtr<135, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4>>()),
    SubBlade(0, 0, NULL),
	SubBlade(1, 1, NULL),
    CONFIGARRAY(presets),
}
};

This will make the “main” blade the first style. You would need to reorder the styles in the presets to match of course. I think that thaving &style_charging; on a blade other than the first one will work better. (Hmm, maybe I should double check… Yep, it only looks at the first blade.)

Hey all,

Success!

I managed to get the second blade set up as a charging display for all the fonts, and managed also to use one or two @Fett263 styles that were missing, so my saber is Halloween-ready.

Thanks for all your help… Im going to tinker after =)