not work with APA 102 but work fine with WS2812 Hi,

not work with APA 102 but work fine with WS2812

Hi,

I’m facing a strange behavior with APA102,
the same program with:

fill_solid(leds, my_Leds, solidColor);
FASTLED.show();

shows immediately the colors on strip WS2812
but when i do for APA102, only on next
FASTLED.show() that will be show !

if first time i select a red and fastled show()… do not show nothing
then i select green, and do a fastled.show() will show the RED !

but for ws2812 works fine, how need to do

APA102 is connected on the right pins

thank you for any help

Are you sure you have APA102 and not SK9822?

Also make sure that you have the most recent version of the library (since you don’t mention what version you do have) - some issues like this were fixed a bit ago.

Also, wiring as well as using the correct definition as APA102 need clock pin wired up, defined and assigned, while WS2812 doesn’t.

All is fine, because is running fine for ws2812
yes, clock is wired and working, because all is work, the thing is: always is one step late( if you send ex: blue( show ), red( show ) green(show ) - i get red color
only after another FASTLED.show() i will get green !

arduino 1.69
FastLED version 3.001.003
ESP8266 huzzah ( last/updated board definitions )

thank you

Pull the latest directly from GitHub - 3.001.005

I did, with 3.001.005
same behaviour

When we run animations( like noise ) ok… we think is running ok, but, always retain the last frame

it’s easy to see, with change solid colors

i compiled and put on 3 boards, 3 othes strips apa102 and same thing

Try SK9822 - what you’re describing sounds more like the latching behavior of the sk9822 than the apa102 - wonder if your supplier is mislabeling?

@Daniel_Garcia I wonder if anyone really makes APA102 anymore at all! Id love if someone decaped an APA102 and an SK9822 and put it under a microscope for ID.

example:

void loop(){
Serial.println( “showing red”);
fill_solid(leds, 200, CRGB::Red);
FastLED.show();
delay(1500);

Serial.println( “showing green”);
fill_solid(leds, 200, CRGB::Green);
FastLED.show();
delay(1500);

Serial.println( “showing blue”);
fill_solid(leds, my_Leds, CRGB::Blue);
FastLED.show();
delay(1500);

Serial.println( “showing yellow”);
fill_solid(leds, my_Leds, CRGB::Yellow);
FastLED.show();
delay(6000);
}

will show red only after do the 2nd fastled.show( after fill with green ) and follows

then yellow, you will take only after repeat the loop, and execute the fasled.show for the red !

Again -'try defining it as SK9822 because what you’re describing is the sk9822 latching behavior.

you are right( always !)
i changed for sk9822 and is running… the sad for me is: i bought 50 units from aliexpress and was past 65 days from the purchase… no protection, no refund…
:frowning:

thank you Daniel

In some ways the sk9822 seems like it might be better - so that should work out for you :slight_smile:

@yosef18 Dont stress the SK9822 is better than the APA102

Thank you guys… i spent 12:04am till 2:37am in a chat with aliexpress, trying explain , but final decision is: you protection has expired !
it’s a lesson… take care with aliexpress

but it’s a good news from you guys,… have a nice day