The FastLED library for colored LED animation on Arduino.

Overview

Gitter arduino-library-badge build status

IMPORTANT NOTE: For AVR based systems, avr-gcc 4.8.x is supported and tested. This means Arduino 1.6.5 and later.

FastLED 3.4

This is a library for easily & efficiently controlling a wide variety of LED chipsets, like the ones sold by adafruit (Neopixel, DotStar, LPD8806), Sparkfun (WS2801), and aliexpress. In addition to writing to the leds, this library also includes a number of functions for high-performing 8bit math for manipulating your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while still keeping things as fast as possible. Tested with Arduino up to 1.6.5 from arduino.cc.

Quick note for people installing from GitHub repo zips, rename the folder FastLED before copying it to your Arduino/libraries folder. Github likes putting -branchname into the name of the folder, which unfortunately, makes Arduino cranky!

We have multiple goals with this library:

  • Quick start for new developers - hook up your leds and go, no need to think about specifics of the led chipsets being used
  • Zero pain switching LED chipsets - you get some new leds that the library supports, just change the definition of LEDs you're using, et. voila! Your code is running with the new leds.
  • High performance - with features like zero cost global brightness scaling, high performance 8-bit math for RGB manipulation, and some of the fastest bit-bang'd SPI support around, FastLED wants to keep as many CPU cycles available for your led patterns as possible

Getting help

If you need help with using the library, please consider going to the reddit community first, which is at http://fastled.io/r (or https://reddit.com/r/FastLED) - there are thousands of great people in that group and many times you will get a quicker answer to your question there, as you will be likely to run into other people who have had the same issue. If you run into bugs with the library (compilation failures, the library doing the wrong thing), or if you'd like to request that we support a particular platform or LED chipset, then please open an issue at http://fastled.io/issues and we will try to figure out what is going wrong.

Simple example

How quickly can you get up and running with the library? Here's a simple blink program:

#include "FastLED.h"
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
void setup() { FastLED.addLeds(leds, NUM_LEDS); }
void loop() {
	leds[0] = CRGB::White; FastLED.show(); delay(30);
	leds[0] = CRGB::Black; FastLED.show(); delay(30);
}

Supported LED chipsets

Here's a list of all the LED chipsets are supported. More details on the led chipsets are included TODO: Link to wiki page

  • Adafruit's DotStars - AKA the APA102
  • Adafruit's Neopixel - aka the WS2812B (also WS2811/WS2812/WS2813, also supported in lo-speed mode) - a 3 wire addressable led chipset
  • TM1809/4 - 3 wire chipset, cheaply available on aliexpress.com
  • TM1803 - 3 wire chipset, sold by radio shack
  • UCS1903 - another 3 wire led chipset, cheap
  • GW6205 - another 3 wire led chipset
  • LPD8806 - SPI based chipset, very high speed
  • WS2801 - SPI based chipset, cheap and widely available
  • SM16716 - SPI based chipset
  • APA102 - SPI based chipset
  • P9813 - aka Cool Neon's Total Control Lighting
  • DMX - send rgb data out over DMX using arduino DMX libraries
  • SmartMatrix panels - needs the SmartMatrix library - https://github.com/pixelmatix/SmartMatrix
  • LPD6803 - SPI based chpiset, chip CMODE pin must be set to 1 (inside oscillator mode)

HL1606, and "595"-style shift registers are no longer supported by the library. The older Version 1 of the library ("FastSPI_LED") has support for these, but is missing many of the advanced features of current versions and is no longer being maintained.

Supported platforms

Right now the library is supported on a variety of arduino compatable platforms. If it's ARM or AVR and uses the arduino software (or a modified version of it to build) then it is likely supported. Note that we have a long list of upcoming platforms to support, so if you don't see what you're looking for here, ask, it may be on the roadmap (or may already be supported). N.B. at the moment we are only supporting the stock compilers that ship with the arduino software. Support for upgraded compilers, as well as using AVR studio and skipping the arduino entirely, should be coming in a near future release.

  • Arduino & compatibles - straight up arduino devices, uno, duo, leonardo, mega, nano, etc...
  • Arduino Yún
  • Adafruit Trinket & Gemma - Trinket Pro may be supported, but haven't tested to confirm yet
  • Teensy 2, Teensy++ 2, Teensy 3.0, Teensy 3.1/3.2, Teensy LC, Teensy 3.5, Teensy 3.6, and Teensy 4.0 - arduino compatible from pjrc.com with some extra goodies (note the teensy LC, 3.2, 3.5, 3.6, 4.0 are ARM, not AVR!)
  • Arduino Due and the digistump DigiX
  • RFDuino
  • SparkCore
  • Arduino Zero
  • ESP8266 using the arduino board definitions from http://arduino.esp8266.com/stable/package_esp8266com_index.json - please be sure to also read https://github.com/FastLED/FastLED/wiki/ESP8266-notes for information specific to the 8266.
  • The wino board - http://wino-board.com
  • ESP32 based boards

What types of platforms are we thinking about supporting in the future? Here's a short list: ChipKit32, Maple, Beagleboard

What about that name?

Wait, what happend to FastSPI_LED and FastSPI_LED2? The library was initially named FastSPI_LED because it was focused on very fast and efficient SPI access. However, since then, the library has expanded to support a number of LED chipsets that don't use SPI, as well as a number of math and utility functions for LED processing across the board. We decided that the name FastLED more accurately represents the totality of what the library provides, everything fast, for LEDs.

For more information

Check out the official site http://fastled.io for links to documentation, issues, and news

TODO - get candy

Issues
  • ESP32 + FastLED

    ESP32 + FastLED

    Struggling to get this working ?

    Have a setup with the 8266 working perfectly.

    Using the same code and wiring setup, just the first 2 LED's light up white and the 3rd LED flickers.

    Using 72 APA102 LED's and standard ESP32 dev board.

    Wired directly to 5V, no level converter as it wasnt needed on the esp8266 board

    Any ideas or anyone got this working yet ?

    Thanks

    opened by PhilColbert 245
  • Support ESP8266 / Xtensa LX3

    Support ESP8266 / Xtensa LX3

    The ESP8266 is a very inexpensive ($5) wifi-enabled SOC with an Xtensa LX3 CPU core (read: it's NOT ARM, and it's NOT AVR). It's typically provided pre-flashed with code that makes it act like a Serial-to-Wifi bridge with an AT command set for Arduinos to talk to, but people are starting to realize that they can reflash it with their own code and run applications directly on it.

    https://github.com/esp8266/esp8266-wiki/wiki

    http://esp8266.net/ http://hackaday.com/tag/esp8266/

    "Peter Scargill" has been doing a bunch of work on it https://plus.google.com/+PeterScargill/posts http://scargill.wordpress.com/category/esp8266/ and he's (now) a FastLED user, too: http://scargill.wordpress.com/2015/01/13/esp8266-temporary-rgb-solution/

    Anyway, low priority, might be "fun." I like the zero-overhead LOOP option that the LX3 has. Woo. (UPDATE: the ESP8266 LX 106Micro core does NOT appear to have been configured with the zero-overhead loop option. Boo.)

    Architecture whitepaper: http://users.ece.utexas.edu/~mcdermot/soc/lectures/xtensa.pdf

    Xtensa instruction set architecture: http://0x04.net/~mwk/doc/xtensa.pdf

    Full docs for Xtensa LX architecture http://ip.cadence.com/uploads/pdf/xtensalx_overview_handbook.pdf

    Brief specs for the 106Micro core in particular: http://ip.cadence.com/uploads/pdf/106Micro.pdf ("The Diamond 106Micro has an iterative, multi-cycle (non-pipelined) 32x32 multiplier"... meaning that multiplies take more than one cycle? Note the MULL, MULUH, and MULSH instructions... interesting with regard to scale8? Though it looks like ESP8266 has only MULL perhaps. Though it also also MUL16, MUL16U, and MUL16S.)

    Here's the .h file from Espressif that seems to document which options the LX 106Micro core on the ESP8266 was configured with: https://github.com/espressif/esp_iot_rtos_sdk/blob/master/extra_include/xtensa/config/core-isa.h Of note:

    • YES, it has support for the cycle count register CCOUNT
    • NO, it has no support for the zero-overhead loop instructions (boo)
    • YES it has MUL16 and 'MUL32' (MULL); but no MULUH, no MULSH, no div32 instructions
    • YES it has ABS; but no MINMAX or CLAMPS instructions
    • NO floating point or vector hardware

    Link to ESP8266 GPIO implementation of digitalWrite (etc) in C from esp8266-Arduino: https://github.com/esp8266/Arduino/blob/esp8266/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_wiring_digital.c Peripheral register definitions https://github.com/esp8266/Arduino/blob/esp8266/hardware/esp8266com/esp8266/cores/esp8266/esp8266_peri.h Timing and delay functions, which appear to call deeper Esplora library functions? https://github.com/esp8266/Arduino/blob/esp8266/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_wiring.c

    ESP01 variation pins file (url could be better?) https://github.com/esp8266/Arduino/blob/fbb207cf7a01ac6905cbb6205b7bde4dc650677f/hardware/esp8266com/esp8266/variants/esp01/pins_arduino.h

    Notes and code on bitbanging GPIO SPI https://github.com/esp8266/Arduino/issues/33 Earlier notes on faster GPIO for bitbanging http://nerdralph.blogspot.com/2015/04/a-4mbps-shiftout-for-esp8266arduino.html

    More detailed explanation of ESP8266 GPIO options http://www.esp8266.com/wiki/doku.php?id=esp8266_gpio_registers

    Note about cycle counting register and interrupt disable-ing (references "Neopixels") https://github.com/esp8266/Arduino/issues/182

    enhancement MCUs 
    opened by kriegsman 90
  • 74 LED WS2812B strip is flickering when connected to ESP8266 with Wi-Fi enabled

    74 LED WS2812B strip is flickering when connected to ESP8266 with Wi-Fi enabled

    I have been testing Fire2012.ino sketch with latest FastLED library (saved directly from GitHub) using WS2812B strip with 74 and 144 LEDs together with ESP8266.

    Fire2012.ino works as expected when Wi-Fi of ESP8266 is off. If Wi-Fi is on, the strip is flickering :disappointed:

    Has anybody tested ESP8266 in similar scenario? Do I miss something in configuration? ESP8266 is all about Wi-Fi and I would like to set Fire2012 parameters (brightness, cooling and sparking) wirelessly.

    I do not observe flickering for Fire2012.ino sketch when implemented with Adafruit_NeoPixel and NeoPixelBus libraries.

    Here are my test sketches: • EspNeoPixelBusEspAdafruit_NeoPixelEspFastLED

    I really appreciate mature, feature rich and well documented code of FastLED and looking how to use it directly with ESP8266 without patching it with additional code.

    Krzysztof

    opened by krzychb 80
  • FastLED on Photon

    FastLED on Photon

    Copied from https://community.particle.io/t/fastled-on-photon/11933

    No worries, and no rush. Thanks!

    In file included from /spark/compile_service/shared/workspace/6_hal_12_0/firmware-privafastled-apa102-60.cpp:1:0:
    /spark/compile_service/shared/workspace/6_hal_12_0/firmware-privaFastLED/FastLED.h:12:2: warning: #warning FastLED version 3001000 (Not really a warning, just telling you here.) [-Wcpp]
    #warning FastLED version 3001000 (Not really a warning, just telling you here.)
    ^
    In file included from /spark/compile_service/shared/workspace/6_hal_12_0/firmware-privaFastLED/FastLED.h:34:0,
    from /spark/compile_service/shared/workspace/6_hal_12_0/firmware-privafastled-apa102-60.cpp:1:
    /spark/compile_service/shared/workspace/6_hal_12_0/firmware-privaFastLED/led_sysdefs.h:19:43: fatal error: platforms/avr/led_sysdefs_avr.h: No such file or directory
    #include "platforms/avr/led_sysdefs_avr.h"
    ^
    compilation terminated.
    make[1]: *** [../build/target/user/platform-6fastled-apa102-60.o] Error 1
    make: *** [user] Error 2
    
    Error: Could not compile. Please review your code.
    
    opened by jasoncoon 48
  • ESP32 Clockless issues

    ESP32 Clockless issues

    Hardware: NodeMCU

    My ESP32 crashes when attempting to invoke FastLED.Show(). The error message is as follows: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

    This is using the latest clockless_esp32.h on the master branch.

    I dug through the previous issues and used an earlier version of clockless_esp32.h and that version doesn't seem to crash. The only problem with that version though is that when you use all 8 channels it randomly hangs when attempting to show().

    Here is the link to that version: https://raw.githubusercontent.com/samguyer/FastLED/master/platforms/esp/32/clockless_esp32.h

    opened by tavrinnn 44
  • Support for nRF52xxx (e.g., nRF52840)

    Support for nRF52xxx (e.g., nRF52840)

    Is it possible to port to the nRF52840, at least for SPI LED types?

    Although the nRF52xxx is similar to the nRF51xxx (which is supported), if I understand correctly, portions of the nRF52 core run at high interrupt level (for BLE), and they cannot be disabled by user application code. Obviously, this could impact any code depending on tight execution timing. Based on this, would some LED control types need to be explicitly excluded (e.g., NeoPixel)?

    opened by henrygab 39
  • Noise discontinuity

    Noise discontinuity

    I have made some experiments with the FastLed Noise functions (especially with the 1D version, FastLed Version 3.1.3) and I have found that there are points of discontinuity at the zero crossing points of the curve. As far as I understand the Perlin Noise function, the curve has to cross the zero line at regular steps (every 256 increments in the FastLed implementation), whereby there are pseudorandom gradients for each zero crossing. Between these points the algorithm should interpolate the curve smoothly, like shown in this diagram https://www.scratchapixel.com/images/upload/noise-part-2/noise-value-vs-perlin3.png? The gradients should assure a smooth transitions between the preceding section and the subsequent section of the curve. It seems that this is not the case in this implementation, as there is a sharp edge at the zero crossing points, which means the gradient changes at the transition of the preceding section and the subsequent section of the curve. Example code (best view the output with the serial plotter of the arduino IDE):

    `#include <FastLED.h>

    void setup() { Serial.begin(9600); }

    void loop() { static int cnt = 0;

    Serial.print(-128); Serial.print("\t"); Serial.print(128); Serial.print("\t");
    Serial.println(inoise8_raw(cnt++));
    }`

    btw: I've also played with the Noise functions of processing. Here this is not the case.

    opened by You69Man 37
  • Teensy31 stops running APA102 strip

    Teensy31 stops running APA102 strip

    My Teensy 3.1 stops running after a couple minutes of running a single APA102 strip. This always happens after a couple minutes after calling FastLED.show(), but not at exactly the same time on each run. This smells of a memory leak.

    In case it matters, I am using data pin 7 and clock pin 14. I have the lastest version of FastLED (4c32e652ce) downloaded via PlatformIO.

    Let me know if you there is other information that would be helpful.

    opened by bryanculbertson 36
  • FastLed not working with ESP8266 Boards 3.0.0

    FastLed not working with ESP8266 Boards 3.0.0

    Since I update the ESP-8266 Board to 3.0.0 i can't compile FastLed with my AZ-Delivery D1 Mini NodeMcu with ESP8266-12F. Every FastLed-Line gives the error: ..........libraries\FastLED\chipsets.h:###:##: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]

    ESP-8266 Board 2.7.0 works fine.

    Why??

    opened by Guenni75 34
  • ESP32 with enabled WiFi produces random colors and flickering on Neopixel

    ESP32 with enabled WiFi produces random colors and flickering on Neopixel

    It seems that the interrupt handling of the wifi stack is disturbing the output of the signal to handle the ws2801 (neopixel) correctly. I have a sketch which is basically like this example: https://github.com/espressif/esp-idf/blob/master/examples/protocols/sntp/main/sntp_example_main.c

    in combination with this main method:

    extern "C" void app_main(void)
    {
        initArduino();
        xTaskCreatePinnedToCore(loopTask, "loopTask", 8192, NULL, 1, NULL, ARDUINO_RUNNING_CORE);
        obtain_time();
    }
    

    The loopTask method contains e.g. the following:

    FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
    FastLED.setBrightness(50);
    while (1) {
        micros();
        time(&now);
        localtime_r(&now, &timeinfo);
    
        clearClock();
        int Hours = timeinfo.tm_hour;
        int Minutes = timeinfo.tm_min;
        int Seconds = timeinfo.tm_sec;
        timeToStrip(Hours, Minutes, Seconds);
        FastLED.show();  
        yield();
        delay(1000 / 120);
        yield();
    }
    

    If I comment out the obtain_time() method, everything works very reliable. But with the obtain_time method included, I have some leds with random colors and in general random leds lighting up.

    I already tried the new version of "clockless_esp32.h" as mentioned here: https://github.com/samguyer/FastLED/commit/b1ffc707a1a7075840018ba44617be21bbccf568 but without any effect

    opened by tbnobody 30
  • Compiling error on ATmega32u2

    Compiling error on ATmega32u2

    For me it seems to be impossible to get it run under my ATmega32u2 as I am not able to compile the FastLed.

    The ATmega is connected to RPi UART RPi TxD <-> ATmega PORTD Pin PD2

    The LED Strip is connected to the ATmega ATmega PORTB Pin PB0 <-> DI LED Strip

    Any suggestions to get it work?

    opened by mYreme 30
  • I2S support for the ESP32S2

    I2S support for the ESP32S2

    Hi, I would like to use the I2S mode on the ESP32S2 variant, but the code currently doesn't compile. So far, two errors have occurred.

    1. The ESP32S2 only has one I2S peripheral, so any references to &I2S1 are invalid and the code refuses to compile.
    2. The i2s struct member clka_en doesn't exist anymore, and it's been replaced with clk_sel in ESP32S2's respective i2s_struct.h file due to a restructuring in the I2S_CLKM_CONF_REG register: I2S_CLKA_ENA bit is replaced with I2S_CLK_SEL bits on the ESP32S2, and can be set to 0 or 3 for no clock, 1 for the configurable analog PLL clock and 2 for the 160 MHz clock. Setting clk_sel = 2 should correspond to the previously used clka_en = 0 for the original ESP32 variant in order to use the 160 MHz clock instead of the analog PLL.

    I have modified the code accordingly (which can be found here), and, although the blink example now compiles successfully, there is no LED output, but there are brief flashes on occasion. I am unable to probe the output with an oscilloscope currently, but might be able to in a few days.

    opened by davorvr 1
  • Problem in clockless_esp8266.h

    Problem in clockless_esp8266.h

    Lines 56/57: while((__clock_cycles() - last_mark) < (T1+T2+T3)); last_mark = __clock_cycles();

    clockless_esp8266.h: 56:7: warning: this 'while' clause does not guard... [-Wmisleading-indentation] 56 | while((__clock_cycles() - last_mark) < (T1+T2+T3)) | ^~~~~ clockless_esp8266.h:57: note ...this statement, but the latter is misleadingly indented as if it were guarded by the while 57 | last_mark = __clock_cycles() | ^~~~~~~~~

    opened by MikeGarber 5
  • Mystery PR checks fail:

    Mystery PR checks fail: "Error: Unknown development platform 'atmelavr'"

    My last ~two~ three PRs can't pass checks because of an "Error: Unknown development platform 'atmelavr'" error.

    https://github.com/FastLED/FastLED/pull/1413 https://github.com/FastLED/FastLED/pull/1418 https://github.com/FastLED/FastLED/pull/1420

    opened by ssilverman 0
  • Is FastLED abandoned?

    Is FastLED abandoned?

    I'm using FastLED 3.5.0 on ESP8266 and ESP32.

    As soon as I include FastLED I have dozens of warnings, I see no support for newer ESP32-C series and ESP32-S series...

    Is there someone working on a new release that will fix this problems soon?

    Thanks Davide

    opened by sblantipodi 1
  • FastLED + wifi = flickering with esp8266

    FastLED + wifi = flickering with esp8266

    Hey guys!

    I have seen some posts and read some threads about this issue and I wanted to ask once and for all. I understand this issue is mainly because wifi interrupts causing fastled to flicker the leds.

    My specific problem: I have ws2812b-mini leds with an esp01f (esp8285) on a custom pcb and when wifi is initialized in the code it starts flickering. Not 1 led the whole 54 leds light up for example green for a split second then turning back to red. I tried with an esp12f (esp8266) with the same behavior.

    The twist: I connected both (esp 8266 and the esp 8285) to a ws2812b led strip (which is cut up led by led and is in a enclosure) and it didn't flicker at all.

    Same code same powersupply (320w lab psu) same everything. I looked up the datasheets of the leds and the timing specs are the same as well. I connected with my phone no flickering, debug showing a device connected etc. It worked as it should without any hiccups.

    I even tried with the esp8285's led control pin wired to both the normal ws2812b's data in and the ws2812b-mini's data in together and the normal ones didn't flicker and the mini ones did.

    The pcb's grounding is good enough it draws the same amount of amps/led as the ones in the enclosure...

    I tried the usual #define FASTLED_ALLOW_INTERRUPTS 0 and the retry count thing and it didn't help.

    ONE major thing is that when I started with this project 2021 march/april this flickering didn't happen at all with the same hardware. Sadly I can't reproduce this with the same old libraries and I am at a loss why it does this.....

    Tomorrow I will try with i2s and another library but making that work will be a hackjob wiring wise on the pcb.....

    Thanks for any help or insight, have a great day!

    Edit: I tried adding a resistor on the data line (1k and 10k) neither of them did anything the 10k one just didn't let the signal through and it was just flickering not displaying anything. The cut up led strip has NO resistors on it either...

    opened by TypingPenguin44 0
Releases(3.5.0)
  • 3.5.0(Jan 2, 2022)

  • 3.4.0(Dec 22, 2020)

  • 3.2.0(Aug 27, 2018)

  • 3.1.8(Jan 13, 2018)

    Releasing community-contributed support for Adafruit Circuit Playground Express, Gemma, Trinket m0, ATmega328 non-'p', PJRC's WS2812Serial driver, as well as a number of bugfixes and small improvements to ESP32 support and Makefile-based compilation. Thanks to the FastLED community for all the contributions and support! (we skipped v3.1.7)

    Source code(tar.gz)
    Source code(zip)
  • v3.1.6(Aug 16, 2017)

  • v3.1.3(Sep 13, 2016)

  • v3.1.0(Sep 24, 2015)

    We're proud to announce the full release of FastLED version 3.1, an open source LED animation library for Arduino.

    In the eleven months since the last release, FastLED has become even more capable, even more compatible, and yes, even faster. Here are some highlights of what's new in FastLED v3.1 over and above the 3.0 release:

    • Support for even more microcontroller chips and boards
    • High-performance parallel output on Arduino Due and Teensy 3.x
    • Literally the fastest-possible driver for the Neopixel WS2812 family of LEDs on standard ATmega-based Arduinos
    • New animation tools like periodic timers and color crossfades

    A big thanks goes out to the vibrant and growing FastLED community, who've helped shape and refine this library, and who have built some absolutely amazing projects with it. You rock. Keep it up!

    Here's some more detail on what's in the FastLED v3.1 release:

    New Microcontroller Support Added

    • Arduino Zero
    • Teensy-LC
    • RFDuino
    • Sparkcore
    • Many new AVR-based platforms
    • Continued support for popular Arduino boards (Uno, Duo, Leonardo, Nano, Micro, etc.), the Adafruit Trinket, Gemma, and Flora, the Digistump DigiX, as well as PJRC Teensy 2, Teensy 3.0, and Teensy 3.1.

    Continued LED Support FastLED v3.1 continues support for more than a dozen popular addressable LEDs: NeoPixel, WS2811, WS2812, WS2812B, DotStar, APA102, APA104, GW6205/GW6205_400, P9813 Total Control Lighting LEDs, USC1903_400, Pixelmatix SmartMatrix, WS2801, LPD8806, LPD1886, TM1809, TM1804, TM1803, and SM16716!

    New Library Features

    • Parallel output on multiple pins on Arduino Due, Teensy 3.0, and Teensy 3.1
    • Interrupt processing supported on Arduino Due, Teensy 3.0, Teensy 3.1, even when using Neopixel WS2812 family LEDs (WS2811, WS2812, WS2812B)
    • Improved SPI device sharing on the Teensy 3.0 and Teensy 3.1
    • Refresh rate auto-capping for LEDs that have a maximum update speed (e.g. Neopixel WS2812 family)
    • Support for Arduino 1.6.x IDE and gcc 4.8.1
    • Literally the fastest output physically possible for Neopixel WS2812 family LEDs.

    New Library Functions

    • Recurring event triggers EVERY_N_MILLISECONDS, EVERY_N_SECONDS, EVERY_N_MINUTES, and EVERY_N_HOURS
    • Smooth crossfade between multiple color palettes
    • Define color palettes as a series of connected gradients
    • Recover approximate HSV color from RGB values with rgb2hsv_approximate
    • Ability to store one bit of user data in a CRGB, often invisibly
    • New named color "FairyLight" approximates incandescent holiday lights
    • Additional new functions for color gamma correction
    • Fast, compact routines for 8-bit average and modulo, and for 16-bit square root
    • random8 is now much more random

    Backward Compatibility

    • Everything in FastLED v3.1 should be backward compatible with FastLED v3.0, with one exception:
    • We changed from the old symbol name "BLEND" to the new symbol name "LINEARBLEND" for ColorFromPalette, to avoid conflicts with another codebase. Simply replace "BLEND" with "LINEARBLEND" and your code should compile and run as before.

    And Also

    • New example "DemoReel100": six animations in 100 lines of code
    • Access to thousands of designer color palettes from cpt-city
    • "FastLED6502" for Apple ][, ][+, //e, and //gs (unsupported!)
    • Lots of code cleanup for improved maintainability, readability, and theoretical future sanity
    • New and improved documentation
    • And, as the apps say, "bug fixes and performance improvements."

    -Daniel Garcia & Mark Kriegsman, September 2015

    Source code(tar.gz)
    Source code(zip)
  • 3.0.3(Nov 9, 2014)

    • Bring issue #96 fix over, fixes building for Yun for some people
    • Fix issue #90 (tentatively) - gcc 4.8.x and later support for avr platforms
    • Fix Issue #67 (tentatively) - arduino 1.5.7 and later support for avr platforms
    • Fix Issue #89 for people using Pin 13 for their leds and the power management code.

    (Note: Arduino 1.5.7/1.5.8 still has some issues with the Due. If you need to use arduino 1.5.8 and a due, the FastLED 3.1 branch is currently working with that combination)

    Reminder: When installing, unzip the source zip and rename it to FastLED and move it to your Arduino/libraries folder (remove old versions of the library first, both from FastLED as well as FastSPI_LED).

    FastLED ~~2.1~~ 3.0.1

    We're proud to announce a fabulous new version of FastLED, an open source LED animation library for Arduino. This new version supports lots of new hardware and also includes:

    • vibrant new color, light, and power controls,
    • more than ten new example animations for you to remix (including 'fire'),
    • high performance math functions including fast sine and cosine, and
    • absolutely the fastest Perlin/Simplex noise generators ever seen on Arduino.

    A big thanks goes out to the entire FastLED community, who've helped shape and refine this library, and who have built some absolutely stunning projects with it.

    Here's some more detail on what's in this release:

    New Microcontroller Support Added

    • Arduino Due
    • Teensy 3.1
    • Digistump DigiX
    • Continued support for most other Arduino boards (Uno, Leonardo, Nano, Micro, etc.), the Adafruit Trinket, Gemma, and Flora, as well as PJRC Teensy 2 and Teensy 3.0.

    New LED Chip Support Added

    • APA102
    • APA104
    • GW6205 / GW6205_400
    • LPD1886
    • P9813 Total Control Lighting LEDs
    • USC1903_400
    • SmartMatrix
    • Continued support for NeoPixel, WS2811, WS2812, WS2812B, WS2801, LPD8806, TM1809, TM1804, TM1803, and SM16716!

    New Color, Light, and Power Controls

    • Programmable Color Palettes (CLUTs)
    • High-speed temporal dithering for smooth dimming with the master brightness control
    • Ability to calibrate each strip's RGB colors
    • Ability to adjust the LED white point / temperature
    • Ability to automatically limit LED power draw (current)

    Perlin/Simplex Noise

    • 1- 2- and 3-dimensional Perlin/Simplex noise
    • Multiple octave noise support
    • Example sketches using 'noise' for animated texture generation

    New Example Sketches

    • XYMatrix - show how to use a 2-D matrix of leds
    • Fire2012 - simple, fast fire simulation
    • Perlin/Simplex Noise - dynamic texture animation examples
    • ColorPalette - showing how to use color palettes (CLUTs)
    • ColorTemperature - color correction and white point adjustment
    • Examples showing how to drive multiple independent LED strips

    High Performance Math Package

    • High-speed sine and cosine
    • Cubic, triangle, and quadratic wave functions
    • In/Out easing functions

    And Also...

    • Many bug fixes and performance improvements, and
    • A big, shiny new version number to go with all this great code

    Daniel Garcia & Mark Kriegsman, October 2014

    Source code(tar.gz)
    Source code(zip)
  • 3.0.2(Nov 8, 2014)

    • Fix issue #90 (tentatively) - gcc 4.8.x and later support for avr platforms
    • Fix Issue #67 (tentatively) - arduino 1.5.7 and later support for avr platforms
    • Fix Issue #89 for people using Pin 13 for their leds and the power management code.

    Reminder: When installing, unzip the source zip and rename it to FastLED and move it to your Arduino/libraries folder (remove old versions of the library first, both from FastLED as well as FastSPI_LED).

    FastLED ~~2.1~~ 3.0.1

    We're proud to announce a fabulous new version of FastLED, an open source LED animation library for Arduino. This new version supports lots of new hardware and also includes:

    • vibrant new color, light, and power controls,
    • more than ten new example animations for you to remix (including 'fire'),
    • high performance math functions including fast sine and cosine, and
    • absolutely the fastest Perlin/Simplex noise generators ever seen on Arduino.

    A big thanks goes out to the entire FastLED community, who've helped shape and refine this library, and who have built some absolutely stunning projects with it.

    Here's some more detail on what's in this release:

    New Microcontroller Support Added

    • Arduino Due
    • Teensy 3.1
    • Digistump DigiX
    • Continued support for most other Arduino boards (Uno, Leonardo, Nano, Micro, etc.), the Adafruit Trinket, Gemma, and Flora, as well as PJRC Teensy 2 and Teensy 3.0.

    New LED Chip Support Added

    • APA102
    • APA104
    • GW6205 / GW6205_400
    • LPD1886
    • P9813 Total Control Lighting LEDs
    • USC1903_400
    • SmartMatrix
    • Continued support for NeoPixel, WS2811, WS2812, WS2812B, WS2801, LPD8806, TM1809, TM1804, TM1803, and SM16716!

    New Color, Light, and Power Controls

    • Programmable Color Palettes (CLUTs)
    • High-speed temporal dithering for smooth dimming with the master brightness control
    • Ability to calibrate each strip's RGB colors
    • Ability to adjust the LED white point / temperature
    • Ability to automatically limit LED power draw (current)

    Perlin/Simplex Noise

    • 1- 2- and 3-dimensional Perlin/Simplex noise
    • Multiple octave noise support
    • Example sketches using 'noise' for animated texture generation

    New Example Sketches

    • XYMatrix - show how to use a 2-D matrix of leds
    • Fire2012 - simple, fast fire simulation
    • Perlin/Simplex Noise - dynamic texture animation examples
    • ColorPalette - showing how to use color palettes (CLUTs)
    • ColorTemperature - color correction and white point adjustment
    • Examples showing how to drive multiple independent LED strips

    High Performance Math Package

    • High-speed sine and cosine
    • Cubic, triangle, and quadratic wave functions
    • In/Out easing functions

    And Also...

    • Many bug fixes and performance improvements, and
    • A big, shiny new version number to go with all this great code

    Daniel Garcia & Mark Kriegsman, October 2014

    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(Oct 29, 2014)

    • Fix Issue #89 for people using Pin 13 for their leds and the power management code.

    Reminder: When installing, unzip the source zip and rename it to FastLED and move it to your Arduino/libraries folder (remove old versions of the library first, both from FastLED as well as FastSPI_LED).

    FastLED ~~2.1~~ 3.0.1

    We're proud to announce a fabulous new version of FastLED, an open source LED animation library for Arduino. This new version supports lots of new hardware and also includes:

    • vibrant new color, light, and power controls,
    • more than ten new example animations for you to remix (including 'fire'),
    • high performance math functions including fast sine and cosine, and
    • absolutely the fastest Perlin/Simplex noise generators ever seen on Arduino.

    A big thanks goes out to the entire FastLED community, who've helped shape and refine this library, and who have built some absolutely stunning projects with it.

    Here's some more detail on what's in this release:

    New Microcontroller Support Added

    • Arduino Due
    • Teensy 3.1
    • Digistump DigiX
    • Continued support for most other Arduino boards (Uno, Leonardo, Nano, Micro, etc.), the Adafruit Trinket, Gemma, and Flora, as well as PJRC Teensy 2 and Teensy 3.0.

    New LED Chip Support Added

    • APA102
    • APA104
    • GW6205 / GW6205_400
    • LPD1886
    • P9813 Total Control Lighting LEDs
    • USC1903_400
    • SmartMatrix
    • Continued support for NeoPixel, WS2811, WS2812, WS2812B, WS2801, LPD8806, TM1809, TM1804, TM1803, and SM16716!

    New Color, Light, and Power Controls

    • Programmable Color Palettes (CLUTs)
    • High-speed temporal dithering for smooth dimming with the master brightness control
    • Ability to calibrate each strip's RGB colors
    • Ability to adjust the LED white point / temperature
    • Ability to automatically limit LED power draw (current)

    Perlin/Simplex Noise

    • 1- 2- and 3-dimensional Perlin/Simplex noise
    • Multiple octave noise support
    • Example sketches using 'noise' for animated texture generation

    New Example Sketches

    • XYMatrix - show how to use a 2-D matrix of leds
    • Fire2012 - simple, fast fire simulation
    • Perlin/Simplex Noise - dynamic texture animation examples
    • ColorPalette - showing how to use color palettes (CLUTs)
    • ColorTemperature - color correction and white point adjustment
    • Examples showing how to drive multiple independent LED strips

    High Performance Math Package

    • High-speed sine and cosine
    • Cubic, triangle, and quadratic wave functions
    • In/Out easing functions

    And Also...

    • Many bug fixes and performance improvements, and
    • A big, shiny new version number to go with all this great code

    Daniel Garcia & Mark Kriegsman, October 2014

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Oct 27, 2014)

    Reminder: When installing, unzip the source zip and rename it to FastLED and move it to your Arduino/libraries folder (remove old versions of the library first, both from FastLED as well as FastSPI_LED).

    FastLED ~~2.1~~ 3.0

    We're proud to announce a fabulous new version of FastLED, an open source LED animation library for Arduino. This new version supports lots of new hardware and also includes:

    • vibrant new color, light, and power controls,
    • more than ten new example animations for you to remix (including 'fire'),
    • high performance math functions including fast sine and cosine, and
    • absolutely the fastest Perlin/Simplex noise generators ever seen on Arduino.

    A big thanks goes out to the entire FastLED community, who've helped shape and refine this library, and who have built some absolutely stunning projects with it.

    Here's some more detail on what's in this release:

    New Microcontroller Support Added

    • Arduino Due
    • Teensy 3.1
    • Digistump DigiX
    • Continued support for most other Arduino boards (Uno, Leonardo, Nano, Micro, etc.), the Adafruit Trinket, Gemma, and Flora, as well as PJRC Teensy 2 and Teensy 3.0.

    New LED Chip Support Added

    • APA102
    • APA104
    • GW6205 / GW6205_400
    • LPD1886
    • P9813 Total Control Lighting LEDs
    • USC1903_400
    • SmartMatrix
    • Continued support for NeoPixel, WS2811, WS2812, WS2812B, WS2801, LPD8806, TM1809, TM1804, TM1803, and SM16716!

    New Color, Light, and Power Controls

    • Programmable Color Palettes (CLUTs)
    • High-speed temporal dithering for smooth dimming with the master brightness control
    • Ability to calibrate each strip's RGB colors
    • Ability to adjust the LED white point / temperature
    • Ability to automatically limit LED power draw (current)

    Perlin/Simplex Noise

    • 1- 2- and 3-dimensional Perlin/Simplex noise
    • Multiple octave noise support
    • Example sketches using 'noise' for animated texture generation

    New Example Sketches

    • XYMatrix - show how to use a 2-D matrix of leds
    • Fire2012 - simple, fast fire simulation
    • Perlin/Simplex Noise - dynamic texture animation examples
    • ColorPalette - showing how to use color palettes (CLUTs)
    • ColorTemperature - color correction and white point adjustment
    • Examples showing how to drive multiple independent LED strips

    High Performance Math Package

    • High-speed sine and cosine
    • Cubic, triangle, and quadratic wave functions
    • In/Out easing functions

    And Also...

    • Many bug fixes and performance improvements, and
    • A big, shiny new version number to go with all this great code

    Daniel Garcia & Mark Kriegsman, October 2014

    Source code(tar.gz)
    Source code(zip)
  • v2-final(Jan 10, 2014)

    Finally, releasing FastLED (formerly FastSPI_LED2). With this version of the library there's a lot more changing than the name! Support for more chipsets, more platforms, as well as support libraries for fast math and color conversions. After downloading, move the FastLED directory to your Arduino libraries folder.

    Note: If you have been using the preview releases, you should change your include directive from including FastSPI_LED2.h to FastLED.h

    Source code(tar.gz)
    Source code(zip)
    FastLED.zip(61.09 KB)
Owner
FastLED
Fast, easy LED animation library for Arduino
FastLED
If the button pressed esp will reset and App mode will on. App mode will on then led will on, network is connected led will off.

DHT22-to-Google-sheet-Reset-Using-ESP8266-LED-Switch If button pressed esp will reset and App mode will on. App mode will on then led will on, network

Md. Harun-Or-Rashid 4 Oct 5, 2021
ozz-animation provides runtime character animation playback functionalities (loading, sampling, blending...)

ozz-animation open source c++ 3d skeletal animation library and toolset ozz-animation provides runtime character animation playback functionalities (l

Guillaume Blanc 1.7k Aug 11, 2022
This repository uses a ROS node to subscribe to camera (hikvision) and lidar (livox) data. After the node merges the data, it publishes the colored point cloud and displays it in rviz.

fusion-lidar-camera-ROS 一、介绍 本仓库是一个ROS工作空间,其中ws_fusion_camera/src有一个工具包color_pc ws_fusion_camera │ README.md │ └───src │ └───package: c

hongyu wang 16 Jul 22, 2022
Timer for advanced LED blinking for Arduino

TimerLED Timer for advanced LED blinking for Arduino (millis()-based) Compatibility Compatible with all Arduino platforms Dependencies TimerMs Install

Ilya 1 Oct 20, 2021
arduino controlled led matrix pullover

Animated Xmas pullover With this project we will make an animated pullover for the Christmas season. Controlled by a 32x8 LED matrix and a wemos D1 mi

null 1 Nov 5, 2021
Led library for ESP32

⚙ Led Control Library ESP32 Led control library with some useful and easy shortcuts to make the main code clean. ⚡ Install Download the code Add the f

Rafael Cabrera 1 Oct 14, 2021
A simple, modern C++ animation and timing library.

Choreograph A simple, modern C++ animation and timing library. v0.4.0 Choreograph is designed to describe motion. With it, you compose motion Phrases

David Wicks 287 Jul 30, 2022
Send messages to a LED Matrix display through Telegram. Inspired by a tweet from Smarter Every Day

Send messages to a LED Matrix display through Telegram. Inspired by a tweet from Smarter Every Day

Brian Lough 22 Jun 13, 2022
I2C to WS2812 (RGB LED) converter

i2c_ws2812 I2C to WS2812 (RGB LED) converter MCU and Peripherals The code is tested on ATtiny 0 & 1 series (ATtiny212 & ATtiny402). I2C, CCL, SPI, and

null 1 Oct 15, 2021
Create a firework effect with WS2812b LED and a MCU

LED-Fireworks Firework effect with WS2812b LED and a MCU This project uses FastLED library to control the LED strip. WS2812b IC is embedded into each

null 75 Jun 29, 2022
custom esp8266 controller for driving the pwm led controller

room8266 custom esp8266 controller for driving the pwm led controller designed to drive this: https://github.com/austinscreations/PWM-LED-Controller t

null 1 Nov 1, 2021
Code for my LED strip attached to a MIDI keyboard

midi-lights The original purpose of this code was simply to light an LED strip in response to MIDI received on the ESP8266 Serial port using this sche

Anand Lobo 1 Nov 18, 2021
Side panels for the Voron Zero printer that has 16 WS2812 RGB LED's per side.

Voron Zero RGB Side Panels Side panels for the Voron Zero printer with 16 WS2812 RGB LED's per side. The build below has some 3mm TAP Plastic black LE

Tim Abraham 3 Jul 22, 2022
Passive scriptable LED server for Raspberry Pi

Passive LED server Scriptable LED server that you can just keep running all the time on a Raspberry Pi. Requirements Raspberry Pi 4 or newer (older mi

Melissa 4 Dec 1, 2021
A motion-activated LED light strip controller. Supports up to two motion detectors.

A simple standalone motion activated controller for WS2812b LED lights Version 0.30 adds the ability to change settings from a web interface without r

null 4 Mar 12, 2022
A wireless control for an RGB LED based on emotions found in discord messages.

Sample project (See the README.md file in the upper level 'examples' directory for more information about examples.) This is the simplest buildable ex

Fernando Mendoza 2 Dec 1, 2021
Two alphanumeric LCDs and 2 LED bars to show and manage some in-flight parameters

FS2020-LCD-Panel with Arduino Two alphanumeric LCDs and 2 LED bars to show and manage some in-flight parameters for FS2020. In this project you can pl

null 5 Jun 27, 2022
EspHoMaTriX - A simple DIY status display with an 8x32 RGB LED panel implemented with esphome.io

EspHoMaTriX (ehmtx) A simple DIY status display with an 8x32 RGB LED panel implemented with esphome.io Introduction There are some status displays out

LuBeDa 23 Aug 9, 2022
Large LED Heart PCB Pendant

Large LED Heart PCB Pendant A large heart with 20 individually controllable LEDS using 4 pins on an ATtiny 45 with Charlieplexing This is an easy to s

null 5 Mar 18, 2022