Anyone Using FastLED on ESP32?

I have a NODEMCU/ESP8266 application that I am trying to move to ESP32 DEVKIT. I use FastLED, with four strings of NeoPixels on four separate pins.

Has anyone here run FastLED on ESP32? I’m finding all kinds of conflicting information on what’s involved in moving from FastLED on 8266 to FastLED on ESP32, which pins can be used, etc. Looking for any pointers or example code to start with…

What conflicting information have you found?

I have not tried FastLED on the ESP32, but I can say with certainty, because I tried it, that the Adafruit NeoPixel library works on pins 32, 33, 25, 26,27, 4, 19, 23, 18, 5, 21 and 22, so there is no fundamental reason why FastLED should not work as well

Not NeoPixel related but can I commend this video to you #363 Which ESP32 pins are safe to use? - YouTube

It is the best explanation of what ESP32 pins can and can't do that I have found

A quick check shows that this example

#include <Arduino.h>
#include <FastLED.h>

#define NUM_LEDS 8
#define DATA_PIN 22

CRGB leds[NUM_LEDS];

void setup()
{
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}

void loop()
{
  for (int i = 0; i < NUM_LEDS; i++)
  {
    leds[i] = CRGB::Red;
  }
  FastLED.show();
  delay(500);
  for (int i = 0; i < NUM_LEDS; i++)
  {
    leds[i] = CRGB::Green;
  }
  FastLED.show();
  delay(500);
  for (int i = 0; i < NUM_LEDS; i++)
  {
    leds[i] = CRGB::Blue;
  }
  FastLED.show();
  delay(500);
  for (int i = 0; i < NUM_LEDS; i++)
  {
    leds[i] = CRGB::Black;
  }
  FastLED.show();
  delay(500);
}

works on pin 22 so I would expect the other general purpose pins in the list in my previous post to work too, but I have not checked

I've at least gotten it to compile without error. Cant try it yet, since I won't have my board until tomorrow. Biggest problem was the pin numbers that are allowed to control LEDs.

One thing that does really surprise me - the size of the compiled binary is MASSIVELY larger than for 8266. The same source code, with only changes required to move from 8266 to ESP32, compiles to almost twice the size! The 8266 build was just over 500K, and the ESP32 build is a bit over 930K! I assume most of that must be in the ESP32 "core". I haven't yet compiled and empty sketch to confirm that.

I'm not sure of the ESP32 build process. Is it possible that number includes FreeRTOS (which always runs on ESP32 whether you use its features or not)?