Error when trying to verify config file on new sabertrio proffie saber

I’m trying to add a new font to my new Sabertrio Proffie saber and I have gotten to the point where I am trying to verify the config file #define CONFIG_FILE “config/s3config.h” in Arduino (version 1.8.18) and I am getting the error message:

In file included from C:\Users\pbdkk\Desktop\ProffieOS-v5.9\ProffieOS\ProffieOS.ino:586:
C:\Users\pbdkk\Desktop\ProffieOS-v5.9\ProffieOS\config\s3config.h:24:9: fatal error: …/props/s3button_config.h: No such file or directory
24 | #include"…/props/s3button_config.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Error compiling for board Proffieboard V2.

I am new to this and new to any sort of coding so I have no idea what I have done wrong.

This is the second time this same file has come as as being a problem.
Check the SD card for the prop file named s3button_config.h and copy it to your ProffieOS/props folder.
Then verify again and/or upload.

Doing that no longer gave me that error thank you. However, now I have a different error when I try to verify. Here is the error:

In file included from C:\Users\pbdkk\Desktop\ProffieOS-v5.9\ProffieOS\ProffieOS.ino:582:
C:\Users\pbdkk\Desktop\ProffieOS-v5.9\ProffieOS\config\s3config.h:106:21: error: cannot convert ‘const char*’ to ‘StyleFactory*’ in initialization
106 | StylePtr(), “The Return”},
| ^~~~~~~~~~~~
| |
| const char*
exit status 1
Error compiling for board Proffieboard V2.

If you look here at the common errors, you’ll see it’s likely a mismatch of NUM_BLADES and number of styles in each preset. They need to be the same.
Home · profezzorn/ProffieOS Wiki · GitHub.

Although, you should post your config, because if that reported line is as it says it is, your style is straight up missing.
StylePtr(), “The Return”}, is just nothing.

Here is the font I am attempting to add to my saber exactly how I have it in my config file:

{ “19-The_Return”, “”,
StylePtr<Layers<Stripes<5000,-1500,RotateColorsX<Variation,Red>,RotateColorsX<Variation,Rgb<60,0,0>>,RotateColorsX<Variation,Rgb<255,50,50>>,
RotateColorsX<Variation,Rgb<128,0,0>>>,AlphaL<BrownNoiseFlicker<RotateColorsX<Variation,Red>,Black,300>,SwingSpeed<400>>,TransitionEffectL<TrConcat<TrInstant,BrownNoiseFlickerL<AlphaL<White,Int<16000>>,
Int<50>>,TrSmoothFade<600>>,EFFECT_LOCKUP_END>,ResponsiveLockupL<Strobe<White,BrownNoiseFlicker<White,Blue,300>,50,1>,TrConcat<TrInstant,White,TrFade<400>>,TrFade<100>,
Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>,Scale<SwingSpeed<100>,Int<10000>,Int<14000>>>,LockupTrL<Stripes<3000,-2000,RandomBlink<30000,Strobe<Rgb<125,
125,225>,White,50,1>,Rgb<75,75,150>>,RandomPerLEDFlicker<Rgb<20,20,100>,Rgb<100,100,150>>>,TrWipe<200>,TrWipe<200>,SaberBase::LOCKUP_LIGHTNING_BLOCK>,ResponsiveStabL<Orange,TrWipeIn<600>,TrWipe<600>>,
ResponsiveBlastWaveL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,ResponsiveBlastWaveL<White,Int<300>,Int<100>,Int<300>,Scale<BladeAngle<0,16000>,
Int<10000>,Int<30000>>,Int<10000>,EFFECT_CLASH>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,
LockupTrL<AlphaL<Mix<TwistAngle<>,Coral,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrConcat<TrWipeIn<200>,RandomBlink<30000,White,Black>,
TrWipeIn<200>,Mix<SmoothStep<Scale<SlowNoise<Int<30000>>,Int<1000>,Int<6000>>,Int<-3000>>,Black,White>,TrDelay<400>,Mix<SmoothStep<Int<4000>,Int<-3000>>,Black,White>,TrWipe<300>>,
TrWipeIn<1100>,Black>,TransitionEffectL<TrConcat<TrDelay<300>,AlphaL<RandomPerLEDFlickerL,SmoothStep<Int<6000>,Int<-4000>>>,TrDelay<7700>>,EFFECT_PREON>,TransitionEffectL<TrConcat<TrWipeIn<200>,
BrownNoiseFlickerL<White,Int<200>>,TrWipeIn<200>>,EFFECT_PREON>>>(),

StylePtr<WHITE>(), "The Return"},

Yeah but need to see it in context.
Put the whole config in backticks like this

config file pasted here

Screen Shot 2021-12-16 at 11.55.29 AM

s3config.h (54.2 KB)

The preset starting on line 93 only seems to have two styles in it, all the other presets have four styles in it, which is correct since NUM_BLADES is 4.

Okay I’m understanding the problem more now. What would be the best way to solve this issue considering the preset on line 93 is what I copied exactly from the font I am trying to add and is not from the preinstalled styles. I tried putting the downloaded blade style into the proffie style editor and everything seemed to work on there.
What is my best course of action from here? Should I copy and paste two more styles from preexisting fonts and add them to it?

Yes, that would make sense.
Fonts may come with some styles, but they are generally just for the main blade. Using some of the styles you already have to fill out the rest is almost certainly the right thing to do.

I was able to successfully verify the config file and upload the new font. However, I have now ran into another issue. Now all of my fonts, when ignited, the light does not extend to the end of the blade but rather stops about 3 inches short of the tip of the blade. What can I do to fix that?

Thank you for helping and being patient with me as I learn all about this.

I suggest just clearly visually marking where each style starts. Look below here and it’s much easier to find the presets that do not contain 4 styles. (Edited to a few presets for example)


   Preset blade[] = {

	//Fully Responsive RandomFlicker Blade Style ( DodgerBlue ) (animated)
    { "1-SABERTRIO", "",
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,DodgerBlue>,RotateColorsX<Variation,Rgb<0,20,128>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<Rgb<255,150,0>>,
	Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,
	AlphaL<Moccasin,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,TransitionEffect<Rgb<255,150,0>,
	Moccasin,TrInstant,TrFade<200>,EFFECT_LOCKUP_BEGIN>,TrFade<400>>,TrConcat<TrInstant,TransitionEffect<Moccasin,Rgb<255,150,0>,TrInstant,TrFade<200>,
	EFFECT_LOCKUP_BEGIN>,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<TransitionEffect<Rgb<255,150,0>,Moccasin,TrInstant,TrFade<50>,EFFECT_BLAST>,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,
	SimpleClashL<TransitionEffect<Rgb<255,150,0>,Moccasin,TrInstant,TrFade<100>,EFFECT_CLASH>>,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,300>,TrWipeIn<600>,Black>,TransitionEffectL<TrConcat<TrWipe<1000>,
	AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,TrDelay<2000>,AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,
	TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>>>(),
	
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,DodgerBlue>,RotateColorsX<Variation,Rgb<0,20,128>>>,ResponsiveLightningBlockL<AlphaL<Red,Int<0>>,
	TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
	InOutTrL<TrWipe<300>,TrWipeIn<600>,Black>>>(),	
   
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,DodgerBlue>,RotateColorsX<Variation,Rgb<0,20,128>>>,ResponsiveLightningBlockL<AlphaL<Red,Int<0>>,
	TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
	InOutTrL<TrWipe<300>,TrWipeIn<600>,Black>>>(),

StylePtr<WHITE>(), "Sabertrio"},
      
   
	//Fully Responsive RandomFlicker Blade Style ( Red ) (animated)
	{ "2-DARK_EDITION", "",
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,Red>,RotateColorsX<Variation,Rgb<128,0,0>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<Rgb<255,150,0>>,
	Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,
	AlphaL<Moccasin,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,TransitionEffect<Rgb<255,150,0>,
	Moccasin,TrInstant,TrFade<200>,EFFECT_LOCKUP_BEGIN>,TrFade<400>>,TrConcat<TrInstant,TransitionEffect<Moccasin,Rgb<255,150,0>,TrInstant,TrFade<200>,
	EFFECT_LOCKUP_BEGIN>,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<Orange,TrWipeIn<600>,TrWipe<600>>,ResponsiveBlastL<TransitionEffect<Rgb<255,150,0>,Moccasin,TrInstant,TrFade<50>,EFFECT_BLAST>,Int<400>,
	Scale<SwingSpeed<200>,Int<100>,Int<400>>>,SimpleClashL<TransitionEffect<Rgb<255,150,0>,Moccasin,TrInstant,TrFade<100>,EFFECT_CLASH>>,
	LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,
	Rgb<255,200,0>,DarkOrange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<300>,TrWipeIn<600>,Black>,
	TransitionEffectL<TrConcat<TrWipe<1000>,AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,TrDelay<2000>,AlphaL<Mix<BatteryLevel,Red,Green>,
	SmoothStep<BatteryLevel,Int<-10>>>,TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>>>(),
	
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,Red>,RotateColorsX<Variation,Rgb<128,0,0>>>,ResponsiveLightningBlockL<AlphaL<Red,Int<0>>,
	TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
	InOutTrL<TrWipe<300>,TrWipeIn<600>,Black>>>(),
   
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,Red>,RotateColorsX<Variation,Rgb<128,0,0>>>,ResponsiveLightningBlockL<AlphaL<Red,Int<0>>,
	TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
	InOutTrL<TrWipe<300>,TrWipeIn<600>,Black>>>(),
	
StylePtr<WHITE>(), "Dark Edition"},

	
	//Fully Responsive RandomFlicker Blade Style ( Red ) (animated)
	{ "19-The_Return", "",
StylePtr<Layers<Stripes<5000,-1500,RotateColorsX<Variation,Red>,RotateColorsX<Variation,Rgb<60,0,0>>,RotateColorsX<Variation,Rgb<255,50,50>>,
	RotateColorsX<Variation,Rgb<128,0,0>>>,AlphaL<BrownNoiseFlicker<RotateColorsX<Variation,Red>,Black,300>,SwingSpeed<400>>,TransitionEffectL<TrConcat<TrInstant,BrownNoiseFlickerL<AlphaL<White,Int<16000>>,
	Int<50>>,TrSmoothFade<600>>,EFFECT_LOCKUP_END>,ResponsiveLockupL<Strobe<White,BrownNoiseFlicker<White,Blue,300>,50,1>,TrConcat<TrInstant,White,TrFade<400>>,TrFade<100>,
	Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>,Scale<SwingSpeed<100>,Int<10000>,Int<14000>>>,LockupTrL<Stripes<3000,-2000,RandomBlink<30000,Strobe<Rgb<125,
	125,225>,White,50,1>,Rgb<75,75,150>>,RandomPerLEDFlicker<Rgb<20,20,100>,Rgb<100,100,150>>>,TrWipe<200>,TrWipe<200>,SaberBase::LOCKUP_LIGHTNING_BLOCK>,ResponsiveStabL<Orange,TrWipeIn<600>,TrWipe<600>>,
	ResponsiveBlastWaveL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,ResponsiveBlastWaveL<White,Int<300>,Int<100>,Int<300>,Scale<BladeAngle<0,16000>,
	Int<10000>,Int<30000>>,Int<10000>,EFFECT_CLASH>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,
	LockupTrL<AlphaL<Mix<TwistAngle<>,Coral,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrConcat<TrWipeIn<200>,RandomBlink<30000,White,Black>,
	TrWipeIn<200>,Mix<SmoothStep<Scale<SlowNoise<Int<30000>>,Int<1000>,Int<6000>>,Int<-3000>>,Black,White>,TrDelay<400>,Mix<SmoothStep<Int<4000>,Int<-3000>>,Black,White>,TrWipe<300>>,
	TrWipeIn<1100>,Black>,TransitionEffectL<TrConcat<TrDelay<300>,AlphaL<RandomPerLEDFlickerL<White>,SmoothStep<Int<6000>,Int<-4000>>>,TrDelay<7700>>,EFFECT_PREON>,TransitionEffectL<TrConcat<TrWipeIn<200>,
	BrownNoiseFlickerL<White,Int<200>>,TrWipeIn<200>>,EFFECT_PREON>>>(),
	
StylePtr<WHITE>(), "The Return"},
	
	
	//Fully Responsive RandomFlicker Blade Style ( Green ) (prequel)
	{ "4-THE_BALANCE","" ,
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,Green>,RotateColorsX<Variation,Rgb<0,128,0>>>,LockupTrL<Layers<AlphaL<AudioFlickerL<Rgb<255,225,0>>,
	Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,AlphaL<NavajoWhite,
	Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,TransitionEffect<Rgb<255,225,0>,NavajoWhite,
	TrInstant,TrFade<200>,EFFECT_LOCKUP_BEGIN>,TrFade<400>>,TrConcat<TrInstant,TransitionEffect<NavajoWhite,Rgb<255,225,0>,TrInstant,TrFade<200>,EFFECT_LOCKUP_BEGIN>,
	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<TransitionEffect<Rgb<255,225,0>,NavajoWhite,TrInstant,TrFade<50>,EFFECT_BLAST>,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,
	SimpleClashL<TransitionEffect<Rgb<255,225,0>,NavajoWhite,TrInstant,TrFade<100>,EFFECT_CLASH>>,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,300>,TrWipeIn<900>,Black>,TransitionEffectL<TrConcat<TrWipe<1000>,
	AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,TrDelay<2000>,AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,
	TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>>>(),
	
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,Green>,RotateColorsX<Variation,Rgb<0,128,0>>>,ResponsiveLightningBlockL<AlphaL<Red,Int<0>>,
	TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
	InOutTrL<TrWipe<300>,TrWipeIn<900>,Black>>>(),
   
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,Green>,RotateColorsX<Variation,Rgb<0,128,0>>>,ResponsiveLightningBlockL<AlphaL<Red,Int<0>>,
	TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
	InOutTrL<TrWipe<300>,TrWipeIn<900>,Black>>>(),
	
StylePtr<WHITE>(), "The Balance"},

As far as your blade length, that’s the number set for the main blade in the BladeConfig array towards the bottom.
If you do not know the exact amount your blade has, you can use LengthFinder style easily follow the instructions on this page:

I was able to fix the issue by changing the led number in the config file. Everything is now working properly. Thank you guys for all your help I really appreciate it.

1 Like