Skip to content

Commit

Permalink
StarField effect added
Browse files Browse the repository at this point in the history
  • Loading branch information
Brandon502 committed Aug 14, 2024
1 parent de7a7a5 commit 034e2ca
Show file tree
Hide file tree
Showing 3 changed files with 198 additions and 115 deletions.
230 changes: 115 additions & 115 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -96,15 +96,15 @@ build_flags =
${STARBASE_USERMOD_E131.build_flags}
${STARBASE_USERMOD_MPU6050.build_flags}
; ${STARBASE_USERMOD_HA.build_flags}
${STARBASE_USERMOD_LIVE.build_flags}
; ${STARBASE_USERMOD_LIVE.build_flags}
lib_deps =
${ESPAsyncWebServer.lib_deps} ;alternatively PsychicHttp
https://github.com/bblanchon/ArduinoJson.git @ 7.1.0 ;#v7.0.3
; https://github.com/Jason2866/ESP32_Show_Info.git
${STARBASE_USERMOD_E131.lib_deps}
${STARBASE_USERMOD_MPU6050.lib_deps}
; ${STARBASE_USERMOD_HA.lib_deps}
${STARBASE_USERMOD_LIVE.lib_deps}
; ${STARBASE_USERMOD_LIVE.lib_deps}


[STARLIGHT_USERMOD_WLEDAUDIO]
Expand Down Expand Up @@ -175,139 +175,139 @@ lib_deps =
; ${STARLIGHT_CLOCKLESS_LED_DRIVER.lib_deps} ; temporary here, until there is one driver for s3 and non s3


[env:pico32]
board = pico32 ;https://github.com/platformio/platform-espressif32/blob/develop/boards/pico32.json
; recommended to pin to a platform version, see https://github.com/platformio/platform-espressif32/releases
platform = espressif32@6.5.0 ;using platformio/framework-arduinoespressif32 @ ~3.20014.0 / framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
upload_speed = 230400 ; reduced speed, as a manually attached serial-to-USB Module is needed on most pico boards (flimsy cables -> not reliable connection)
build_flags =
${env.build_flags}
-D CONFIG_IDF_TARGET_ESP32=1
-D ARDUINO_USB_CDC_ON_BOOT=0 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (needed on "classic ESP32")
; ${STARLIGHT_CLOCKLESS_LED_DRIVER.build_flags} ; temporary here, until there is one driver for s3 and non s3
lib_deps =
${env.lib_deps}
; ${STARLIGHT_CLOCKLESS_LED_DRIVER.lib_deps} ; temporary here, until there is one driver for s3 and non s3


[env:lolin_d32]
board = lolin_d32 ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_d32.json (no differences with esp32dev)
; recommended to pin to a platform version, see https://github.com/platformio/platform-espressif32/releases
platform = espressif32@6.5.0 ;using platformio/framework-arduinoespressif32 @ ~3.20014.0 / framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
upload_speed = 1500000
build_flags =
${env.build_flags}
; -DARDUINO_ARCH_ESP32 ; no proof of necessity yet...
-D CONFIG_IDF_TARGET_ESP32=1
-D ARDUINO_USB_CDC_ON_BOOT=0 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (needed on "classic ESP32")
; ${STARLIGHT_CLOCKLESS_LED_DRIVER.build_flags} ; temporary here, until there is one driver for s3 and non s3
lib_deps =
${env.lib_deps}
; ${STARLIGHT_CLOCKLESS_LED_DRIVER.lib_deps} ; temporary here, until there is one driver for s3 and non s3


; [env:pico32]
; board = pico32 ;https://github.com/platformio/platform-espressif32/blob/develop/boards/pico32.json
; ; recommended to pin to a platform version, see https://github.com/platformio/platform-espressif32/releases
; platform = espressif32@6.5.0 ;using platformio/framework-arduinoespressif32 @ ~3.20014.0 / framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
; upload_speed = 230400 ; reduced speed, as a manually attached serial-to-USB Module is needed on most pico boards (flimsy cables -> not reliable connection)
; build_flags =
; ${env.build_flags}
; -D CONFIG_IDF_TARGET_ESP32=1
; -D ARDUINO_USB_CDC_ON_BOOT=0 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (needed on "classic ESP32")
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER.build_flags} ; temporary here, until there is one driver for s3 and non s3
; lib_deps =
; ${env.lib_deps}
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER.lib_deps} ; temporary here, until there is one driver for s3 and non s3


; [env:lolin_d32]
; board = lolin_d32 ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_d32.json (no differences with esp32dev)
; ; recommended to pin to a platform version, see https://github.com/platformio/platform-espressif32/releases
; platform = espressif32@6.5.0 ;using platformio/framework-arduinoespressif32 @ ~3.20014.0 / framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
; upload_speed = 1500000
; build_flags =
; ${env.build_flags}
; ; -DARDUINO_ARCH_ESP32 ; no proof of necessity yet...
; -D CONFIG_IDF_TARGET_ESP32=1
; -D ARDUINO_USB_CDC_ON_BOOT=0 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (needed on "classic ESP32")
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER.build_flags} ; temporary here, until there is one driver for s3 and non s3
; lib_deps =
; ${env.lib_deps}
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER.lib_deps} ; temporary here, until there is one driver for s3 and non s3

[env:lolin_s2_mini]
board = lolin_s2_mini ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_s2_mini.json
; platform = espressif32@5.3.0 ; WLED default framework version
platform = espressif32@6.3.0 ; this one behaves better for debugging
upload_speed = 256000
build_flags =
${env.build_flags}
; -DARDUINO_ARCH_ESP32 ; no proof of necessity yet...
-D CONFIG_IDF_TARGET_ESP32S2=1
-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_DFU_ON_BOOT=1 -D ARDUINO_USB_MSC_ON_BOOT=0 ; for debugging over USB
; -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 ; with serial-to-USB moddule (use in case your board hangs without USB connection)
-D ARDUINO_USB_MODE=0 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (mandatory on -S2)
; -D DEBUG=1 -D CORE_DEBUG_LEVEL=1 -D ARDUINOJSON_DEBUG=1 ; for more debug output
-D STARBASE_LOLIN_WIFI_FIX ; workaround for LOLIN C3/S2/S3 wifi instability. https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.build_flags} ; temporary here, until there is one driver for s3 and non s3
lib_deps =
${env.lib_deps}
; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.lib_deps} ; temporary here, until there is one driver for s3 and non s3

; attention! : manual action needed to select CLedDriver
; uncomment last 4 lines in the env description
; comment the following lines in the CLD-S3 repo (workaround), otherwise compile error:
; #include "hal/lcd_ll.h"
; #include "soc/gdma_reg.h"

; [env:lolin_c3_mini]
; board = lolin_c3_mini ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_c3_mini.json
; [env:lolin_s2_mini]
; board = lolin_s2_mini ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_s2_mini.json
; ; platform = espressif32@5.3.0 ; WLED default framework version
; platform = espressif32@6.3.0 ; this one behaves better for debugging
; upload_speed = 256000
; build_unflags =
; ${env.build_unflags}
; -mtarget-align
; build_flags =
; ${env.build_flags}
; ; -DARDUINO_ARCH_ESP32 ; no proof of necessity yet...
; ; -DARDUINO_ARCH_ESP32C3 ; no proof of necessity yet...
; -D CONFIG_IDF_TARGET_ESP32C3=1
; -D ARDUINO_USB_CDC_ON_BOOT=1 ; for debugging over USB
; ; -DARDUINO_USB_CDC_ON_BOOT=0 ; with serial-to-USB moddule (use in case your board hangs without USB connection)
; -D ARDUINO_USB_MODE=1 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (mandatory on -C3)
; -D STARBASE_LOLIN_WIFI_FIX ; activate workaround for LOLIN C3/S2/S3 wifi instability. https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
; -D CONFIG_IDF_TARGET_ESP32S2=1
; -D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_DFU_ON_BOOT=1 -D ARDUINO_USB_MSC_ON_BOOT=0 ; for debugging over USB
; ; -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 ; with serial-to-USB moddule (use in case your board hangs without USB connection)
; -D ARDUINO_USB_MODE=0 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (mandatory on -S2)
; ; -D DEBUG=1 -D CORE_DEBUG_LEVEL=1 -D ARDUINOJSON_DEBUG=1 ; for more debug output
; -D STARBASE_LOLIN_WIFI_FIX ; workaround for LOLIN C3/S2/S3 wifi instability. https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.build_flags} ; temporary here, until there is one driver for s3 and non s3
; lib_deps =
; ${env.lib_deps}
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.lib_deps} ; temporary here, until there is one driver for s3 and non s3

; ; attention! : manual action needed to select CLedDriver
; ; uncomment last 4 lines in the env description
; ; comment the following lines in the CLD-S3 repo (workaround), otherwise compile error:
; ; #include "hal/lcd_ll.h"
; ; #include "soc/gdma_reg.h"

; ; [env:lolin_c3_mini]
; ; board = lolin_c3_mini ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_c3_mini.json
; ; ; platform = espressif32@5.3.0 ; WLED default framework version
; ; platform = espressif32@6.3.0 ; this one behaves better for debugging
; ; upload_speed = 256000
; ; build_unflags =
; ; ${env.build_unflags}
; ; -mtarget-align
; ; build_flags =
; ; ${env.build_flags}
; ; ; -DARDUINO_ARCH_ESP32 ; no proof of necessity yet...
; ; ; -DARDUINO_ARCH_ESP32C3 ; no proof of necessity yet...
; ; -D CONFIG_IDF_TARGET_ESP32C3=1
; ; -D ARDUINO_USB_CDC_ON_BOOT=1 ; for debugging over USB
; ; ; -DARDUINO_USB_CDC_ON_BOOT=0 ; with serial-to-USB moddule (use in case your board hangs without USB connection)
; ; -D ARDUINO_USB_MODE=1 ; Make sure that the right HardwareSerial driver is picked in arduino-esp32 (mandatory on -C3)
; ; -D STARBASE_LOLIN_WIFI_FIX ; activate workaround for LOLIN C3/S2/S3 wifi instability. https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
; ; ; -D DEBUG=1 -D CORE_DEBUG_LEVEL=1 -D ARDUINOJSON_DEBUG=1 ; for more debug output

; RAM: [= ] 14.3% (used 46732 bytes from 327680 bytes)
; Flash: [======= ] 74.4% (used 1414876 bytes from 1900544 bytes)

; for Waveshare ESP32-S3 Mini/Zero https://www.waveshare.com/esp32-s3-zero.htm
; --> 4MB Flash, has PSRAM, memory type "qio_qspi", USB-CDC only
[env:lolin_s3_mini]
platform = espressif32@6.3.0 ; this one behaves better for debugging
board = lolin_s3_mini ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_s3_mini.json
build_flags =
${env.build_flags}
-D CONFIG_IDF_TARGET_ESP32S3=1
-D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_DFU_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0 ; for debugging over USB
; -D DEBUG=1 -D CORE_DEBUG_LEVEL=1 -D ARDUINOJSON_DEBUG=1 ; for more debug output
; -DSTARBASE_LOLIN_WIFI_FIX ; I don't trust the tiny ceramic antenna - use workaround for LOLIN C3/S2/S3 wifi instability. https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.build_flags} ; temporary here, until there is one driver for s3 and non s3
lib_deps =
${env.lib_deps}
; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.lib_deps} ; temporary here, until there is one driver for s3 and non s3
; ; RAM: [= ] 14.3% (used 46732 bytes from 327680 bytes)
; ; Flash: [======= ] 74.4% (used 1414876 bytes from 1900544 bytes)

; check: https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-reference/peripherals/temp_sensor.html
; ; for Waveshare ESP32-S3 Mini/Zero https://www.waveshare.com/esp32-s3-zero.htm
; ; --> 4MB Flash, has PSRAM, memory type "qio_qspi", USB-CDC only
; [env:lolin_s3_mini]
; platform = espressif32@6.3.0 ; this one behaves better for debugging
; board = lolin_s3_mini ;https://github.com/platformio/platform-espressif32/blob/develop/boards/lolin_s3_mini.json
; build_flags =
; ${env.build_flags}
; -D CONFIG_IDF_TARGET_ESP32S3=1
; -D ARDUINO_USB_CDC_ON_BOOT=1 -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_DFU_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0 ; for debugging over USB
; ; -D DEBUG=1 -D CORE_DEBUG_LEVEL=1 -D ARDUINOJSON_DEBUG=1 ; for more debug output
; ; -DSTARBASE_LOLIN_WIFI_FIX ; I don't trust the tiny ceramic antenna - use workaround for LOLIN C3/S2/S3 wifi instability. https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.build_flags} ; temporary here, until there is one driver for s3 and non s3
; lib_deps =
; ${env.lib_deps}
; ; ${STARLIGHT_CLOCKLESS_LED_DRIVER_S3.lib_deps} ; temporary here, until there is one driver for s3 and non s3

; ; check: https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-reference/peripherals/temp_sensor.html




; RAM: [== ] 15.6% (used 51124 bytes from 327680 bytes)
; Flash: [======= ] 68.1% (used 892033 bytes from 1310720 bytes)
; RAM: [== ] 24.5% (used 80240 bytes from 327680 bytes)
; Flash: [========= ] 92.4% (used 1210894 bytes from 1310720 bytes)
; after WLED_ESP32_4MB_256KB_FS:
; RAM: [== ] 24.5% (used 80240 bytes from 327680 bytes)
; Flash: [====== ] 63.7% (used 1210894 bytes from 1900544 bytes)
; 20240128
; RAM: [== ] 16.8% (used 54916 bytes from 327680 bytes)
; Flash: [======= ] 68.6% (used 1304529 bytes from 1900544 bytes)

; ; RAM: [== ] 15.6% (used 51124 bytes from 327680 bytes)
; ; Flash: [======= ] 68.1% (used 892033 bytes from 1310720 bytes)
; ; RAM: [== ] 24.5% (used 80240 bytes from 327680 bytes)
; ; Flash: [========= ] 92.4% (used 1210894 bytes from 1310720 bytes)
; ; after WLED_ESP32_4MB_256KB_FS:
; ; RAM: [== ] 24.5% (used 80240 bytes from 327680 bytes)
; ; Flash: [====== ] 63.7% (used 1210894 bytes from 1900544 bytes)
; ; 20240128
; ; RAM: [== ] 16.8% (used 54916 bytes from 327680 bytes)
; ; Flash: [======= ] 68.6% (used 1304529 bytes from 1900544 bytes)


; https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html
; https://github.com/platformio/platform-espressif32/blob/develop/boards/esp32-s3-devkitc-1.json
[env:esp32-s3-devkitc-1-n16r8v]
platform = espressif32 ;default is Espressif 32 (6.5.0)
; WLEDMM: espressif32@ ~6.3.2
; TroyHacks: platformio/espressif32@^6.7.0
; platform_packages ;default is framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
; WLEDMM: platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
; TroyHacks: platformio/framework-arduinoespressif32@3.20014.231204
; ;toolchain-riscv32-esp@~12.2
; ;toolchain-xtensa-esp32s3@~12.2
board = esp32-s3-devkitc-1-n16r8v ;found in boards folder
board_build.partitions = boards/WLED_ESP32_16MB_9MB_FS.csv
build_flags =
${env.build_flags}
-D CONFIG_IDF_TARGET_ESP32S3=1
-D STARBASE_LOLIN_WIFI_FIX ; shouldn't be necessary, but otherwise WiFi issues on my board
lib_deps =
${env.lib_deps}

; ; https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html
; ; https://github.com/platformio/platform-espressif32/blob/develop/boards/esp32-s3-devkitc-1.json
; [env:esp32-s3-devkitc-1-n16r8v]
; platform = espressif32 ;default is Espressif 32 (6.5.0)
; ; WLEDMM: espressif32@ ~6.3.2
; ; TroyHacks: platformio/espressif32@^6.7.0
; ; platform_packages ;default is framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
; ; WLEDMM: platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
; ; TroyHacks: platformio/framework-arduinoespressif32@3.20014.231204
; ; ;toolchain-riscv32-esp@~12.2
; ; ;toolchain-xtensa-esp32s3@~12.2
; board = esp32-s3-devkitc-1-n16r8v ;found in boards folder
; board_build.partitions = boards/WLED_ESP32_16MB_9MB_FS.csv
; build_flags =
; ${env.build_flags}
; -D CONFIG_IDF_TARGET_ESP32S3=1
; -D STARBASE_LOLIN_WIFI_FIX ; shouldn't be necessary, but otherwise WiFi issues on my board
; lib_deps =
; ${env.lib_deps}

; RAM: [== ] 18.7% (used 61404 bytes from 327680 bytes)
; Flash: [===== ] 48.7% (used 1530457 bytes from 3145728 bytes)
Expand Down
82 changes: 82 additions & 0 deletions src/App/LedEffects.h
Original file line number Diff line number Diff line change
Expand Up @@ -2231,7 +2231,89 @@ class ParticleTestEffect: public Effect {
}
};

class StarFieldEffect: public Effect { // Inspired by Daniel Shiffman's Coding Train https://www.youtube.com/watch?v=17WoOqgXsRM
const char * name() {return "StarField";}
unsigned8 dim() {return _2D;}
const char * tags() {return "💫";}

struct Star {
int x, y, z;
uint8_t colorIndex;
};

static float fmap(const float x, const float in_min, const float in_max, const float out_min, const float out_max) {
return (out_max - out_min) * (x - in_min) / (in_max - in_min) + out_min;
}

void loop(LedsLayer &leds) {
// UI Variables
bool *setup = leds.effectData.readWrite<bool>();
uint8_t speed = leds.effectData.read<uint8_t>();
uint8_t numStars = leds.effectData.read<uint8_t>();
uint8_t blur = map(leds.effectData.read<uint8_t>(), 0, 255, 255, 0);
bool usePalette = leds.effectData.read<bool>();

// Effect Variables
unsigned long *step = leds.effectData.readWrite<unsigned long>();
Star *stars = leds.effectData.readWrite<Star>(255);


if (*setup) {
*setup = false;
leds.fill_solid(CRGB::Black);
//set up all stars
for (int i = 0; i < 255; i++) {
stars[i].x = random(-leds.size.x, leds.size.x);
stars[i].y = random(-leds.size.y, leds.size.y);
stars[i].z = random(leds.size.x);
stars[i].colorIndex = random8();
}
}

if (!speed || sys->now - *step < 1000 / speed) return; // Not enough time passed

leds.fadeToBlackBy(blur);

for (int i = 0; i < numStars; i++) {
//update star
// ppf("Star %d Pos: %d, %d, %d -> ", i, stars[i].x, stars[i].y, stars[i].z);
float sx = leds.size.x/2.0 + fmap(float(stars[i].x) / stars[i].z, 0, 1, 0, leds.size.x/2.0);
float sy = leds.size.y/2.0 + fmap(float(stars[i].y) / stars[i].z, 0, 1, 0, leds.size.y/2.0);

// ppf(" %f, %f\n", sx, sy);

Coord3D pos = {int(sx), int(sy), 0};
if (!pos.isOutofBounds(leds.size)) {
if (usePalette) leds.setPixelColor(leds.XY(int(sx), int(sy)), ColorFromPalette(leds.palette, stars[i].colorIndex, map(stars[i].z, 0, leds.size.x, 255, 150)));
else {
uint8_t color = map(stars[i].colorIndex, 0, 255, 120, 255);
int brightness = map(stars[i].z, 0, leds.size.x, 7, 10);
color *= brightness/10.0;
leds.setPixelColor(leds.XY(int(sx), int(sy)), CRGB(color, color, color));
}
}
stars[i].z -= 1;
if (stars[i].z <= 0 || pos.isOutofBounds(leds.size)) {
stars[i].x = random(-leds.size.x, leds.size.x);
stars[i].y = random(-leds.size.y, leds.size.y);
stars[i].z = leds.size.x;
stars[i].colorIndex = random8();
}
}

*step = sys->now;
}

void controls(LedsLayer &leds, JsonObject parentVar) {
Effect::controls(leds, parentVar);
bool *setup = leds.effectData.write<bool>(true);
ui->initSlider(parentVar, "Speed", leds.effectData.write<uint8_t>(20), 0, 30); // 0 - 30 updates per second
ui->initSlider(parentVar, "Number of Stars", leds.effectData.write<uint8_t>(16), 1, 255);
ui->initSlider(parentVar, "Blur", leds.effectData.write<uint8_t>(128), 0, 255);
ui->initCheckBox(parentVar, "UsePalette", leds.effectData.write<bool>(false));
}

}; //StarField



Expand Down
1 change: 1 addition & 0 deletions src/App/LedModEffects.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ class LedModEffects:public SysModule {
effects.push_back(new GameOfLifeEffect);
effects.push_back(new RubiksCubeEffect);
effects.push_back(new ParticleTestEffect);
effects.push_back(new StarFieldEffect);
#ifdef STARLIGHT_USERMOD_WLEDAUDIO
//2D WLED
effects.push_back(new WaverlyEffect);
Expand Down

0 comments on commit 034e2ca

Please sign in to comment.