"Please set CONFIG FILE as shown above"

In series–and the blade config is too short?

Hmm that is interesting…but then the RGB values are 0, 0, 255 and if only one LED is wired then that one works like a charm.

Yeah the bottom LED just has the same wires run up to the top LED so it’s wired in series. What do you mean by the blade config being too short? This is what I grabbed from the Fredrik Hubbe website, just had to change one of the power pins due to my wiring setup.

The one blade ptr has three pixels… ptr<2… If there a’re are more pixels, such as a second set of pixels wired in series, increasing the pixel count could get them to turn on. E.g… ptr<15

That one actually does have just 2 pixels (moot point for what you’re explaining, but I feel the need to clarify)

WS281XBladePtrs have pixel numbers entered in 1-indexed, it’s SubBlades that have pixel numbers 0-indexed.

Thanks for calling out the nuance, ryryog25, I was trying to diagnose a CC not lighting up… but lighting up when another CC was removed. Not having enough pixels in the bladePtr to cover a series is an easy fix…

I also noticed you don’t have:

> #define SHARED_POWER_PINS

You have bladePin and blade2Pin using bladePowerPin2+bladePowerPin3 so you should have shared power pins enabled.

I’d still suggest making the third blade config bigger to see if more pixels light up:

> WS281XBladePtr<15, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >()

1 Like

I enabled the shared power pins and changed the blade to be 15 instead of 2, but no change. Is there an issue with the config saying 4 blades at the top when really there’s only 3? In my mind there’d only be two, the actual blade neopixel and then a crystal chamber with 2 LEDs, but since they’re wired in series wouldn’t that more or less just be 2 blades?

Another oddity is the distorted sound; just re-uploaded the proffie V3 verification config and the sound is crystal clear.

I also keep getting a “Font directory not found” on both my config file and the verification file, yet the saber is indeed using the sound font I bought and uploaded.

Do you have a “common” directory on your SD card?

I do, I have a common folder and my purchased sound font folder as well as a copy of my config file

Ok, so what does the serial monitor say?

I’m not sure what that is (this is my first Proffie build, so this is all entirely new to me)

First, on the pixels not lighting up:

A “blade” is a construct that allows you to independently control the pixels within a collection–they aren’t always actual blades, and can also be crystal chambers, accent lights, or the emitter pcb.

Let’s break down what you have shared in your BladeConfig:

> WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()

This is your main blade. The data is on bladePin (data pin 1) and your power is on bladePowerPin2 and bladePowerPin3.

> SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
>     SubBladeWithStride(1, 15, 2, NULL)

This should be your emitter PCB. The data is on blade2Pin and the power comes from bladePowerPin2 and bladePowerPin3. This suggests you have a Shtok NPXL 3 connector wired in V4–blade and emitter are independent. This doesn’t need to be two blades, you could use a single blade definition without SubBladeWithStride–but that lets you independently control the outside and inside pixels, which many like to do. Here is the NPXL manual–page 5 shows how the pixels are laid out which explains how the subbladewithstride groups the inner and outer pixels. ( NPXL Connector User Manual V3.pdf - Google Drive)

Lastly, you have:

> WS281XBladePtr<2, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >()

which you mentioned you increased to W281XBladePtr<15. This should be your crystal chambers, which should be wired in series with data on blade3Pin using bladePowerPin4 as your LED power.

That gets you to 4 blades–but you could configure it as only 3 if you did not split the emitter into two.

Each of these blades needs a blade config. You have 1 preset with four blade styles. The first two are from Fett’s site. The second two are both:
StylePtr<Black>().

As Profezzorn said earlier, those will not light up.
You should replace those with something simple–perhaps a plain color different from your other blade styles.

I’m not sure why you get one LED to light up when connected one way, and a different LED to light up when connected a different way–this sounds like you might have a wiring issue. What exactly isn’t lighting, and how is it wired? You mentioned they are in series–so data pin 3 from the proffieboard goes to data in on the first LED-pixel and data out from that one goes to data in on the other? and both are wired to Batt+ and LED4?

Next: on the Font directory not found. Another person I recently helped had a directory issue. You need to have a folder at the root level of your SD card called:
HeroPack

with the exact matching capitalization. the contents of that folder needs to be the font files proffie is looking for. The zipfile for that is normally called Hero’s_Pack, and that contains folders for Asteria, CFX, Proffie, Verso, and Xeno3. If your HeroPack folder contains Proffie or a different folder, it will give you an error. Same with common. The folder name needs to be at the root level and contain the expected files. Depending on where and when you got your common folder, you might also try replacing it–some files might be missing.

2 Likes

What command should I be giving the serial monitor to pull the information you’re looking for?

Ahh, I see. That makes sense on the blades. I’ve now changed the second two blades to each be StylePtr()
Is that sufficient or does it need an entire config like the first two?

For the wiring, it is wired how it is shown in the diagram except I’m using a V3 proffie. The positive is indeed going to Batt+, negatives to LED4, and my data is to Data2. When I disconnect the top crystal chamber LED, the bottom one will light. As soon as I connect the top LED to the bottom as shown in the diagram, neither will light. Even if there’s an issue with the top LED, wouldn’t the bottom still light since it is in series? I’ll also point out that the positive and negatives are swapped on the diagram but I caught that during my install, so I don’t think that’s my issue.

Hmm, yeah on my SD card folder I have HeroPack, common, and a copy of my config file. Inside each pack are just sound (.wav), a few ini, and some txt files.

My crystal chamber works now!

After painstakingly removing the top Neopixel and removing the liquid electrical tape, it works. Not sure why that affected it, I didn’t have to remove or rewire anything.

Now onto the directory and sound distortion issues, once I get these the saber will be complete!

What’s inside HeroPack though?
What fonts do your presets in the config ask for?
You should post your config file. Use 3 backticks, paste the contents of the config after them, then return and 3 more backticks.

```
Like this
```
// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 4
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 60
#define VOLUME 1000
#define CLASH_THRESHOLD_G 3
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#define MOTION_TIMEOUT 60 * 5 * 1000
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define SAVE_VOLUME
#define SAVE_COLOR_CHANGE
#define SAVE_PRESET
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_MAX_CLASH 16
#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_HOLD_BUTTON_LOCKUP
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#endif

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


#ifdef CONFIG_PRESETS

Preset presets[] = {
{ "HeroPack;common",  "",
/* copyright Fett263 Rotoscope (Primary Blade) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v2.241p
Single Style
Base Style: Audio Rotoscope - Single Color (Prequels)

Base Color: BaseColorArg (0)

--Effects Included--
Ignition Effect: SparkTip Ignition [Color: IgnitionColorArg]
Retraction Effect: Standard Retraction [Color: RetractionColorArg]
Lockup Effect:
0: mainLockMulti0Shape - Begin: Real Clash - Style: Intensity AudioFlicker - End: Full Blade Absorb
[Color: LockupColorArg]
Lightning Block Effect:
0: mainLBMulti0Shape - Begin: Responsive Impact - Style: Strobing AudioFlicker - End: Full Blade Absorb
[Color: LBColorArg]
Drag Effect:
0: mainDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: mainMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
Blast Effect: Blast Fade (Random) [Color: BlastColorArg]
Clash Effect: Random Clash [Color: ClashColorArg]
Battery Level: % Blade (Green to Red)
*/
StylePtr<Layers<AudioFlicker<Stripes<24000,-1400,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<11565>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<16448>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,TransitionEffectL<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>>,EFFECT_BLAST>,TransitionEffectL<TrConcat<TrInstant,AlphaMixL<Bump<EffectPosition<EFFECT_CLASH>,Scale<ClashImpactF<>,Int<9000>,Int<12000>>>,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>>>,TrFade<300>>,EFFECT_CLASH>,LockupTrL<TransitionEffect<AlphaL<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,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,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,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,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,TrExtend<5000,TrInstant>,TrFade<5000>,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,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,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>,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Int<10000>,Int<21000>>,Int<10000>>>,TrFade<200>>,TrConcat<TrInstant,RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,Int<1>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrWipeSparkTipX<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,BendTimePowInvX<IgnitionTime<200>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,TrWipeInX<BendTimePowInvX<RetractionTime<0>,Mult<IntArg<RETRACTION_OPTION2_ARG,10992>,Int<98304>>>>,Black>,TransitionEffectL<TrConcat<TrJoin<TrDelay<2000>,TrWipe<1000>>,AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>>>(),

/* copyright Fett263 (Crystal Chamber) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v2.241p
Single Style
On Behavior: Solid Color [Color: BaseColorArg]
Off Behavior: Fast Pulse Dim-On [Color: Match ON Color]

Base Color: BaseColorArg (0)

--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
Lockup Effect: NoneLightning Block Effect: NoneDrag Effect:
0: crystalDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: crystalMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
*/
StylePtr<Layers<RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,31000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrInstant,TrInstant,Pulsing<Mix<Int<8192>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,2000>>>>(),

StylePtr<White>(),

StylePtr<White>(),

"OWK3 Style"
},

};

BladeConfig blades[] = {
 { 0, WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
    SubBladeWithStride(1, 15, 2, NULL),
    WS281XBladePtr<15, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >()
  , CONFIGARRAY(presets) },
};
#endif

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

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