Error in Font Directory - Issues With Edit Mode (Newbie)

I’m a first timer using a Proffieboard to replace the board in a Xenopixel I purchased from SaberForge. So far, the wiring job seems to be successful. Blade, illuminated button (just 1 for now), speaker, SD card, all seem fine. The problem I’m experiencing is that whenever I try to go into the edit menu (double press and hold power) I hear it say “Error in font directory”. I’ve looked through the forum posts and followed the instructions to the best of my ability but haven’t been able to find a solution yet.

I’m currently just starting with the basic free fonts provided at hubbe.net to get things going and tested.

I’m running ProffieOS v7.14 on a Proffieboard v3.9.

I’ve copied the voice files from English voice pack C (also tried A) into a folder named “common” in the SD card’s root directory.

My config file currently reads as follows:

// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 1
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 75
#define VOLUME 1500
#define CLASH_THRESHOLD_G 3.0
#define AUDIO_CLASH_SUPPRESSION_LEVEL 10
#define PROFFIEOS_ACCELEROMETER_RANGE 16
#define PROFFIEOS_MOTION_FREQUENCY 1600
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define KILL_OLD_PLAYERS
#define MOTION_TIMEOUT 60 * 15 * 1000
#define IDLE_OFF_TIME 60 * 10 * 1000
#define DISABLE_BASIC_PARSER_STYLES
//#define DISABLE_DIAGNOSTIC_COMMANDS
#define PROFFIEOS_LOG_LEVEL 1000
#define ENABLE_ALL_EDIT_OPTIONS
#define SAVE_PRESET
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define FETT263_EDIT_MODE_MENU
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_MAX_CLASH 16
#define FETT263_MULTI_PHASE
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_HOLD_BUTTON_OFF
#define FETT263_USE_BC_MELT_STAB
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_SWING_ON_SPEED 500
#define FETT263_SWING_ON_PREON
#define FETT263_SWING_ON_NO_BM
#define FETT263_THRUST_ON_PREON
#define FETT263_THRUST_ON_NO_BM
#define FETT263_STAB_ON_PREON
#define FETT263_STAB_ON_NO_BM
#define FETT263_TWIST_OFF
#define FETT263_FORCE_PUSH_ALWAYS_ON
#define FETT263_FORCE_PUSH_LENGTH 5
#endif

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


#ifdef CONFIG_PRESETS
Preset presets[] = {
   { "TeensySF", "tracks/venus.wav",
    StyleNormalPtr<CYAN, WHITE, 300, 800>(), "cyan"},
   { "SmthJedi", "tracks/mars.wav",
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(), "blue"},
   { "SmthGrey", "tracks/mercury.wav",
    StyleFirePtr<RED, YELLOW>(), "fire"},
   { "SmthFuzz", "tracks/uranus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(), "red"},
   { "RgueCmdr", "tracks/venus.wav",
    StyleFirePtr<BLUE, CYAN>(), "blue fire"},
   { "TthCrstl", "tracks/mars.wav",
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(), "green"},
   { "TeensySF", "tracks/mercury.wav",
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(), "white"},
   { "SmthJedi", "tracks/uranus.wav",
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(), "yellow"},
   { "SmthGrey", "tracks/venus.wav",
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(), "magenta"},
   { "SmthFuzz", "tracks/mars.wav",
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(), "gradient"},
   { "RgueCmdr", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(), "rainbow"},
   { "TthCrstl", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(), "strobe"},
   { "TeensySF", "tracks/venus.wav",
    &style_pov, "POV"},
   { "SmthJedi", "tracks/mars.wav",
    &style_charging, "Battery\nLevel"}
};

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

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
#endif

 /* Generated with Fett263 Config Helper v3.10 */

The result of the serial command “effects” is as follows:

Found swingh files: 1-8 using 2 digits in TeensySF
Found swingl files: 1-8 using 2 digits in TeensySF
Found swng files: 1-16 using 2 digits in TeensySF
Found lock files: 1-1 using 2 digits in TeensySF
Found out files: 1-5 using 2 digits in TeensySF
Found in files: 1-2 using 2 digits in TeensySF
Found clsh files: 1-16 using 2 digits in TeensySF
Found blst files: 1-4 using 2 digits in TeensySF
Found font files: one unnumbered file in TeensySF
Found force files: 1-1 using 2 digits in TeensySF
Found hum files: 1-1 using 2 digits in TeensySF
Found boot files: one unnumbered file in TeensySF
Done listing effects.

The serial monitor says “Edit Mode prompts missing” whenever I double click and hold the power button.

Any help would be deeply appreciated. Very eager to get this saber working properly!

You added common to the SD card, but don’t have it specified in the presets.
{ "TeensySF", "tracks/venus.wav",
needs to be
{ "TeensySF;common", "tracks/venus.wav",
Add it like that for all presets.

2 Likes

That did the trick! Thank you very much!

Don’t forget to mark his reply as the solution :wink:

(To make it easy if anyone comes here from Google/searching)

Also, none of those Styles looks like they even support EDIT MODE.

You should go here and use the web tool to create new ones, with all the options you want. :slight_smile:

https://www.fett263.com/fett263-proffieOS7-style-library.html#fett263

When you click Get Code when finished calibrating the settings for a style, it copies it to clipboard.

Then in the style code for a font, for example this one:

 { "RgueCmdr", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(), "rainbow"},

You would replace only the following bit with what is copied from the OS7 style library:

StyleRainbowPtr<300, 800>()

For clarity in case @Upquark needs it, the correct steps are while adding in the provision to pull from the common folder you would then insert the new style code within the bracketing leaving the beginning and ending bracket script. What you show as the final result leaves out the start and end of the preset information needed and that will not compile.

Visually then the way is such that this:

{ "RgueCmdr", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(), "rainbow"},

Becomes this:

//You have your preface with the inclusion of common.
{ "RgueCmdr;common", "tracks/mercury.wav", 

//You have your new style here, such as this. 
//*Basic bladestyle edit used as example only.
StyleRainbowPtr<130, 900>(),

//Then you have your closing.
"rainbow"},

Leaving the beginning and ending out will result in more errors. Following the simple rule of only changing the bladestyle code itself while you learn helps to “see” how it’s done.

Begin slow and follow steps, ideally using a copy config rather then editing your original so if you make an error you can read the prior work to consult as to what was working versus what may not be working.

From there you can customize further. MTFBWY

1 Like

Just to clarify the clarification, @BlackDragonN001
did specify to replace just the blade style and did not suggest to omit the opening and closing of the preset.

I see that, it just read in a way that people may confuse it is all. :slight_smile:

It would then be (example OS7 bladestyle):

{ "FallenBlue;common", "tracks/opening_credits.wav", 
/* copyright Fett263 JediSurvivor (Primary Blade) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#JediSurvivor
OS7.14 v2.241p
Single Style
Base Style: Cal Kestis Survivor Green
Base Color: BaseColorArg (0)
--Effects Included--
Ignition Effect: Glitch On [Color: IgnitionColorArg]
Retraction Effect: Glitch Off [Color: RetractionColorArg]
Lockup Effect:
0: mainLockMulti0Shape - Begin: Full Blade Flash - Style: Intensity AudioFlicker - End: Full Blade Absorb
[Color: LockupColorArg]
Lightning Block Effect:
0: mainLBMulti0Shape - Begin: Full Blade Flash - Style: Strobing AudioFlicker - End: Full Blade Absorb
[Color: LBColorArg]
Drag Effect:
0: mainDragMulti0Shape - Begin: Wipe In - Style: AudioFlicker - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: mainMeltMulti0Shape - Begin: Wipe In - Style: Intensity Fire Melt - End: Wipe Out
[Color: StabColorArg]
Blast Effect: Blast Wave (Sound Based) [Color: BlastColorArg]
Clash Effect: Responsive Clash with Wave [Color: ClashColorArg]
*/
StylePtr<Layers<StripesX<Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<4000>,Int<1800>>,Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<2000>,Int<4000>>,Int<-2800>,Int<-4000>>,Mix<Int<16000>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,255,0>>>,Mix<Sin<Int<20>,Int<22000>,Int<32768>>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,255,0>>>,Mix<Int<8000>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,255,0>>>>,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<EffectPosition<EFFECT_BLAST>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,TransitionEffectL<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>>>>,EFFECT_CLASH>,LockupTrL<TransitionEffect<AlphaL<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<22000>>>,AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,BrownNoiseFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,300>>,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<22000>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<20000>,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>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,TrExtend<5000,TrInstant>,TrFade<5000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<300>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL,Int<1>>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrExtend<200,TrInstant>,RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,TrFade<200>>,TrConcat<TrInstant,RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,Int<1>>,LockupTrL<AlphaL<AudioFlicker<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<8164>,Black,RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Layers<Stripes<2000,4000,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,Mix<Sin<Int<50>>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>,Mix<Int<4096>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,TransitionPulseL<TrConcat<TrExtend<4000,TrInstant>,Stripes<2000,3000,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,Mix<Sin<Int<30>>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>,Mix<Int<8192>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,TrFade<4000>>,LockupPulseF<SaberBase::LOCKUP_MELT>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,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>>>(),

"cal kestis"},