Installation & Setup
Prerequisites
- Supported Hardware:
- ESP32 (Classic): Fully supported.
- ESP32-S3: Fully supported (and recommended for new builds).
- ESP32-C3: NOT RECOMMENDED. The C3 is single-core, and since the effects are computationally intensive, running them alongside WiFi on a single core can cause stuttering and stability issues.
- ESP8266: NOT RECOMMENDED. The old ESP8266 is stuck on the Arduino framework and simply lacks the resources to run ESPHome and ChimeraFX simultaneously. Save yourself the headache and upgrade to an ESP32. Seriously.
- Framework: Both ESP-IDF and Arduino are fully supported!
You can install the component in two ways:
1. Declaring the External Component
ESPHome will download the component directly from GitHub at compile-time.
Add this to your esphome.yaml:
external_components:
- source: github://effelle/ChimeraFX@main
refresh: always # ⚠️ See "Versioning & Stability" below
cfx_effect: # Mandatory! Loads the component
⚠️ Versioning & Stability
About refresh: always
Setting to always forces ESPHome to download the absolute latest version of the code every time you compile.
- Pros: You always get the newest features and bug fixes immediately.
- Cons: If I break something in the
mainbranch, your build might break too!
For Production Stability:
Once you have a working setup, it is safer to remove refresh: always or pin to a specific commit hash. This ensures your lights keep working even if the repository changes.
Note: ChimeraFX controls depend on the number, select, and switch components. If your config doesn't use them, you must add the empty headers number:, select:, and switch: to your YAML to prevent compilation errors:
number:
select:
switch:
Light Configuration
ChimeraFX introduces its own high-performance, asynchronous DMA LED driver called cfx_light. This component automatically detects your ESP32 model and allocates the optimal memory blocks for flawless, jitter-free animation.
esp32:
board: your_board_here
framework:
type: esp-idf
light:
- platform: cfx_light
name: "LED Strip"
id: led_strip
pin: GPIO16 # Remember to select the correct pin for your board
num_leds: 60 # Number of LEDs in your strip
chipset: WS2812X # WS2812X, SK6812, WS2811
all_effects: true # Magic! Automatically registers all ChimeraFX effects.
For a full overview of the cfx_light platform, please refer to the cfx_light documentation.
Adding Effects Manually (Without all_effects)
If you prefer not to use all_effects: true, or want to create custom presets you can manually include specific effects:
effects:
- addressable_cfx:
name: "Kaleidos" # The display name of the effect (Required, customizable)
effect_id: 155 # The ChimeraFX effect ID (Required)
- addressable_cfx:
# Add more effects here
Alternatively, you can manually use the mass inclusion YAML file:
- Download
chimera_fx_effects.yamlfrom the repository root. - Save it to your ESPHome configuration folder (e.g.
/config/). - Include it in your light configuration:
light:
- platform: cfx_light
# ... your light config ...
effects: !include chimera_fx_effects.yaml
2. Advanced Manual Installation
If you are developing or need to modify the code locally, or simply you don't like to rely on the GitHub repository, you can manually copy the component to your ESPHome config directory:
- Download the
components/folder from the repository. - Place it in your ESPHome config directory (e.g.,
config/components/cfx_effect). - Point your configuration to the local folder:
external_components:
- source: components
components: [cfx_effect]
cfx_effect: # Mandatory! Loads the component
Note: This method requires you to manually update files when I release improvements or new effects.
Regardless of the installation method you chose, you are now ready to configure your controls.
Dependencies
The component handles its own dependencies automatically. The native cfx_light driver utilizes the built-in ESP-IDF RMT APIs for asynchronous hardware rendering and Neopixelbus as fallback for Arduino Framework.
You don't need to install anything else manually.