Problem with 2813

We have a problem with custom Proffieboard lightsaber with 2813 blade. It flickers every time when the mode changes and every time, when the blade is activated. It is really annoying and spoils the ainmation. The video with demonstration can be seen here: https://drive.google.com/file/d/13j6ybGfpNMZHs6VGlfMgsXMe1bhhCiHo/view?usp=sharing

Please help! Please forgive a newbie is something is wrong %)

I’ve seen this behavior for PL9823, but not for WS2813…
What version of ProffieOS are you using?
What does your config file look like?

1 Like

As far as we remember, it has ProffieOS 3.9.
Config:

    #ifdef CONFIG_TOP
    #include "proffieboard_v2_config.h"
    #define NUM_BLADES 2
    #define NUM_BUTTONS 1
    #define VOLUME 2000
    const unsigned int maxLedsPerStrip = 135;
    #define CLASH_THRESHOLD_G 4.0
    #define ENABLE_AUDIO
    #define ENABLE_MOTION
    #define ENABLE_WS2811
    #define ENABLE_SD
    #endif

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

    #ifdef CONFIG_PRESETS
    Preset presets[] = {

     { "Light", "tracks/intro.wav",
        StylePtr<InOutHelper<LocalizedClash<Lockup<Blast<OnSpark<AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>,Rgb<255,255,150>>,Rgb<255,100,0>>,Gradient<AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>,RandomFlicker<HumpFlicker<White,Red,25>,Yellow>,AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>>,Gradient<AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>,AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>,AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>,Gradient<AudioFlicker<DeepSkyBlue,Rgb<0,208,255>>,RandomFlicker<HumpFlicker<Rgb<255,255,100>,Orange,20>,Red>>>>,Rgb<255,255,100>,100,100>,200,400>>(),
    StylePtr<InOutHelper<OnSpark<RandomPerLEDFlicker<Blue,Cyan>,White,1000>,300,1000,Pulsing<DeepSkyBlue,Black,3000>>>(),  },

     { "Kylo", "tracks/kylotheme.wav",
        StylePtr<InOutHelper<LocalizedClash<Lockup<Blast<OnSpark<BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,Rgb<255,100,0>,200>,Rgb<100,100,255>>,Gradient<BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,RandomFlicker<HumpFlicker<White,Blue,25>,Yellow>,BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>>,Gradient<BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,Gradient<BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,BrownNoiseFlicker<Strobe<Red,Sparkle<Rgb<255,20,0>,Rgb<255,100,0>,50>,100,50>,Strobe<Rgb<50,0,0>,Sparkle<Red,Black,200>,25,5>,100>,RandomFlicker<HumpFlicker<Rgb<255,255,150>,Orange,50>,Red>>>>,Rgb<255,255,100>,100,100>,100,400>>(),
    StylePtr<InOutHelper<RandomBlink<3,DarkOrange,Yellow>,300,800,Pulsing<Yellow,Red,1500>>>(),  },

     { "Vader", "tracks/hallway.wav",
       StylePtr<InOutHelper<EASYBLADE(OnSpark<RED>, WHITE), 300, 800> >(),
    StylePtr<InOutHelper<Cylon<Red,25,30,Red,25,30,1>,300,1000,Pulsing<Red,Black,1500>>>(),  },

     { "Luke", "tracks/march.wav",

    StylePtr<InOutHelper<LocalizedClash<Lockup<Blast<OnSpark<AudioFlicker<Green,Rgb16<0,52226,0>>,Rgb<255,255,150>>,Rgb<255,100,0>>,Gradient<AudioFlicker<Green,Rgb16<0,52226,0>>,RandomFlicker<HumpFlicker<White,Red,25>,Yellow>,AudioFlicker<Green,Rgb16<0,52226,0>>>,Gradient<AudioFlicker<Green,Rgb16<0,52226,0>>,AudioFlicker<Green,Rgb16<0,52226,0>>,AudioFlicker<Green,Rgb16<0,52226,0>>,Gradient<AudioFlicker<Green,Rgb16<0,52226,0>>,RandomFlicker<HumpFlicker<Rgb<255,255,100>,Orange,20>,Red>>>>,Rgb<255,255,100>,100,100>,200,400>>(),
    StylePtr<InOutHelper<Cylon<Green,25,30,Green,25,30,1>,300,1000,Pulsing<Green,Black,1500>>>(),  },


    { "Balance", "tracks/yoda.wav",
      
    StylePtr<InOutHelper<LocalizedClash<Lockup<Blast<OnSpark<AudioFlicker<Magenta,Rgb<170,0,170>>,Rgb<255,255,150>>,Rgb<255,100,0>>,Gradient<AudioFlicker<Magenta,Rgb<170,0,170>>,RandomFlicker<HumpFlicker<White,Red,25>,Yellow>,AudioFlicker<Magenta,Rgb<170,0,170>>>,Gradient<AudioFlicker<Magenta,Rgb<100,0,100>>,AudioFlicker<Magenta,Rgb<100,0,100>>,AudioFlicker<Magenta,Rgb<100,0,100>>,Gradient<AudioFlicker<Magenta,Rgb<100,0,100>>,RandomFlicker<HumpFlicker<Rgb<255,255,100>,Orange,20>,Red>>>>,Rgb<255,255,100>,100,100>,200,400>>(), 
    StylePtr<InOutHelper<Cylon<Magenta,25,30,Magenta,25,30,1>,300,1000,Pulsing<Magenta,Black,1500>>>(),  },

     { "SmthJedi", "tracks/cantina.wav",
        StyleRainbowPtr<300, 800>(),
    StylePtr<InOutHelper<Cylon<Blue,25,30,Green,25,30,1>,300,1000,Pulsing<Red,Green,1500>>>(),  },

     { "Battery", "tracks/mars.wav",
        &style_charging,
    &style_charging  
    }








    };
    BladeConfig blades[] = {
     { 0, WS281XBladePtr<135, bladePin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >(),
        WS281XBladePtr<4, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin1> >()
      , CONFIGARRAY(presets) },
    };
    #endif

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

Please try a newer version of ProffieOS. (5.9 recommended)
I know I fixed some problems like this at some point, I just don’t remember when.

1 Like

PS: You can find out what version you have by typing “version” in the serial monitor.

1 Like

Thank you, we shall try. By the way, the 2813 LED strip in the blade is just connected to the GX16 connector, without any capacitor or resistor. Can it be the cause of such behavior?

No, capacitors are usually not needed and while resistors are recommended, not having them will lead to different problems than what you are seeing.

2 Likes

Thank you! After upgrading to 5.9 I’ll reply here if the problem is fixed. By the way, is there a method to download current config from proffieboard?

No.
You can make a backup of the current programming, but there is no way to get the config file.

2 Likes

We’ve upgraded to 4.9 and 5.9 - the flickers while changing modes are gone, but the most annoying flickering while activating blade are the same. Any more ideas?

You can try changing this:

to:

WS281XBladePtr<135, bladePin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> DefaultPinClass, 800000, 300, 294, 892, 5 * 60 * 1000>()

This will keep the blade powered for 5 minutes after retraction. During that time, the battery draw will be higher, but there will be no flickering when igniting it again.

1 Like

OK, it worked! But not as awaited - it only works for 5 minutes after initial start. I thought it will work for 5 minutes after every blade activation. Do you have any more ideas?

Sounds like the power timeout feature isn’t working properly. It’s not a very commonly used feature, so it’s not entirely surprising if there is something wrong with it. I don’t have another suggestion right now, which I guess means I have to fix the timeout thing to work better.

1 Like

Thank you! I shall wait for the next release. By the way, can you test the WS2813 yourself? I don’t understand why it glitches this way - the only major difference from WS2812b is the dual data lines, and WS2812b works perfectly without such glitches.

I don’t think I have any WS2813 to test with, but I do have some PL9823 that behaves this way. I’m not sure why, but when you power on the PL9823, they start with a blue color, so it’s super-important to set them to black as soon as humanly possible after turning them on.

I had a thought…
At the beginning of your strip, what are the two pads of your WS2813 strip connected to?
Are they both connected to the data pad? Is only one connected? Is one connected to GND and the other connected to data? It’s possible that it matters for these flashes.

My fellow engineer told me that both of them are connected to the data pad. Also I can sponsor you so you could buy the WS2813 strip for test purposes if you provide me you PayPal or CreditCard (my e-mail is deniskhin@gmail.com).

No need.
I’m a bit busy with other stuff right now, but I will definitely try to fix the timeout thing when I get a chance.

1 Like