FastFader

A fast cross-fader and pixel buffer for use with LED lighting strips.

Asemica Header

FastFader is an Arduino library that implements a fast cross-fader and pixel buffer for use with LED lighting strips. It pairs with the FastLED library to produce smooth, fast animations on WS2810, WS2811, LPD8806, Neopixel and other types of lighting strips. The code for FastFader is on GitHub.

Download the latest FastFader

Prerequisites

Since this needs to use the math.h library, you will need an Arduino ATmega168 or better CPU. You will also need to have the FastLED library installed.

Installation

To install this library, checkout this codebase and place the FastFader folder next to the FastLED folder in your Arduino Libraries folder. This will usually be in an Arduino folder wherever your operating system keeps documents. Restart the Arduino IDE, and you're ready to go.

Once this library is installed, you'll need to include it in the header of the .ino file for the relevant Arduino sketch. The best place for it will be directly below your #include directive for FastLED

#include "FastLED.h"
#include "FastFader.h"

// How many LEDs are in the strip
#define NUM_LEDS 18

// Using the Arduino Uno in dev mode
#define DATA_PIN 2
#define CLOCK_PIN 3

Next, where you initialize your LED strip, you'll also need to initialize a fader, then bind them. This should be in your void setup(); function:

void setup() {
  // Initialize the LED interface
  FastLED.addLeds(leds, NUM_LEDS);

  // Bind the pixel fader to the LED interface
  pixel_fader.bind(pixel_buffer, leds, NUM_LEDS, FastLED);
}

Usage

To see example lighting demonstrations, check out the `examples` folder of the codebase.

Maintenance

If you have something to contribute to this codebase, please fork it on github, make your change in a branch, and send me a pull request.

License

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 of the License.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Thanks

Special thanks to John Windberg for the hardware I used to develop this.