Proffie 3.9 Turning off when using blade ID

Hi,
This is my first topic.

I have a problem when trying to use Blade ID with a proffie 3.9 board.

I have a short blade with 55 pixels and a long blade with 125 pixels.
The short blade works fine.
The long blade is not working with blade id.
The board detects the correct ID.
But when i try to ignite it, the blade starts flashing. The first few pixels are flashing and the Serial Monitor shows the following Message:

22:06:01.705 → BLADE ID: 9280.15
22:06:01.705 → blade = 0
22:06:01.705 → WS2811 Blade with 125 leds.
22:06:01.705 → WS2811 Blade with 4 leds.
22:06:01.705 → Turning off 0.00@0123
22:06:01.705 → Turning off 0.00@0123
22:06:01.705 → Turning off 0.00@0123
22:06:01.705 → Turning off 0.00@0123
22:06:01.705 → Turning off 0.00@0123

The blade works fine with the same board, if I don’t use blade ID.

For the short blade I used a 100k ohm resistor for Blade ID. ID reading is about 9900.
For the long blade I used a 47k ohm resistor for Blade ID. ID reading is about 9300.

Wonder why they measure so close.
Can you post your config file to see if it looks reasonable?

What version of ProffieOS do you have?

Thank you for the quick answer.

I use the latest master version from Github.

I have a blade connector with pogo pins and 9 neopixels.
The main blade has 2 strips of neopixels in parallel
The blade id resistor is between Data and GND on the blade.
And I have a crystal chamber with 4 pixels as a second blade.

Here is my config:

#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 4
#define NUM_BUTTONS 2
#define VOLUME 1200
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD

//Blade ID Settings
#define SHARED_POWER_PINS
#define ENABLE_POWER_FOR_ID PowerPINS<bladePowerPin2, bladePowerPin3>

#define BLADE_ID_SCAN_MILLIS 1000
#define BLADE_ID_TIMES 10

#define NO_BLADE_ID_RANGE 17500,19500

#define ORIENTATION ORIENTATION_USB_TOWARDS_BLADE

// https://fett263.com/fett263-os7-config-helper.html

#define ENABLE_ALL_EDIT_OPTIONS //Edit through USB
#define FETT263_EDIT_MODE_MENU
#define DISABLE_BASIC_PARSER_STYLES

#define MOTION_TIMEOUT 60 * 3 * 1000 //gesture ignition timeout 3 minutes
#define IDLE_OFF_TIME  60 * 5 * 1000 //time to turn off all LEDs

#define COLOR_CHANGE_DIRECT
#define DISABLE_DIAGNOSTIC_COMMANDS //save space
#define NO_REPEAT_RANDOM

#define FETT263_QUICK_SELECT_ON_BOOT //Enables Preset Selection Menu on Boot

//#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_SAY_BATTERY_VOLTS

#define FETT263_MULTI_PHASE

//#define FETT263_TWIST_ON_NO_BM
//#define FETT263_TWIST_ON
//#define FETT263_TWIST_OFF

//#define FETT263_STAB_ON_NO_BM
//#define FETT263_STAB_ON

//#define FETT263_SWING_ON_SPEED 500
//#define FETT263_SWING_ON_NO_BM
//#define FETT263_SWING_ON
//#define FETT263_SWING_OFF

//#define FETT263_THRUST_ON
//#define FETT263_THRUST_OFF

#define FETT263_DISABLE_COPY_PRESET

#endif

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

#endif

#ifdef CONFIG_PRESETS
Preset presets_long[] = {
  { "Darth Vader 6;MC", "tracks/Darth Vader 6.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Darth Vader 6"},
  { "SmthFuzz;common", "tracks/mars.wav",
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "gradient"},
  { "RgueCmdr;common", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "rainbow"},
  { "TthCrstl;common", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "strobe"},
  { "KyloRenTLJ;MC", "tracks/KyloRenTLJ.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "KyloRenTLJ"},
  { "Ben;MC", "tracks/Ben.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Cyan,DeepSkyBlue>,Pulsing<Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Ben"},
  { "Luke;MC", "tracks/Luke.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Green,Rgb16<0,38402,0>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Luke"},
  { "ObiWan 3;MC", "tracks/ObiWan 3.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "ObiWan 3"},
  { "Darksaber;MC", "tracks/Darksaber BOBF.wav",
    StylePtr<Layers<  StyleFire<Stripes<2500,-5000,BrownNoiseFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black,20>,RotateColorsX<Variation,Rgb<4,4,6>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<115,115,170>>,70>,RotateColorsX<Variation,Rgb<50,50,75>>>,RotateColorsX<Variation,Rgb<31,31,47>>,0,5,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>>,  TransitionEffectL<TrConcat<TrFade<400>,RotateColorsX<Variation,Rgb<175,175,225>>,TrDelay<1000>,RotateColorsX<Variation,Rgb<175,175,225>>,TrFade<800>>,EFFECT_FORCE>,  AlphaL<Stripes<1000,-2000,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black>,White,RotateColorsX<Variation,Rgb<100,100,150>>,White>,SwingSpeed<600>>,  LockupTrL<Layers<    AlphaL<AudioFlickerL<Red>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,    AlphaL<Red,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,AlphaL<Mix<SmoothStep<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<1000>>,Stripes<1500,2000,White,Rgb<100,100,150>>,Stripes<1500,-2500,White,Rgb<100,100,150>>>,Int<18000>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,  ResponsiveLightningBlockL<Strobe<Red,AudioFlicker<Red,Black>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<Red,Int<16000>>,30>,TrSmoothFade<600>>>,  AlphaL<White,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,  MultiTransitionEffectL<TrConcat<TrDelay<300>,RandomPerLEDFlickerL<Red>,TrDelay<1000>,RandomPerLEDFlickerL<Red>,TrFade<500>>,EFFECT_STAB>,  AlphaL<Mix<IsLessThan<BladeAngle<>,Int<26000>>,MultiTransitionEffectL<TrConcat<TrWipeIn<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipeIn<200>>,EFFECT_STAB>,MultiTransitionEffectL<TrConcat<TrWipe<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipe<200>>,EFFECT_STAB>>,Int<32768>>,  ResponsiveBlastWaveL<Red,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,  ResponsiveBlastWaveL<Red,Int<300>,Int<100>,Int<300>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>,EFFECT_CLASH>,  AlphaL<Black,SmoothStep<Scale<SlowNoise<Int<2400>>,Int<22000>,Int<40000>>,Int<22000>>>,  LockupTrL<AlphaL<BrownNoiseFlickerL<Red,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<TrWipe<300>,TrWipeIn<500>>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<BrownNoiseFlickerL<RotateColorsX<Variation,Rgb<100,100,150>>,Int<30>>,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,TrDelay<2000>>,EFFECT_RETRACTION>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<Mix<Trigger<EFFECT_PREON,Int<3000>,Int<2000>,Int<1000>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<100,100,150>>,100>,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Rgb<50,50,50>>,BrownNoiseFlicker<Mix<NoisySoundLevel,RotateColorsX<Variation,Rgb<100,100,150>>,RotateColorsX<Int<4000>,RotateColorsX<Variation,Rgb<100,100,150>>>>,White,50>>,SmoothStep<Scale<NoisySoundLevel,Int<-10000>,Int<36000>>,Int<-4000>>>,TrDelay<6000>>,EFFECT_PREON>>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Darksaber"},
  { "Yoda;MC", "tracks/Yoda.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<Layers<Green,AlphaL<Green,Int<16000>>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,500,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Yoda"},
   { "TeensySF;common", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
   { "SmthJedi;common", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"},
};
Preset presets_short[] = {
  { "SmthFuzz;common", "tracks/mars.wav",
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "gradient"},
  { "RgueCmdr;common", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "rainbow"},
  { "TthCrstl;common", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "strobe"},
  { "KyloRenTLJ;MC", "tracks/KyloRenTLJ.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>>,Gradient<HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<DarkOrange,BrownNoiseFlicker<Red,Black,50>,15>,HumpFlicker<Yellow,Green,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "KyloRenTLJ"},
  { "Ben;MC", "tracks/Ben.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Cyan,DeepSkyBlue>,Pulsing<Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Ben"},
  { "Luke;MC", "tracks/Luke.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Green,Rgb16<0,38402,0>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Luke"},
  { "ObiWan 3;MC", "tracks/ObiWan 3.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Blue,DodgerBlue>,Pulsing<Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>>,3500>,Gradient<AudioFlicker<Blue,DodgerBlue>,AudioFlicker<Blue,DodgerBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "ObiWan 3"},
  { "Darth Vader 6;MC", "tracks/Darth Vader 6.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<AudioFlicker<Red,Rgb16<38402,0,0>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>,AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>>,Gradient<AudioFlicker<Red,Rgb16<38402,0,0>>,AudioFlicker<Red,Rgb16<38402,0,0>>,HumpFlicker<Blue,Cyan,50>>>,Pink>,Pink>,Pink,400>,200,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Darth Vader 6"},
  { "Darksaber;MC", "tracks/Darksaber BOBF.wav",
    StylePtr<Layers<  StyleFire<Stripes<2500,-5000,BrownNoiseFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black,20>,RotateColorsX<Variation,Rgb<4,4,6>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<115,115,170>>,70>,RotateColorsX<Variation,Rgb<50,50,75>>>,RotateColorsX<Variation,Rgb<31,31,47>>,0,5,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>,FireConfig<2,3000,0>>,  TransitionEffectL<TrConcat<TrFade<400>,RotateColorsX<Variation,Rgb<175,175,225>>,TrDelay<1000>,RotateColorsX<Variation,Rgb<175,175,225>>,TrFade<800>>,EFFECT_FORCE>,  AlphaL<Stripes<1000,-2000,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Black>,White,RotateColorsX<Variation,Rgb<100,100,150>>,White>,SwingSpeed<600>>,  LockupTrL<Layers<    AlphaL<AudioFlickerL<Red>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,    AlphaL<Red,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,AlphaL<Mix<SmoothStep<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<1000>>,Stripes<1500,2000,White,Rgb<100,100,150>>,Stripes<1500,-2500,White,Rgb<100,100,150>>>,Int<18000>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,  ResponsiveLightningBlockL<Strobe<Red,AudioFlicker<Red,Black>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<Red,Int<16000>>,30>,TrSmoothFade<600>>>,  AlphaL<White,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,  MultiTransitionEffectL<TrConcat<TrDelay<300>,RandomPerLEDFlickerL<Red>,TrDelay<1000>,RandomPerLEDFlickerL<Red>,TrFade<500>>,EFFECT_STAB>,  AlphaL<Mix<IsLessThan<BladeAngle<>,Int<26000>>,MultiTransitionEffectL<TrConcat<TrWipeIn<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipeIn<200>>,EFFECT_STAB>,MultiTransitionEffectL<TrConcat<TrWipe<200>,BrownNoiseFlickerL<White,Int<200>>,TrWipe<200>>,EFFECT_STAB>>,Int<32768>>,  ResponsiveBlastWaveL<Red,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,  ResponsiveBlastWaveL<Red,Int<300>,Int<100>,Int<300>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>,EFFECT_CLASH>,  AlphaL<Black,SmoothStep<Scale<SlowNoise<Int<2400>>,Int<22000>,Int<40000>>,Int<22000>>>,  LockupTrL<AlphaL<BrownNoiseFlickerL<Red,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<TrWipe<300>,TrWipeIn<500>>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<BrownNoiseFlickerL<RotateColorsX<Variation,Rgb<100,100,150>>,Int<30>>,SmoothStep<Scale<SlowNoise<Int<2000>>,Int<1000>,Int<4000>>,Int<-4000>>>,TrDelay<2000>>,EFFECT_RETRACTION>,  TransitionEffectL<TrConcat<TrInstant,AlphaL<Mix<Trigger<EFFECT_PREON,Int<3000>,Int<2000>,Int<1000>>,BrownNoiseFlicker<Black,RotateColorsX<Variation,Rgb<100,100,150>>,100>,RandomPerLEDFlicker<RotateColorsX<Variation,Rgb<100,100,150>>,Rgb<50,50,50>>,BrownNoiseFlicker<Mix<NoisySoundLevel,RotateColorsX<Variation,Rgb<100,100,150>>,RotateColorsX<Int<4000>,RotateColorsX<Variation,Rgb<100,100,150>>>>,White,50>>,SmoothStep<Scale<NoisySoundLevel,Int<-10000>,Int<36000>>,Int<-4000>>>,TrDelay<6000>>,EFFECT_PREON>>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Darksaber"},
  { "Yoda;MC", "tracks/Yoda.wav",
    StylePtr<InOutHelper<OnSpark<Blast<LocalizedClash<Lockup<Layers<Green,AlphaL<Green,Int<16000>>>,Pulsing<Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,HumpFlicker<OrangeRed,Pink,50>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>,AudioFlicker<Green,Rgb16<0,38402,0>>>,3500>,Gradient<AudioFlicker<Cyan,DeepSkyBlue>,AudioFlicker<Cyan,DeepSkyBlue>,HumpFlicker<Pink,OrangeRed,50>>>,Pink>,Pink>,Pink,400>,500,500>>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "Yoda"},
   { "TeensySF;common", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
   { "SmthJedi;common", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"},
};
Preset presets_without[] = {
   { "TeensySF;common", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
   { "SmthJedi;common", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"},
  { "SmthFuzz;common", "tracks/mars.wav",
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "gradient"},
  { "RgueCmdr;common", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "rainbow"},
  { "TthCrstl;common", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleNormalPtr<RED, Tomato, 300, 800>(),
    StyleNormalPtr<Green, GreenYellow, 300, 800>(),
    StyleNormalPtr<Yellow, WHITE, 300, 800>(), "strobe"},
};

BladeConfig blades[] = {
 { 9360, WS281XBladePtr<125, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),          //Main Blade ==> LONG BLADE 47kOhm Resistor
   SubBlade(0, 0, WS281XBladePtr<4, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >()), //Accents first pixel starting from the bottom
   SubBlade(1, 1, NULL),                                                                                    //Accents second pixel
   SubBlade(2, 3, NULL),                                                                                    //Accents third and fourth uppermost pixel
   CONFIGARRAY(presets_long) },
 { 9900, WS281XBladePtr<55, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),           //Main Blade ==> SHORT BLADE 100kOhm Resistor
   SubBlade(0, 0, WS281XBladePtr<4, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >()), //Accents first pixel starting from the bottom
   SubBlade(1, 1, NULL),                                                                                    //Accents second pixel
   SubBlade(2, 3, NULL),                                                                                    //Accents third and fourth uppermost pixel
   CONFIGARRAY(presets_short) },
 { NO_BLADE , WS281XBladePtr<9, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),           //Main Blade ==> NO BLADE value~ 18300
   SubBlade(0, 0, WS281XBladePtr<4, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >()), //Accents first pixel starting from the bottom
   SubBlade(1, 1, NULL),                                                                                    //Accents second pixel
   SubBlade(2, 3, NULL),                                                                                    //Accents third and fourth uppermost pixel
   CONFIGARRAY(presets_without) },
};

#endif

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

If all else fails, you might want to take a look at the manual Array Selector which is part of my prop file. This would give all the same functionality as BladeID, but instead of the the hilt scanning automatically and deciding what blade is fitted, you click a button to tell it. In your case with only two blade arrays, the button press would simply toggle between your short blade and your long one. It’s also compatible with Blade Detect if you have a BD pin wired, but if not, you can simply have three arrays and cycle between all three manually - no blade, short blade, long blade.

I don’t see anything wrong with your config file, it seems like it should work.
That still leaves a few mysteries:

  1. why are the read values so far from the real values. (V3 boards are supposed to do fairly well at this.)
  2. what is causing the flashing. (IS the flashing happening once per second, when it’s doing the reading, or is it something else?)
  3. does the “turning off” messages in the serial monitor happen only with the 125 led blade or does it happen with the 55led blade too?
  1. I have no idea, but i can confirm these readings with a second board.
    The second board is wired identical to the first one.
    Blade IDs:
  • only blade connector: 18400
  • blade with 47k ohm, no leds: 13300
  • blade with 47k ohm, one led strip: 10900
  • blade with 47k ohm, two led strips: 9300
  1. The flashing happens faster. About every 300ms.
  • 12:52:24.816 → Turning off 0.00@0123
  • 12:52:25.105 → Turning off 0.00@0123
  • 12:52:25.339 → Turning off 0.00@0123
  • 12:52:25.644 → Turning off 0.00@0123
  • 12:52:25.907 → Turning off 0.00@0123
  • 12:52:26.170 → Turning off 0.00@0123
  • 12:52:26.447 → Turning off 0.00@0123
  1. The message only happens with the 125 led blade.

Here is one full cycle from the serial monitor.

12:52:25.907 -> unit = 5 vol = 0.50, Playing Darth Vader 6/in/in01.wav
12:52:25.907 -> channels: 1 rate: 44100 bits: 16
12:52:25.907 -> Style RAM = 196
12:52:25.907 -> Style RAM = 148
12:52:25.907 -> Style RAM = 148
12:52:25.907 -> Style RAM = 148
12:52:25.952 -> Scanning sound font: Darth Vader 6
12:52:26.025 ->  done
12:52:26.025 -> Scanning sound font: MC
12:52:26.025 ->  done
12:52:26.062 -> Activating polyphonic font.
12:52:26.096 -> Activating SmoothSwing V2
12:52:26.096 -> Accent Swings Enabled.
12:52:26.096 -> Polyphonic swings: 16
12:52:26.096 -> Monophonic swings: 0
12:52:26.096 -> Accent Slashes NOT Detected: 
12:52:26.096 -> Sound library version 1 found.
12:52:26.096 -> Ignition.
12:52:26.096 -> unit = 0 vol = 0.00, Playing Darth Vader 6/hum/hum01.wav
12:52:26.096 -> channels: 1 rate: 44100 bits: 16
12:52:26.096 -> unit = 1 vol = 0.50, Playing Darth Vader 6/out/out01.wav
12:52:26.096 -> channels: 1 rate: 44100 bits: 16
12:52:26.096 -> humstart: 1800
12:52:26.096 -> unit = 2 vol = 0.00, Playing Darth Vader 6/swingl/swingl04.wav
12:52:26.096 -> channels: 1 rate: 44100 bits: 16
12:52:26.096 -> unit = 3 vol = 0.00, Playing Darth Vader 6/swingh/swingh04.wav
12:52:26.096 -> channels: 1 rate: 44100 bits: 16
12:52:26.096 -> unit = 4 vol = 0.50, Playing Darth Vader 6/font/font.wav
12:52:26.096 -> channels: 1 rate: 22050 bits: 16
12:52:26.137 -> BLADE ID: 9387.33
12:52:26.137 -> blade = 0
12:52:26.137 -> WS2811 Blade with 125 leds.
12:52:26.137 -> WS2811 Blade with 4 leds.
12:52:26.170 -> Turning off 0.00@0123
12:52:26.170 -> Turning off 0.00@0123
12:52:26.170 -> Turning off 0.00@0123
12:52:26.170 -> Turning off 0.00@0123
12:52:26.170 -> Turning off 0.00@0123

So is this you turning the saber on? Or is it turning on “automatically” for some reason?

Regularly, or randomly?
And you don’t see anything printed in the serial monitor every 300ms, right?

There are two things you could do that might help:

  1. Take a video, upload to youtube and post a link here. Sometimes seeing exactly what the flashes look like might provide important clues as to what is going on.
  2. Turn on more debugging in the serial monitor by adding #define PROFFIEOS_LOG_LEVEL 500 to your config file and see if it prints out something useful.

Thanks to #define PROFFIEOS_LOG_LEVEL 500 i was able to locate the problem.
While beeing ignited the blade id value changed enough to cause the board to switch to another blade config.
This seems to be caused by the low blade id values i get.
The blade switch caused the rapid on-off cylcles.
By adding #define BLADE_ID_STOP_SCAN_WHILE_IGNITED to the config i was able to stop this behaviour.

1 Like