imported from "final" folder
This commit is contained in:
223
.pio/libdeps/esp01_1m/FastLED/examples/README.md
Normal file
223
.pio/libdeps/esp01_1m/FastLED/examples/README.md
Normal file
@@ -0,0 +1,223 @@
|
||||
# FastLED Examples (`examples/`)
|
||||
|
||||
This document maps the example sketches, shows how to run them on different targets (Arduino/PlatformIO, Teensy, ESP32, WASM), and suggests learning paths. It mirrors the structure and tone of `src/fl/README.md` so you can quickly jump between concepts and runnable code.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Overview and Quick Start](#overview-and-quick-start)
|
||||
- [How to Run Examples](#how-to-run-examples)
|
||||
- [Arduino IDE (classic workflow)](#arduino-ide-classic-workflow)
|
||||
- [PlatformIO (boards and native host)](#platformio-boards-and-native-host)
|
||||
- [Teensy/OctoWS2811](#teensyoctows2811)
|
||||
- [ESP32 / I2S (parallel output)](#esp32--i2s-parallel-output)
|
||||
- [WASM (browser demos + JSON UI)](#wasm-browser-demos--json-ui)
|
||||
- [Directory Map (by theme)](#directory-map-by-theme)
|
||||
- [Basics and core idioms](#basics-and-core-idioms)
|
||||
- [Color, palettes, and HSV](#color-palettes-and-hsv)
|
||||
- [Classic 1D effects](#classic-1d-effects)
|
||||
- [2D, matrices, mapping](#2d-matrices-mapping)
|
||||
- [FX engine and higher-level utilities](#fx-engine-and-higher-level-utilities)
|
||||
- [Audio and reactive demos](#audio-and-reactive-demos)
|
||||
- [Storage, SD card, and data](#storage-sd-card-and-data)
|
||||
- [Multiple strips, parallel, and high-density](#multiple-strips-parallel-and-high-density)
|
||||
- [ESP/Teensy/SmartMatrix specifics](#espteensysmartmatrix-specifics)
|
||||
- [WASM and UI](#wasm-and-ui)
|
||||
- [Larger projects and showcases](#larger-projects-and-showcases)
|
||||
- [Quick Usage Notes](#quick-usage-notes)
|
||||
- [Choosing an Example](#choosing-an-example)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Guidance for New Users](#guidance-for-new-users)
|
||||
- [Guidance for C++ Developers](#guidance-for-c-developers)
|
||||
|
||||
---
|
||||
|
||||
## Overview and Quick Start
|
||||
|
||||
The `examples/` directory contains runnable sketches that cover:
|
||||
- Getting started (blinking, first LED, pin modes)
|
||||
- Color utilities, palettes, and HSV/CRGB conversions
|
||||
- Classic 1D effects (Cylon, Fire, Twinkles, DemoReel100)
|
||||
- 2D matrix helpers, XY mapping, and raster effects
|
||||
- Advanced pipelines like downscale/upscale and path rendering
|
||||
- Platform-specific demos (Teensy OctoWS2811, ESP I2S)
|
||||
- Browser/WASM examples with JSON-driven UI controls
|
||||
|
||||
Typical first steps:
|
||||
- Open an example in the Arduino IDE and change `NUM_LEDS`, chipset, and `DATA_PIN` to match hardware
|
||||
- For matrices, define width/height and choose serpentine vs. row-major mapping
|
||||
- For WASM or host exploration, use the WASM examples or the STUB platform (see below)
|
||||
|
||||
---
|
||||
|
||||
## How to Run Examples
|
||||
|
||||
### Arduino IDE (classic workflow)
|
||||
|
||||
- Open an `.ino` file directly (e.g., `examples/Blink/Blink.ino`)
|
||||
- Edit the configuration near the top:
|
||||
- LED type: `FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS)`
|
||||
- Strip length: `NUM_LEDS`
|
||||
- Brightness: `FastLED.setBrightness(…)`
|
||||
- Select your board and COM/serial port, then Upload
|
||||
|
||||
Tips:
|
||||
- For 2D examples, set `WIDTH`/`HEIGHT` and confirm wiring (serpentine vs. linear)
|
||||
- If the animation is mirrored or offset, adjust the mapping helper
|
||||
|
||||
### PlatformIO (boards and native host)
|
||||
|
||||
- Board-based workflows: create a `platformio.ini` that targets your MCU and copy an example sketch into a project `src/` folder
|
||||
- Host/STUB workflows: use the STUB platform for local testing where appropriate (no hardware); advanced builds hook into `src/platforms/stub/`
|
||||
|
||||
The repository includes `ci/native/` and `ci/kitchensink/` PlatformIO configs you can reference for host builds and integration tests.
|
||||
|
||||
### Teensy/OctoWS2811
|
||||
|
||||
- Examples under `examples/OctoWS2811*` and related Teensy demos show multi-output patterns
|
||||
- Replace pin/channel configuration and buffer sizes to match your wiring; ensure you select the correct Teensy model in your IDE/toolchain
|
||||
|
||||
### ESP32 / I2S (parallel output)
|
||||
|
||||
- See `examples/EspI2SDemo/` and `examples/Esp32S3I2SDemo/`
|
||||
- These demonstrate high-throughput I2S-driven output; choose a board definition matching your dev board and wiring
|
||||
- On some environments, parallel output requires specific pin sets and PSRAM settings; consult the sketch notes
|
||||
|
||||
### WASM (browser demos + JSON UI)
|
||||
|
||||
- `examples/wasm/` and related WASM-focused examples run in the browser
|
||||
- The JSON UI system enables sliders, buttons, and other controls (see `src/platforms/wasm` and `src/fl/ui.h`)
|
||||
- Typical flow: build to WebAssembly, serve the app, and interact via the browser UI
|
||||
|
||||
---
|
||||
|
||||
## Directory Map (by theme)
|
||||
|
||||
This list highlights commonly used examples. It is not exhaustive—browse the folders for more.
|
||||
|
||||
### Basics and core idioms
|
||||
|
||||
- `Blink/` — minimal starting point
|
||||
- `FirstLight/` — walk a single bright pixel along the strip
|
||||
- `PinMode/` — simple input pin usage
|
||||
- `RGBSetDemo/` — basic pixel addressing and assignment
|
||||
- `RGBCalibrate/` — adjust color channel balance
|
||||
|
||||
### Color, palettes, and HSV
|
||||
|
||||
- `ColorPalette/` — palette usage and transitions
|
||||
- `ColorTemperature/` — white point and temperature helpers
|
||||
- `HSVTest/` — HSV types and conversions
|
||||
- `ColorBoost/` — saturation/luminance shaping for high visual impact
|
||||
|
||||
### Classic 1D effects
|
||||
|
||||
- `Cylon/`, `FxCylon/` — scanning eye; FX variants use higher-level helpers
|
||||
- `Fire2012/`, `Fire2012WithPalette/`, `FxFire2012/` — classic fire effect
|
||||
- `TwinkleFox/`, `FxTwinkleFox/` — twinkling star fields
|
||||
- `Pride2015/`, `FxPride2015/` — rainbow variants
|
||||
- `DemoReel100/`, `FxDemoReel100/` — rotating showcase of many patterns
|
||||
- `Wave/` — 1D wave toolkit
|
||||
|
||||
### 2D, matrices, mapping
|
||||
|
||||
- `XYMatrix/` — matrix mapping helpers and layouts
|
||||
- `Wave2d/`, `FxWave2d/` — 2D wavefields
|
||||
- `Blur2d/` — separable blur across a matrix
|
||||
- `Downscale/` — render high-res, resample to panel resolution
|
||||
- `Animartrix/` — animated matrix patterns and helpers
|
||||
- `SmartMatrix/` — SmartMatrix integration sketch
|
||||
|
||||
### FX engine and higher-level utilities
|
||||
|
||||
- `FxEngine/` — scaffolding for composing layers and frames
|
||||
- `FxGfx2Video/` — utilities to pipe graphics into frame/video helpers
|
||||
- `fx/` under `src/` provides the building blocks used by these examples
|
||||
|
||||
### Audio and reactive demos
|
||||
|
||||
- `Audio/` — audio input + analysis (simple and advanced variants)
|
||||
- `Ports/PJRCSpectrumAnalyzer/` — Teensy-centric spectrum analyzer
|
||||
|
||||
### Storage, SD card, and data
|
||||
|
||||
- `FxSdCard/` — SD-backed media and assets (see `data/` subfolder)
|
||||
|
||||
### Multiple strips, parallel, and high-density
|
||||
|
||||
- `Multiple/` — organize multiple arrays/segments
|
||||
- `TeensyParallel/` — multi-output example
|
||||
- `TeensyMassiveParallel/` — larger multi-output wiring
|
||||
- `OctoWS2811/`, `OctoWS2811Demo/` — OctoWS2811 multi-channel output
|
||||
|
||||
### ESP/Teensy/SmartMatrix specifics
|
||||
|
||||
- `EspI2SDemo/`, `Esp32S3I2SDemo/` — ESP32 parallel/I2S output
|
||||
- `SmartMatrix/` — run on SmartMatrix hardware
|
||||
|
||||
### WASM and UI
|
||||
|
||||
- `wasm/` — browser-targeted demo
|
||||
- `WasmScreenCoords/` — UI overlay and coordinate visualization
|
||||
- `Json/` — JSON-structured sketch example
|
||||
- `UITest/` — showcase of JSON UI controls and groups
|
||||
|
||||
### Larger projects and showcases
|
||||
|
||||
- `LuminescentGrand/` — complex, multi-file installation piece
|
||||
- `Luminova/` — larger effect set
|
||||
- `Chromancer/` — advanced example with assets and helpers
|
||||
|
||||
---
|
||||
|
||||
## Quick Usage Notes
|
||||
|
||||
- Always set the LED chipset, pin, color order, and `NUM_LEDS` to match your hardware:
|
||||
- `FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);`
|
||||
- Common CHIPSETs: `WS2812B`, `SK6812`, `APA102` (APA102 also needs `CLK_PIN`)
|
||||
- Adjust brightness and power: `FastLED.setBrightness(…)` and consider power limits for dense strips
|
||||
- For matrices, define `WIDTH`/`HEIGHT` and use serpentine or row-major helpers; verify orientation
|
||||
- Prefer using `fl::Leds` + `XYMap` for 2D logic when the example exposes those hooks
|
||||
- For high quality on low-res displays, render at higher resolution and `downscale`
|
||||
|
||||
---
|
||||
|
||||
## Choosing an Example
|
||||
|
||||
- New to FastLED: start with `Blink` → `FirstLight` → `DemoReel100`
|
||||
- Building a palette-based animation: `ColorPalette` and `ColorTemperature`
|
||||
- Making a 1D animation: `Cylon`, `Fire2012`, `TwinkleFox`
|
||||
- Driving a panel: `XYMatrix`, then try `Downscale` or `Wave2d`
|
||||
- Multi-output / high-density: `OctoWS2811Demo`, `TeensyParallel`
|
||||
- Browser demo / UI: `wasm`, `UITest`, `Json`
|
||||
- Advanced/experimental: `Corkscrew` (in `src/fl`), `Fx*` examples, and `Chromancer`
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- Nothing lights up:
|
||||
- Re-check `DATA_PIN`, chipset, and `COLOR_ORDER`
|
||||
- Confirm `NUM_LEDS` and power are correct; try a low brightness first
|
||||
- Colors look wrong: try `GRB` vs. `RGB` ordering; some strips invert green/red
|
||||
- Matrix appears mirrored or wrapped: change serpentine/row-major mapping or flip `WIDTH` and `HEIGHT`
|
||||
- ESP32 I2S pinning: verify the chosen pins are valid for your board’s I2S peripheral
|
||||
- Teensy multi-output: confirm channel count and buffer sizes match your wiring
|
||||
|
||||
---
|
||||
|
||||
## Guidance for New Users
|
||||
|
||||
- Include `FastLED.h`, pick your chipset, set `NUM_LEDS`, and get something simple running first
|
||||
- For matrices, draw into width/height coordinates and let mapping/wiring helpers translate to indices
|
||||
- Explore the palette and HSV examples for smooth color; try `fill_rainbow` and `CHSV`
|
||||
- When moving to larger builds, consider splitting configuration and effect code into separate files for clarity
|
||||
|
||||
## Guidance for C++ Developers
|
||||
|
||||
- Many examples are deliberately small; for more reusable building blocks, see `src/fl/` and `src/fx/`
|
||||
- Prefer `fl::` containers, views (`fl::span`), and graphics helpers for portability and quality
|
||||
- For UI/remote control on capable targets, use the JSON UI elements (see `src/fl/ui.h`) and WASM bridge (`src/platforms/wasm`)
|
||||
|
||||
---
|
||||
|
||||
This README will evolve alongside the examples. Browse subfolders for sketch-specific notes and hardware details. For the core library map and deeper subsystems, see `src/README.md` and `src/fl/README.md`.
|
||||
Reference in New Issue
Block a user