Hello I am trying to build a very large array 3000 leds 50*60 I

I am trying to build a very large array 3000 leds 50*60
I want to use and ESP32.
What kind of leds do you recommend
I could go for WS2812 (which I already know) but I need to use parallel output hence 8 pin blocked and especially impossible to plug an SD card. with 8 pin I oucld get 80 FPS
or go for APA102 faster leds where I can only use 1 PIN and get 60 FPS
what would be your advice ?
Who has good experience with both for number of leds >1000

3000 WS2812Bs inline will be very slow.

3000 APA102Cs inline are likely to have issues with the clock signal being distorted. (Search this forum for details).

Personally I’d use a teensy to control the LEDs and an ESP8266 or ESP32 to provide a web interface. The two controllers can easily communicate over serial.

Just saw your post regarding the FastLED fork which supports ESP32 parallel output.

Is it possible to connect the SD card to different pins, to avoid the conflict?

Or ask the person that ported the library if they can change the 8 led pins do that you can use an SD card?

@Jeremy_Spencer Thank you for all the advices.
I guess I will go for some shot at the APA102 and teensy split in several lines.

Teensy is the way to go

@Yves_BAZIN , I would go for WS2812B style leds and a Teensy 3.2, there are often problems with long lines of APA102C leds as the clock signal gets out of sync.

@Jeremy_Spencer and if I split in several strips ? Will it work ?

Hello I know the ws2812b quite well now.
I have ordered a teensy and some apa102 (150leds) to play a bit with them too :slight_smile:

@Yves_BAZIN - been thinking about platforms a bit this week. I know the answer is probably the Teensy, and I know the FastLED community loves them, but the ESP32 has so much going for it with built in wifi and bluetooth… and its less than 1/3 the price. Add in another $12 for an octo board, and more money for networking if you want that… and it starts to add up.

The ESP32 has 4 SPI ports. One is used for the internal flash, but that should leave three, which means it should be theoretically possible to use one for an SD card and still have 2 ports (8 pins) for 8 way parallel output left. Not on a D1 mini, which has a reduced number of pins, but on the regular dev board it should be possible. Of course I’m very new to this aspect of MCU hardware, so I might have something wrong

On the FastLED branch you found that has parallel output for the ESP32 working, was it only on 4 pins? 8? and which pins?


@chad_steinglass ​, the library fork supports 8 way parallel output, I can’t remember which pins. Search this forum, (I can’t as I’m on my phone).

I intend to give it a try at some point soon.

I do agree and the ESP32 for less it’s powerful and by running the fasted.show() on the core 0 no more artifacts …

@Jeremy_Spencer @chad_steinglass on the fastLED1.8 I can see that it’s made fro 4 pins 12,13,14,15 if you use the one of GitHub - eshkrab/FastLED-esp32: Parallel outputs for esp32. you can have up to 8 pins 12,13,14,15,16,17,18,19
actually they are the same just the extension has been made In the clockless_block_esp32.h
to handle more pins.

I have managed to get 12 pins working adding 0,2,4,5 to the ones above.
i am working on the 16 pins version
and also on a version where you could choose on which pins you are running the parallel output.

For the SD card (I want to do the same) I have also explore the libraries and you can have to running on the flash port by defining a new SPI SPIClass SPI2(FSPI);
you find the definition in “esp32-hal-spi.h”
#define FSPI 1 //SPI bus attached to the flash (can use the same data lines but different SS)
#define HSPI 2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
#define VSPI 3 //SPI bus normally attached to pins 5, 18, 19 and 23, but can be matrixed to any pins

hope that helps

@Yves_BAZIN Nice work! I’m still new to understanding exactly how SPI works, and what types of things need it. I was thinking that the internal flash was “taking up” 4 pins, and that 4 SPI ports meant 16 pins total, leaving only 12 actually accesible to us. But if you can get 16 pin parallel output working then that means I am wrong.

But since you got 12 pin working, that means that at least you should be able to do 8 pin + SD card, which is still pretty great!

I’m definitely interested to follow along and see if I can figure some of this stuff out too


@chad_steinglass you’re not wrong I had to code an modify the code to have ti work :slight_smile:

here it is the version up to 16 pins

it’s still experimental but works for me still

it’s based on the 3.1.6 and on the work of eshkrab
if you could test