Commit Graph

162 Commits

Author SHA1 Message Date
zackees
1f2f3da6e1 update example with more explaination 2023-10-13 00:27:48 -07:00
zackees
ba109e9009 improve example 2023-10-12 18:13:48 -07:00
zackees
26cd9f1d7d adds DOTSTARHD 2023-10-12 17:40:40 -07:00
zackees
a36b331703 Implements 5bit hd gamma correction using the bit shift method for APA102 and SK9822 chipsets 2023-10-09 20:58:30 -07:00
David Madison
4186408a5d Merge commit '28beedb' into docs 2022-04-10 13:20:26 -04:00
David Madison
602bd81c01 Add all examples to Doxygen 2022-03-25 03:53:47 -04:00
Tochinet
611fa55f10
Update SmartMatrix.ino 2022-01-31 17:38:14 +01:00
Tochinet
e1ca95266f
Update SmartMatrix.ino 2022-01-31 17:35:15 +01:00
Ayke van Laethem
7b079f43ff
Fix incorrectly calling perlin noise "Simplex Noise"
Simplex noise is something different and is not implemented by the
FastLED library (yet!). Therefore, don't confuse people by calling it
Simplex Noise.
2021-06-22 15:07:30 +02:00
Marc Miller
7e070d6489 matrix x,y indicies changed back to uint8_t
Matrix examples x,y indicies changed back to uint8_t but returned pixel number kept as uint16_t

Added "Params for width and height" and "Param for different pixel layouts"  comment lines to match other matrix examples.

In NoisePlayground changed
#define kMatrixWidth to const uint8_t kMatrixWidth to match format in other matrix examples.
2021-04-04 15:59:45 -07:00
Marc Miller
f57fca35ce Some Modernization updates for #1208
As suggested in #1208 this updates:
LEDS.[function] to FastLED.[function]
Switch from byte to uint8_t
Use uint16_t for all LED index variables
Remove messages about minimum version
2021-04-03 19:31:24 -07:00
Jan Delgado
6eb6134867 build examples in CI using github actions
The examples are built for various different boards/platforms. Where
necessary, examples were changed to enable compilation also for ESP8266
and ESP32 platforms.
2020-12-30 13:54:05 +01:00
Mark Kriegsman
2fbac71e7b
Merge pull request #997 from 5chmidti/prefixOp
use prefix notation for ++ and -- where possible
2020-11-02 11:44:39 -05:00
5chmidti
2877f927ec use prefix notation for ++ and -- where possible 2020-10-26 16:55:48 +01:00
mwhch
51683f9773 implemented the option to place the matrix vertically 2020-09-12 04:32:16 +02:00
Mark Kriegsman
ced802e5a4 Adding Pacifica (ocean waves), Pride2015 (rainbows), and TwinkleFox (holiday lights) to the examples directory. 2020-01-30 13:50:54 -05:00
Martin Falatic
22339d873d Make examples consistent and document the likely non-RGB types
Resolves #878, #877, #928
2020-01-07 19:55:18 -08:00
Chris Sharp
5b5376459c
Update MultiArrays.ino
Correction so that the Blue LEDs are properly blacked out
2019-12-16 19:04:42 -05:00
Daniel Garcia
8ac3dd7f00
Defpin cleanup (#866)
* Bring fastpin_avr in line with standard defpin macros (to simplify porting document notes

* checkpoint - bring all the arm and esp platforms in line w/defpin macro naming/ordering

* checkpoint - update PORTING.md to include information around just adding pin definitions if needed

* Kick all the pin definitions to allow for some runtime querying of ports and tweak pintest to have it provide pin definitions for platforms that have port definitions but might be missing pin specifics (e.g. not yet-supported avr platforms
2019-08-25 16:58:19 -07:00
Daniel Garcia
1a40bd2020 Wiring parallel clockless support for the Teensy 4 into FastLED.addLeds - updaitng parallel output example - time to merge back to master\! 2019-08-12 18:39:58 -07:00
Daniel Garcia
0b337fb865 Updating the pintest program w/Teensy 4 defs 2019-08-11 20:50:38 -07:00
Daniel Garcia
a8873b3e25
Merge pull request #695 from domoritz/patch-1
Fix typo in example
2019-01-19 16:46:12 -08:00
Daniel Garcia
fd2cbea6eb Clearing out stale ESP32 code from the demos 2019-01-19 16:41:37 -08:00
heX
334fa8c40b Add support LPD6803 2018-12-25 11:10:41 -08:00
Dominik Moritz
5a642c485e
Fix typo in example 2018-12-09 19:48:19 -08:00
Sam Guyer
d41619400b ESP32 support using the RMT peripheral device (#522)
* Support for ESP32

Credit to Rina Shkrabova for the first cut.

* Clean up interrupt handling

I think there was actually an error in the interrupt enabling/disabling, but I also cleaned it up so that it is more clear how interrupts are handled.

* Better interrupt handling

* Added RMT version

Not fully portable yet, though. The timing numbers are hard-wired for WS2812, and the RMT channel is also hard-wired.

* Fixed the timing

Timing is now computed from T1, T2, amd T3 instead of being hard-wired.

* Better buffer management

The RMT signal is sent in 10-pixel chunks, using double-buffering to hide the latency when possible. Also: assign RMT channels sequentially.

* Total rewrite using Martin's code

* Better comments

* Fixed the timing calculation

We were not doing the conversion from ESP32 cycles to RMT cycles correctly. Now it all works!

* Added Martin's changes

* Removed confusing comments

* Added my name!

* Fixed ESP32 compile problem

On ESP platforms the dev kit provides the function __cxa_pure_virtual, so there is no need to define it.

* honor WAIT_TIME

for chipsets that need it (for example TM1829)

* Better interrupt handling

Suggested by @h3ndrik : allocated the interrupt once at the initialization and then just turn it on and off. This is the strategy that the ESP32 core uses also.

* Major refactoring

Two major changes to the RMT driver. First, I realized that we can have only one interrupt handler attached to the RMT peripheral, so it needs to be able to handle all of the attached strips. To accomplish this, I store each ClocklessController in an array indexed by its RMT channel. The interrupt handler can then take the channel that triggered it and index into the array to get the right controller.

The second major change is that I replaced all of the explicit bit twiddling of the RMT configurartion with calls to the proper functions in ESP32 core. That should make the code more stable if the core changes.

* Fixed the interrupt dispatch

Since the interrupt handler is global for all channels, we need to store not just the controller, but also the buffer refill function for each strip.

* Added a demo

This version of DemoReel100 spins off a separate task on core 0 that just performs the FastLED.show() operations. Regular code running on core 1 (the default for Arduino) signals this task to request a show().

* Avoid unnecessary timeouts

Replaced a 500ms delay in the show task with MAX_DELAY. There's really no point in timing out (and crashing the program) just because the application hasn't called show.

* Parallel output

Reworked the code again in order to support parallel output, which is now the default mode. You can also now ask it to use the built-in RMT driver if you have other parts of your code that need the RMT peripheral.

Two #defines control choices -- put either or both of these before including FastLED.h:

#define FASTLED_RMT_CORE_DRIVER

Uses the ESP core RMT driver. To do this, though, it allocates a big buffer to hold all of the pixel bits, so there is a memory and compute cost.

#define FASTLED_RMT_SERIAL_OUTPUT

Force serial output of each strip.

* Documentation

Describing the implementation and the compile-time switches

* Removing files that should not be there

* Fixed synchronization

The previous checkin had bugs in the syncronization that caused problems in parallel mode when strips are different lengths.

* Fixed a stupid bug

Made the code bullet-proof in a few ways, but most importantly fixed a terrible integer underflow bug in the code that fills the RMT buffer.

* Another major overhaul

The big change in this version is the ability to support more than 8 controllers. Instead of assigning RMT channels to controllers in a fixed mapping, channels are assigned on the fly, allowing the driver to reuse channels as they become available.

* Oops

Didn't mean to check these in.

* Fixed built-in driver mode

Fixed the code so that it works with the built-in RMT driver. There's nothing special to do to enable it -- just #define FASTLED_RMT_BUILTIN_DRIVER true

* Cleanup

Fixing some documentation and configuration stuff
2018-05-08 12:10:15 -07:00
per1234
6fd236684e Use consistent include syntax (#571)
- Angle brackets for external includes
- Space after #include directive
2018-04-18 14:03:24 -07:00
Paul Stoffregen
65a563f58f Add WS2812Serial driver (#517)
* Update Pintest example

* Use arm/k66 platform for Teensy 3.5

* Add WS2812Serial driver
2017-11-02 09:13:19 -07:00
Mark Kriegsman
94e46e3978 Updated scale16 and scale16by8 for AVR when FASTLED_SCALE8_FIXED is 1. scale16(foo,65535) now equals foo. Updated DemoReel100 to stay within range of NUM_LEDS on non-AVR platforms. Fixes #368. 2017-01-15 12:56:45 -05:00
Daniel Garcia
d90a452471 Merge pull request #382 from hsiboy/patch-1
Update MultiArrays.ino
2017-01-13 21:03:22 -08:00
stuart taylor
327930f3fb Update ArrayOfLedArrays.ino
Typo in comment, said four strips on three pins
2016-12-09 22:29:22 +00:00
stuart taylor
032ddd3bf7 Update MultiArrays.ino
comment said *four* strips on three pins. Code is for three strips on three pins.
2016-12-09 22:26:56 +00:00
Daniel Garcia
242988ba49 Fix RGBCalibrate example 2016-03-09 22:06:52 -08:00
Daniel Garcia
8b8d22b8bf Cylon should use the DATA_PIN #define 2016-02-15 14:26:26 -08:00
Mark Kriegsman
933b32f551 Fixed 'const' placement. Comments now match the code; presumably both are equally correct now. 2015-12-27 09:21:31 -05:00
Daniel Garcia
fcb0891574 Fix version check code for Arduino 1.6.6 and later 2015-12-12 02:32:55 -08:00
Daniel Garcia
7e152ff3f5 Add CRGBArray for defining the leds - preferred method to the normal array, now. 2015-12-09 11:13:10 -08:00
Daniel Garcia
616e0de643 Adding initial version of CRGBSet class 2015-12-08 17:10:08 -08:00
Daniel Garcia
fb5e83ec38 Apparently #error in .ino files will always fire. Not sure what's going on here, since #error's don't fire in other sections of code. Switching to a #warning for now. 2015-11-18 00:03:33 -08:00
Daniel Garcia
ac1c9b281f Undoing example change. 2015-08-19 10:04:56 -07:00
Daniel Garcia
26aaa82216 If re-attempting a show right after an interrupt interrupts things, make sure we wait the gap to minimize led flickering. 2015-08-19 10:04:23 -07:00
Mark Kriegsman
962b1205a7 Added gReverseDirection control to Fire2012 examples. 2015-08-07 14:21:11 -04:00
Daniel Garcia
acff8eb504 Add a few new chipsets to the blink/firstlight examples. 2015-06-07 11:16:27 -07:00
Mark Kriegsman
7e058dcaea Change BLEND to LINEARBLEND for ColorFromPalette 2015-05-13 20:09:08 -04:00
Daniel Garcia
d27cb750d3 Fix rfduino building 2015-03-10 20:56:34 -07:00
Daniel Garcia
f91fef7bc4 fixing merge conflicts 2015-03-10 20:47:10 -07:00
Daniel Garcia
a6adcd550b For #125, add clock/data pin definitions to the U2 and friends when using @nicohood's bootloader. 2015-02-17 09:59:58 -08:00
Daniel Garcia
972a5cd777 Fix namespace in demo reel 2015-02-10 22:22:08 -05:00
Mark Kriegsman
e2b687810e Adding DemoReel100 example 2015-01-07 19:56:56 -05:00
Daniel Garcia
832c1bcdec Prefix config defines with FASTLED_ to make sure we don't conflict with anything else. 2014-11-24 12:13:09 -08:00