Newbie FastLEDer here...Up front...

Newbie FastLEDer here…Up front…
My question is how do I know I am using hardware SPI?

I started with adafruit dotstar library and want to graduate up to Fast LED.

I have demo Reel 100 working on a nodemcu12E.

These FastLED Example files have a line to uncomment that does not input pins as arguments and my read of the documentation is that is when you are using hardware SPI. As I have sketched running from dotsar library on my strip and its wired up for that I tried to go that way.

The examples won’t compile and insist I use one of the lines which inputs pins.

So I do that and add pins in folloiwng code and the demo runs on my strip.

My question is how do I know I am using hardware SPI?

Code snippet below:

#define FASTLED_ESP8266_NODEMCU_PIN_ORDER

#include “FastLED.h”

FASTLED_USING_NAMESPACE

#if defined(FASTLED_VERSION) && (FASTLED_VERSION < 3001000)
#warning “Requires FastLED 3.1 or later; check github for latest code.”
#endif

#define DATA_PIN 7
#define CLK_PIN 5
#define LED_TYPE APA102
#define COLOR_ORDER GRB
#define NUM_LEDS 240
CRGB leds[NUM_LEDS];

#define BRIGHTNESS 96
#define FRAMES_PER_SECOND 120

void setup() {
delay(3000); // 3 second delay for recovery

FastLED.addLeds<LED_TYPE,DATA_PIN,CLK_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);

FastLED doesn’t yet support hardware SPI on ESP8266s.

It’s still blazingly fast on them though :slight_smile:

(I believe that there is another library that does use SPI for APA102Cs on the ESP8266 and that it can be used alongside FastLED, but I’ve never tried it.)

@Jeremy_Spencer Thanks Jeremy! Do you know if that is in the works? I ask because I plan to load this application up and offloading to hardware seems like goods idea.

It’s on the list for when I get back to doing regular maintenance/development work on the library - (but no time frame for that - and when I do start regular work again, I will probably begin with picking up the focus on the RGBW/RGB16 support first)

@Chris_Iannello there is a very basic library for esp8266 that uses the I2S output support which is DMA. See https://github.com/marcmerlin/Neopixel-IR and https://github.com/JoDaNl/esp8266_ws2812_i2s/
My example code uses some functions that hide the hardware implementation underneath and allow you to switch libraries.
However, it is just very basic pixel support (set color), it lacks the more fancy features of FastLED.
Have a look and see if the basic support works for you.

@Marc_MERLIN thanks