I mixed the work of McLighting, Russell and Jake's "Grisworld" with FastLED (FastLED library 3.1.3 as of this writing), the colorjs colorpicker, color spectrums created via FastLED Palette Knife, and some additional strip animations (included in the Arduino Sketch above).
FastLED 3.1.3 library: https://github.com/FastLED/FastLED
McLighting library: https://github.com/toblum/McLighting
Russel's implementation: https://github.com/russp81/LEDLAMP_FASTLEDs
Jakes's "Grisworld" Led Controller https://github.com/jake-b/Griswold-LED-Controller
jscolor Color Picker: http://jscolor.com/
FastLED Palette Knife: http://fastled.io/tools/paletteknife/
If you aren't familiar with how to setup your ESP8266, see the readme on McLighting's git. It's well written and should get you up and running.
In short you will:
// Note, you need to patch FastLEDs in order to use this. You'll get an // error related to <avr\pgmspace.h>. Saves more than 3k given the palettes // // Simply edit <fastled_progmem.h> and update the include (Line ~29): #if FASTLED_INCLUDE_PGMSPACE == 1 #if (defined(__AVR__)) #include <avr\pgmspace.h> #else #include <pgmspace.h> #endif #endif
Forked from Russel, i removed Adafruit Neopixel references and library calls.
Use ESP8266FS plugin to upload all files from /data to SPIFFS.
Arduino ESP8266 filesystem uploader https://github.com/esp8266/arduino-esp8266fs-plugin
new effect: Fire (from WS2812FX)
new effect: RainbowFire
new effect: Fireworks [single color, rainbow, random] (from McLightning, ported to used FastLED instead off Adafruit Neopixel)
new settings for effects in webinterface *.htm
speedup the UI alot by pulling the materialize stuff (.css/.js) from server and using .gz compressed files for the rest
made the UI more responsive with grouped sections and buttons
added some more palettes
integrated Arduino OTA
included setup of LED-count and maximum allowed LED-current to web-interface and EEprom, so different strings don't need changs in source-code
Large Screen (Desktop)
Small Screen (Mobile)
I edited clockless_esp8266.h (in the FastLED platforms folder) and
kept getting flickering until I incremented the WAIT_TIME up to 18us.
(also I did "#define FASTLED_INTERRUPT_RETRY_COUNT 3" inside my sketch).
For reference, interrupts issue: https://github.com/FastLED/FastLED/issues/306
Griswold 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. This program 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 General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
It seemed necessary to name the thing after Clark Griswold, but really just to differentiate this fork from the originals.
@russp81 mixed the work of @toblum with the @FastLED (FastLED library 3.1.3 as of this writing), the colorjs colorpicker, color spectrums created via FastLED Palette Knife, and some additional strip animations.
Normally, you use PaletteKnife to generate arrays with the palette info. You then compile this data into your project. I wanted to be able to update the palettes without recompiling, so I moved them to files in SPIFFS (/palettes directory). There is a little python program that basically takes the logic from PaletteKnife and outputs a binary file with the palette data instead. Load these binary files to SPIFFS using the Arduino ESP8266 filesystem uploader or manually.