From b8685f2c39b78286dddd1ad03e19284c9978dde4 Mon Sep 17 00:00:00 2001 From: Will Miles Date: Sat, 14 Sep 2024 15:09:47 -0400 Subject: [PATCH 01/18] Convert usermods to static libraries Redesign the usermod system so that usermods are implemented as PlatformIO libraries instead of headers. This permits them to call for dependencies, and eliminates the compiler flags for enabling each one, allowing the build cache to behave better. The usermod list is built using some linker magic to construct a static list in ROM memory. This eliminates the need for wasting SRAM on something fixed at build time. --- pio-scripts/load_usermods.py | 9 + platformio.ini | 35 +- .../{audio_reactive.h => audio_reactive.cpp} | 4 +- usermods/audioreactive/library.json | 17 + usermods/usermod_v2_auto_save/library.json | 8 + ...2_auto_save.h => usermod_v2_auto_save.cpp} | 3 + wled00/fcn_declare.h | 11 +- wled00/um_manager.cpp | 72 +-- wled00/usermod_v2_empty.h | 18 - wled00/usermods_list.cpp | 482 ------------------ wled00/wled.cpp | 3 - 11 files changed, 100 insertions(+), 562 deletions(-) create mode 100644 pio-scripts/load_usermods.py rename usermods/audioreactive/{audio_reactive.h => audio_reactive.cpp} (99%) create mode 100644 usermods/audioreactive/library.json create mode 100644 usermods/usermod_v2_auto_save/library.json rename usermods/usermod_v2_auto_save/{usermod_v2_auto_save.h => usermod_v2_auto_save.cpp} (99%) delete mode 100644 wled00/usermod_v2_empty.h delete mode 100644 wled00/usermods_list.cpp diff --git a/pio-scripts/load_usermods.py b/pio-scripts/load_usermods.py new file mode 100644 index 0000000000..ac7611319d --- /dev/null +++ b/pio-scripts/load_usermods.py @@ -0,0 +1,9 @@ +Import('env') +usermods = env.GetProjectOption("custom_usermods","") +if usermods: + proj = env.GetProjectConfig() + deps = env.GetProjectOption('lib_deps') + src_dir = proj.get("platformio", "src_dir") + src_dir = src_dir.replace('\\','/') + usermods = [f"{mod} = symlink://{src_dir}/../usermods/{mod}" for mod in usermods.split(" ")] + proj.set("env:" + env['PIOENV'], 'lib_deps', deps + usermods) diff --git a/platformio.ini b/platformio.ini index 0870cde9d8..1597343db8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -114,6 +114,7 @@ extra_scripts = post:pio-scripts/output_bins.py post:pio-scripts/strip-floats.py pre:pio-scripts/user_config_copy.py + pre:pio-scripts/load_usermods.py pre:pio-scripts/build_ui.py ; post:pio-scripts/obj-dump.py ;; convenience script to create a disassembly dump of the firmware (hardcore debugging) @@ -170,8 +171,6 @@ lib_deps = ;https://github.com/netmindz/animartrix.git#18bf17389e57c69f11bc8d04ebe1d215422c7fb7 # SHT85 ;robtillaart/SHT85@~0.3.3 - # Audioreactive usermod - ;kosme/arduinoFFT @ 2.0.1 extra_scripts = ${scripts_defaults.extra_scripts} @@ -261,11 +260,11 @@ lib_deps = https://github.com/lorol/LITTLEFS.git https://github.com/pbolduc/AsyncTCP.git @ 1.2.0 ${env.lib_deps} -# additional build flags for audioreactive -AR_build_flags = -D USERMOD_AUDIOREACTIVE - -D sqrt_internal=sqrtf ;; -fsingle-precision-constant ;; forces ArduinoFFT to use float math (2x faster) -AR_lib_deps = kosme/arduinoFFT @ 2.0.1 board_build.partitions = ${esp32.default_partitions} ;; default partioning for 4MB Flash - can be overridden in build envs +# additional build flags for audioreactive - must be applied globally +AR_build_flags = -D sqrt_internal=sqrtf ;; -fsingle-precision-constant ;; forces ArduinoFFT to use float math (2x faster) +AR_lib_deps = kosme/arduinoFFT @ 2.0.1 ;; for pre-usermod-library platformio_override compatibility + [esp32_idf_V4] ;; experimental build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5 @@ -424,11 +423,11 @@ build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME= board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32\" #-D WLED_DISABLE_BROWNOUT_DET ${esp32.AR_build_flags} lib_deps = ${esp32.lib_deps} - ${esp32.AR_lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.default_partitions} @@ -436,11 +435,11 @@ board_build.partitions = ${esp32.default_partitions} board = esp32dev platform = ${esp32_idf_V4.platform} platform_packages = ${esp32_idf_V4.platform_packages} +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_8M\" #-D WLED_DISABLE_BROWNOUT_DET ${esp32.AR_build_flags} lib_deps = ${esp32_idf_V4.lib_deps} - ${esp32.AR_lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.large_partitions} board_upload.flash_size = 8MB @@ -452,11 +451,11 @@ board_upload.maximum_size = 8388608 board = esp32dev platform = ${esp32_idf_V4.platform} platform_packages = ${esp32_idf_V4.platform_packages} +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_16M\" #-D WLED_DISABLE_BROWNOUT_DET ${esp32.AR_build_flags} lib_deps = ${esp32_idf_V4.lib_deps} - ${esp32.AR_lib_deps} monitor_filters = esp32_exception_decoder board_build.partitions = ${esp32.extreme_partitions} board_upload.flash_size = 16MB @@ -468,11 +467,11 @@ board_build.flash_mode = dio ;board = esp32dev ;platform = ${esp32.platform} ;platform_packages = ${esp32.platform_packages} +;custom_usermods = audioreactive ;build_unflags = ${common.build_unflags} ;build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32_audioreactive\" #-D WLED_DISABLE_BROWNOUT_DET ; ${esp32.AR_build_flags} ;lib_deps = ${esp32.lib_deps} -; ${esp32.AR_lib_deps} ;monitor_filters = esp32_exception_decoder ;board_build.partitions = ${esp32.default_partitions} ;; board_build.f_flash = 80000000L @@ -483,12 +482,12 @@ board = esp32-poe platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} upload_speed = 921600 +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32_Ethernet\" -D RLYPIN=-1 -D WLED_USE_ETHERNET -D BTNPIN=-1 ; -D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only ${esp32.AR_build_flags} lib_deps = ${esp32.lib_deps} - ${esp32.AR_lib_deps} board_build.partitions = ${esp32.default_partitions} [env:esp32_wrover] @@ -499,14 +498,14 @@ board = ttgo-t7-v14-mini32 board_build.f_flash = 80000000L board_build.flash_mode = qio board_build.partitions = ${esp32.extended_partitions} +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_WROVER\" -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue ;; Older ESP32 (rev.<3) need a PSRAM fix (increases static RAM used) https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/external-ram.html -D DATA_PINS=25 ${esp32.AR_build_flags} lib_deps = ${esp32_idf_V4.lib_deps} - ${esp32.AR_lib_deps} - + [env:esp32c3dev] extends = esp32c3 platform = ${esp32c3.platform} @@ -530,6 +529,7 @@ board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB platform = ${esp32s3.platform} platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=\"ESP32-S3_16MB_opi\" -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 @@ -538,7 +538,6 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME= -DBOARD_HAS_PSRAM ${esp32.AR_build_flags} lib_deps = ${esp32s3.lib_deps} - ${esp32.AR_lib_deps} board_build.partitions = ${esp32.extreme_partitions} board_upload.flash_size = 16MB board_upload.maximum_size = 16777216 @@ -553,6 +552,7 @@ board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB platform = ${esp32s3.platform} platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=\"ESP32-S3_8MB_opi\" -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 @@ -561,7 +561,6 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME= -DBOARD_HAS_PSRAM ${esp32.AR_build_flags} lib_deps = ${esp32s3.lib_deps} - ${esp32.AR_lib_deps} board_build.partitions = ${esp32.large_partitions} board_build.f_flash = 80000000L board_build.flash_mode = qio @@ -575,6 +574,7 @@ platform_packages = ${esp32s3.platform_packages} board = esp32s3camlcd ;; this is the only standard board with "opi_opi" board_build.arduino.memory_type = opi_opi upload_speed = 921600 +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=\"ESP32-S3_WROOM-2\" -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 @@ -587,7 +587,6 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME= ${esp32.AR_build_flags} -D SR_DMTYPE=1 -D I2S_SDPIN=13 -D I2S_CKPIN=14 -D I2S_WSPIN=15 -D MCLK_PIN=4 ;; I2S mic lib_deps = ${esp32s3.lib_deps} - ${esp32.AR_lib_deps} board_build.partitions = ${esp32.extreme_partitions} board_upload.flash_size = 16MB @@ -600,6 +599,7 @@ board = lolin_s3_mini ;; -S3 mini, 4MB flash 2MB PSRAM platform = ${esp32s3.platform} platform_packages = ${esp32s3.platform_packages} upload_speed = 921600 +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=\"ESP32-S3_4M_qspi\" -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") @@ -608,7 +608,6 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME= -D WLED_WATCHDOG_TIMEOUT=0 ${esp32.AR_build_flags} lib_deps = ${esp32s3.lib_deps} - ${esp32.AR_lib_deps} board_build.partitions = ${esp32.default_partitions} board_build.f_flash = 80000000L board_build.flash_mode = qio @@ -621,6 +620,7 @@ board = lolin_s2_mini board_build.partitions = ${esp32.default_partitions} board_build.flash_mode = qio board_build.f_flash = 80000000L +custom_usermods = audioreactive build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME=\"ESP32-S2\" -DARDUINO_USB_CDC_ON_BOOT=1 @@ -639,4 +639,3 @@ build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME= ; -D STATUSLED=15 ${esp32.AR_build_flags} lib_deps = ${esp32s2.lib_deps} - ${esp32.AR_lib_deps} diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.cpp similarity index 99% rename from usermods/audioreactive/audio_reactive.h rename to usermods/audioreactive/audio_reactive.cpp index 9c463e0a19..a5bf782ad9 100644 --- a/usermods/audioreactive/audio_reactive.h +++ b/usermods/audioreactive/audio_reactive.cpp @@ -1,4 +1,3 @@ -#pragma once #include "wled.h" @@ -2064,3 +2063,6 @@ const char AudioReactive::_digitalmic[] PROGMEM = "digitalmic"; const char AudioReactive::_addPalettes[] PROGMEM = "add-palettes"; const char AudioReactive::UDP_SYNC_HEADER[] PROGMEM = "00002"; // new sync header version, as format no longer compatible with previous structure const char AudioReactive::UDP_SYNC_HEADER_v1[] PROGMEM = "00001"; // old sync header version - need to add backwards-compatibility feature + +static AudioReactive ar_module; +REGISTER_USERMOD(ar_module); diff --git a/usermods/audioreactive/library.json b/usermods/audioreactive/library.json new file mode 100644 index 0000000000..658bf9432c --- /dev/null +++ b/usermods/audioreactive/library.json @@ -0,0 +1,17 @@ +{ + "name": "audioreactive", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + }, + "dependencies": [ + { + "owner": "kosme", + "name": "arduinoFFT", + "version": "2.0.1", + "platforms": "espressif32" + } + ] +} \ No newline at end of file diff --git a/usermods/usermod_v2_auto_save/library.json b/usermods/usermod_v2_auto_save/library.json new file mode 100644 index 0000000000..40676ed55d --- /dev/null +++ b/usermods/usermod_v2_auto_save/library.json @@ -0,0 +1,8 @@ +{ + "name": "auto_save", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+" + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_auto_save/usermod_v2_auto_save.h b/usermods/usermod_v2_auto_save/usermod_v2_auto_save.cpp similarity index 99% rename from usermods/usermod_v2_auto_save/usermod_v2_auto_save.h rename to usermods/usermod_v2_auto_save/usermod_v2_auto_save.cpp index a257413b42..2dae867da7 100644 --- a/usermods/usermod_v2_auto_save/usermod_v2_auto_save.h +++ b/usermods/usermod_v2_auto_save/usermod_v2_auto_save.cpp @@ -275,3 +275,6 @@ const char AutoSaveUsermod::_autoSaveEnabled[] PROGMEM = "enabled"; const char AutoSaveUsermod::_autoSaveAfterSec[] PROGMEM = "autoSaveAfterSec"; const char AutoSaveUsermod::_autoSavePreset[] PROGMEM = "autoSavePreset"; const char AutoSaveUsermod::_autoSaveApplyOnBoot[] PROGMEM = "autoSaveApplyOnBoot"; + +static AutoSaveUsermod autosave; +REGISTER_USERMOD(autosave); diff --git a/wled00/fcn_declare.h b/wled00/fcn_declare.h index cb21e8c2ed..cfb18c25b3 100644 --- a/wled00/fcn_declare.h +++ b/wled00/fcn_declare.h @@ -381,7 +381,7 @@ class Usermod { protected: um_data_t *um_data; // um_data should be allocated using new in (derived) Usermod's setup() or constructor public: - Usermod() { um_data = nullptr; } + Usermod() : um_data(nullptr) {}; virtual ~Usermod() { if (um_data) delete um_data; } virtual void setup() = 0; // pure virtual, has to be overriden virtual void loop() = 0; // pure virtual, has to be overriden @@ -418,8 +418,6 @@ class Usermod { }; namespace UsermodManager { - extern byte numMods; - void loop(); void handleOverlayDraw(); bool handleButton(uint8_t b); @@ -441,13 +439,12 @@ namespace UsermodManager { #endif void onUpdateBegin(bool); void onStateChange(uint8_t); - bool add(Usermod* um); Usermod* lookup(uint16_t mod_id); - inline byte getModCount() {return numMods;}; + size_t getModCount(); }; -//usermods_list.cpp -void registerUsermods(); +// Register usermods by building a static list via a linker section +#define REGISTER_USERMOD(x) Usermod* const um_##x __attribute__((__section__(".dtors.tbl.usermods.1"), used)) = &x //usermod.cpp void userSetup(); diff --git a/wled00/um_manager.cpp b/wled00/um_manager.cpp index 1fdb6d688b..9bfb7e7372 100644 --- a/wled00/um_manager.cpp +++ b/wled00/um_manager.cpp @@ -3,75 +3,81 @@ * Registration and management utility for v2 usermods */ -static Usermod* ums[WLED_MAX_USERMODS] = {nullptr}; -byte UsermodManager::numMods = 0; +// Global usermod instance list +// Table begin and end references +// Zero-length arrays -- so they'll get assigned addresses, but consume no flash +// The numeric suffix ensures they're put in the right place; the linker script will sort them +// We stick them in the '.dtors' segment because it's always included by the linker scripts +// even though it never gets called. Who calls exit() in an embedded program anyways? +// If someone ever does, though, it'll explode as these aren't function pointers. +static Usermod * const _usermod_table_begin[0] __attribute__((__section__(".dtors.tbl.usermods.0"), unused)) = {}; +static Usermod * const _usermod_table_end[0] __attribute__((__section__(".dtors.tbl.usermods.99"), unused)) = {}; + +static size_t getCount() { + return &_usermod_table_end[0] - &_usermod_table_begin[0]; +} + //Usermod Manager internals -void UsermodManager::setup() { for (unsigned i = 0; i < numMods; i++) ums[i]->setup(); } -void UsermodManager::connected() { for (unsigned i = 0; i < numMods; i++) ums[i]->connected(); } -void UsermodManager::loop() { for (unsigned i = 0; i < numMods; i++) ums[i]->loop(); } -void UsermodManager::handleOverlayDraw() { for (unsigned i = 0; i < numMods; i++) ums[i]->handleOverlayDraw(); } -void UsermodManager::appendConfigData(Print& dest) { for (unsigned i = 0; i < numMods; i++) ums[i]->appendConfigData(dest); } +void UsermodManager::setup() { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->setup(); } +void UsermodManager::connected() { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->connected(); } +void UsermodManager::loop() { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->loop(); } +void UsermodManager::handleOverlayDraw() { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->handleOverlayDraw(); } +void UsermodManager::appendConfigData(Print& dest) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->appendConfigData(dest); } bool UsermodManager::handleButton(uint8_t b) { bool overrideIO = false; - for (unsigned i = 0; i < numMods; i++) { - if (ums[i]->handleButton(b)) overrideIO = true; + for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) { + if ((*mod)->handleButton(b)) overrideIO = true; } return overrideIO; } bool UsermodManager::getUMData(um_data_t **data, uint8_t mod_id) { - for (unsigned i = 0; i < numMods; i++) { - if (mod_id > 0 && ums[i]->getId() != mod_id) continue; // only get data form requested usermod if provided - if (ums[i]->getUMData(data)) return true; // if usermod does provide data return immediately (only one usermod can provide data at one time) + for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) { + if (mod_id > 0 && (*mod)->getId() != mod_id) continue; // only get data form requested usermod if provided + if ((*mod)->getUMData(data)) return true; // if usermod does provide data return immediately (only one usermod can provide data at one time) } return false; } -void UsermodManager::addToJsonState(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->addToJsonState(obj); } -void UsermodManager::addToJsonInfo(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->addToJsonInfo(obj); } -void UsermodManager::readFromJsonState(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->readFromJsonState(obj); } -void UsermodManager::addToConfig(JsonObject& obj) { for (unsigned i = 0; i < numMods; i++) ums[i]->addToConfig(obj); } +void UsermodManager::addToJsonState(JsonObject& obj) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->addToJsonState(obj); } +void UsermodManager::addToJsonInfo(JsonObject& obj) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->addToJsonInfo(obj); } +void UsermodManager::readFromJsonState(JsonObject& obj) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->readFromJsonState(obj); } +void UsermodManager::addToConfig(JsonObject& obj) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->addToConfig(obj); } bool UsermodManager::readFromConfig(JsonObject& obj) { bool allComplete = true; - for (unsigned i = 0; i < numMods; i++) { - if (!ums[i]->readFromConfig(obj)) allComplete = false; + for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) { + if (!(*mod)->readFromConfig(obj)) allComplete = false; } return allComplete; } #ifndef WLED_DISABLE_MQTT -void UsermodManager::onMqttConnect(bool sessionPresent) { for (unsigned i = 0; i < numMods; i++) ums[i]->onMqttConnect(sessionPresent); } +void UsermodManager::onMqttConnect(bool sessionPresent) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->onMqttConnect(sessionPresent); } bool UsermodManager::onMqttMessage(char* topic, char* payload) { - for (unsigned i = 0; i < numMods; i++) if (ums[i]->onMqttMessage(topic, payload)) return true; + for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) if ((*mod)->onMqttMessage(topic, payload)) return true; return false; } #endif #ifndef WLED_DISABLE_ESPNOW bool UsermodManager::onEspNowMessage(uint8_t* sender, uint8_t* payload, uint8_t len) { - for (unsigned i = 0; i < numMods; i++) if (ums[i]->onEspNowMessage(sender, payload, len)) return true; + for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) if ((*mod)->onEspNowMessage(sender, payload, len)) return true; return false; } #endif -void UsermodManager::onUpdateBegin(bool init) { for (unsigned i = 0; i < numMods; i++) ums[i]->onUpdateBegin(init); } // notify usermods that update is to begin -void UsermodManager::onStateChange(uint8_t mode) { for (unsigned i = 0; i < numMods; i++) ums[i]->onStateChange(mode); } // notify usermods that WLED state changed +void UsermodManager::onUpdateBegin(bool init) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->onUpdateBegin(init); } // notify usermods that update is to begin +void UsermodManager::onStateChange(uint8_t mode) { for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) (*mod)->onStateChange(mode); } // notify usermods that WLED state changed /* * Enables usermods to lookup another Usermod. */ Usermod* UsermodManager::lookup(uint16_t mod_id) { - for (unsigned i = 0; i < numMods; i++) { - if (ums[i]->getId() == mod_id) { - return ums[i]; + for (auto mod = _usermod_table_begin; mod < _usermod_table_end; ++mod) { + if ((*mod)->getId() == mod_id) { + return *mod; } } return nullptr; } -bool UsermodManager::add(Usermod* um) -{ - if (numMods >= WLED_MAX_USERMODS || um == nullptr) return false; - ums[numMods++] = um; - return true; -} - +size_t UsermodManager::getModCount() { return getCount(); }; /* Usermod v2 interface shim for oappend */ Print* Usermod::oappend_shim = nullptr; diff --git a/wled00/usermod_v2_empty.h b/wled00/usermod_v2_empty.h deleted file mode 100644 index 6537b56bc5..0000000000 --- a/wled00/usermod_v2_empty.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include "wled.h" - -//This is an empty v2 usermod template. Please see the file usermod_v2_example.h in the EXAMPLE_v2 usermod folder for documentation on the functions you can use! - -class UsermodRenameMe : public Usermod { - private: - - public: - void setup() { - - } - - void loop() { - - } -}; \ No newline at end of file diff --git a/wled00/usermods_list.cpp b/wled00/usermods_list.cpp deleted file mode 100644 index 627fa6308a..0000000000 --- a/wled00/usermods_list.cpp +++ /dev/null @@ -1,482 +0,0 @@ -#include "wled.h" -/* - * Register your v2 usermods here! - * (for v1 usermods using just usermod.cpp, you can ignore this file) - */ - -/* - * Add/uncomment your usermod filename here (and once more below) - * || || || - * \/ \/ \/ - */ -//#include "../usermods/EXAMPLE_v2/usermod_v2_example.h" - -#ifdef USERMOD_BATTERY - #include "../usermods/Battery/usermod_v2_Battery.h" -#endif - -#ifdef USERMOD_DALLASTEMPERATURE - #include "../usermods/Temperature/usermod_temperature.h" -#endif - -#ifdef USERMOD_SHT -#include "../usermods/sht/usermod_sht.h" -#endif - -#ifdef USERMOD_SN_PHOTORESISTOR - #include "../usermods/SN_Photoresistor/usermod_sn_photoresistor.h" -#endif - -#ifdef USERMOD_PWM_FAN - // requires DALLASTEMPERATURE or SHT included before it - #include "../usermods/PWM_fan/usermod_PWM_fan.h" -#endif - -#ifdef USERMOD_BUZZER - #include "../usermods/buzzer/usermod_v2_buzzer.h" -#endif - -#ifdef USERMOD_SENSORSTOMQTT - #include "../usermods/sensors_to_mqtt/usermod_v2_SensorsToMqtt.h" -#endif - -#ifdef USERMOD_PIRSWITCH - #include "../usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h" -#endif - -#ifdef USERMOD_BH1750 - #include "../usermods/BH1750_v2/usermod_bh1750.h" -#endif - -// BME280 v2 usermod. Define "USERMOD_BME280" in my_config.h -#ifdef USERMOD_BME280 - #include "../usermods/BME280_v2/usermod_bme280.h" -#endif - -#ifdef USERMOD_BME68X - #include "../usermods/BME68X_v2/usermod_bme68x.h" -#endif - - -#ifdef USERMOD_FOUR_LINE_DISPLAY - #include "../usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h" -#endif - -#ifdef USERMOD_ROTARY_ENCODER_UI - #include "../usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h" -#endif - -#ifdef USERMOD_AUTO_SAVE - #include "../usermods/usermod_v2_auto_save/usermod_v2_auto_save.h" -#endif - -#ifdef USERMOD_DHT - #include "../usermods/DHT/usermod_dht.h" -#endif - -#ifdef USERMOD_VL53L0X_GESTURES - #include "../usermods/VL53L0X_gestures/usermod_vl53l0x_gestures.h" -#endif - -#ifdef USERMOD_ANIMATED_STAIRCASE - #include "../usermods/Animated_Staircase/Animated_Staircase.h" -#endif - -#ifdef USERMOD_MULTI_RELAY - #include "../usermods/multi_relay/usermod_multi_relay.h" -#endif - -#ifdef USERMOD_RTC - #include "../usermods/RTC/usermod_rtc.h" -#endif - -#ifdef USERMOD_ELEKSTUBE_IPS - #include "../usermods/EleksTube_IPS/usermod_elekstube_ips.h" -#endif - -#ifdef USERMOD_ROTARY_ENCODER_BRIGHTNESS_COLOR - #include "../usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.h" -#endif - -#ifdef RGB_ROTARY_ENCODER - #include "../usermods/rgb-rotary-encoder/rgb-rotary-encoder.h" -#endif - -#ifdef USERMOD_ST7789_DISPLAY - #include "../usermods/ST7789_display/ST7789_Display.h" -#endif - -#ifdef USERMOD_PIXELS_DICE_TRAY - #include "../usermods/pixels_dice_tray/pixels_dice_tray.h" -#endif - -#ifdef USERMOD_SEVEN_SEGMENT - #include "../usermods/seven_segment_display/usermod_v2_seven_segment_display.h" -#endif - -#ifdef USERMOD_SSDR - #include "../usermods/seven_segment_display_reloaded/usermod_seven_segment_reloaded.h" -#endif - -#ifdef USERMOD_CRONIXIE - #include "../usermods/Cronixie/usermod_cronixie.h" -#endif - -#ifdef QUINLED_AN_PENTA - #include "../usermods/quinled-an-penta/quinled-an-penta.h" -#endif - -#ifdef USERMOD_WIZLIGHTS - #include "../usermods/wizlights/wizlights.h" -#endif - -#ifdef USERMOD_WIREGUARD - #include "../usermods/wireguard/wireguard.h" -#endif - -#ifdef USERMOD_WORDCLOCK - #include "../usermods/usermod_v2_word_clock/usermod_v2_word_clock.h" -#endif - -#ifdef USERMOD_MY9291 - #include "../usermods/MY9291/usermode_MY9291.h" -#endif - -#ifdef USERMOD_SI7021_MQTT_HA - #include "../usermods/Si7021_MQTT_HA/usermod_si7021_mqtt_ha.h" -#endif - -#ifdef USERMOD_SMARTNEST - #include "../usermods/smartnest/usermod_smartnest.h" -#endif - -#ifdef USERMOD_AUDIOREACTIVE - #include "../usermods/audioreactive/audio_reactive.h" -#endif - -#ifdef USERMOD_ANALOG_CLOCK - #include "../usermods/Analog_Clock/Analog_Clock.h" -#endif - -#ifdef USERMOD_PING_PONG_CLOCK - #include "../usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.h" -#endif - -#ifdef USERMOD_ADS1115 - #include "../usermods/ADS1115_v2/usermod_ads1115.h" -#endif - -#ifdef USERMOD_KLIPPER_PERCENTAGE - #include "../usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h" -#endif - -#ifdef USERMOD_BOBLIGHT - #include "../usermods/boblight/boblight.h" -#endif - -#ifdef USERMOD_ANIMARTRIX - #include "../usermods/usermod_v2_animartrix/usermod_v2_animartrix.h" -#endif - -#ifdef USERMOD_INTERNAL_TEMPERATURE - #include "../usermods/Internal_Temperature_v2/usermod_internal_temperature.h" -#endif - -#if defined(WLED_USE_SD_MMC) || defined(WLED_USE_SD_SPI) -// This include of SD.h and SD_MMC.h must happen here, else they won't be -// resolved correctly (when included in mod's header only) - #ifdef WLED_USE_SD_MMC - #include "SD_MMC.h" - #elif defined(WLED_USE_SD_SPI) - #include "SD.h" - #include "SPI.h" - #endif - #include "../usermods/sd_card/usermod_sd_card.h" -#endif - -#ifdef USERMOD_PWM_OUTPUTS - #include "../usermods/pwm_outputs/usermod_pwm_outputs.h" -#endif - -#ifdef USERMOD_HTTP_PULL_LIGHT_CONTROL - #include "../usermods/usermod_v2_HttpPullLightControl/usermod_v2_HttpPullLightControl.h" -#endif - -#ifdef USERMOD_MPU6050_IMU - #include "../usermods/mpu6050_imu/usermod_mpu6050_imu.h" -#endif - -#ifdef USERMOD_MPU6050_IMU - #include "../usermods/mpu6050_imu/usermod_gyro_surge.h" -#endif - -#ifdef USERMOD_LDR_DUSK_DAWN - #include "../usermods/LDR_Dusk_Dawn_v2/usermod_LDR_Dusk_Dawn_v2.h" -#endif - -#ifdef USERMOD_POV_DISPLAY - #include "../usermods/pov_display/usermod_pov_display.h" -#endif - -#ifdef USERMOD_STAIRCASE_WIPE - #include "../usermods/stairway_wipe_basic/stairway-wipe-usermod-v2.h" -#endif - -#ifdef USERMOD_MAX17048 - #include "../usermods/MAX17048_v2/usermod_max17048.h" -#endif - -#ifdef USERMOD_TETRISAI - #include "../usermods/TetrisAI_v2/usermod_v2_tetrisai.h" -#endif - -#ifdef USERMOD_AHT10 - #include "../usermods/AHT10_v2/usermod_aht10.h" -#endif - -#ifdef USERMOD_INA226 - #include "../usermods/INA226_v2/usermod_ina226.h" -#endif - -#ifdef USERMOD_LD2410 -#include "../usermods/LD2410_v2/usermod_ld2410.h" -#endif - - -#ifdef USERMOD_DEEP_SLEEP - #include "../usermods/deep_sleep/usermod_deep_sleep.h" -#endif - -void registerUsermods() -{ -/* - * Add your usermod class name here - * || || || - * \/ \/ \/ - */ - //UsermodManager::add(new MyExampleUsermod()); - - #ifdef USERMOD_BATTERY - UsermodManager::add(new UsermodBattery()); - #endif - - #ifdef USERMOD_DALLASTEMPERATURE - UsermodManager::add(new UsermodTemperature()); - #endif - - #ifdef USERMOD_SN_PHOTORESISTOR - UsermodManager::add(new Usermod_SN_Photoresistor()); - #endif - - #ifdef USERMOD_PWM_FAN - UsermodManager::add(new PWMFanUsermod()); - #endif - - #ifdef USERMOD_BUZZER - UsermodManager::add(new BuzzerUsermod()); - #endif - - #ifdef USERMOD_BH1750 - UsermodManager::add(new Usermod_BH1750()); - #endif - - #ifdef USERMOD_BME280 - UsermodManager::add(new UsermodBME280()); - #endif - - #ifdef USERMOD_BME68X - UsermodManager::add(new UsermodBME68X()); - #endif - - #ifdef USERMOD_SENSORSTOMQTT - UsermodManager::add(new UserMod_SensorsToMQTT()); - #endif - - #ifdef USERMOD_PIRSWITCH - UsermodManager::add(new PIRsensorSwitch()); - #endif - - #ifdef USERMOD_FOUR_LINE_DISPLAY - UsermodManager::add(new FourLineDisplayUsermod()); - #endif - - #ifdef USERMOD_ROTARY_ENCODER_UI - UsermodManager::add(new RotaryEncoderUIUsermod()); // can use USERMOD_FOUR_LINE_DISPLAY - #endif - - #ifdef USERMOD_AUTO_SAVE - UsermodManager::add(new AutoSaveUsermod()); // can use USERMOD_FOUR_LINE_DISPLAY - #endif - - #ifdef USERMOD_DHT - UsermodManager::add(new UsermodDHT()); - #endif - - #ifdef USERMOD_VL53L0X_GESTURES - UsermodManager::add(new UsermodVL53L0XGestures()); - #endif - - #ifdef USERMOD_ANIMATED_STAIRCASE - UsermodManager::add(new Animated_Staircase()); - #endif - - #ifdef USERMOD_MULTI_RELAY - UsermodManager::add(new MultiRelay()); - #endif - - #ifdef USERMOD_RTC - UsermodManager::add(new RTCUsermod()); - #endif - - #ifdef USERMOD_ELEKSTUBE_IPS - UsermodManager::add(new ElekstubeIPSUsermod()); - #endif - - #ifdef USERMOD_ROTARY_ENCODER_BRIGHTNESS_COLOR - UsermodManager::add(new RotaryEncoderBrightnessColor()); - #endif - - #ifdef RGB_ROTARY_ENCODER - UsermodManager::add(new RgbRotaryEncoderUsermod()); - #endif - - #ifdef USERMOD_ST7789_DISPLAY - UsermodManager::add(new St7789DisplayUsermod()); - #endif - - #ifdef USERMOD_PIXELS_DICE_TRAY - UsermodManager::add(new PixelsDiceTrayUsermod()); - #endif - - #ifdef USERMOD_SEVEN_SEGMENT - UsermodManager::add(new SevenSegmentDisplay()); - #endif - - #ifdef USERMOD_SSDR - UsermodManager::add(new UsermodSSDR()); - #endif - - #ifdef USERMOD_CRONIXIE - UsermodManager::add(new UsermodCronixie()); - #endif - - #ifdef QUINLED_AN_PENTA - UsermodManager::add(new QuinLEDAnPentaUsermod()); - #endif - - #ifdef USERMOD_WIZLIGHTS - UsermodManager::add(new WizLightsUsermod()); - #endif - - #ifdef USERMOD_WIREGUARD - UsermodManager::add(new WireguardUsermod()); - #endif - - #ifdef USERMOD_WORDCLOCK - UsermodManager::add(new WordClockUsermod()); - #endif - - #ifdef USERMOD_MY9291 - UsermodManager::add(new MY9291Usermod()); - #endif - - #ifdef USERMOD_SI7021_MQTT_HA - UsermodManager::add(new Si7021_MQTT_HA()); - #endif - - #ifdef USERMOD_SMARTNEST - UsermodManager::add(new Smartnest()); - #endif - - #ifdef USERMOD_AUDIOREACTIVE - UsermodManager::add(new AudioReactive()); - #endif - - #ifdef USERMOD_ANALOG_CLOCK - UsermodManager::add(new AnalogClockUsermod()); - #endif - - #ifdef USERMOD_PING_PONG_CLOCK - UsermodManager::add(new PingPongClockUsermod()); - #endif - - #ifdef USERMOD_ADS1115 - UsermodManager::add(new ADS1115Usermod()); - #endif - - #ifdef USERMOD_KLIPPER_PERCENTAGE - UsermodManager::add(new klipper_percentage()); - #endif - - #ifdef USERMOD_BOBLIGHT - UsermodManager::add(new BobLightUsermod()); - #endif - - #ifdef SD_ADAPTER - UsermodManager::add(new UsermodSdCard()); - #endif - - #ifdef USERMOD_PWM_OUTPUTS - UsermodManager::add(new PwmOutputsUsermod()); - #endif - - #ifdef USERMOD_SHT - UsermodManager::add(new ShtUsermod()); - #endif - - #ifdef USERMOD_ANIMARTRIX - UsermodManager::add(new AnimartrixUsermod("Animartrix", false)); - #endif - - #ifdef USERMOD_INTERNAL_TEMPERATURE - UsermodManager::add(new InternalTemperatureUsermod()); - #endif - - #ifdef USERMOD_HTTP_PULL_LIGHT_CONTROL - UsermodManager::add(new HttpPullLightControl()); - #endif - - #ifdef USERMOD_MPU6050_IMU - static MPU6050Driver mpu6050; UsermodManager::add(&mpu6050); - #endif - - #ifdef USERMOD_GYRO_SURGE - static GyroSurge gyro_surge; UsermodManager::add(&gyro_surge); - #endif - - #ifdef USERMOD_LDR_DUSK_DAWN - UsermodManager::add(new LDR_Dusk_Dawn_v2()); - #endif - - #ifdef USERMOD_STAIRCASE_WIPE - UsermodManager::add(new StairwayWipeUsermod()); - #endif - - #ifdef USERMOD_MAX17048 - UsermodManager::add(new Usermod_MAX17048()); - #endif - - #ifdef USERMOD_TETRISAI - UsermodManager::add(new TetrisAIUsermod()); - #endif - - #ifdef USERMOD_AHT10 - UsermodManager::add(new UsermodAHT10()); - #endif - - #ifdef USERMOD_INA226 - UsermodManager::add(new UsermodINA226()); - #endif - - #ifdef USERMOD_LD2410 - UsermodManager::add(new LD2410Usermod()); - #endif - - #ifdef USERMOD_POV_DISPLAY - UsermodManager::add(new PovDisplayUsermod()); - #endif - - #ifdef USERMOD_DEEP_SLEEP - usermods.add(new DeepSleepUsermod()); - #endif -} diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 1f978a39b4..3b8c60095a 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -424,9 +424,6 @@ void WLED::setup() PinManager::allocatePin(2, true, PinOwner::DMX); #endif - DEBUG_PRINTLN(F("Registering usermods ...")); - registerUsermods(); - DEBUG_PRINTF_P(PSTR("heap %u\n"), ESP.getFreeHeap()); bool fsinit = false; From 4d5e0ca7a3a1b9914621813f6cb8827dd33a5c32 Mon Sep 17 00:00:00 2001 From: Will Miles Date: Sat, 11 Jan 2025 13:31:20 -0500 Subject: [PATCH 02/18] load_usermods: Expand name search Look for 'usermod_v2_x' as well. This could be removed later if we clean up the folder names. --- pio-scripts/load_usermods.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pio-scripts/load_usermods.py b/pio-scripts/load_usermods.py index ac7611319d..55b9c4b1b4 100644 --- a/pio-scripts/load_usermods.py +++ b/pio-scripts/load_usermods.py @@ -1,9 +1,26 @@ Import('env') +import os + +def find_usermod(mod_dir: str, mod: str): + """Locate this library in the usermods folder. + We do this to avoid needing to rename a bunch of folders; + this could be removed later + """ + # Check name match + mp = f"{mod_dir}/{mod}" + if os.path.exists(mp): + return mp + mp = f"{mod_dir}/usermod_v2_{mod}" + if os.path.exists(mp): + return mp + raise RuntimeError(f"Couldn't locate module {mod} in usermods directory!") + usermods = env.GetProjectOption("custom_usermods","") if usermods: proj = env.GetProjectConfig() deps = env.GetProjectOption('lib_deps') src_dir = proj.get("platformio", "src_dir") src_dir = src_dir.replace('\\','/') - usermods = [f"{mod} = symlink://{src_dir}/../usermods/{mod}" for mod in usermods.split(" ")] + mod_paths = {mod: find_usermod(f"{src_dir}/../usermods", mod) for mod in usermods.split(" ")} + usermods = [f"{mod} = symlink://{path}" for mod, path in mod_paths.items()] proj.set("env:" + env['PIOENV'], 'lib_deps', deps + usermods) From 71b0e8e93745bb906d0f1f6eb9d161c4a1499e3d Mon Sep 17 00:00:00 2001 From: Will Miles Date: Sat, 11 Jan 2025 13:32:28 -0500 Subject: [PATCH 03/18] Convert AnimARTrix usermod to library Borrowed library definition from @netmindz's work on #4476. --- platformio.ini | 3 --- usermods/usermod_v2_animartrix/library.json | 12 ++++++++++++ usermods/usermod_v2_animartrix/readme.md | 6 +----- ...mod_v2_animartrix.h => usermod_v2_animartrix.cpp} | 5 ++--- 4 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 usermods/usermod_v2_animartrix/library.json rename usermods/usermod_v2_animartrix/{usermod_v2_animartrix.h => usermod_v2_animartrix.cpp} (99%) diff --git a/platformio.ini b/platformio.ini index 1597343db8..4832978a9d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -166,9 +166,6 @@ lib_deps = ; https://github.com/adafruit/Adafruit_MAX1704X @ 1.0.2 #For MPU6050 IMU uncomment follwoing ;electroniccats/MPU6050 @1.0.1 - # For -D USERMOD_ANIMARTRIX - # CC BY-NC 3.0 licensed effects by Stefan Petrick, include this usermod only if you accept the terms! - ;https://github.com/netmindz/animartrix.git#18bf17389e57c69f11bc8d04ebe1d215422c7fb7 # SHT85 ;robtillaart/SHT85@~0.3.3 diff --git a/usermods/usermod_v2_animartrix/library.json b/usermods/usermod_v2_animartrix/library.json new file mode 100644 index 0000000000..f176e72ed6 --- /dev/null +++ b/usermods/usermod_v2_animartrix/library.json @@ -0,0 +1,12 @@ +{ + "name": "animartrix", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + }, + "dependencies": { + "Animartrix": "https://github.com/netmindz/animartrix.git#b172586" + } +} diff --git a/usermods/usermod_v2_animartrix/readme.md b/usermods/usermod_v2_animartrix/readme.md index 42d463c50f..f0ff60a782 100644 --- a/usermods/usermod_v2_animartrix/readme.md +++ b/usermods/usermod_v2_animartrix/readme.md @@ -6,9 +6,5 @@ CC BY-NC 3.0 licensed effects by Stefan Petrick, include this usermod only if yo ## Installation -Please uncomment the two references to ANIMartRIX in your platform.ini - -lib_dep to a version of https://github.com/netmindz/animartrix.git -and the build_flags -D USERMOD_ANIMARTRIX - +Add 'animartrix' to 'custom_usermods' in your platformio_override.ini. diff --git a/usermods/usermod_v2_animartrix/usermod_v2_animartrix.h b/usermods/usermod_v2_animartrix/usermod_v2_animartrix.cpp similarity index 99% rename from usermods/usermod_v2_animartrix/usermod_v2_animartrix.h rename to usermods/usermod_v2_animartrix/usermod_v2_animartrix.cpp index d91cf6c96e..d2968f2fbd 100644 --- a/usermods/usermod_v2_animartrix/usermod_v2_animartrix.h +++ b/usermods/usermod_v2_animartrix/usermod_v2_animartrix.cpp @@ -1,5 +1,3 @@ -#pragma once - #include "wled.h" #include @@ -452,5 +450,6 @@ class AnimartrixUsermod : public Usermod { }; - +static AnimartrixUsermod animartrix_module("Animartrix", false); +REGISTER_USERMOD(animartrix_module); From 90b18158fc636f420a091893ea71075e86af72e5 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 21:14:20 +0000 Subject: [PATCH 04/18] Convert usermods from header to library --- .../Analog_Clock/{Analog_Clock.h => Analog_Clock.cpp} | 4 ++++ usermods/Analog_Clock/library.json | 9 +++++++++ .../{Animated_Staircase.h => Animated_Staircase.cpp} | 4 ++++ usermods/Animated_Staircase/library.json | 9 +++++++++ usermods/Battery/{usermod_v2_Battery.h => Battery.cpp} | 4 ++++ usermods/Battery/library.json | 9 +++++++++ usermods/Cronixie/{usermod_cronixie.h => Cronixie.cpp} | 5 ++++- usermods/Cronixie/library.json | 9 +++++++++ usermods/DHT/{usermod_dht.h => DHT.cpp} | 4 ++++ usermods/DHT/library.json | 9 +++++++++ .../{usermod_elekstube_ips.h => EleksTube_IPS.cpp} | 4 ++++ usermods/EleksTube_IPS/library.json | 9 +++++++++ .../{usermod_LDR_Dusk_Dawn_v2.h => LDR_Dusk_Dawn_v2.cpp} | 4 ++++ usermods/LDR_Dusk_Dawn_v2/library.json | 9 +++++++++ ...usermod_PIR_sensor_switch.h => PIR_sensor_switch.cpp} | 4 ++++ usermods/PIR_sensor_switch/library.json | 9 +++++++++ usermods/PWM_fan/{usermod_PWM_fan.h => PWM_fan.cpp} | 4 ++++ usermods/PWM_fan/library.json | 9 +++++++++ usermods/RTC/{usermod_rtc.h => RTC.cpp} | 5 ++++- usermods/RTC/library.json | 9 +++++++++ .../{usermod_sn_photoresistor.h => SN_Photoresistor.cpp} | 4 ++++ usermods/SN_Photoresistor/library.json | 9 +++++++++ .../{ST7789_display.h => ST7789_display.cpp} | 5 ++++- usermods/ST7789_display/library.json | 9 +++++++++ .../{usermod_si7021_mqtt_ha.h => Si7021_MQTT_HA.cpp} | 4 ++++ usermods/Si7021_MQTT_HA/library.json | 9 +++++++++ .../{usermod_temperature.h => Temperature.cpp} | 4 ++++ usermods/Temperature/library.json | 9 +++++++++ .../{usermod_vl53l0x_gestures.h => VL53L0X_gestures.cpp} | 5 ++++- usermods/VL53L0X_gestures/library.json | 9 +++++++++ usermods/boblight/{boblight.h => boblight.cpp} | 4 ++++ usermods/boblight/library.json | 9 +++++++++ usermods/buzzer/{usermod_v2_buzzer.h => buzzer.cpp} | 5 ++++- usermods/buzzer/library.json | 9 +++++++++ .../deep_sleep/{usermod_deep_sleep.h => deep_sleep.cpp} | 5 ++++- usermods/deep_sleep/library.json | 9 +++++++++ usermods/mpu6050_imu/library.json | 9 +++++++++ .../{usermod_mpu6050_imu.h => mpu6050_imu.cpp} | 4 ++++ usermods/multi_relay/library.json | 9 +++++++++ .../{usermod_multi_relay.h => multi_relay.cpp} | 4 ++++ usermods/pixels_dice_tray/library.json | 9 +++++++++ .../{pixels_dice_tray.h => pixels_dice_tray.cpp} | 4 ++++ usermods/pov_display/library.json | 9 +++++++++ .../{usermod_pov_display.h => pov_display.cpp} | 4 ++++ usermods/pwm_outputs/library.json | 9 +++++++++ .../{usermod_pwm_outputs.h => pwm_outputs.cpp} | 4 ++++ usermods/quinled-an-penta/library.json | 9 +++++++++ .../{quinled-an-penta.h => quinled-an-penta.cpp} | 5 ++++- usermods/rgb-rotary-encoder/library.json | 9 +++++++++ .../{rgb-rotary-encoder.h => rgb-rotary-encoder.cpp} | 5 ++++- usermods/sd_card/library.json | 9 +++++++++ usermods/sd_card/{usermod_sd_card.h => sd_card.cpp} | 5 ++++- usermods/seven_segment_display/library.json | 9 +++++++++ ...seven_segment_display.h => seven_segment_display.cpp} | 5 ++++- usermods/sht/library.json | 9 +++++++++ usermods/sht/{usermod_sht.h => sht.cpp} | 5 ++++- usermods/smartnest/library.json | 9 +++++++++ .../smartnest/{usermod_smartnest.h => smartnest.cpp} | 4 ++++ usermods/usermod_rotary_brightness_color/library.json | 9 +++++++++ ...tness_color.h => usermod_rotary_brightness_color.cpp} | 4 ++++ usermods/usermod_v2_HttpPullLightControl/library.json | 9 +++++++++ usermods/usermod_v2_four_line_display_ALT/library.json | 9 +++++++++ ...isplay_ALT.h => usermod_v2_four_line_display_ALT.cpp} | 4 ++++ usermods/usermod_v2_klipper_percentage/library.json | 9 +++++++++ ...er_percentage.h => usermod_v2_klipper_percentage.cpp} | 5 ++++- usermods/usermod_v2_ping_pong_clock/library.json | 9 +++++++++ ..._ping_pong_clock.h => usermod_v2_ping_pong_clock.cpp} | 4 ++++ usermods/usermod_v2_rotary_encoder_ui_ALT/library.json | 9 +++++++++ ...der_ui_ALT.h => usermod_v2_rotary_encoder_ui_ALT.cpp} | 4 ++++ usermods/usermod_v2_word_clock/library.json | 9 +++++++++ ...usermod_v2_word_clock.h => usermod_v2_word_clock.cpp} | 5 ++++- usermods/wireguard/library.json | 9 +++++++++ usermods/wireguard/{wireguard.h => wireguard.cpp} | 5 ++++- usermods/wizlights/library.json | 9 +++++++++ usermods/wizlights/{wizlights.h => wizlights.cpp} | 4 ++++ 75 files changed, 490 insertions(+), 14 deletions(-) rename usermods/Analog_Clock/{Analog_Clock.h => Analog_Clock.cpp} (99%) create mode 100644 usermods/Analog_Clock/library.json rename usermods/Animated_Staircase/{Animated_Staircase.h => Animated_Staircase.cpp} (99%) create mode 100644 usermods/Animated_Staircase/library.json rename usermods/Battery/{usermod_v2_Battery.h => Battery.cpp} (99%) create mode 100644 usermods/Battery/library.json rename usermods/Cronixie/{usermod_cronixie.h => Cronixie.cpp} (99%) create mode 100644 usermods/Cronixie/library.json rename usermods/DHT/{usermod_dht.h => DHT.cpp} (99%) create mode 100644 usermods/DHT/library.json rename usermods/EleksTube_IPS/{usermod_elekstube_ips.h => EleksTube_IPS.cpp} (98%) create mode 100644 usermods/EleksTube_IPS/library.json rename usermods/LDR_Dusk_Dawn_v2/{usermod_LDR_Dusk_Dawn_v2.h => LDR_Dusk_Dawn_v2.cpp} (98%) create mode 100644 usermods/LDR_Dusk_Dawn_v2/library.json rename usermods/PIR_sensor_switch/{usermod_PIR_sensor_switch.h => PIR_sensor_switch.cpp} (96%) create mode 100644 usermods/PIR_sensor_switch/library.json rename usermods/PWM_fan/{usermod_PWM_fan.h => PWM_fan.cpp} (99%) create mode 100644 usermods/PWM_fan/library.json rename usermods/RTC/{usermod_rtc.h => RTC.cpp} (96%) create mode 100644 usermods/RTC/library.json rename usermods/SN_Photoresistor/{usermod_sn_photoresistor.h => SN_Photoresistor.cpp} (98%) create mode 100644 usermods/SN_Photoresistor/library.json rename usermods/ST7789_display/{ST7789_display.h => ST7789_display.cpp} (99%) create mode 100644 usermods/ST7789_display/library.json rename usermods/Si7021_MQTT_HA/{usermod_si7021_mqtt_ha.h => Si7021_MQTT_HA.cpp} (99%) create mode 100644 usermods/Si7021_MQTT_HA/library.json rename usermods/Temperature/{usermod_temperature.h => Temperature.cpp} (99%) create mode 100644 usermods/Temperature/library.json rename usermods/VL53L0X_gestures/{usermod_vl53l0x_gestures.h => VL53L0X_gestures.cpp} (98%) create mode 100644 usermods/VL53L0X_gestures/library.json rename usermods/boblight/{boblight.h => boblight.cpp} (99%) create mode 100644 usermods/boblight/library.json rename usermods/buzzer/{usermod_v2_buzzer.h => buzzer.cpp} (97%) create mode 100644 usermods/buzzer/library.json rename usermods/deep_sleep/{usermod_deep_sleep.h => deep_sleep.cpp} (98%) create mode 100644 usermods/deep_sleep/library.json create mode 100644 usermods/mpu6050_imu/library.json rename usermods/mpu6050_imu/{usermod_mpu6050_imu.h => mpu6050_imu.cpp} (99%) create mode 100644 usermods/multi_relay/library.json rename usermods/multi_relay/{usermod_multi_relay.h => multi_relay.cpp} (99%) create mode 100644 usermods/pixels_dice_tray/library.json rename usermods/pixels_dice_tray/{pixels_dice_tray.h => pixels_dice_tray.cpp} (99%) create mode 100644 usermods/pov_display/library.json rename usermods/pov_display/{usermod_pov_display.h => pov_display.cpp} (96%) create mode 100644 usermods/pwm_outputs/library.json rename usermods/pwm_outputs/{usermod_pwm_outputs.h => pwm_outputs.cpp} (98%) create mode 100644 usermods/quinled-an-penta/library.json rename usermods/quinled-an-penta/{quinled-an-penta.h => quinled-an-penta.cpp} (99%) create mode 100644 usermods/rgb-rotary-encoder/library.json rename usermods/rgb-rotary-encoder/{rgb-rotary-encoder.h => rgb-rotary-encoder.cpp} (99%) create mode 100644 usermods/sd_card/library.json rename usermods/sd_card/{usermod_sd_card.h => sd_card.cpp} (99%) create mode 100644 usermods/seven_segment_display/library.json rename usermods/seven_segment_display/{usermod_v2_seven_segment_display.h => seven_segment_display.cpp} (99%) create mode 100644 usermods/sht/library.json rename usermods/sht/{usermod_sht.h => sht.cpp} (99%) create mode 100644 usermods/smartnest/library.json rename usermods/smartnest/{usermod_smartnest.h => smartnest.cpp} (98%) create mode 100644 usermods/usermod_rotary_brightness_color/library.json rename usermods/usermod_rotary_brightness_color/{usermod_rotary_brightness_color.h => usermod_rotary_brightness_color.cpp} (98%) create mode 100644 usermods/usermod_v2_HttpPullLightControl/library.json create mode 100644 usermods/usermod_v2_four_line_display_ALT/library.json rename usermods/usermod_v2_four_line_display_ALT/{usermod_v2_four_line_display_ALT.h => usermod_v2_four_line_display_ALT.cpp} (99%) create mode 100644 usermods/usermod_v2_klipper_percentage/library.json rename usermods/usermod_v2_klipper_percentage/{usermod_v2_klipper_percentage.h => usermod_v2_klipper_percentage.cpp} (97%) create mode 100644 usermods/usermod_v2_ping_pong_clock/library.json rename usermods/usermod_v2_ping_pong_clock/{usermod_v2_ping_pong_clock.h => usermod_v2_ping_pong_clock.cpp} (97%) create mode 100644 usermods/usermod_v2_rotary_encoder_ui_ALT/library.json rename usermods/usermod_v2_rotary_encoder_ui_ALT/{usermod_v2_rotary_encoder_ui_ALT.h => usermod_v2_rotary_encoder_ui_ALT.cpp} (99%) create mode 100644 usermods/usermod_v2_word_clock/library.json rename usermods/usermod_v2_word_clock/{usermod_v2_word_clock.h => usermod_v2_word_clock.cpp} (99%) create mode 100644 usermods/wireguard/library.json rename usermods/wireguard/{wireguard.h => wireguard.cpp} (98%) create mode 100644 usermods/wizlights/library.json rename usermods/wizlights/{wizlights.h => wizlights.cpp} (98%) diff --git a/usermods/Analog_Clock/Analog_Clock.h b/usermods/Analog_Clock/Analog_Clock.cpp similarity index 99% rename from usermods/Analog_Clock/Analog_Clock.h rename to usermods/Analog_Clock/Analog_Clock.cpp index 9d82f7670c..8a4c048a80 100644 --- a/usermods/Analog_Clock/Analog_Clock.h +++ b/usermods/Analog_Clock/Analog_Clock.cpp @@ -254,3 +254,7 @@ class AnalogClockUsermod : public Usermod { return USERMOD_ID_ANALOG_CLOCK; } }; + + +static AnalogClockUsermod analog_clock; +REGISTER_USERMOD(analog_clock); \ No newline at end of file diff --git a/usermods/Analog_Clock/library.json b/usermods/Analog_Clock/library.json new file mode 100644 index 0000000000..ddba3a76f5 --- /dev/null +++ b/usermods/Analog_Clock/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Analog_Clock", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/Animated_Staircase/Animated_Staircase.h b/usermods/Animated_Staircase/Animated_Staircase.cpp similarity index 99% rename from usermods/Animated_Staircase/Animated_Staircase.h rename to usermods/Animated_Staircase/Animated_Staircase.cpp index 54a9b3331e..43d9db6b4d 100644 --- a/usermods/Animated_Staircase/Animated_Staircase.h +++ b/usermods/Animated_Staircase/Animated_Staircase.cpp @@ -562,3 +562,7 @@ const char Animated_Staircase::_bottomEcho_pin[] PROGMEM = "bottomEch const char Animated_Staircase::_topEchoCm[] PROGMEM = "top-dist-cm"; const char Animated_Staircase::_bottomEchoCm[] PROGMEM = "bottom-dist-cm"; const char Animated_Staircase::_togglePower[] PROGMEM = "toggle-on-off"; + + +static Animated_Staircase animated_staircase; +REGISTER_USERMOD(animated_staircase); \ No newline at end of file diff --git a/usermods/Animated_Staircase/library.json b/usermods/Animated_Staircase/library.json new file mode 100644 index 0000000000..e37df3114e --- /dev/null +++ b/usermods/Animated_Staircase/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Animated_Staircase", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/Battery/usermod_v2_Battery.h b/usermods/Battery/Battery.cpp similarity index 99% rename from usermods/Battery/usermod_v2_Battery.h rename to usermods/Battery/Battery.cpp index b36c5f4d60..4646a23841 100644 --- a/usermods/Battery/usermod_v2_Battery.h +++ b/usermods/Battery/Battery.cpp @@ -857,3 +857,7 @@ const char UsermodBattery::_preset[] PROGMEM = "preset"; const char UsermodBattery::_duration[] PROGMEM = "duration"; const char UsermodBattery::_init[] PROGMEM = "init"; const char UsermodBattery::_haDiscovery[] PROGMEM = "HA-discovery"; + + +static UsermodBattery battery; +REGISTER_USERMOD(battery); \ No newline at end of file diff --git a/usermods/Battery/library.json b/usermods/Battery/library.json new file mode 100644 index 0000000000..bc0d97a11a --- /dev/null +++ b/usermods/Battery/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Battery", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/Cronixie/usermod_cronixie.h b/usermods/Cronixie/Cronixie.cpp similarity index 99% rename from usermods/Cronixie/usermod_cronixie.h rename to usermods/Cronixie/Cronixie.cpp index 671c5d134d..09e7e25ac8 100644 --- a/usermods/Cronixie/usermod_cronixie.h +++ b/usermods/Cronixie/Cronixie.cpp @@ -299,4 +299,7 @@ class UsermodCronixie : public Usermod { { return USERMOD_ID_CRONIXIE; } -}; \ No newline at end of file +}; + +static UsermodCronixie cronixie; +REGISTER_USERMOD(cronixie); \ No newline at end of file diff --git a/usermods/Cronixie/library.json b/usermods/Cronixie/library.json new file mode 100644 index 0000000000..f0d39d001d --- /dev/null +++ b/usermods/Cronixie/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Cronixie", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/DHT/usermod_dht.h b/usermods/DHT/DHT.cpp similarity index 99% rename from usermods/DHT/usermod_dht.h rename to usermods/DHT/DHT.cpp index 05a7267b5f..fad6dad5c6 100644 --- a/usermods/DHT/usermod_dht.h +++ b/usermods/DHT/DHT.cpp @@ -245,3 +245,7 @@ class UsermodDHT : public Usermod { } }; + + +static UsermodDHT dht; +REGISTER_USERMOD(dht); \ No newline at end of file diff --git a/usermods/DHT/library.json b/usermods/DHT/library.json new file mode 100644 index 0000000000..bb67736154 --- /dev/null +++ b/usermods/DHT/library.json @@ -0,0 +1,9 @@ +{ + "name:": "DHT", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/EleksTube_IPS/usermod_elekstube_ips.h b/usermods/EleksTube_IPS/EleksTube_IPS.cpp similarity index 98% rename from usermods/EleksTube_IPS/usermod_elekstube_ips.h rename to usermods/EleksTube_IPS/EleksTube_IPS.cpp index 0f7d92e7e9..48fbb2b40f 100644 --- a/usermods/EleksTube_IPS/usermod_elekstube_ips.h +++ b/usermods/EleksTube_IPS/EleksTube_IPS.cpp @@ -156,3 +156,7 @@ class ElekstubeIPSUsermod : public Usermod { const char ElekstubeIPSUsermod::_name[] PROGMEM = "EleksTubeIPS"; const char ElekstubeIPSUsermod::_tubeSeg[] PROGMEM = "tubeSegment"; const char ElekstubeIPSUsermod::_digitOffset[] PROGMEM = "digitOffset"; + + +static ElekstubeIPSUsermod elekstube_ips; +REGISTER_USERMOD(elekstube_ips); \ No newline at end of file diff --git a/usermods/EleksTube_IPS/library.json b/usermods/EleksTube_IPS/library.json new file mode 100644 index 0000000000..d025fc78a0 --- /dev/null +++ b/usermods/EleksTube_IPS/library.json @@ -0,0 +1,9 @@ +{ + "name:": "EleksTube_IPS", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/LDR_Dusk_Dawn_v2/usermod_LDR_Dusk_Dawn_v2.h b/usermods/LDR_Dusk_Dawn_v2/LDR_Dusk_Dawn_v2.cpp similarity index 98% rename from usermods/LDR_Dusk_Dawn_v2/usermod_LDR_Dusk_Dawn_v2.h rename to usermods/LDR_Dusk_Dawn_v2/LDR_Dusk_Dawn_v2.cpp index 03f4c078a4..6104fcab55 100644 --- a/usermods/LDR_Dusk_Dawn_v2/usermod_LDR_Dusk_Dawn_v2.h +++ b/usermods/LDR_Dusk_Dawn_v2/LDR_Dusk_Dawn_v2.cpp @@ -151,3 +151,7 @@ class LDR_Dusk_Dawn_v2 : public Usermod { }; const char LDR_Dusk_Dawn_v2::_name[] PROGMEM = "LDR_Dusk_Dawn_v2"; + + +static LDR_Dusk_Dawn_v2 ldr_dusk_dawn_v2; +REGISTER_USERMOD(ldr_dusk_dawn_v2); \ No newline at end of file diff --git a/usermods/LDR_Dusk_Dawn_v2/library.json b/usermods/LDR_Dusk_Dawn_v2/library.json new file mode 100644 index 0000000000..6a08c9ccae --- /dev/null +++ b/usermods/LDR_Dusk_Dawn_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "LDR_Dusk_Dawn_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h b/usermods/PIR_sensor_switch/PIR_sensor_switch.cpp similarity index 96% rename from usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h rename to usermods/PIR_sensor_switch/PIR_sensor_switch.cpp index 0deda181c2..1cc31a08d9 100644 --- a/usermods/PIR_sensor_switch/usermod_PIR_sensor_switch.h +++ b/usermods/PIR_sensor_switch/PIR_sensor_switch.cpp @@ -571,3 +571,7 @@ bool PIRsensorSwitch::readFromConfig(JsonObject &root) // use "return !top["newestParameter"].isNull();" when updating Usermod with new features return !(pins.isNull() || pins.size() != PIR_SENSOR_MAX_SENSORS); } + + +static PIRsensorSwitch pir_sensor_switch; +REGISTER_USERMOD(pir_sensor_switch); \ No newline at end of file diff --git a/usermods/PIR_sensor_switch/library.json b/usermods/PIR_sensor_switch/library.json new file mode 100644 index 0000000000..152946e4cb --- /dev/null +++ b/usermods/PIR_sensor_switch/library.json @@ -0,0 +1,9 @@ +{ + "name:": "PIR_sensor_switch", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/PWM_fan/usermod_PWM_fan.h b/usermods/PWM_fan/PWM_fan.cpp similarity index 99% rename from usermods/PWM_fan/usermod_PWM_fan.h rename to usermods/PWM_fan/PWM_fan.cpp index c3ef24fe41..9df3730452 100644 --- a/usermods/PWM_fan/usermod_PWM_fan.h +++ b/usermods/PWM_fan/PWM_fan.cpp @@ -397,3 +397,7 @@ const char PWMFanUsermod::_maxPWMValuePct[] PROGMEM = "max-PWM-percent"; const char PWMFanUsermod::_IRQperRotation[] PROGMEM = "IRQs-per-rotation"; const char PWMFanUsermod::_speed[] PROGMEM = "speed"; const char PWMFanUsermod::_lock[] PROGMEM = "lock"; + + +static PWMFanUsermod pwm_fan; +REGISTER_USERMOD(pwm_fan); \ No newline at end of file diff --git a/usermods/PWM_fan/library.json b/usermods/PWM_fan/library.json new file mode 100644 index 0000000000..a6d5ea64f5 --- /dev/null +++ b/usermods/PWM_fan/library.json @@ -0,0 +1,9 @@ +{ + "name:": "PWM_fan", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/RTC/usermod_rtc.h b/usermods/RTC/RTC.cpp similarity index 96% rename from usermods/RTC/usermod_rtc.h rename to usermods/RTC/RTC.cpp index 42965e3af3..f9dbe3cf2d 100644 --- a/usermods/RTC/usermod_rtc.h +++ b/usermods/RTC/RTC.cpp @@ -48,4 +48,7 @@ class RTCUsermod : public Usermod { { return USERMOD_ID_RTC; } -}; \ No newline at end of file +}; + +static RTCUsermod rtc; +REGISTER_USERMOD(rtc); \ No newline at end of file diff --git a/usermods/RTC/library.json b/usermods/RTC/library.json new file mode 100644 index 0000000000..96aa095bb6 --- /dev/null +++ b/usermods/RTC/library.json @@ -0,0 +1,9 @@ +{ + "name:": "RTC", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/SN_Photoresistor/usermod_sn_photoresistor.h b/usermods/SN_Photoresistor/SN_Photoresistor.cpp similarity index 98% rename from usermods/SN_Photoresistor/usermod_sn_photoresistor.h rename to usermods/SN_Photoresistor/SN_Photoresistor.cpp index 45cdb66ad7..5e50ab7a68 100644 --- a/usermods/SN_Photoresistor/usermod_sn_photoresistor.h +++ b/usermods/SN_Photoresistor/SN_Photoresistor.cpp @@ -210,3 +210,7 @@ const char Usermod_SN_Photoresistor::_referenceVoltage[] PROGMEM = "supplied-vol const char Usermod_SN_Photoresistor::_resistorValue[] PROGMEM = "resistor-value"; const char Usermod_SN_Photoresistor::_adcPrecision[] PROGMEM = "adc-precision"; const char Usermod_SN_Photoresistor::_offset[] PROGMEM = "offset"; + + +static Usermod_SN_Photoresistor sn_photoresistor; +REGISTER_USERMOD(sn_photoresistor); \ No newline at end of file diff --git a/usermods/SN_Photoresistor/library.json b/usermods/SN_Photoresistor/library.json new file mode 100644 index 0000000000..fe5173bed3 --- /dev/null +++ b/usermods/SN_Photoresistor/library.json @@ -0,0 +1,9 @@ +{ + "name:": "SN_Photoresistor", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/ST7789_display/ST7789_display.h b/usermods/ST7789_display/ST7789_display.cpp similarity index 99% rename from usermods/ST7789_display/ST7789_display.h rename to usermods/ST7789_display/ST7789_display.cpp index 65f4cae5d3..e81c53ba58 100644 --- a/usermods/ST7789_display/ST7789_display.h +++ b/usermods/ST7789_display/ST7789_display.cpp @@ -410,4 +410,7 @@ class St7789DisplayUsermod : public Usermod { //More methods can be added in the future, this example will then be extended. //Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class! -}; \ No newline at end of file +}; + +static name. st7789_display; +REGISTER_USERMOD(st7789_display); \ No newline at end of file diff --git a/usermods/ST7789_display/library.json b/usermods/ST7789_display/library.json new file mode 100644 index 0000000000..88f4efe782 --- /dev/null +++ b/usermods/ST7789_display/library.json @@ -0,0 +1,9 @@ +{ + "name:": "ST7789_display", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/Si7021_MQTT_HA/usermod_si7021_mqtt_ha.h b/usermods/Si7021_MQTT_HA/Si7021_MQTT_HA.cpp similarity index 99% rename from usermods/Si7021_MQTT_HA/usermod_si7021_mqtt_ha.h rename to usermods/Si7021_MQTT_HA/Si7021_MQTT_HA.cpp index 9f027382de..04f6d750df 100644 --- a/usermods/Si7021_MQTT_HA/usermod_si7021_mqtt_ha.h +++ b/usermods/Si7021_MQTT_HA/Si7021_MQTT_HA.cpp @@ -229,3 +229,7 @@ const char Si7021_MQTT_HA::_name[] PROGMEM = "Si7021 MQTT (Hom const char Si7021_MQTT_HA::_enabled[] PROGMEM = "enabled"; const char Si7021_MQTT_HA::_sendAdditionalSensors[] PROGMEM = "Send Dew Point, Abs. Humidity and Heat Index"; const char Si7021_MQTT_HA::_haAutoDiscovery[] PROGMEM = "Home Assistant MQTT Auto-Discovery"; + + +static Si7021_MQTT_HA si7021_mqtt_ha; +REGISTER_USERMOD(si7021_mqtt_ha); \ No newline at end of file diff --git a/usermods/Si7021_MQTT_HA/library.json b/usermods/Si7021_MQTT_HA/library.json new file mode 100644 index 0000000000..2c18375f26 --- /dev/null +++ b/usermods/Si7021_MQTT_HA/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Si7021_MQTT_HA", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/Temperature/usermod_temperature.h b/usermods/Temperature/Temperature.cpp similarity index 99% rename from usermods/Temperature/usermod_temperature.h rename to usermods/Temperature/Temperature.cpp index 178bc05a0d..a17bd2d905 100644 --- a/usermods/Temperature/usermod_temperature.h +++ b/usermods/Temperature/Temperature.cpp @@ -471,3 +471,7 @@ static uint16_t mode_temperature() { SEGMENT.fill(SEGMENT.color_from_palette(i, false, false, 255)); return FRAMETIME; } + + +static UsermodTemperature temperature; +REGISTER_USERMOD(temperature); \ No newline at end of file diff --git a/usermods/Temperature/library.json b/usermods/Temperature/library.json new file mode 100644 index 0000000000..56371db4e2 --- /dev/null +++ b/usermods/Temperature/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Temperature", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/VL53L0X_gestures/usermod_vl53l0x_gestures.h b/usermods/VL53L0X_gestures/VL53L0X_gestures.cpp similarity index 98% rename from usermods/VL53L0X_gestures/usermod_vl53l0x_gestures.h rename to usermods/VL53L0X_gestures/VL53L0X_gestures.cpp index fe6b958f55..759c31c7c7 100644 --- a/usermods/VL53L0X_gestures/usermod_vl53l0x_gestures.h +++ b/usermods/VL53L0X_gestures/VL53L0X_gestures.cpp @@ -126,4 +126,7 @@ class UsermodVL53L0XGestures : public Usermod { { return USERMOD_ID_VL53L0X; } -}; \ No newline at end of file +}; + +static UsermodVL53L0XGestures vl53l0x_gestures; +REGISTER_USERMOD(vl53l0x_gestures); \ No newline at end of file diff --git a/usermods/VL53L0X_gestures/library.json b/usermods/VL53L0X_gestures/library.json new file mode 100644 index 0000000000..77521d6f3b --- /dev/null +++ b/usermods/VL53L0X_gestures/library.json @@ -0,0 +1,9 @@ +{ + "name:": "VL53L0X_gestures", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/boblight/boblight.h b/usermods/boblight/boblight.cpp similarity index 99% rename from usermods/boblight/boblight.h rename to usermods/boblight/boblight.cpp index b04b78fac7..2a52fc1568 100644 --- a/usermods/boblight/boblight.h +++ b/usermods/boblight/boblight.cpp @@ -457,3 +457,7 @@ void BobLightUsermod::pollBob() { } } } + + +static BobLightUsermod boblight; +REGISTER_USERMOD(boblight); \ No newline at end of file diff --git a/usermods/boblight/library.json b/usermods/boblight/library.json new file mode 100644 index 0000000000..0b63b22475 --- /dev/null +++ b/usermods/boblight/library.json @@ -0,0 +1,9 @@ +{ + "name:": "boblight", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/buzzer/usermod_v2_buzzer.h b/usermods/buzzer/buzzer.cpp similarity index 97% rename from usermods/buzzer/usermod_v2_buzzer.h rename to usermods/buzzer/buzzer.cpp index ebd8dcb15e..e421a23919 100644 --- a/usermods/buzzer/usermod_v2_buzzer.h +++ b/usermods/buzzer/buzzer.cpp @@ -78,4 +78,7 @@ class BuzzerUsermod : public Usermod { { return USERMOD_ID_BUZZER; } -}; \ No newline at end of file +}; + +static BuzzerUsermod buzzer; +REGISTER_USERMOD(buzzer); \ No newline at end of file diff --git a/usermods/buzzer/library.json b/usermods/buzzer/library.json new file mode 100644 index 0000000000..78ba4152f9 --- /dev/null +++ b/usermods/buzzer/library.json @@ -0,0 +1,9 @@ +{ + "name:": "buzzer", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/deep_sleep/usermod_deep_sleep.h b/usermods/deep_sleep/deep_sleep.cpp similarity index 98% rename from usermods/deep_sleep/usermod_deep_sleep.h rename to usermods/deep_sleep/deep_sleep.cpp index 7f4efd5caf..741b618fd2 100644 --- a/usermods/deep_sleep/usermod_deep_sleep.h +++ b/usermods/deep_sleep/deep_sleep.cpp @@ -224,4 +224,7 @@ void addToConfig(JsonObject& root) override // add more strings here to reduce flash memory usage const char DeepSleepUsermod::_name[] PROGMEM = "DeepSleep"; -const char DeepSleepUsermod::_enabled[] PROGMEM = "enabled"; \ No newline at end of file +const char DeepSleepUsermod::_enabled[] PROGMEM = "enabled"; + +static DeepSleepUsermod deep_sleep; +REGISTER_USERMOD(deep_sleep); \ No newline at end of file diff --git a/usermods/deep_sleep/library.json b/usermods/deep_sleep/library.json new file mode 100644 index 0000000000..c15e8d5773 --- /dev/null +++ b/usermods/deep_sleep/library.json @@ -0,0 +1,9 @@ +{ + "name:": "deep_sleep", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/mpu6050_imu/library.json b/usermods/mpu6050_imu/library.json new file mode 100644 index 0000000000..bf86aed622 --- /dev/null +++ b/usermods/mpu6050_imu/library.json @@ -0,0 +1,9 @@ +{ + "name:": "mpu6050_imu", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/mpu6050_imu/usermod_mpu6050_imu.h b/usermods/mpu6050_imu/mpu6050_imu.cpp similarity index 99% rename from usermods/mpu6050_imu/usermod_mpu6050_imu.h rename to usermods/mpu6050_imu/mpu6050_imu.cpp index f04578fe3a..2f8166cdd8 100644 --- a/usermods/mpu6050_imu/usermod_mpu6050_imu.h +++ b/usermods/mpu6050_imu/mpu6050_imu.cpp @@ -446,3 +446,7 @@ const char MPU6050Driver::_z_acc_bias[] PROGMEM = "z_acc_bias"; const char MPU6050Driver::_x_gyro_bias[] PROGMEM = "x_gyro_bias"; const char MPU6050Driver::_y_gyro_bias[] PROGMEM = "y_gyro_bias"; const char MPU6050Driver::_z_gyro_bias[] PROGMEM = "z_gyro_bias"; + + +static MPU6050Driver mpu6050_imu; +REGISTER_USERMOD(mpu6050_imu); \ No newline at end of file diff --git a/usermods/multi_relay/library.json b/usermods/multi_relay/library.json new file mode 100644 index 0000000000..47505d0b4e --- /dev/null +++ b/usermods/multi_relay/library.json @@ -0,0 +1,9 @@ +{ + "name:": "multi_relay", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/multi_relay/usermod_multi_relay.h b/usermods/multi_relay/multi_relay.cpp similarity index 99% rename from usermods/multi_relay/usermod_multi_relay.h rename to usermods/multi_relay/multi_relay.cpp index c4446c7a20..ea07e281e0 100644 --- a/usermods/multi_relay/usermod_multi_relay.h +++ b/usermods/multi_relay/multi_relay.cpp @@ -842,3 +842,7 @@ const char MultiRelay::_pcfAddress[] PROGMEM = "PCF8574-address"; const char MultiRelay::_switch[] PROGMEM = "switch"; const char MultiRelay::_toggle[] PROGMEM = "toggle"; const char MultiRelay::_Command[] PROGMEM = "/command"; + + +static MultiRelay multi_relay; +REGISTER_USERMOD(multi_relay); \ No newline at end of file diff --git a/usermods/pixels_dice_tray/library.json b/usermods/pixels_dice_tray/library.json new file mode 100644 index 0000000000..01776ffe2f --- /dev/null +++ b/usermods/pixels_dice_tray/library.json @@ -0,0 +1,9 @@ +{ + "name:": "pixels_dice_tray", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/pixels_dice_tray/pixels_dice_tray.h b/usermods/pixels_dice_tray/pixels_dice_tray.cpp similarity index 99% rename from usermods/pixels_dice_tray/pixels_dice_tray.h rename to usermods/pixels_dice_tray/pixels_dice_tray.cpp index 61348ebb8e..07fd3d596e 100644 --- a/usermods/pixels_dice_tray/pixels_dice_tray.h +++ b/usermods/pixels_dice_tray/pixels_dice_tray.cpp @@ -533,3 +533,7 @@ class PixelsDiceTrayUsermod : public Usermod { // extended. Your usermod will remain compatible as it does not need to // implement all methods from the Usermod base class! }; + + +static PixelsDiceTrayUsermod pixels_dice_tray; +REGISTER_USERMOD(pixels_dice_tray); \ No newline at end of file diff --git a/usermods/pov_display/library.json b/usermods/pov_display/library.json new file mode 100644 index 0000000000..5998377b96 --- /dev/null +++ b/usermods/pov_display/library.json @@ -0,0 +1,9 @@ +{ + "name:": "pov_display", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/pov_display/usermod_pov_display.h b/usermods/pov_display/pov_display.cpp similarity index 96% rename from usermods/pov_display/usermod_pov_display.h rename to usermods/pov_display/pov_display.cpp index b1fc0dba60..c1bd143a08 100644 --- a/usermods/pov_display/usermod_pov_display.h +++ b/usermods/pov_display/pov_display.cpp @@ -83,3 +83,7 @@ class PovDisplayUsermod : public Usermod void connected() {} }; + + +static PovDisplayUsermod pov_display; +REGISTER_USERMOD(pov_display); \ No newline at end of file diff --git a/usermods/pwm_outputs/library.json b/usermods/pwm_outputs/library.json new file mode 100644 index 0000000000..18ce7d883f --- /dev/null +++ b/usermods/pwm_outputs/library.json @@ -0,0 +1,9 @@ +{ + "name:": "pwm_outputs", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/pwm_outputs/usermod_pwm_outputs.h b/usermods/pwm_outputs/pwm_outputs.cpp similarity index 98% rename from usermods/pwm_outputs/usermod_pwm_outputs.h rename to usermods/pwm_outputs/pwm_outputs.cpp index 09232f043a..72a78475c4 100644 --- a/usermods/pwm_outputs/usermod_pwm_outputs.h +++ b/usermods/pwm_outputs/pwm_outputs.cpp @@ -219,3 +219,7 @@ class PwmOutputsUsermod : public Usermod { const char PwmOutputsUsermod::USERMOD_NAME[] PROGMEM = "PwmOutputs"; const char PwmOutputsUsermod::PWM_STATE_NAME[] PROGMEM = "pwm"; + + +static PwmOutputsUsermod pwm_outputs; +REGISTER_USERMOD(pwm_outputs); \ No newline at end of file diff --git a/usermods/quinled-an-penta/library.json b/usermods/quinled-an-penta/library.json new file mode 100644 index 0000000000..274020d944 --- /dev/null +++ b/usermods/quinled-an-penta/library.json @@ -0,0 +1,9 @@ +{ + "name:": "quinled-an-penta", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/quinled-an-penta/quinled-an-penta.h b/usermods/quinled-an-penta/quinled-an-penta.cpp similarity index 99% rename from usermods/quinled-an-penta/quinled-an-penta.h rename to usermods/quinled-an-penta/quinled-an-penta.cpp index e446720398..612ade03b3 100644 --- a/usermods/quinled-an-penta/quinled-an-penta.h +++ b/usermods/quinled-an-penta/quinled-an-penta.cpp @@ -752,4 +752,7 @@ const unsigned char QuinLEDAnPentaUsermod::quinLedLogo[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; \ No newline at end of file +}; + +static QuinLEDAnPentaUsermod quinled-an-penta; +REGISTER_USERMOD(quinled-an-penta); \ No newline at end of file diff --git a/usermods/rgb-rotary-encoder/library.json b/usermods/rgb-rotary-encoder/library.json new file mode 100644 index 0000000000..c23606c0a5 --- /dev/null +++ b/usermods/rgb-rotary-encoder/library.json @@ -0,0 +1,9 @@ +{ + "name:": "rgb-rotary-encoder", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/rgb-rotary-encoder/rgb-rotary-encoder.h b/usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp similarity index 99% rename from usermods/rgb-rotary-encoder/rgb-rotary-encoder.h rename to usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp index 00fc227252..3e7b96bb2c 100644 --- a/usermods/rgb-rotary-encoder/rgb-rotary-encoder.h +++ b/usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp @@ -340,4 +340,7 @@ const char RgbRotaryEncoderUsermod::_ebIo[] PROGMEM = "eb-pin"; const char RgbRotaryEncoderUsermod::_ledMode[] PROGMEM = "LED-Mode"; const char RgbRotaryEncoderUsermod::_ledBrightness[] PROGMEM = "LED-Brightness"; const char RgbRotaryEncoderUsermod::_stepsPerClick[] PROGMEM = "Steps-per-Click"; -const char RgbRotaryEncoderUsermod::_incrementPerClick[] PROGMEM = "Increment-per-Click"; \ No newline at end of file +const char RgbRotaryEncoderUsermod::_incrementPerClick[] PROGMEM = "Increment-per-Click"; + +static RgbRotaryEncoderUsermod rgb-rotary-encoder; +REGISTER_USERMOD(rgb-rotary-encoder); \ No newline at end of file diff --git a/usermods/sd_card/library.json b/usermods/sd_card/library.json new file mode 100644 index 0000000000..777c6264ff --- /dev/null +++ b/usermods/sd_card/library.json @@ -0,0 +1,9 @@ +{ + "name:": "sd_card", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/sd_card/usermod_sd_card.h b/usermods/sd_card/sd_card.cpp similarity index 99% rename from usermods/sd_card/usermod_sd_card.h rename to usermods/sd_card/sd_card.cpp index da1999d9b5..e33a643fe3 100644 --- a/usermods/sd_card/usermod_sd_card.h +++ b/usermods/sd_card/sd_card.cpp @@ -240,4 +240,7 @@ void listDir( const char * dirname, uint8_t levels){ } } -#endif \ No newline at end of file +#endif + +static UsermodSdCard sd_card; +REGISTER_USERMOD(sd_card); \ No newline at end of file diff --git a/usermods/seven_segment_display/library.json b/usermods/seven_segment_display/library.json new file mode 100644 index 0000000000..c10bd084c4 --- /dev/null +++ b/usermods/seven_segment_display/library.json @@ -0,0 +1,9 @@ +{ + "name:": "seven_segment_display", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/seven_segment_display/usermod_v2_seven_segment_display.h b/usermods/seven_segment_display/seven_segment_display.cpp similarity index 99% rename from usermods/seven_segment_display/usermod_v2_seven_segment_display.h rename to usermods/seven_segment_display/seven_segment_display.cpp index 20fef15df5..d3aa57378d 100644 --- a/usermods/seven_segment_display/usermod_v2_seven_segment_display.h +++ b/usermods/seven_segment_display/seven_segment_display.cpp @@ -498,4 +498,7 @@ const char SevenSegmentDisplay::_str_timeEnabled[] PROGMEM = "timeEnabled"; const char SevenSegmentDisplay::_str_scrollSpd[] PROGMEM = "scrollSpd"; const char SevenSegmentDisplay::_str_displayMask[] PROGMEM = "displayMask"; const char SevenSegmentDisplay::_str_displayMsg[] PROGMEM = "displayMsg"; -const char SevenSegmentDisplay::_str_sevenSeg[] PROGMEM = "sevenSeg"; \ No newline at end of file +const char SevenSegmentDisplay::_str_sevenSeg[] PROGMEM = "sevenSeg"; + +static SevenSegmentDisplay seven_segment_display; +REGISTER_USERMOD(seven_segment_display); \ No newline at end of file diff --git a/usermods/sht/library.json b/usermods/sht/library.json new file mode 100644 index 0000000000..2cb0003ac9 --- /dev/null +++ b/usermods/sht/library.json @@ -0,0 +1,9 @@ +{ + "name:": "sht", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/sht/usermod_sht.h b/usermods/sht/sht.cpp similarity index 99% rename from usermods/sht/usermod_sht.h rename to usermods/sht/sht.cpp index f10c78a251..7641bbc2ee 100644 --- a/usermods/sht/usermod_sht.h +++ b/usermods/sht/sht.cpp @@ -477,4 +477,7 @@ float ShtUsermod::getTemperature() { */ const char* ShtUsermod::getUnitString() { return unitOfTemp ? "°F" : "°C"; -} \ No newline at end of file +} + +static ShtUsermod sht; +REGISTER_USERMOD(sht); \ No newline at end of file diff --git a/usermods/smartnest/library.json b/usermods/smartnest/library.json new file mode 100644 index 0000000000..4e776ad76d --- /dev/null +++ b/usermods/smartnest/library.json @@ -0,0 +1,9 @@ +{ + "name:": "smartnest", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/smartnest/usermod_smartnest.h b/usermods/smartnest/smartnest.cpp similarity index 98% rename from usermods/smartnest/usermod_smartnest.h rename to usermods/smartnest/smartnest.cpp index 9d21ef2e73..be7710abc7 100644 --- a/usermods/smartnest/usermod_smartnest.h +++ b/usermods/smartnest/smartnest.cpp @@ -203,3 +203,7 @@ class Smartnest : public Usermod } } }; + + +static Smartnest smartnest; +REGISTER_USERMOD(smartnest); \ No newline at end of file diff --git a/usermods/usermod_rotary_brightness_color/library.json b/usermods/usermod_rotary_brightness_color/library.json new file mode 100644 index 0000000000..8d368082bb --- /dev/null +++ b/usermods/usermod_rotary_brightness_color/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_rotary_brightness_color", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.h b/usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.cpp similarity index 98% rename from usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.h rename to usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.cpp index 85a9a16054..076e91f733 100644 --- a/usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.h +++ b/usermods/usermod_rotary_brightness_color/usermod_rotary_brightness_color.cpp @@ -187,3 +187,7 @@ class RotaryEncoderBrightnessColor : public Usermod return configComplete; } }; + + +static RotaryEncoderBrightnessColor usermod_rotary_brightness_color; +REGISTER_USERMOD(usermod_rotary_brightness_color); \ No newline at end of file diff --git a/usermods/usermod_v2_HttpPullLightControl/library.json b/usermods/usermod_v2_HttpPullLightControl/library.json new file mode 100644 index 0000000000..68b9370815 --- /dev/null +++ b/usermods/usermod_v2_HttpPullLightControl/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_v2_HttpPullLightControl", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_four_line_display_ALT/library.json b/usermods/usermod_v2_four_line_display_ALT/library.json new file mode 100644 index 0000000000..6dccb4a98d --- /dev/null +++ b/usermods/usermod_v2_four_line_display_ALT/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_v2_four_line_display_ALT", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.cpp similarity index 99% rename from usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h rename to usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.cpp index 684dd86e46..851e378e1e 100644 --- a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h +++ b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.cpp @@ -1386,3 +1386,7 @@ bool FourLineDisplayUsermod::readFromConfig(JsonObject& root) { // use "return !top["newestParameter"].isNull();" when updating Usermod with new features return !top[FPSTR(_contrastFix)].isNull(); } + + +static FourLineDisplayUsermod usermod_v2_four_line_display_alt; +REGISTER_USERMOD(usermod_v2_four_line_display_alt); \ No newline at end of file diff --git a/usermods/usermod_v2_klipper_percentage/library.json b/usermods/usermod_v2_klipper_percentage/library.json new file mode 100644 index 0000000000..afd9616315 --- /dev/null +++ b/usermods/usermod_v2_klipper_percentage/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_v2_klipper_percentage", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h b/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.cpp similarity index 97% rename from usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h rename to usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.cpp index bd4170dd26..55132b84d8 100644 --- a/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h +++ b/usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.cpp @@ -219,4 +219,7 @@ class klipper_percentage : public Usermod } }; const char klipper_percentage::_name[] PROGMEM = "Klipper_Percentage"; -const char klipper_percentage::_enabled[] PROGMEM = "enabled"; \ No newline at end of file +const char klipper_percentage::_enabled[] PROGMEM = "enabled"; + +static klipper_percentage usermod_v2_klipper_percentage; +REGISTER_USERMOD(usermod_v2_klipper_percentage); \ No newline at end of file diff --git a/usermods/usermod_v2_ping_pong_clock/library.json b/usermods/usermod_v2_ping_pong_clock/library.json new file mode 100644 index 0000000000..1970861139 --- /dev/null +++ b/usermods/usermod_v2_ping_pong_clock/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_v2_ping_pong_clock", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.h b/usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.cpp similarity index 97% rename from usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.h rename to usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.cpp index 40ff675c08..8212947a6a 100644 --- a/usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.h +++ b/usermods/usermod_v2_ping_pong_clock/usermod_v2_ping_pong_clock.cpp @@ -117,3 +117,7 @@ class PingPongClockUsermod : public Usermod } }; + + +static PingPongClockUsermod usermod_v2_ping_pong_clock; +REGISTER_USERMOD(usermod_v2_ping_pong_clock); \ No newline at end of file diff --git a/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json b/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json new file mode 100644 index 0000000000..f7c60ecddf --- /dev/null +++ b/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_v2_rotary_encoder_ui_ALT", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h b/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp similarity index 99% rename from usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h rename to usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp index 383c1193eb..ac2cc3c4e9 100644 --- a/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h +++ b/usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.cpp @@ -1175,3 +1175,7 @@ const char RotaryEncoderUIUsermod::_applyToAll[] PROGMEM = "apply-2-all-seg"; const char RotaryEncoderUIUsermod::_pcf8574[] PROGMEM = "use-PCF8574"; const char RotaryEncoderUIUsermod::_pcfAddress[] PROGMEM = "PCF8574-address"; const char RotaryEncoderUIUsermod::_pcfINTpin[] PROGMEM = "PCF8574-INT-pin"; + + +static RotaryEncoderUIUsermod usermod_v2_rotary_encoder_ui_alt; +REGISTER_USERMOD(usermod_v2_rotary_encoder_ui_alt); \ No newline at end of file diff --git a/usermods/usermod_v2_word_clock/library.json b/usermods/usermod_v2_word_clock/library.json new file mode 100644 index 0000000000..74a3d90354 --- /dev/null +++ b/usermods/usermod_v2_word_clock/library.json @@ -0,0 +1,9 @@ +{ + "name:": "usermod_v2_word_clock", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h b/usermods/usermod_v2_word_clock/usermod_v2_word_clock.cpp similarity index 99% rename from usermods/usermod_v2_word_clock/usermod_v2_word_clock.h rename to usermods/usermod_v2_word_clock/usermod_v2_word_clock.cpp index 7ecec08e59..781dd7d818 100644 --- a/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h +++ b/usermods/usermod_v2_word_clock/usermod_v2_word_clock.cpp @@ -504,4 +504,7 @@ class WordClockUsermod : public Usermod //More methods can be added in the future, this example will then be extended. //Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class! -}; \ No newline at end of file +}; + +static WordClockUsermod usermod_v2_word_clock; +REGISTER_USERMOD(usermod_v2_word_clock); \ No newline at end of file diff --git a/usermods/wireguard/library.json b/usermods/wireguard/library.json new file mode 100644 index 0000000000..290f2794bf --- /dev/null +++ b/usermods/wireguard/library.json @@ -0,0 +1,9 @@ +{ + "name:": "wireguard", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/wireguard/wireguard.h b/usermods/wireguard/wireguard.cpp similarity index 98% rename from usermods/wireguard/wireguard.h rename to usermods/wireguard/wireguard.cpp index 8656a704af..77cc952fc8 100644 --- a/usermods/wireguard/wireguard.h +++ b/usermods/wireguard/wireguard.cpp @@ -124,4 +124,7 @@ class WireguardUsermod : public Usermod { int endpoint_port = 0; bool is_enabled = false; unsigned long lastTime = 0; -}; \ No newline at end of file +}; + +static WireguardUsermod wireguard; +REGISTER_USERMOD(wireguard); \ No newline at end of file diff --git a/usermods/wizlights/library.json b/usermods/wizlights/library.json new file mode 100644 index 0000000000..a82dd7fcb2 --- /dev/null +++ b/usermods/wizlights/library.json @@ -0,0 +1,9 @@ +{ + "name:": "wizlights", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/wizlights/wizlights.h b/usermods/wizlights/wizlights.cpp similarity index 98% rename from usermods/wizlights/wizlights.h rename to usermods/wizlights/wizlights.cpp index 08d204934c..67c0effdb3 100644 --- a/usermods/wizlights/wizlights.h +++ b/usermods/wizlights/wizlights.cpp @@ -156,3 +156,7 @@ class WizLightsUsermod : public Usermod { uint16_t getId(){return USERMOD_ID_WIZLIGHTS;} }; + + +static WizLightsUsermod wizlights; +REGISTER_USERMOD(wizlights); \ No newline at end of file From a5575bc3a037b50f0f4be6be8ad1c28f0b5e1ca7 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 21:41:21 +0000 Subject: [PATCH 05/18] Fix naming of usermod files to match library name --- usermods/ADS1115_v2/{usermod_ads1115.h => ADS1115_v2.h} | 0 usermods/AHT10_v2/{usermod_aht10.h => AHT10_v2.h} | 0 usermods/BH1750_v2/{usermod_bh1750.h => BH1750_v2.h} | 0 usermods/BME280_v2/{usermod_bme280.h => BME280_v2.h} | 0 usermods/BME68X_v2/{usermod_bme68x.h => BME68X_v2.h} | 0 usermods/INA226_v2/{usermod_ina226.h => INA226_v2.h} | 0 .../{usermod_internal_temperature.h => Internal_Temperature_v2.h} | 0 usermods/LD2410_v2/{usermod_ld2410.h => LD2410_v2.h} | 0 usermods/MAX17048_v2/{usermod_max17048.h => MAX17048_v2.h} | 0 usermods/MY9291/{usermode_MY9291.h => MY9291.h} | 0 usermods/TetrisAI_v2/{usermod_v2_tetrisai.h => TetrisAI_v2.h} | 0 .../mqtt_switch_v2/{usermod_mqtt_switch.h => mqtt_switch_v2.h} | 0 .../{usermod_v2_SensorsToMqtt.h => sensors_to_mqtt.h} | 0 ..._seven_segment_reloaded.h => seven_segment_display_reloaded.h} | 0 .../{stairway-wipe-usermod-v2.h => stairway_wipe_basic.h} | 0 .../{usermod_word_clock_matrix.h => word-clock-matrix.h} | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename usermods/ADS1115_v2/{usermod_ads1115.h => ADS1115_v2.h} (100%) rename usermods/AHT10_v2/{usermod_aht10.h => AHT10_v2.h} (100%) rename usermods/BH1750_v2/{usermod_bh1750.h => BH1750_v2.h} (100%) rename usermods/BME280_v2/{usermod_bme280.h => BME280_v2.h} (100%) rename usermods/BME68X_v2/{usermod_bme68x.h => BME68X_v2.h} (100%) rename usermods/INA226_v2/{usermod_ina226.h => INA226_v2.h} (100%) rename usermods/Internal_Temperature_v2/{usermod_internal_temperature.h => Internal_Temperature_v2.h} (100%) rename usermods/LD2410_v2/{usermod_ld2410.h => LD2410_v2.h} (100%) rename usermods/MAX17048_v2/{usermod_max17048.h => MAX17048_v2.h} (100%) rename usermods/MY9291/{usermode_MY9291.h => MY9291.h} (100%) rename usermods/TetrisAI_v2/{usermod_v2_tetrisai.h => TetrisAI_v2.h} (100%) rename usermods/mqtt_switch_v2/{usermod_mqtt_switch.h => mqtt_switch_v2.h} (100%) rename usermods/sensors_to_mqtt/{usermod_v2_SensorsToMqtt.h => sensors_to_mqtt.h} (100%) rename usermods/seven_segment_display_reloaded/{usermod_seven_segment_reloaded.h => seven_segment_display_reloaded.h} (100%) rename usermods/stairway_wipe_basic/{stairway-wipe-usermod-v2.h => stairway_wipe_basic.h} (100%) rename usermods/word-clock-matrix/{usermod_word_clock_matrix.h => word-clock-matrix.h} (100%) diff --git a/usermods/ADS1115_v2/usermod_ads1115.h b/usermods/ADS1115_v2/ADS1115_v2.h similarity index 100% rename from usermods/ADS1115_v2/usermod_ads1115.h rename to usermods/ADS1115_v2/ADS1115_v2.h diff --git a/usermods/AHT10_v2/usermod_aht10.h b/usermods/AHT10_v2/AHT10_v2.h similarity index 100% rename from usermods/AHT10_v2/usermod_aht10.h rename to usermods/AHT10_v2/AHT10_v2.h diff --git a/usermods/BH1750_v2/usermod_bh1750.h b/usermods/BH1750_v2/BH1750_v2.h similarity index 100% rename from usermods/BH1750_v2/usermod_bh1750.h rename to usermods/BH1750_v2/BH1750_v2.h diff --git a/usermods/BME280_v2/usermod_bme280.h b/usermods/BME280_v2/BME280_v2.h similarity index 100% rename from usermods/BME280_v2/usermod_bme280.h rename to usermods/BME280_v2/BME280_v2.h diff --git a/usermods/BME68X_v2/usermod_bme68x.h b/usermods/BME68X_v2/BME68X_v2.h similarity index 100% rename from usermods/BME68X_v2/usermod_bme68x.h rename to usermods/BME68X_v2/BME68X_v2.h diff --git a/usermods/INA226_v2/usermod_ina226.h b/usermods/INA226_v2/INA226_v2.h similarity index 100% rename from usermods/INA226_v2/usermod_ina226.h rename to usermods/INA226_v2/INA226_v2.h diff --git a/usermods/Internal_Temperature_v2/usermod_internal_temperature.h b/usermods/Internal_Temperature_v2/Internal_Temperature_v2.h similarity index 100% rename from usermods/Internal_Temperature_v2/usermod_internal_temperature.h rename to usermods/Internal_Temperature_v2/Internal_Temperature_v2.h diff --git a/usermods/LD2410_v2/usermod_ld2410.h b/usermods/LD2410_v2/LD2410_v2.h similarity index 100% rename from usermods/LD2410_v2/usermod_ld2410.h rename to usermods/LD2410_v2/LD2410_v2.h diff --git a/usermods/MAX17048_v2/usermod_max17048.h b/usermods/MAX17048_v2/MAX17048_v2.h similarity index 100% rename from usermods/MAX17048_v2/usermod_max17048.h rename to usermods/MAX17048_v2/MAX17048_v2.h diff --git a/usermods/MY9291/usermode_MY9291.h b/usermods/MY9291/MY9291.h similarity index 100% rename from usermods/MY9291/usermode_MY9291.h rename to usermods/MY9291/MY9291.h diff --git a/usermods/TetrisAI_v2/usermod_v2_tetrisai.h b/usermods/TetrisAI_v2/TetrisAI_v2.h similarity index 100% rename from usermods/TetrisAI_v2/usermod_v2_tetrisai.h rename to usermods/TetrisAI_v2/TetrisAI_v2.h diff --git a/usermods/mqtt_switch_v2/usermod_mqtt_switch.h b/usermods/mqtt_switch_v2/mqtt_switch_v2.h similarity index 100% rename from usermods/mqtt_switch_v2/usermod_mqtt_switch.h rename to usermods/mqtt_switch_v2/mqtt_switch_v2.h diff --git a/usermods/sensors_to_mqtt/usermod_v2_SensorsToMqtt.h b/usermods/sensors_to_mqtt/sensors_to_mqtt.h similarity index 100% rename from usermods/sensors_to_mqtt/usermod_v2_SensorsToMqtt.h rename to usermods/sensors_to_mqtt/sensors_to_mqtt.h diff --git a/usermods/seven_segment_display_reloaded/usermod_seven_segment_reloaded.h b/usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.h similarity index 100% rename from usermods/seven_segment_display_reloaded/usermod_seven_segment_reloaded.h rename to usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.h diff --git a/usermods/stairway_wipe_basic/stairway-wipe-usermod-v2.h b/usermods/stairway_wipe_basic/stairway_wipe_basic.h similarity index 100% rename from usermods/stairway_wipe_basic/stairway-wipe-usermod-v2.h rename to usermods/stairway_wipe_basic/stairway_wipe_basic.h diff --git a/usermods/word-clock-matrix/usermod_word_clock_matrix.h b/usermods/word-clock-matrix/word-clock-matrix.h similarity index 100% rename from usermods/word-clock-matrix/usermod_word_clock_matrix.h rename to usermods/word-clock-matrix/word-clock-matrix.h From 6e76a72d78659200f369316351c3ea939592f274 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 21:42:41 +0000 Subject: [PATCH 06/18] Convert usermods from header to library --- usermods/ADS1115_v2/{ADS1115_v2.h => ADS1115_v2.cpp} | 5 ++++- usermods/ADS1115_v2/library.json | 9 +++++++++ usermods/AHT10_v2/{AHT10_v2.h => AHT10_v2.cpp} | 5 ++++- usermods/AHT10_v2/library.json | 9 +++++++++ usermods/BH1750_v2/{BH1750_v2.h => BH1750_v2.cpp} | 4 ++++ usermods/BH1750_v2/library.json | 9 +++++++++ usermods/BME280_v2/{BME280_v2.h => BME280_v2.cpp} | 4 ++++ usermods/BME280_v2/library.json | 9 +++++++++ usermods/BME68X_v2/{BME68X_v2.h => BME68X_v2.cpp} | 4 ++++ usermods/BME68X_v2/library.json | 9 +++++++++ usermods/INA226_v2/{INA226_v2.h => INA226_v2.cpp} | 4 ++++ usermods/INA226_v2/library.json | 9 +++++++++ ...rnal_Temperature_v2.h => Internal_Temperature_v2.cpp} | 5 ++++- usermods/Internal_Temperature_v2/library.json | 9 +++++++++ usermods/LD2410_v2/{LD2410_v2.h => LD2410_v2.cpp} | 4 ++++ usermods/LD2410_v2/library.json | 9 +++++++++ usermods/MAX17048_v2/{MAX17048_v2.h => MAX17048_v2.cpp} | 4 ++++ usermods/MAX17048_v2/library.json | 9 +++++++++ usermods/MY9291/{MY9291.h => MY9291.cpp} | 5 ++++- usermods/MY9291/library.json | 9 +++++++++ usermods/TetrisAI_v2/{TetrisAI_v2.h => TetrisAI_v2.cpp} | 4 ++++ usermods/TetrisAI_v2/library.json | 9 +++++++++ usermods/mqtt_switch_v2/library.json | 9 +++++++++ .../{mqtt_switch_v2.h => mqtt_switch_v2.cpp} | 4 ++++ usermods/sensors_to_mqtt/library.json | 9 +++++++++ .../{sensors_to_mqtt.h => sensors_to_mqtt.cpp} | 4 ++++ usermods/seven_segment_display_reloaded/library.json | 9 +++++++++ ...lay_reloaded.h => seven_segment_display_reloaded.cpp} | 4 ++++ usermods/stairway_wipe_basic/library.json | 9 +++++++++ .../{stairway_wipe_basic.h => stairway_wipe_basic.cpp} | 4 ++++ usermods/word-clock-matrix/library.json | 9 +++++++++ .../{word-clock-matrix.h => word-clock-matrix.cpp} | 4 ++++ 32 files changed, 208 insertions(+), 4 deletions(-) rename usermods/ADS1115_v2/{ADS1115_v2.h => ADS1115_v2.cpp} (98%) create mode 100644 usermods/ADS1115_v2/library.json rename usermods/AHT10_v2/{AHT10_v2.h => AHT10_v2.cpp} (98%) create mode 100644 usermods/AHT10_v2/library.json rename usermods/BH1750_v2/{BH1750_v2.h => BH1750_v2.cpp} (99%) create mode 100644 usermods/BH1750_v2/library.json rename usermods/BME280_v2/{BME280_v2.h => BME280_v2.cpp} (99%) create mode 100644 usermods/BME280_v2/library.json rename usermods/BME68X_v2/{BME68X_v2.h => BME68X_v2.cpp} (99%) create mode 100644 usermods/BME68X_v2/library.json rename usermods/INA226_v2/{INA226_v2.h => INA226_v2.cpp} (99%) create mode 100644 usermods/INA226_v2/library.json rename usermods/Internal_Temperature_v2/{Internal_Temperature_v2.h => Internal_Temperature_v2.cpp} (98%) create mode 100644 usermods/Internal_Temperature_v2/library.json rename usermods/LD2410_v2/{LD2410_v2.h => LD2410_v2.cpp} (99%) create mode 100644 usermods/LD2410_v2/library.json rename usermods/MAX17048_v2/{MAX17048_v2.h => MAX17048_v2.cpp} (99%) create mode 100644 usermods/MAX17048_v2/library.json rename usermods/MY9291/{MY9291.h => MY9291.cpp} (94%) create mode 100644 usermods/MY9291/library.json rename usermods/TetrisAI_v2/{TetrisAI_v2.h => TetrisAI_v2.cpp} (99%) create mode 100644 usermods/TetrisAI_v2/library.json create mode 100644 usermods/mqtt_switch_v2/library.json rename usermods/mqtt_switch_v2/{mqtt_switch_v2.h => mqtt_switch_v2.cpp} (98%) create mode 100644 usermods/sensors_to_mqtt/library.json rename usermods/sensors_to_mqtt/{sensors_to_mqtt.h => sensors_to_mqtt.cpp} (98%) create mode 100644 usermods/seven_segment_display_reloaded/library.json rename usermods/seven_segment_display_reloaded/{seven_segment_display_reloaded.h => seven_segment_display_reloaded.cpp} (99%) create mode 100644 usermods/stairway_wipe_basic/library.json rename usermods/stairway_wipe_basic/{stairway_wipe_basic.h => stairway_wipe_basic.cpp} (97%) create mode 100644 usermods/word-clock-matrix/library.json rename usermods/word-clock-matrix/{word-clock-matrix.h => word-clock-matrix.cpp} (99%) diff --git a/usermods/ADS1115_v2/ADS1115_v2.h b/usermods/ADS1115_v2/ADS1115_v2.cpp similarity index 98% rename from usermods/ADS1115_v2/ADS1115_v2.h rename to usermods/ADS1115_v2/ADS1115_v2.cpp index 5e2b4b2703..48f9173325 100644 --- a/usermods/ADS1115_v2/ADS1115_v2.h +++ b/usermods/ADS1115_v2/ADS1115_v2.cpp @@ -252,4 +252,7 @@ class ADS1115Usermod : public Usermod { int16_t results = ads.getLastConversionResults(); readings[activeChannel] = ads.computeVolts(results); } -}; \ No newline at end of file +}; + +static ADS1115Usermod ads1115_v2; +REGISTER_USERMOD(ads1115_v2); \ No newline at end of file diff --git a/usermods/ADS1115_v2/library.json b/usermods/ADS1115_v2/library.json new file mode 100644 index 0000000000..e4b448a037 --- /dev/null +++ b/usermods/ADS1115_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "ADS1115_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/AHT10_v2/AHT10_v2.h b/usermods/AHT10_v2/AHT10_v2.cpp similarity index 98% rename from usermods/AHT10_v2/AHT10_v2.h rename to usermods/AHT10_v2/AHT10_v2.cpp index b5dc1841db..171e15754b 100644 --- a/usermods/AHT10_v2/AHT10_v2.h +++ b/usermods/AHT10_v2/AHT10_v2.cpp @@ -324,4 +324,7 @@ class UsermodAHT10 : public Usermod } }; -const char UsermodAHT10::_name[] PROGMEM = "AHTxx"; \ No newline at end of file +const char UsermodAHT10::_name[] PROGMEM = "AHTxx"; + +static UsermodAHT10 aht10_v2; +REGISTER_USERMOD(aht10_v2); \ No newline at end of file diff --git a/usermods/AHT10_v2/library.json b/usermods/AHT10_v2/library.json new file mode 100644 index 0000000000..209e97af28 --- /dev/null +++ b/usermods/AHT10_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "AHT10_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/BH1750_v2/BH1750_v2.h b/usermods/BH1750_v2/BH1750_v2.cpp similarity index 99% rename from usermods/BH1750_v2/BH1750_v2.h rename to usermods/BH1750_v2/BH1750_v2.cpp index 2a2bd46370..5bd476245d 100644 --- a/usermods/BH1750_v2/BH1750_v2.h +++ b/usermods/BH1750_v2/BH1750_v2.cpp @@ -250,3 +250,7 @@ const char Usermod_BH1750::_maxReadInterval[] PROGMEM = "max-read-interval-ms"; const char Usermod_BH1750::_minReadInterval[] PROGMEM = "min-read-interval-ms"; const char Usermod_BH1750::_HomeAssistantDiscovery[] PROGMEM = "HomeAssistantDiscoveryLux"; const char Usermod_BH1750::_offset[] PROGMEM = "offset-lx"; + + +static Usermod_BH1750 bh1750_v2; +REGISTER_USERMOD(bh1750_v2); \ No newline at end of file diff --git a/usermods/BH1750_v2/library.json b/usermods/BH1750_v2/library.json new file mode 100644 index 0000000000..662ca35432 --- /dev/null +++ b/usermods/BH1750_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "BH1750_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/BME280_v2/BME280_v2.h b/usermods/BME280_v2/BME280_v2.cpp similarity index 99% rename from usermods/BME280_v2/BME280_v2.h rename to usermods/BME280_v2/BME280_v2.cpp index 9168f42291..d29451eedf 100644 --- a/usermods/BME280_v2/BME280_v2.h +++ b/usermods/BME280_v2/BME280_v2.cpp @@ -479,3 +479,7 @@ class UsermodBME280 : public Usermod const char UsermodBME280::_name[] PROGMEM = "BME280/BMP280"; const char UsermodBME280::_enabled[] PROGMEM = "enabled"; + + +static UsermodBME280 bme280_v2; +REGISTER_USERMOD(bme280_v2); \ No newline at end of file diff --git a/usermods/BME280_v2/library.json b/usermods/BME280_v2/library.json new file mode 100644 index 0000000000..57d41fb379 --- /dev/null +++ b/usermods/BME280_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "BME280_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/BME68X_v2/BME68X_v2.h b/usermods/BME68X_v2/BME68X_v2.cpp similarity index 99% rename from usermods/BME68X_v2/BME68X_v2.h rename to usermods/BME68X_v2/BME68X_v2.cpp index aca24d0a29..5814506b3b 100644 --- a/usermods/BME68X_v2/BME68X_v2.h +++ b/usermods/BME68X_v2/BME68X_v2.cpp @@ -1112,3 +1112,7 @@ void UsermodBME68X::saveState() { if (WLED_MQTT_CONNECTED) mqtt->publish(charbuffer, 0, false, contbuffer); } } + + +static UsermodBME68X bme68x_v2; +REGISTER_USERMOD(bme68x_v2); \ No newline at end of file diff --git a/usermods/BME68X_v2/library.json b/usermods/BME68X_v2/library.json new file mode 100644 index 0000000000..1a8a1f0ff6 --- /dev/null +++ b/usermods/BME68X_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "BME68X_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/INA226_v2/INA226_v2.h b/usermods/INA226_v2/INA226_v2.cpp similarity index 99% rename from usermods/INA226_v2/INA226_v2.h rename to usermods/INA226_v2/INA226_v2.cpp index 52bc3d83f6..3c79f05bb8 100644 --- a/usermods/INA226_v2/INA226_v2.h +++ b/usermods/INA226_v2/INA226_v2.cpp @@ -554,3 +554,7 @@ class UsermodINA226 : public Usermod }; const char UsermodINA226::_name[] PROGMEM = "INA226"; + + +static UsermodINA226 ina226_v2; +REGISTER_USERMOD(ina226_v2); \ No newline at end of file diff --git a/usermods/INA226_v2/library.json b/usermods/INA226_v2/library.json new file mode 100644 index 0000000000..2596b86a5e --- /dev/null +++ b/usermods/INA226_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "INA226_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/Internal_Temperature_v2/Internal_Temperature_v2.h b/usermods/Internal_Temperature_v2/Internal_Temperature_v2.cpp similarity index 98% rename from usermods/Internal_Temperature_v2/Internal_Temperature_v2.h rename to usermods/Internal_Temperature_v2/Internal_Temperature_v2.cpp index 6d4d4577cb..ab7f907ece 100644 --- a/usermods/Internal_Temperature_v2/Internal_Temperature_v2.h +++ b/usermods/Internal_Temperature_v2/Internal_Temperature_v2.cpp @@ -193,4 +193,7 @@ void InternalTemperatureUsermod::publishMqtt(const char *state, bool retain) mqtt->publish(subuf, 0, retain, state); } #endif -} \ No newline at end of file +} + +static InternalTemperatureUsermod internal_temperature_v2; +REGISTER_USERMOD(internal_temperature_v2); \ No newline at end of file diff --git a/usermods/Internal_Temperature_v2/library.json b/usermods/Internal_Temperature_v2/library.json new file mode 100644 index 0000000000..38b560da81 --- /dev/null +++ b/usermods/Internal_Temperature_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "Internal_Temperature_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/LD2410_v2/LD2410_v2.h b/usermods/LD2410_v2/LD2410_v2.cpp similarity index 99% rename from usermods/LD2410_v2/LD2410_v2.h rename to usermods/LD2410_v2/LD2410_v2.cpp index 4d96b32fff..51c887fa44 100644 --- a/usermods/LD2410_v2/LD2410_v2.h +++ b/usermods/LD2410_v2/LD2410_v2.cpp @@ -235,3 +235,7 @@ void LD2410Usermod::publishMqtt(const char* topic, const char* state, bool retai } #endif } + + +static LD2410Usermod ld2410_v2; +REGISTER_USERMOD(ld2410_v2); \ No newline at end of file diff --git a/usermods/LD2410_v2/library.json b/usermods/LD2410_v2/library.json new file mode 100644 index 0000000000..3480cd7986 --- /dev/null +++ b/usermods/LD2410_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "LD2410_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/MAX17048_v2/MAX17048_v2.h b/usermods/MAX17048_v2/MAX17048_v2.cpp similarity index 99% rename from usermods/MAX17048_v2/MAX17048_v2.h rename to usermods/MAX17048_v2/MAX17048_v2.cpp index c3a2664ab1..1a1108cf61 100644 --- a/usermods/MAX17048_v2/MAX17048_v2.h +++ b/usermods/MAX17048_v2/MAX17048_v2.cpp @@ -279,3 +279,7 @@ const char Usermod_MAX17048::_enabled[] PROGMEM = "enabled"; const char Usermod_MAX17048::_maxReadInterval[] PROGMEM = "max-read-interval-ms"; const char Usermod_MAX17048::_minReadInterval[] PROGMEM = "min-read-interval-ms"; const char Usermod_MAX17048::_HomeAssistantDiscovery[] PROGMEM = "HomeAssistantDiscovery"; + + +static Usermod_MAX17048 max17048_v2; +REGISTER_USERMOD(max17048_v2); \ No newline at end of file diff --git a/usermods/MAX17048_v2/library.json b/usermods/MAX17048_v2/library.json new file mode 100644 index 0000000000..72ac0e61f3 --- /dev/null +++ b/usermods/MAX17048_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "MAX17048_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/MY9291/MY9291.h b/usermods/MY9291/MY9291.cpp similarity index 94% rename from usermods/MY9291/MY9291.h rename to usermods/MY9291/MY9291.cpp index 66bbc34cbc..ce8d0f001e 100644 --- a/usermods/MY9291/MY9291.h +++ b/usermods/MY9291/MY9291.cpp @@ -42,4 +42,7 @@ class MY9291Usermod : public Usermod { uint16_t getId() { return USERMOD_ID_MY9291; } -}; \ No newline at end of file +}; + +static MY9291Usermod my9291; +REGISTER_USERMOD(my9291); \ No newline at end of file diff --git a/usermods/MY9291/library.json b/usermods/MY9291/library.json new file mode 100644 index 0000000000..d965f4c353 --- /dev/null +++ b/usermods/MY9291/library.json @@ -0,0 +1,9 @@ +{ + "name:": "MY9291", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/TetrisAI_v2/TetrisAI_v2.h b/usermods/TetrisAI_v2/TetrisAI_v2.cpp similarity index 99% rename from usermods/TetrisAI_v2/TetrisAI_v2.h rename to usermods/TetrisAI_v2/TetrisAI_v2.cpp index 0f7039dac9..78cdfd2277 100644 --- a/usermods/TetrisAI_v2/TetrisAI_v2.h +++ b/usermods/TetrisAI_v2/TetrisAI_v2.cpp @@ -250,3 +250,7 @@ class TetrisAIUsermod : public Usermod return USERMOD_ID_TETRISAI; } }; + + +static TetrisAIUsermod tetrisai_v2; +REGISTER_USERMOD(tetrisai_v2); \ No newline at end of file diff --git a/usermods/TetrisAI_v2/library.json b/usermods/TetrisAI_v2/library.json new file mode 100644 index 0000000000..199e5c4349 --- /dev/null +++ b/usermods/TetrisAI_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "TetrisAI_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/mqtt_switch_v2/library.json b/usermods/mqtt_switch_v2/library.json new file mode 100644 index 0000000000..96695a9c71 --- /dev/null +++ b/usermods/mqtt_switch_v2/library.json @@ -0,0 +1,9 @@ +{ + "name:": "mqtt_switch_v2", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/mqtt_switch_v2/mqtt_switch_v2.h b/usermods/mqtt_switch_v2/mqtt_switch_v2.cpp similarity index 98% rename from usermods/mqtt_switch_v2/mqtt_switch_v2.h rename to usermods/mqtt_switch_v2/mqtt_switch_v2.cpp index 67dfc9cc08..d4d823f328 100644 --- a/usermods/mqtt_switch_v2/mqtt_switch_v2.h +++ b/usermods/mqtt_switch_v2/mqtt_switch_v2.cpp @@ -157,3 +157,7 @@ inline void UsermodMqttSwitch::updateState(uint8_t pinNr) mqtt->publish(buf, 0, false, "OFF"); } } + + +static UsermodMqttSwitc mqtt_switch_v2; +REGISTER_USERMOD(mqtt_switch_v2); \ No newline at end of file diff --git a/usermods/sensors_to_mqtt/library.json b/usermods/sensors_to_mqtt/library.json new file mode 100644 index 0000000000..dd9a4f3a29 --- /dev/null +++ b/usermods/sensors_to_mqtt/library.json @@ -0,0 +1,9 @@ +{ + "name:": "sensors_to_mqtt", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/sensors_to_mqtt/sensors_to_mqtt.h b/usermods/sensors_to_mqtt/sensors_to_mqtt.cpp similarity index 98% rename from usermods/sensors_to_mqtt/sensors_to_mqtt.h rename to usermods/sensors_to_mqtt/sensors_to_mqtt.cpp index 9b5bd8c882..02f8e8d279 100644 --- a/usermods/sensors_to_mqtt/sensors_to_mqtt.h +++ b/usermods/sensors_to_mqtt/sensors_to_mqtt.cpp @@ -276,3 +276,7 @@ class UserMod_SensorsToMQTT : public Usermod } } }; + + +static UserMod_SensorsToMQTT sensors_to_mqtt; +REGISTER_USERMOD(sensors_to_mqtt); \ No newline at end of file diff --git a/usermods/seven_segment_display_reloaded/library.json b/usermods/seven_segment_display_reloaded/library.json new file mode 100644 index 0000000000..485aa4fd8e --- /dev/null +++ b/usermods/seven_segment_display_reloaded/library.json @@ -0,0 +1,9 @@ +{ + "name:": "seven_segment_display_reloaded", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.h b/usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.cpp similarity index 99% rename from usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.h rename to usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.cpp index 1436f8fc4c..812065d86a 100644 --- a/usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.h +++ b/usermods/seven_segment_display_reloaded/seven_segment_display_reloaded.cpp @@ -571,3 +571,7 @@ const char UsermodSSDR::_str_years[] PROGMEM = "LED-Numbers-Year"; const char UsermodSSDR::_str_ldrEnabled[] PROGMEM = "enable-auto-brightness"; const char UsermodSSDR::_str_minBrightness[] PROGMEM = "auto-brightness-min"; const char UsermodSSDR::_str_maxBrightness[] PROGMEM = "auto-brightness-max"; + + +static UsermodSSDR seven_segment_display_reloaded; +REGISTER_USERMOD(seven_segment_display_reloaded); \ No newline at end of file diff --git a/usermods/stairway_wipe_basic/library.json b/usermods/stairway_wipe_basic/library.json new file mode 100644 index 0000000000..6b3a52368d --- /dev/null +++ b/usermods/stairway_wipe_basic/library.json @@ -0,0 +1,9 @@ +{ + "name:": "stairway_wipe_basic", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/stairway_wipe_basic/stairway_wipe_basic.h b/usermods/stairway_wipe_basic/stairway_wipe_basic.cpp similarity index 97% rename from usermods/stairway_wipe_basic/stairway_wipe_basic.h rename to usermods/stairway_wipe_basic/stairway_wipe_basic.cpp index 707479df17..cdb7cd662f 100644 --- a/usermods/stairway_wipe_basic/stairway_wipe_basic.h +++ b/usermods/stairway_wipe_basic/stairway_wipe_basic.cpp @@ -126,3 +126,7 @@ void setup() { //More methods can be added in the future, this example will then be extended. //Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class! }; + + +static StairwayWipeUsermod stairway_wipe_basic; +REGISTER_USERMOD(stairway_wipe_basic); \ No newline at end of file diff --git a/usermods/word-clock-matrix/library.json b/usermods/word-clock-matrix/library.json new file mode 100644 index 0000000000..ed29ae088a --- /dev/null +++ b/usermods/word-clock-matrix/library.json @@ -0,0 +1,9 @@ +{ + "name:": "word-clock-matrix", + "build": { + "srcDir": ".", + "includeDir": "../../wled00", + "libLDFMode": "chain+", + "libArchive": false + } +} \ No newline at end of file diff --git a/usermods/word-clock-matrix/word-clock-matrix.h b/usermods/word-clock-matrix/word-clock-matrix.cpp similarity index 99% rename from usermods/word-clock-matrix/word-clock-matrix.h rename to usermods/word-clock-matrix/word-clock-matrix.cpp index 82499c0ce1..c8606003d3 100644 --- a/usermods/word-clock-matrix/word-clock-matrix.h +++ b/usermods/word-clock-matrix/word-clock-matrix.cpp @@ -336,3 +336,7 @@ class WordClockMatrix : public Usermod }; + + +static WordClockMatrix word-clock-matrix; +REGISTER_USERMOD(word-clock-matrix); \ No newline at end of file From 67022beca0aee5edcc45918987217660d0362892 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 22:07:03 +0000 Subject: [PATCH 07/18] Build all usermods --- .github/workflows/build.yml | 7 ++++++- usermods/platformio_override.usermods.ini | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 usermods/platformio_override.usermods.ini diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2bac314f30..e1b05b5afd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - environment: ${{ fromJSON(needs.get_default_envs.outputs.environments) }} + environment: ${{ fromJSON(needs.get_default_envs.outputs.environments) }} usermods steps: - uses: actions/checkout@v4 - name: Set up Node.js @@ -57,6 +57,11 @@ jobs: cache: 'pip' - name: Install PlatformIO run: pip install -r requirements.txt + - name: Add usermods environment + run: | + cp -v usermods/platformio_override.usermods.ini platformio_override.ini + find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo >> platformio_override.ini + - name: Build firmware run: pio run -e ${{ matrix.environment }} - uses: actions/upload-artifact@v4 diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini new file mode 100644 index 0000000000..568b20259a --- /dev/null +++ b/usermods/platformio_override.usermods.ini @@ -0,0 +1,9 @@ +[env:usermods] +board = esp32dev +platform = ${esp32.platform} +platform_packages = ${esp32.platform_packages} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\" + ${esp32.AR_build_flags} +lib_deps = ${esp32.lib_deps} +board_build.partitions = ${esp32.default_partitions} From cbed841414c0c6e388c3abac71f3063a5c472323 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 22:12:36 +0000 Subject: [PATCH 08/18] Include basic usermods in CI --- .github/workflows/build.yml | 3 ++- platformio.ini | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e1b05b5afd..efdb3f7af7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - environment: ${{ fromJSON(needs.get_default_envs.outputs.environments) }} usermods + environment: ${{ fromJSON(needs.get_default_envs.outputs.environments) }} steps: - uses: actions/checkout@v4 - name: Set up Node.js @@ -60,6 +60,7 @@ jobs: - name: Add usermods environment run: | cp -v usermods/platformio_override.usermods.ini platformio_override.ini + echo -n "custom_usermods = " >> platformio_override.ini find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo >> platformio_override.ini - name: Build firmware diff --git a/platformio.ini b/platformio.ini index 4832978a9d..156feb0606 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,7 @@ # ------------------------------------------------------------------------------ # CI/release binaries -default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, nodemcuv2_compat, esp8266_2m_compat, esp01_1m_full_compat, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_16MB_opi, esp32s3dev_8MB_opi, esp32s3_4M_qspi, esp32_wrover +default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, nodemcuv2_compat, esp8266_2m_compat, esp01_1m_full_compat, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_16MB_opi, esp32s3dev_8MB_opi, esp32s3_4M_qspi, esp32_wrover, usermods src_dir = ./wled00 data_dir = ./wled00/data @@ -636,3 +636,13 @@ build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME= ; -D STATUSLED=15 ${esp32.AR_build_flags} lib_deps = ${esp32s2.lib_deps} + + +[env:usermods] +board = esp32dev +platform = ${esp32.platform} +platform_packages = ${esp32.platform_packages} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\" + ${esp32.AR_build_flags} +lib_deps = ${esp32.lib_deps} From c16d83fab00c6a3bb8510bc269f46d2082b41cef Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 22:36:06 +0000 Subject: [PATCH 09/18] Build custom_usermods = audioreactive auto_save animartrix --- platformio.ini | 2 +- wled00/wled.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 156feb0606..7eef177556 100644 --- a/platformio.ini +++ b/platformio.ini @@ -420,7 +420,7 @@ build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME= board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} -custom_usermods = audioreactive +custom_usermods = audioreactive auto_save usermod_v2_animartrix build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32\" #-D WLED_DISABLE_BROWNOUT_DET ${esp32.AR_build_flags} diff --git a/wled00/wled.h b/wled00/wled.h index ae93d95481..5a1a9ff89f 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -1,3 +1,6 @@ +// TODO: HACK!! - do not merge +#define LOROL_LITTLEFS 1 + #ifndef WLED_H #define WLED_H /* From d64cedd3fc94080277524942f3170a7c06d8e1bf Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 22:38:57 +0000 Subject: [PATCH 10/18] Build custom_usermods = audioreactive auto_save animartrix --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 7eef177556..00ddd8158f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -420,7 +420,7 @@ build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME= board = esp32dev platform = ${esp32.platform} platform_packages = ${esp32.platform_packages} -custom_usermods = audioreactive auto_save usermod_v2_animartrix +custom_usermods = audioreactive auto_save animartrix build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32\" #-D WLED_DISABLE_BROWNOUT_DET ${esp32.AR_build_flags} From 2381e323c1dcb13c176d691bbf9871d7e5282fcd Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 22:54:28 +0000 Subject: [PATCH 11/18] Define dependencies for ADS1115 usermod --- platformio.ini | 3 --- usermods/ADS1115_v2/library.json | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/platformio.ini b/platformio.ini index 00ddd8158f..e52afb3bc8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -158,9 +158,6 @@ lib_deps = ;adafruit/Adafruit BMP280 Library @ 2.1.0 ;adafruit/Adafruit CCS811 Library @ 1.0.4 ;adafruit/Adafruit Si7021 Library @ 1.4.0 - #For ADS1115 sensor uncomment following - ;adafruit/Adafruit BusIO @ 1.13.2 - ;adafruit/Adafruit ADS1X15 @ 2.4.0 #For MAX1704x Lipo Monitor / Fuel Gauge uncomment following ; https://github.com/adafruit/Adafruit_BusIO @ 1.14.5 ; https://github.com/adafruit/Adafruit_MAX1704X @ 1.0.2 diff --git a/usermods/ADS1115_v2/library.json b/usermods/ADS1115_v2/library.json index e4b448a037..179a56e5b0 100644 --- a/usermods/ADS1115_v2/library.json +++ b/usermods/ADS1115_v2/library.json @@ -5,5 +5,9 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "Adafruit BusIO": "https://github.com/adafruit/Adafruit_BusIO#1.13.2", + "Adafruit ADS1X15": "https://github.com/adafruit/Adafruit_ADS1X15#2.4.0" } -} \ No newline at end of file +} From 79bac912aa7164b18efddf676397e0b8755e4fca Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 11 Jan 2025 23:25:05 +0000 Subject: [PATCH 12/18] use bigger partitions for usermods env --- usermods/AHT10_v2/library.json | 5 ++++- usermods/AHT10_v2/platformio_override.ini | 4 ---- usermods/BH1750_v2/library.json | 5 ++++- usermods/BH1750_v2/readme.md | 11 ----------- usermods/Temperature/library.json | 5 ++++- usermods/Temperature/platformio_override.ini | 6 +----- usermods/platformio_override.usermods.ini | 2 +- 7 files changed, 14 insertions(+), 24 deletions(-) diff --git a/usermods/AHT10_v2/library.json b/usermods/AHT10_v2/library.json index 209e97af28..28bac43538 100644 --- a/usermods/AHT10_v2/library.json +++ b/usermods/AHT10_v2/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "enjoyneering/AHT10":"~1.1.0" } -} \ No newline at end of file +} diff --git a/usermods/AHT10_v2/platformio_override.ini b/usermods/AHT10_v2/platformio_override.ini index 30240f2224..74dcd659bb 100644 --- a/usermods/AHT10_v2/platformio_override.ini +++ b/usermods/AHT10_v2/platformio_override.ini @@ -2,8 +2,4 @@ extends = env:esp32dev build_flags = ${common.build_flags} ${esp32.build_flags} - -D USERMOD_AHT10 ; -D USERMOD_AHT10_DEBUG ; -- add a debug status to the info modal -lib_deps = - ${esp32.lib_deps} - enjoyneering/AHT10@~1.1.0 \ No newline at end of file diff --git a/usermods/BH1750_v2/library.json b/usermods/BH1750_v2/library.json index 662ca35432..0211bc8857 100644 --- a/usermods/BH1750_v2/library.json +++ b/usermods/BH1750_v2/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "claws/BH1750":"^1.2.0" } -} \ No newline at end of file +} diff --git a/usermods/BH1750_v2/readme.md b/usermods/BH1750_v2/readme.md index 6e6c693d45..c4aa8cb473 100644 --- a/usermods/BH1750_v2/readme.md +++ b/usermods/BH1750_v2/readme.md @@ -6,22 +6,11 @@ The luminance is displayed in both the Info section of the web UI, as well as pu ## Dependencies - Libraries - `claws/BH1750 @^1.2.0` - - This must be added under `lib_deps` in your `platformio.ini` (or `platformio_override.ini`). - Data is published over MQTT - make sure you've enabled the MQTT sync interface. ## Compilation To enable, compile with `USERMOD_BH1750` defined (e.g. in `platformio_override.ini`) -```ini -[env:usermod_BH1750_d1_mini] -extends = env:d1_mini -build_flags = - ${common.build_flags_esp8266} - -D USERMOD_BH1750 -lib_deps = - ${esp8266.lib_deps} - claws/BH1750 @ ^1.2.0 -``` ### Configuration Options The following settings can be set at compile-time but are configurable on the usermod menu (except First Measurement time): diff --git a/usermods/Temperature/library.json b/usermods/Temperature/library.json index 56371db4e2..24de79825f 100644 --- a/usermods/Temperature/library.json +++ b/usermods/Temperature/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "paulstoffregen/OneWire":"~2.3.8" } -} \ No newline at end of file +} diff --git a/usermods/Temperature/platformio_override.ini b/usermods/Temperature/platformio_override.ini index cc86367fde..ed35b7d490 100644 --- a/usermods/Temperature/platformio_override.ini +++ b/usermods/Temperature/platformio_override.ini @@ -3,8 +3,4 @@ ; USERMOD_DALLASTEMPERATURE - define this to have this user mod included wled00\usermods_list.cpp ; USERMOD_DALLASTEMPERATURE_MEASUREMENT_INTERVAL - the number of milliseconds between measurements, defaults to 60 seconds ; -[env:d1_mini_usermod_dallas_temperature_C] -extends = env:d1_mini -build_flags = ${common.build_flags_esp8266} -D USERMOD_DALLASTEMPERATURE -lib_deps = ${env.lib_deps} - paulstoffregen/OneWire@~2.3.8 \ No newline at end of file + diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 568b20259a..0035ac59f6 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -6,4 +6,4 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\" ${esp32.AR_build_flags} lib_deps = ${esp32.lib_deps} -board_build.partitions = ${esp32.default_partitions} +board_build.partitions = ${esp32.big_partitions} \ No newline at end of file From d3eec72e45e4bfae7ada12e45c637058d552a0a8 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sun, 12 Jan 2025 00:09:31 +0000 Subject: [PATCH 13/18] Defining more usermod dependencies --- usermods/BME68X_v2/README.md | 17 ----------------- usermods/BME68X_v2/library.json | 5 ++++- usermods/pixels_dice_tray/library.json | 5 ++++- usermods/pov_display/library.json | 5 ++++- usermods/sensors_to_mqtt/library.json | 8 ++++++-- usermods/sensors_to_mqtt/readme.md | 19 ------------------- usermods/wireguard/library.json | 5 ++++- usermods/wireguard/platformio_override.ini | 22 ---------------------- 8 files changed, 22 insertions(+), 64 deletions(-) delete mode 100644 usermods/wireguard/platformio_override.ini diff --git a/usermods/BME68X_v2/README.md b/usermods/BME68X_v2/README.md index 72ae25a57e..7e7a151136 100644 --- a/usermods/BME68X_v2/README.md +++ b/usermods/BME68X_v2/README.md @@ -118,23 +118,6 @@ Methods also exist to read the read/calculated values from other WLED modules th - getStabStatus(); - getRunInStatus(); - -## Compiling - -To enable, compile with `USERMOD_BME68X` defined (e.g. in `platformio_override.ini`) and add the `BSEC Software Library` to the lib_deps. - -``` -[env:esp32-BME680] -board = esp32dev -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -lib_deps = ${esp32.lib_deps} - boschsensortec/BSEC Software Library @ ^1.8.1492 ; USERMOD: BME680 -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} - -D USERMOD_BME68X ; USERMOD: BME680 -``` - ## Revision History ### Version 1.0.0 - First version of the BME68X_v user module diff --git a/usermods/BME68X_v2/library.json b/usermods/BME68X_v2/library.json index 1a8a1f0ff6..ccfac0d9a1 100644 --- a/usermods/BME68X_v2/library.json +++ b/usermods/BME68X_v2/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "boschsensortec/BSEC Software Library":"^1.8.1492" } -} \ No newline at end of file +} diff --git a/usermods/pixels_dice_tray/library.json b/usermods/pixels_dice_tray/library.json index 01776ffe2f..4634c40702 100644 --- a/usermods/pixels_dice_tray/library.json +++ b/usermods/pixels_dice_tray/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "arduino-pixels-dice":"https://github.com/axlan/arduino-pixels-dice.git" } -} \ No newline at end of file +} diff --git a/usermods/pov_display/library.json b/usermods/pov_display/library.json index 5998377b96..a3885417d8 100644 --- a/usermods/pov_display/library.json +++ b/usermods/pov_display/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "bitbank2/PNGdec":"^1.0.3" } -} \ No newline at end of file +} diff --git a/usermods/sensors_to_mqtt/library.json b/usermods/sensors_to_mqtt/library.json index dd9a4f3a29..c1bb6ec8f4 100644 --- a/usermods/sensors_to_mqtt/library.json +++ b/usermods/sensors_to_mqtt/library.json @@ -5,5 +5,9 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false - } -} \ No newline at end of file + }, + "dependencies": { + "adafruit/Adafruit BMP280 Library":"2.1.0", + "adafruit/Adafruit CCS811 Library":"1.0.4", + "adafruit/Adafruit Si7021 Library":"1.4.0 +} diff --git a/usermods/sensors_to_mqtt/readme.md b/usermods/sensors_to_mqtt/readme.md index d427d3e144..0616279370 100644 --- a/usermods/sensors_to_mqtt/readme.md +++ b/usermods/sensors_to_mqtt/readme.md @@ -60,25 +60,6 @@ SCL_PIN = 5; SDA_PIN = 4; ``` -## Enable in WLED - -1. Copy `usermod_v2_SensorsToMqtt.h` into the `wled00` directory. -2. Add to `build_flags` in platformio.ini: - -``` - -D USERMOD_SENSORSTOMQTT -``` - -3. And add to `lib_deps` in platformio.ini: - -``` - adafruit/Adafruit BMP280 Library @ 2.1.0 - adafruit/Adafruit CCS811 Library @ 1.0.4 - adafruit/Adafruit Si7021 Library @ 1.4.0 -``` - -The #ifdefs in `usermods_list.cpp` should do the rest - # Credits - Aircoookie for making WLED diff --git a/usermods/wireguard/library.json b/usermods/wireguard/library.json index 290f2794bf..9964840087 100644 --- a/usermods/wireguard/library.json +++ b/usermods/wireguard/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "WireGuard-ESP32-Arduino":"https://github.com/kienvu58/WireGuard-ESP32-Arduino.git" } -} \ No newline at end of file +} diff --git a/usermods/wireguard/platformio_override.ini b/usermods/wireguard/platformio_override.ini deleted file mode 100644 index fc0ae5fc99..0000000000 --- a/usermods/wireguard/platformio_override.ini +++ /dev/null @@ -1,22 +0,0 @@ -# Example PlatformIO Project Configuration Override for WireGuard -# ------------------------------------------------------------------------------ -# Copy to platformio_override.ini to activate. -# ------------------------------------------------------------------------------ -# Please visit documentation: https://docs.platformio.org/page/projectconf.html - -[platformio] -default_envs = WLED_ESP32-WireGuard - -[env:WLED_ESP32-WireGuard] -board = esp32dev -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp32} - -D WLED_RELEASE_NAME=ESP32-WireGuard - -D USERMOD_WIREGUARD -lib_deps = ${esp32.lib_deps} - https://github.com/kienvu58/WireGuard-ESP32-Arduino.git -monitor_filters = esp32_exception_decoder -board_build.partitions = ${esp32.default_partitions} -upload_speed = 921600 \ No newline at end of file From 3521732597fb838d5fda5d696c9225a415c991f0 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sun, 12 Jan 2025 00:22:22 +0000 Subject: [PATCH 14/18] fix env:userods --- usermods/platformio_override.usermods.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 0035ac59f6..3b3e6696e5 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -6,4 +6,4 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\" ${esp32.AR_build_flags} lib_deps = ${esp32.lib_deps} -board_build.partitions = ${esp32.big_partitions} \ No newline at end of file +board_build.partitions = ${esp32.big_partitions} From 52b784e0e50c316acb6fdcafb53ec41283386af6 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sun, 12 Jan 2025 00:22:22 +0000 Subject: [PATCH 15/18] fix env:usermods --- usermods/platformio_override.usermods.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 0035ac59f6..3b3e6696e5 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -6,4 +6,4 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\" ${esp32.AR_build_flags} lib_deps = ${esp32.lib_deps} -board_build.partitions = ${esp32.big_partitions} \ No newline at end of file +board_build.partitions = ${esp32.big_partitions} From 52bee88ad2d3c690f57c25140dbf082a6d13745e Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sun, 12 Jan 2025 00:36:08 +0000 Subject: [PATCH 16/18] fix word_clock_matrix naming --- usermods/word-clock-matrix/word-clock-matrix.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usermods/word-clock-matrix/word-clock-matrix.cpp b/usermods/word-clock-matrix/word-clock-matrix.cpp index c8606003d3..6643d293be 100644 --- a/usermods/word-clock-matrix/word-clock-matrix.cpp +++ b/usermods/word-clock-matrix/word-clock-matrix.cpp @@ -338,5 +338,5 @@ class WordClockMatrix : public Usermod }; -static WordClockMatrix word-clock-matrix; -REGISTER_USERMOD(word-clock-matrix); \ No newline at end of file +static WordClockMatrix word_clock_matrix; +REGISTER_USERMOD(word_clock_matrix); \ No newline at end of file From 075fd4da2d9ddc71f6a755a5a2edddad25fbc4d2 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sun, 12 Jan 2025 01:38:48 +0000 Subject: [PATCH 17/18] Defining more usermod dependencies --- usermods/DHT/library.json | 5 +++- usermods/INA226_v2/library.json | 5 +++- usermods/MAX17048_v2/library.json | 5 +++- usermods/ST7789_display/README.md | 13 ---------- usermods/VL53L0X_gestures/library.json | 5 +++- usermods/VL53L0X_gestures/readme.md | 16 ------------- usermods/mpu6050_imu/library.json | 5 +++- usermods/quinled-an-penta/library.json | 6 ++++- .../quinled-an-penta/quinled-an-penta.cpp | 4 ++-- usermods/quinled-an-penta/readme.md | 23 ------------------ usermods/rgb-rotary-encoder/library.json | 5 +++- usermods/rgb-rotary-encoder/readme.md | 24 ------------------- .../rgb-rotary-encoder/rgb-rotary-encoder.cpp | 4 ++-- 13 files changed, 33 insertions(+), 87 deletions(-) diff --git a/usermods/DHT/library.json b/usermods/DHT/library.json index bb67736154..ec7158d21f 100644 --- a/usermods/DHT/library.json +++ b/usermods/DHT/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "DHT_nonblocking":"https://github.com/alwynallan/DHT_nonblocking" } -} \ No newline at end of file +} diff --git a/usermods/INA226_v2/library.json b/usermods/INA226_v2/library.json index 2596b86a5e..be6987e25e 100644 --- a/usermods/INA226_v2/library.json +++ b/usermods/INA226_v2/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "wollewald/INA226_WE":"~1.2.9" } -} \ No newline at end of file +} diff --git a/usermods/MAX17048_v2/library.json b/usermods/MAX17048_v2/library.json index 72ac0e61f3..f85b33cf29 100644 --- a/usermods/MAX17048_v2/library.json +++ b/usermods/MAX17048_v2/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "Adafruit_MAX1704X":"https://github.com/adafruit/Adafruit_MAX1704X#1.0.2" } -} \ No newline at end of file +} diff --git a/usermods/ST7789_display/README.md b/usermods/ST7789_display/README.md index ebaae49228..7dd3b599e5 100644 --- a/usermods/ST7789_display/README.md +++ b/usermods/ST7789_display/README.md @@ -27,19 +27,6 @@ This usermod enables display of the following: ### Platformio.ini changes -In the `platformio.ini` file, uncomment the `TFT_eSPI` line within the [common] section, under `lib_deps`: - -```ini -# platformio.ini -... -[common] -... -lib_deps = - ... - #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line - #TFT_eSPI -... -``` In the `platformio.ini` file, you must change the environment setup to build for just the esp32dev platform as follows: diff --git a/usermods/VL53L0X_gestures/library.json b/usermods/VL53L0X_gestures/library.json index 77521d6f3b..6dfe4c4db8 100644 --- a/usermods/VL53L0X_gestures/library.json +++ b/usermods/VL53L0X_gestures/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "pololu/VL53L0X" : "^1.3.0" } -} \ No newline at end of file +} diff --git a/usermods/VL53L0X_gestures/readme.md b/usermods/VL53L0X_gestures/readme.md index a230b1a655..04c4a4aa58 100644 --- a/usermods/VL53L0X_gestures/readme.md +++ b/usermods/VL53L0X_gestures/readme.md @@ -10,20 +10,4 @@ Useful for controlling strips when you want to avoid touching anything. 1. Attach VL53L0X sensor to i2c pins according to default pins for your board. 2. Add `-D USERMOD_VL53L0X_GESTURES` to your build flags at platformio.ini (plaformio_override.ini) for needed environment. -In my case, for example: `build_flags = ${env.build_flags} -D USERMOD_VL53L0X_GESTURES` -3. Add "pololu/VL53L0X" dependency below to `lib_deps` like this: -```ini -lib_deps = ${env.lib_deps} - pololu/VL53L0X @ ^1.3.0 -``` -My entire `platformio_override.ini` for example (for nodemcu board): -```ini -[platformio] -default_envs = nodemcuv2 - -[env:nodemcuv2] -build_flags = ${env.build_flags} -D USERMOD_VL53L0X_GESTURES -lib_deps = ${env.lib_deps} - pololu/VL53L0X @ ^1.3.0 -``` diff --git a/usermods/mpu6050_imu/library.json b/usermods/mpu6050_imu/library.json index bf86aed622..68db4d2f82 100644 --- a/usermods/mpu6050_imu/library.json +++ b/usermods/mpu6050_imu/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "electroniccats/MPU6050":"1.0.1" } -} \ No newline at end of file +} diff --git a/usermods/quinled-an-penta/library.json b/usermods/quinled-an-penta/library.json index 274020d944..2fe3e11a88 100644 --- a/usermods/quinled-an-penta/library.json +++ b/usermods/quinled-an-penta/library.json @@ -5,5 +5,9 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "olikraus/U8g2":"~2.28.8", + "robtillaart/SHT85":"~0.3.3" } -} \ No newline at end of file +} diff --git a/usermods/quinled-an-penta/quinled-an-penta.cpp b/usermods/quinled-an-penta/quinled-an-penta.cpp index 612ade03b3..1fbfd807eb 100644 --- a/usermods/quinled-an-penta/quinled-an-penta.cpp +++ b/usermods/quinled-an-penta/quinled-an-penta.cpp @@ -754,5 +754,5 @@ const unsigned char QuinLEDAnPentaUsermod::quinLedLogo[] PROGMEM = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; -static QuinLEDAnPentaUsermod quinled-an-penta; -REGISTER_USERMOD(quinled-an-penta); \ No newline at end of file +static QuinLEDAnPentaUsermod quinled_an_penta; +REGISTER_USERMOD(quinled_an_penta); \ No newline at end of file diff --git a/usermods/quinled-an-penta/readme.md b/usermods/quinled-an-penta/readme.md index c1260d9134..db1f72c4a7 100644 --- a/usermods/quinled-an-penta/readme.md +++ b/usermods/quinled-an-penta/readme.md @@ -5,29 +5,6 @@ The (un)official usermod to get the best out of the QuinLED-An-Penta (https://qu * "u8g2" by olikraus, v2.28 or higher: https://github.com/olikraus/u8g2 * "SHT85" by Rob Tillaart, v0.2 or higher: https://github.com/RobTillaart/SHT85 -## Usermod installation -Simply copy the below block (build task) to your `platformio_override.ini` and compile WLED using this new build task. Or use an existing one, add the buildflag `-D QUINLED_AN_PENTA` and the below library dependencies. - -ESP32 (**without** ethernet): -``` -[env:custom_esp32dev_usermod_quinled_an_penta] -extends = env:esp32dev -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 -D QUINLED_AN_PENTA -lib_deps = ${esp32.lib_deps} - olikraus/U8g2@~2.28.8 - robtillaart/SHT85@~0.2.0 -``` - -ESP32 (**with** ethernet): -``` -[env:custom_esp32dev_usermod_quinled_an_penta] -extends = env:esp32dev -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_Ethernet -D WLED_USE_ETHERNET -D QUINLED_AN_PENTA -lib_deps = ${esp32.lib_deps} - olikraus/U8g2@~2.28.8 - robtillaart/SHT85@~0.2.0 -``` - ## Some words about the (optional) OLED This mod has been optimized for an SSD1306 driven 128x64 OLED. Using a smaller OLED or an OLED using a different driver will result in unexpected results. I highly recommend using these "two color monochromatic OLEDs", which have the first 16 pixels in a different color than the other 48, e.g. a yellow/blue OLED. diff --git a/usermods/rgb-rotary-encoder/library.json b/usermods/rgb-rotary-encoder/library.json index c23606c0a5..dd6169a311 100644 --- a/usermods/rgb-rotary-encoder/library.json +++ b/usermods/rgb-rotary-encoder/library.json @@ -5,5 +5,8 @@ "includeDir": "../../wled00", "libLDFMode": "chain+", "libArchive": false + }, + "dependencies": { + "lennarthennigs/ESP Rotary":"^2.1.1" } -} \ No newline at end of file +} diff --git a/usermods/rgb-rotary-encoder/readme.md b/usermods/rgb-rotary-encoder/readme.md index 6531791799..abd8a812c4 100644 --- a/usermods/rgb-rotary-encoder/readme.md +++ b/usermods/rgb-rotary-encoder/readme.md @@ -8,30 +8,6 @@ https://user-images.githubusercontent.com/3090131/124680599-0180ab80-dec7-11eb-9 The actual / original code that controls the LED modes is from Adam Zeloof. I take no credit for it. I ported it to WLED, which involved replacing the LED library he used, (because WLED already has one, so no need to add another one) plus the rotary encoder library because it was not compatible with ESP, only Arduino. It was quite a bit more work than I hoped, but I got there eventually :) -## Requirements -* "ESP Rotary" by Lennart Hennigs, v2.1.1 or higher: https://github.com/LennartHennigs/ESPRotary - -## Usermod installation -Simply copy the below block (build task) to your `platformio_override.ini` and compile WLED using this new build task. Or use an existing one and add the buildflag `-D RGB_ROTARY_ENCODER`. - -ESP32: -``` -[env:custom_esp32dev_usermod_rgb_encoder_board] -extends = env:esp32dev -build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 -D RGB_ROTARY_ENCODER -lib_deps = ${esp32.lib_deps} - lennarthennigs/ESP Rotary@^2.1.1 -``` - -ESP8266 / D1 Mini: -``` -[env:custom_d1_mini_usermod_rgb_encoder_board] -extends = env:d1_mini -build_flags = ${common.build_flags_esp8266} -D RGB_ROTARY_ENCODER -lib_deps = ${esp8266.lib_deps} - lennarthennigs/ESP Rotary@^2.1.1 -``` - ## How to connect the board to your ESP We'll need (minimum) three or (maximum) four GPIOs for the board: * "ea": reports the encoder direction diff --git a/usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp b/usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp index 3e7b96bb2c..5b4e731533 100644 --- a/usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp +++ b/usermods/rgb-rotary-encoder/rgb-rotary-encoder.cpp @@ -342,5 +342,5 @@ const char RgbRotaryEncoderUsermod::_ledBrightness[] PROGMEM = "LED-Brightne const char RgbRotaryEncoderUsermod::_stepsPerClick[] PROGMEM = "Steps-per-Click"; const char RgbRotaryEncoderUsermod::_incrementPerClick[] PROGMEM = "Increment-per-Click"; -static RgbRotaryEncoderUsermod rgb-rotary-encoder; -REGISTER_USERMOD(rgb-rotary-encoder); \ No newline at end of file +static RgbRotaryEncoderUsermod rgb_rotary_encoder; +REGISTER_USERMOD(rgb_rotary_encoder); \ No newline at end of file From 24accf96a859c0e4023a5db925d7ecc3898aebf7 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Mon, 13 Jan 2025 10:53:24 +0000 Subject: [PATCH 18/18] Remove now redundant build section from library.json --- usermods/ADS1115_v2/library.json | 6 ------ usermods/AHT10_v2/library.json | 6 ------ usermods/Analog_Clock/library.json | 8 +------- usermods/Animated_Staircase/library.json | 8 +------- usermods/BH1750_v2/library.json | 6 ------ usermods/BME280_v2/library.json | 8 +------- usermods/BME68X_v2/library.json | 6 ------ usermods/Battery/library.json | 8 +------- usermods/Cronixie/library.json | 8 +------- usermods/DHT/library.json | 6 ------ usermods/EleksTube_IPS/library.json | 8 +------- usermods/INA226_v2/library.json | 6 ------ usermods/Internal_Temperature_v2/library.json | 8 +------- usermods/LD2410_v2/library.json | 8 +------- usermods/LDR_Dusk_Dawn_v2/library.json | 8 +------- usermods/MAX17048_v2/library.json | 6 ------ usermods/MY9291/library.json | 8 +------- usermods/PIR_sensor_switch/library.json | 8 +------- usermods/PWM_fan/library.json | 8 +------- usermods/RTC/library.json | 8 +------- usermods/SN_Photoresistor/library.json | 8 +------- usermods/ST7789_display/library.json | 8 +------- usermods/Si7021_MQTT_HA/library.json | 8 +------- usermods/Temperature/library.json | 6 ------ usermods/TetrisAI_v2/library.json | 8 +------- usermods/VL53L0X_gestures/library.json | 6 ------ usermods/audioreactive/library.json | 8 +------- usermods/boblight/library.json | 8 +------- usermods/buzzer/library.json | 8 +------- usermods/deep_sleep/library.json | 8 +------- usermods/mpu6050_imu/library.json | 6 ------ usermods/mqtt_switch_v2/library.json | 8 +------- usermods/multi_relay/library.json | 8 +------- usermods/pixels_dice_tray/library.json | 6 ------ usermods/pov_display/library.json | 6 ------ usermods/pwm_outputs/library.json | 8 +------- usermods/quinled-an-penta/library.json | 6 ------ usermods/rgb-rotary-encoder/library.json | 6 ------ usermods/sd_card/library.json | 8 +------- usermods/sensors_to_mqtt/library.json | 6 ------ usermods/seven_segment_display/library.json | 8 +------- usermods/seven_segment_display_reloaded/library.json | 8 +------- usermods/sht/library.json | 8 +------- usermods/smartnest/library.json | 8 +------- usermods/stairway_wipe_basic/library.json | 8 +------- usermods/usermod_rotary_brightness_color/library.json | 8 +------- usermods/usermod_v2_HttpPullLightControl/library.json | 8 +------- usermods/usermod_v2_animartrix/library.json | 6 ------ usermods/usermod_v2_auto_save/library.json | 9 ++------- usermods/usermod_v2_four_line_display_ALT/library.json | 8 +------- usermods/usermod_v2_klipper_percentage/library.json | 8 +------- usermods/usermod_v2_ping_pong_clock/library.json | 8 +------- usermods/usermod_v2_rotary_encoder_ui_ALT/library.json | 8 +------- usermods/usermod_v2_word_clock/library.json | 8 +------- usermods/wireguard/library.json | 6 ------ usermods/wizlights/library.json | 8 +------- usermods/word-clock-matrix/library.json | 8 +------- 57 files changed, 41 insertions(+), 382 deletions(-) diff --git a/usermods/ADS1115_v2/library.json b/usermods/ADS1115_v2/library.json index 179a56e5b0..0b93c93514 100644 --- a/usermods/ADS1115_v2/library.json +++ b/usermods/ADS1115_v2/library.json @@ -1,11 +1,5 @@ { "name:": "ADS1115_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "Adafruit BusIO": "https://github.com/adafruit/Adafruit_BusIO#1.13.2", "Adafruit ADS1X15": "https://github.com/adafruit/Adafruit_ADS1X15#2.4.0" diff --git a/usermods/AHT10_v2/library.json b/usermods/AHT10_v2/library.json index 28bac43538..94a206c576 100644 --- a/usermods/AHT10_v2/library.json +++ b/usermods/AHT10_v2/library.json @@ -1,11 +1,5 @@ { "name:": "AHT10_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "enjoyneering/AHT10":"~1.1.0" } diff --git a/usermods/Analog_Clock/library.json b/usermods/Analog_Clock/library.json index ddba3a76f5..4936950e94 100644 --- a/usermods/Analog_Clock/library.json +++ b/usermods/Analog_Clock/library.json @@ -1,9 +1,3 @@ { - "name:": "Analog_Clock", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "Analog_Clock" } \ No newline at end of file diff --git a/usermods/Animated_Staircase/library.json b/usermods/Animated_Staircase/library.json index e37df3114e..626baa4942 100644 --- a/usermods/Animated_Staircase/library.json +++ b/usermods/Animated_Staircase/library.json @@ -1,9 +1,3 @@ { - "name:": "Animated_Staircase", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "Animated_Staircase" } \ No newline at end of file diff --git a/usermods/BH1750_v2/library.json b/usermods/BH1750_v2/library.json index 0211bc8857..b7f006cc23 100644 --- a/usermods/BH1750_v2/library.json +++ b/usermods/BH1750_v2/library.json @@ -1,11 +1,5 @@ { "name:": "BH1750_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "claws/BH1750":"^1.2.0" } diff --git a/usermods/BME280_v2/library.json b/usermods/BME280_v2/library.json index 57d41fb379..126cb362c7 100644 --- a/usermods/BME280_v2/library.json +++ b/usermods/BME280_v2/library.json @@ -1,9 +1,3 @@ { - "name:": "BME280_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "BME280_v2" } \ No newline at end of file diff --git a/usermods/BME68X_v2/library.json b/usermods/BME68X_v2/library.json index ccfac0d9a1..3a0e49489e 100644 --- a/usermods/BME68X_v2/library.json +++ b/usermods/BME68X_v2/library.json @@ -1,11 +1,5 @@ { "name:": "BME68X_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "boschsensortec/BSEC Software Library":"^1.8.1492" } diff --git a/usermods/Battery/library.json b/usermods/Battery/library.json index bc0d97a11a..3f4774b872 100644 --- a/usermods/Battery/library.json +++ b/usermods/Battery/library.json @@ -1,9 +1,3 @@ { - "name:": "Battery", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "Battery" } \ No newline at end of file diff --git a/usermods/Cronixie/library.json b/usermods/Cronixie/library.json index f0d39d001d..d48327649c 100644 --- a/usermods/Cronixie/library.json +++ b/usermods/Cronixie/library.json @@ -1,9 +1,3 @@ { - "name:": "Cronixie", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "Cronixie" } \ No newline at end of file diff --git a/usermods/DHT/library.json b/usermods/DHT/library.json index ec7158d21f..5f2d27f090 100644 --- a/usermods/DHT/library.json +++ b/usermods/DHT/library.json @@ -1,11 +1,5 @@ { "name:": "DHT", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "DHT_nonblocking":"https://github.com/alwynallan/DHT_nonblocking" } diff --git a/usermods/EleksTube_IPS/library.json b/usermods/EleksTube_IPS/library.json index d025fc78a0..27d7186140 100644 --- a/usermods/EleksTube_IPS/library.json +++ b/usermods/EleksTube_IPS/library.json @@ -1,9 +1,3 @@ { - "name:": "EleksTube_IPS", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "EleksTube_IPS" } \ No newline at end of file diff --git a/usermods/INA226_v2/library.json b/usermods/INA226_v2/library.json index be6987e25e..91a735fe77 100644 --- a/usermods/INA226_v2/library.json +++ b/usermods/INA226_v2/library.json @@ -1,11 +1,5 @@ { "name:": "INA226_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "wollewald/INA226_WE":"~1.2.9" } diff --git a/usermods/Internal_Temperature_v2/library.json b/usermods/Internal_Temperature_v2/library.json index 38b560da81..6c1652380f 100644 --- a/usermods/Internal_Temperature_v2/library.json +++ b/usermods/Internal_Temperature_v2/library.json @@ -1,9 +1,3 @@ { - "name:": "Internal_Temperature_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "Internal_Temperature_v2" } \ No newline at end of file diff --git a/usermods/LD2410_v2/library.json b/usermods/LD2410_v2/library.json index 3480cd7986..6fcded0244 100644 --- a/usermods/LD2410_v2/library.json +++ b/usermods/LD2410_v2/library.json @@ -1,9 +1,3 @@ { - "name:": "LD2410_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "LD2410_v2" } \ No newline at end of file diff --git a/usermods/LDR_Dusk_Dawn_v2/library.json b/usermods/LDR_Dusk_Dawn_v2/library.json index 6a08c9ccae..bb57dbd2a0 100644 --- a/usermods/LDR_Dusk_Dawn_v2/library.json +++ b/usermods/LDR_Dusk_Dawn_v2/library.json @@ -1,9 +1,3 @@ { - "name:": "LDR_Dusk_Dawn_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "LDR_Dusk_Dawn_v2" } \ No newline at end of file diff --git a/usermods/MAX17048_v2/library.json b/usermods/MAX17048_v2/library.json index f85b33cf29..146333459e 100644 --- a/usermods/MAX17048_v2/library.json +++ b/usermods/MAX17048_v2/library.json @@ -1,11 +1,5 @@ { "name:": "MAX17048_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "Adafruit_MAX1704X":"https://github.com/adafruit/Adafruit_MAX1704X#1.0.2" } diff --git a/usermods/MY9291/library.json b/usermods/MY9291/library.json index d965f4c353..9324e4a02b 100644 --- a/usermods/MY9291/library.json +++ b/usermods/MY9291/library.json @@ -1,9 +1,3 @@ { - "name:": "MY9291", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "MY9291" } \ No newline at end of file diff --git a/usermods/PIR_sensor_switch/library.json b/usermods/PIR_sensor_switch/library.json index 152946e4cb..0ee7e18b53 100644 --- a/usermods/PIR_sensor_switch/library.json +++ b/usermods/PIR_sensor_switch/library.json @@ -1,9 +1,3 @@ { - "name:": "PIR_sensor_switch", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "PIR_sensor_switch" } \ No newline at end of file diff --git a/usermods/PWM_fan/library.json b/usermods/PWM_fan/library.json index a6d5ea64f5..904d772364 100644 --- a/usermods/PWM_fan/library.json +++ b/usermods/PWM_fan/library.json @@ -1,9 +1,3 @@ { - "name:": "PWM_fan", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "PWM_fan" } \ No newline at end of file diff --git a/usermods/RTC/library.json b/usermods/RTC/library.json index 96aa095bb6..e0c527d2ce 100644 --- a/usermods/RTC/library.json +++ b/usermods/RTC/library.json @@ -1,9 +1,3 @@ { - "name:": "RTC", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "RTC" } \ No newline at end of file diff --git a/usermods/SN_Photoresistor/library.json b/usermods/SN_Photoresistor/library.json index fe5173bed3..7cac93f8d0 100644 --- a/usermods/SN_Photoresistor/library.json +++ b/usermods/SN_Photoresistor/library.json @@ -1,9 +1,3 @@ { - "name:": "SN_Photoresistor", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "SN_Photoresistor" } \ No newline at end of file diff --git a/usermods/ST7789_display/library.json b/usermods/ST7789_display/library.json index 88f4efe782..abcd4635c3 100644 --- a/usermods/ST7789_display/library.json +++ b/usermods/ST7789_display/library.json @@ -1,9 +1,3 @@ { - "name:": "ST7789_display", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "ST7789_display" } \ No newline at end of file diff --git a/usermods/Si7021_MQTT_HA/library.json b/usermods/Si7021_MQTT_HA/library.json index 2c18375f26..004f9f99e0 100644 --- a/usermods/Si7021_MQTT_HA/library.json +++ b/usermods/Si7021_MQTT_HA/library.json @@ -1,9 +1,3 @@ { - "name:": "Si7021_MQTT_HA", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "Si7021_MQTT_HA" } \ No newline at end of file diff --git a/usermods/Temperature/library.json b/usermods/Temperature/library.json index 24de79825f..6a20a7d3fe 100644 --- a/usermods/Temperature/library.json +++ b/usermods/Temperature/library.json @@ -1,11 +1,5 @@ { "name:": "Temperature", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "paulstoffregen/OneWire":"~2.3.8" } diff --git a/usermods/TetrisAI_v2/library.json b/usermods/TetrisAI_v2/library.json index 199e5c4349..7163dadbf8 100644 --- a/usermods/TetrisAI_v2/library.json +++ b/usermods/TetrisAI_v2/library.json @@ -1,9 +1,3 @@ { - "name:": "TetrisAI_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "TetrisAI_v2" } \ No newline at end of file diff --git a/usermods/VL53L0X_gestures/library.json b/usermods/VL53L0X_gestures/library.json index 6dfe4c4db8..50ff9cb45e 100644 --- a/usermods/VL53L0X_gestures/library.json +++ b/usermods/VL53L0X_gestures/library.json @@ -1,11 +1,5 @@ { "name:": "VL53L0X_gestures", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "pololu/VL53L0X" : "^1.3.0" } diff --git a/usermods/audioreactive/library.json b/usermods/audioreactive/library.json index 658bf9432c..70484d0a21 100644 --- a/usermods/audioreactive/library.json +++ b/usermods/audioreactive/library.json @@ -1,11 +1,5 @@ { "name": "audioreactive", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": [ { "owner": "kosme", @@ -14,4 +8,4 @@ "platforms": "espressif32" } ] -} \ No newline at end of file +} diff --git a/usermods/boblight/library.json b/usermods/boblight/library.json index 0b63b22475..741d4cb180 100644 --- a/usermods/boblight/library.json +++ b/usermods/boblight/library.json @@ -1,9 +1,3 @@ { - "name:": "boblight", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "boblight" } \ No newline at end of file diff --git a/usermods/buzzer/library.json b/usermods/buzzer/library.json index 78ba4152f9..6bbcdcc347 100644 --- a/usermods/buzzer/library.json +++ b/usermods/buzzer/library.json @@ -1,9 +1,3 @@ { - "name:": "buzzer", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "buzzer" } \ No newline at end of file diff --git a/usermods/deep_sleep/library.json b/usermods/deep_sleep/library.json index c15e8d5773..c8f66de104 100644 --- a/usermods/deep_sleep/library.json +++ b/usermods/deep_sleep/library.json @@ -1,9 +1,3 @@ { - "name:": "deep_sleep", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "deep_sleep" } \ No newline at end of file diff --git a/usermods/mpu6050_imu/library.json b/usermods/mpu6050_imu/library.json index 68db4d2f82..295623936e 100644 --- a/usermods/mpu6050_imu/library.json +++ b/usermods/mpu6050_imu/library.json @@ -1,11 +1,5 @@ { "name:": "mpu6050_imu", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "electroniccats/MPU6050":"1.0.1" } diff --git a/usermods/mqtt_switch_v2/library.json b/usermods/mqtt_switch_v2/library.json index 96695a9c71..cf9abefdbe 100644 --- a/usermods/mqtt_switch_v2/library.json +++ b/usermods/mqtt_switch_v2/library.json @@ -1,9 +1,3 @@ { - "name:": "mqtt_switch_v2", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "mqtt_switch_v2" } \ No newline at end of file diff --git a/usermods/multi_relay/library.json b/usermods/multi_relay/library.json index 47505d0b4e..7aa764399c 100644 --- a/usermods/multi_relay/library.json +++ b/usermods/multi_relay/library.json @@ -1,9 +1,3 @@ { - "name:": "multi_relay", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "multi_relay" } \ No newline at end of file diff --git a/usermods/pixels_dice_tray/library.json b/usermods/pixels_dice_tray/library.json index 4634c40702..fd6a53a577 100644 --- a/usermods/pixels_dice_tray/library.json +++ b/usermods/pixels_dice_tray/library.json @@ -1,11 +1,5 @@ { "name:": "pixels_dice_tray", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "arduino-pixels-dice":"https://github.com/axlan/arduino-pixels-dice.git" } diff --git a/usermods/pov_display/library.json b/usermods/pov_display/library.json index a3885417d8..298739b5d8 100644 --- a/usermods/pov_display/library.json +++ b/usermods/pov_display/library.json @@ -1,11 +1,5 @@ { "name:": "pov_display", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "bitbank2/PNGdec":"^1.0.3" } diff --git a/usermods/pwm_outputs/library.json b/usermods/pwm_outputs/library.json index 18ce7d883f..4bf07777a3 100644 --- a/usermods/pwm_outputs/library.json +++ b/usermods/pwm_outputs/library.json @@ -1,9 +1,3 @@ { - "name:": "pwm_outputs", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "pwm_outputs" } \ No newline at end of file diff --git a/usermods/quinled-an-penta/library.json b/usermods/quinled-an-penta/library.json index 2fe3e11a88..e89dc00209 100644 --- a/usermods/quinled-an-penta/library.json +++ b/usermods/quinled-an-penta/library.json @@ -1,11 +1,5 @@ { "name:": "quinled-an-penta", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "olikraus/U8g2":"~2.28.8", "robtillaart/SHT85":"~0.3.3" diff --git a/usermods/rgb-rotary-encoder/library.json b/usermods/rgb-rotary-encoder/library.json index dd6169a311..25572e116f 100644 --- a/usermods/rgb-rotary-encoder/library.json +++ b/usermods/rgb-rotary-encoder/library.json @@ -1,11 +1,5 @@ { "name:": "rgb-rotary-encoder", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "lennarthennigs/ESP Rotary":"^2.1.1" } diff --git a/usermods/sd_card/library.json b/usermods/sd_card/library.json index 777c6264ff..1f123ead66 100644 --- a/usermods/sd_card/library.json +++ b/usermods/sd_card/library.json @@ -1,9 +1,3 @@ { - "name:": "sd_card", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "sd_card" } \ No newline at end of file diff --git a/usermods/sensors_to_mqtt/library.json b/usermods/sensors_to_mqtt/library.json index c1bb6ec8f4..6594152c81 100644 --- a/usermods/sensors_to_mqtt/library.json +++ b/usermods/sensors_to_mqtt/library.json @@ -1,11 +1,5 @@ { "name:": "sensors_to_mqtt", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "adafruit/Adafruit BMP280 Library":"2.1.0", "adafruit/Adafruit CCS811 Library":"1.0.4", diff --git a/usermods/seven_segment_display/library.json b/usermods/seven_segment_display/library.json index c10bd084c4..8764e92b3a 100644 --- a/usermods/seven_segment_display/library.json +++ b/usermods/seven_segment_display/library.json @@ -1,9 +1,3 @@ { - "name:": "seven_segment_display", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "seven_segment_display" } \ No newline at end of file diff --git a/usermods/seven_segment_display_reloaded/library.json b/usermods/seven_segment_display_reloaded/library.json index 485aa4fd8e..fdce8b5360 100644 --- a/usermods/seven_segment_display_reloaded/library.json +++ b/usermods/seven_segment_display_reloaded/library.json @@ -1,9 +1,3 @@ { - "name:": "seven_segment_display_reloaded", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "seven_segment_display_reloaded" } \ No newline at end of file diff --git a/usermods/sht/library.json b/usermods/sht/library.json index 2cb0003ac9..330093bdae 100644 --- a/usermods/sht/library.json +++ b/usermods/sht/library.json @@ -1,9 +1,3 @@ { - "name:": "sht", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "sht" } \ No newline at end of file diff --git a/usermods/smartnest/library.json b/usermods/smartnest/library.json index 4e776ad76d..e2c6ab351b 100644 --- a/usermods/smartnest/library.json +++ b/usermods/smartnest/library.json @@ -1,9 +1,3 @@ { - "name:": "smartnest", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "smartnest" } \ No newline at end of file diff --git a/usermods/stairway_wipe_basic/library.json b/usermods/stairway_wipe_basic/library.json index 6b3a52368d..59cb5da936 100644 --- a/usermods/stairway_wipe_basic/library.json +++ b/usermods/stairway_wipe_basic/library.json @@ -1,9 +1,3 @@ { - "name:": "stairway_wipe_basic", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "stairway_wipe_basic" } \ No newline at end of file diff --git a/usermods/usermod_rotary_brightness_color/library.json b/usermods/usermod_rotary_brightness_color/library.json index 8d368082bb..777ec19c0b 100644 --- a/usermods/usermod_rotary_brightness_color/library.json +++ b/usermods/usermod_rotary_brightness_color/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_rotary_brightness_color", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_rotary_brightness_color" } \ No newline at end of file diff --git a/usermods/usermod_v2_HttpPullLightControl/library.json b/usermods/usermod_v2_HttpPullLightControl/library.json index 68b9370815..0f66710b3d 100644 --- a/usermods/usermod_v2_HttpPullLightControl/library.json +++ b/usermods/usermod_v2_HttpPullLightControl/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_v2_HttpPullLightControl", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_v2_HttpPullLightControl" } \ No newline at end of file diff --git a/usermods/usermod_v2_animartrix/library.json b/usermods/usermod_v2_animartrix/library.json index f176e72ed6..4552be3301 100644 --- a/usermods/usermod_v2_animartrix/library.json +++ b/usermods/usermod_v2_animartrix/library.json @@ -1,11 +1,5 @@ { "name": "animartrix", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "Animartrix": "https://github.com/netmindz/animartrix.git#b172586" } diff --git a/usermods/usermod_v2_auto_save/library.json b/usermods/usermod_v2_auto_save/library.json index 40676ed55d..67b29ca69a 100644 --- a/usermods/usermod_v2_auto_save/library.json +++ b/usermods/usermod_v2_auto_save/library.json @@ -1,8 +1,3 @@ -{ - "name": "auto_save", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+" - } +{ + "name:": "usermod_v2_auto_save" } \ No newline at end of file diff --git a/usermods/usermod_v2_four_line_display_ALT/library.json b/usermods/usermod_v2_four_line_display_ALT/library.json index 6dccb4a98d..56612c96e1 100644 --- a/usermods/usermod_v2_four_line_display_ALT/library.json +++ b/usermods/usermod_v2_four_line_display_ALT/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_v2_four_line_display_ALT", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_v2_four_line_display_ALT" } \ No newline at end of file diff --git a/usermods/usermod_v2_klipper_percentage/library.json b/usermods/usermod_v2_klipper_percentage/library.json index afd9616315..b31fb1ad13 100644 --- a/usermods/usermod_v2_klipper_percentage/library.json +++ b/usermods/usermod_v2_klipper_percentage/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_v2_klipper_percentage", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_v2_klipper_percentage" } \ No newline at end of file diff --git a/usermods/usermod_v2_ping_pong_clock/library.json b/usermods/usermod_v2_ping_pong_clock/library.json index 1970861139..fe23cd9108 100644 --- a/usermods/usermod_v2_ping_pong_clock/library.json +++ b/usermods/usermod_v2_ping_pong_clock/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_v2_ping_pong_clock", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_v2_ping_pong_clock" } \ No newline at end of file diff --git a/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json b/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json index f7c60ecddf..5f857218b6 100644 --- a/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json +++ b/usermods/usermod_v2_rotary_encoder_ui_ALT/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_v2_rotary_encoder_ui_ALT", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_v2_rotary_encoder_ui_ALT" } \ No newline at end of file diff --git a/usermods/usermod_v2_word_clock/library.json b/usermods/usermod_v2_word_clock/library.json index 74a3d90354..83c14dc7ef 100644 --- a/usermods/usermod_v2_word_clock/library.json +++ b/usermods/usermod_v2_word_clock/library.json @@ -1,9 +1,3 @@ { - "name:": "usermod_v2_word_clock", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "usermod_v2_word_clock" } \ No newline at end of file diff --git a/usermods/wireguard/library.json b/usermods/wireguard/library.json index 9964840087..0ebace8b5e 100644 --- a/usermods/wireguard/library.json +++ b/usermods/wireguard/library.json @@ -1,11 +1,5 @@ { "name:": "wireguard", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - }, "dependencies": { "WireGuard-ESP32-Arduino":"https://github.com/kienvu58/WireGuard-ESP32-Arduino.git" } diff --git a/usermods/wizlights/library.json b/usermods/wizlights/library.json index a82dd7fcb2..687fba0f73 100644 --- a/usermods/wizlights/library.json +++ b/usermods/wizlights/library.json @@ -1,9 +1,3 @@ { - "name:": "wizlights", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "wizlights" } \ No newline at end of file diff --git a/usermods/word-clock-matrix/library.json b/usermods/word-clock-matrix/library.json index ed29ae088a..d971dfff48 100644 --- a/usermods/word-clock-matrix/library.json +++ b/usermods/word-clock-matrix/library.json @@ -1,9 +1,3 @@ { - "name:": "word-clock-matrix", - "build": { - "srcDir": ".", - "includeDir": "../../wled00", - "libLDFMode": "chain+", - "libArchive": false - } + "name:": "word-clock-matrix" } \ No newline at end of file