• Stars
    star
    356
  • Rank 119,446 (Top 3 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created almost 8 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Adalight with FastLED support

Adalight-FastLED

Build Status

Adalight-Rainbow

Synopsis

This project modifies the Adalight protocol to use FastLED (fastled.io). This expands Adalight to, in theory, work with any supported FastLED strip including WS2812B (aka Adafruit NeoPixels).

In addition to ambilight setups, the protocol can be used to stream any color data over serial from a computer to supported LED strips.

For this sketch to work, you'll need to have a copy of the FastLED library. You can download FastLED from GitHub or through the libraries manager of the Arduino IDE. This program was writen using FastLED 3 - note that earlier versions of FastLED are untested and may not work properly.

For more information on my own ambilight setup, see the project page on PartsNotIncluded.com.

Basic Setup

Open the LEDstream_FastLED file in the Arduino IDE and customize the settings at the top for your setup. You will need to change:

  • Number of LEDs
  • LED data pin
  • LED type

If you are using a 4-wire LED chipset like APA102 or SK9822, you will need to uncomment the PIN_CLOCK line and set that as well.

Upload to your Arduino and use a corresponding PC application to stream color data. You can get the Processing files from the main Adalight repository, though I would recommend using Patrick Siegler's fork of Lightpacks's Prismatik, which you can find here.

Additional Settings

There are additional settings to allow for adjusting:

  • Max brightness
  • LED color order
  • Serial speed
  • Serial timeout length

There are also optional settings to clear the LEDs on reset or flush the incoming serial buffer after every latch. This latter option is enabled by default to help with flickering when using WS2812B LEDs.

Debug Settings

The code includes two debugging options:

  • DEBUG_LED
  • DEBUG_FPS

DEBUG_LED will turn on the Arduino's built-in LED on a successful header match, and off when the LEDs latch. If your LEDs aren't working, this will help confirm that the Arduino is receiving properly formatted serial data.

DEBUG_FPS, similarly, will toggle a given pin when the LEDs latch. This is useful for measuring framerate with external hardware, like a logic analyzer.

To enable either of these settings, uncomment their respective #define lines.

Issues and LED-types

I've only tested the code with the WS2812B strips I have on hand, but so far it performs flawlessly. If you find an issue with the code or can confirm that it works with another chipset, please let me know!

Credits and Contributions

Thanks to Adafruit for the initial code and for developing the Adalight protocol. The base for the original FastLED modifications is this gist by James Bruce. Thanks James!

Pull requests to improve this software are always welcome!

License

Adalight 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, either version 3 of the License, or (at your option) any later version.

Adalight 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 Adalight. If not, see http://www.gnu.org/licenses/.

More Repositories

1

ArduinoXInput

XInput library for USB capable Arduino boards
C++
337
star
2

LED-Segment-ASCII

Library of ASCII character representations using 7 segment, 14 segment, and 16 segment LED displays
131
star
3

NintendoExtensionCtrl

Arduino library for communicating with Nintendo extension controllers
C++
105
star
4

ArduinoXInput_AVR

AVR boards package for the ArduinoXInput project
C
70
star
5

Sim-Racing-Arduino

A library to connect sim racing peripherals to Arduino development boards
C++
53
star
6

OBS-ChatSpam

Python script for OBS Studio that posts messages in Twitch chat
Python
40
star
7

ArduinoXInput_Teensy

Teensy boards package for the ArduinoXInput project
C
29
star
8

Sim-Racing-Shields

Add-on circuit boards ("shields") for connecting Arduino development boards to sim racing equipment.
C
23
star
9

ServoInput

Interrupt-driven servo decoder library for Arduino
C++
21
star
10

HID_Buttons

Arduino library making it easier to use HID buttons
C++
20
star
11

Teensy40_Minimalist_USB_Host

A minimalist USB host shield for the Teensy 4.0 development board
20
star
12

FrameVis

A video visualizer / movie barcode generator
Python
15
star
13

OBS-Mute-Indicator

Python script for OBS Studio that sends the 'mute' state of an audio source over serial
C++
15
star
14

ArduinoXInput_Sparkfun

SparkFun boards package for the ArduinoXInput project
C
14
star
15

FastLED_NeoPixel

An Arduino library for using Adafruit NeoPixel library animations with FastLED
C++
14
star
16

Prismatik-iRacing

Prismatik plugin that maps data from the iRacing API
Python
12
star
17

DJHero-Lucio

Code and CAD files for the DJ Hero Lucio controller
C++
9
star
18

RC-Forza-Controller

Modified RC controller to play Forza Horizon 4.
C++
8
star
19

splitflap-youtube-stats

Script for fetching YouTube statistics from the API and sending them to a split-flap display
Python
8
star
20

Xbox360ControllerLEDs

Arduino library for emulating Xbox 360 controller LED animations
C++
7
star
21

McCree-Hammershot

Code and other files for the McCree Hammershot controller
Arduino
6
star
22

Pro_Micro_USB-A

ATMega32U4 Arduino board from SparkFun, modified to work with a USB-A connector
C++
5
star
23

MIDItoMoppy

Arduino library to convert MIDI notes to Moppy data
C++
5
star
24

DJHero-SpinRhythm

Code and CAD files for the DJ Hero modifications for Spin Rhythm XD
C++
5
star
25

AnalogSelector-Arduino

Arduino library for reading a potentiometer as a multi-selector switch
C++
3
star
26

CtrlUtil

Controller Utilities Library for Arduino
C++
2
star
27

OBS-Audio-Track-Hotkeys

Python script for OBS Studio that creates hotkeys for setting audio source track assignments.
Python
2
star
28

MediaFootswitch

Program files for the USB media footswitch controller https://www.partsnotincluded.com/diy-media-key-footswitch-for-pc/
C++
2
star