From 27d3420ad7e81fb78e30f3833579b02d37a12e2b Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 09:31:51 +0000 Subject: [PATCH 01/29] Build each usermod in isolation --- .github/workflows/usermods.yml | 70 ++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/usermods.yml diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml new file mode 100644 index 000000000..58973e956 --- /dev/null +++ b/.github/workflows/usermods.yml @@ -0,0 +1,70 @@ +name: Usermod CI + +on: + push: +# paths: +# - usermods/** + +jobs: + + get_usermod_envs: + name: Gather Environments + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'pip' + - name: Install PlatformIO + run: pip install -r requirements.txt + - name: Get default environments + id: envs + run: | + echo -n "usermods=\"" >> $GITHUB_OUTPUT + find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo >> $GITHUB_OUTPUT + echo "\"" >> $GITHUB_OUTPUT + outputs: + usermods: ${{ steps.envs.outputs.usermods }} + + + build: + name: Build Enviornments + runs-on: ubuntu-latest + needs: get_usermod_envs + strategy: + fail-fast: false + matrix: + environment: [usermod] + usermod: ${{ needs.get_usermod_envs.outputs.usermods }} + steps: + - uses: actions/checkout@v4 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - run: npm ci + - name: Cache PlatformIO + uses: actions/cache@v4 + with: + path: | + ~/.platformio/.cache + ~/.buildcache + build_output + key: pio-${{ runner.os }}-${{ matrix.environment }}-${{ hashFiles('platformio.ini', 'pio-scripts/output_bins.py') }}-${{ hashFiles('wled00/**', 'usermods/**') }} + restore-keys: pio-${{ runner.os }}-${{ matrix.environment }}-${{ hashFiles('platformio.ini', 'pio-scripts/output_bins.py') }}- + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + 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 + echo -n "custom_usermods = ${{ matrix.usermod }}" >> platformio_override.ini + + - name: Build firmware + run: pio run -e ${{ matrix.environment }} From 0e7d5dd0133e027e0a794dd1401a6bfa91275416 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 09:38:30 +0000 Subject: [PATCH 02/29] Build each usermod in isolation --- .github/workflows/usermods.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 58973e956..0b51a3935 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -21,9 +21,8 @@ jobs: - name: Get default environments id: envs run: | - echo -n "usermods=\"" >> $GITHUB_OUTPUT - find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo >> $GITHUB_OUTPUT - echo "\"" >> $GITHUB_OUTPUT + mods=`find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo` + echo -n "usermods=\"$mods\"" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} From 04c7eace09bcd64ef3d946df8b97d203d638fc37 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 09:49:06 +0000 Subject: [PATCH 03/29] Use JSON for usermods list --- .github/workflows/usermods.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 0b51a3935..124367224 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -8,7 +8,7 @@ on: jobs: get_usermod_envs: - name: Gather Environments + name: Gather Usermods runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -21,7 +21,7 @@ jobs: - name: Get default environments id: envs run: | - mods=`find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo` + mods=`find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | jq --slurp -c` echo -n "usermods=\"$mods\"" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: environment: [usermod] - usermod: ${{ needs.get_usermod_envs.outputs.usermods }} + usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} steps: - uses: actions/checkout@v4 - name: Set up Node.js From b3af04d3ca1dfb6a3936d5ff1ac5b5e5fa5fadcb Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 09:49:42 +0000 Subject: [PATCH 04/29] Use JSON for usermods list --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 124367224..efd5296df 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -22,7 +22,7 @@ jobs: id: envs run: | mods=`find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | jq --slurp -c` - echo -n "usermods=\"$mods\"" >> $GITHUB_OUTPUT + echo "usermods=$mods >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} From b1b2eead26d7bae5a600994d127e539412d4b47e Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 09:53:24 +0000 Subject: [PATCH 05/29] Use JSON for usermods list --- .github/workflows/usermods.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index efd5296df..ec5f9876a 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -21,8 +21,7 @@ jobs: - name: Get default environments id: envs run: | - mods=`find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | jq --slurp -c` - echo "usermods=$mods >> $GITHUB_OUTPUT + echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | jq --slurp -c)" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} From 8d4c9119b49f956397d4c86d37cfbd3e962a6a6f Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 09:55:34 +0000 Subject: [PATCH 06/29] Fix typo in env name --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index ec5f9876a..21fef2485 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -33,7 +33,7 @@ jobs: strategy: fail-fast: false matrix: - environment: [usermod] + environment: [usermods] usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} steps: - uses: actions/checkout@v4 From 7d48bba926aa932ae453901a3f8f2714a753dc80 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 10:09:51 +0000 Subject: [PATCH 07/29] build usermod_esp32 --- .github/workflows/usermods.yml | 2 +- usermods/platformio_override.usermods.ini | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 usermods/platformio_override.usermods.ini diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 21fef2485..9a81d464c 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -33,7 +33,7 @@ jobs: strategy: fail-fast: false matrix: - environment: [usermods] + environment: [usermod_esp32] usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} steps: - uses: actions/checkout@v4 diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini new file mode 100644 index 000000000..611dc0d8b --- /dev/null +++ b/usermods/platformio_override.usermods.ini @@ -0,0 +1,11 @@ +[env:usermod_esp32] +board = esp32dev +platform = ${esp32_idf_V4.platform} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMOD\" + -DTOUCH_CS=9 + -DMQTTSWITCHPINS=8 +lib_deps = ${esp32_idf_V4.lib_deps} +monitor_filters = esp32_exception_decoder +board_build.flash_mode = dio + From 74672e21303e489b8db32253fdb78837badbf975 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 10:13:36 +0000 Subject: [PATCH 08/29] Verify each usermod on change --- .github/workflows/usermods.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 9a81d464c..fed79f574 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -2,8 +2,8 @@ name: Usermod CI on: push: -# paths: -# - usermods/** + paths: + - usermods/** jobs: From 99108f9eff7587f762e69fb8880bf1d209aa332e Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 10:15:35 +0000 Subject: [PATCH 09/29] Swap ordering to see if naming is then clearer --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index fed79f574..7467d9915 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -33,8 +33,8 @@ jobs: strategy: fail-fast: false matrix: - environment: [usermod_esp32] usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} + environment: [usermod_esp32] steps: - uses: actions/checkout@v4 - name: Set up Node.js From 199529a031c7ef0d56c1c79fcb1b3a13c38a0f2e Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Wed, 22 Jan 2025 10:16:56 +0000 Subject: [PATCH 10/29] Also run if the workflow changes --- .github/workflows/usermods.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 7467d9915..02a404ba1 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -4,6 +4,7 @@ on: push: paths: - usermods/** + - .github/workflows/usermods.yml jobs: From 7852ff558eb9a5ebba13661b049e9317d097ad10 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 14:44:48 +0100 Subject: [PATCH 11/29] Build for each chipset --- .github/workflows/usermods.yml | 2 +- usermods/platformio_override.usermods.ini | 44 +++++++++++++++++++---- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 02a404ba1..06ce611bf 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} - environment: [usermod_esp32] + environment: [usermod_esp32, usermods_esp32c3, usermods_esp32s2, usermod_esp32s3] steps: - uses: actions/checkout@v4 - name: Set up Node.js diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 611dc0d8b..c738077e9 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -1,11 +1,41 @@ -[env:usermod_esp32] +[platformio] +default_envs = usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermods_esp32s3 + +[env:usermods_esp32] board = esp32dev platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMOD\" - -DTOUCH_CS=9 - -DMQTTSWITCHPINS=8 -lib_deps = ${esp32_idf_V4.lib_deps} -monitor_filters = esp32_exception_decoder -board_build.flash_mode = dio +build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\" +lib_deps = ${esp32.lib_deps} +board_build.partitions = ${esp32.big_partitions} +usermod = ${usermods.custom_usermods} +[env:usermods_esp32c3] +extends = esp32c3 +board = esp32-c3-devkitm-1 +platform = ${esp32_idf_V4.platform} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" +lib_deps = ${esp32.lib_deps} +board_build.partitions = ${esp32.big_partitions} +usermod = ${usermods.custom_usermods} + +[env:usermods_esp32s2] +extends = esp32s2 +platform = ${esp32_idf_V4.platform} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" +lib_deps = ${esp32.lib_deps} +board_build.partitions = ${esp32.big_partitions} +usermod = ${usermods.custom_usermods} + +[env:usermods_esp32s3] +extends = esp32s3 +platform = ${esp32_idf_V4.platform} +build_unflags = ${common.build_unflags} +build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" +lib_deps = ${esp32.lib_deps} +board_build.partitions = ${esp32.big_partitions} +usermod = ${usermods.custom_usermods} + +[usermods] \ No newline at end of file From b77881f634885889827643b070fc2cc45e525f9c Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 14:46:55 +0100 Subject: [PATCH 12/29] Build for each chipset --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 06ce611bf..4de88449a 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} - environment: [usermod_esp32, usermods_esp32c3, usermods_esp32s2, usermod_esp32s3] + environment: [usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermod_esp32s3] steps: - uses: actions/checkout@v4 - name: Set up Node.js From fbb7ef7cfcd52eb46d7ace42869b1a36f566714a Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 14:52:13 +0100 Subject: [PATCH 13/29] fix custom_usermods setting --- usermods/platformio_override.usermods.ini | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index c738077e9..5a0d8c3fb 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -8,7 +8,7 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} -usermod = ${usermods.custom_usermods} +custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32c3] extends = esp32c3 @@ -18,7 +18,7 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} -usermod = ${usermods.custom_usermods} +custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s2] extends = esp32s2 @@ -27,7 +27,7 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} -usermod = ${usermods.custom_usermods} +custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s3] extends = esp32s3 @@ -36,6 +36,7 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} -usermod = ${usermods.custom_usermods} +custom_usermods = ${usermods.custom_usermods} -[usermods] \ No newline at end of file +[usermods] +# Added in CI \ No newline at end of file From 6c4d049c1acffc490116fa0e9fcce4bcc9739662 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 15:06:07 +0100 Subject: [PATCH 14/29] force new line --- .github/workflows/usermods.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 4de88449a..9b1dd2ab9 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -63,7 +63,8 @@ jobs: - name: Add usermods environment run: | cp -v usermods/platformio_override.usermods.ini platformio_override.ini - echo -n "custom_usermods = ${{ matrix.usermod }}" >> platformio_override.ini + echo >> platformio_override.ini + echo "custom_usermods = ${{ matrix.usermod }}" >> platformio_override.ini - name: Build firmware run: pio run -e ${{ matrix.environment }} From 19ba25772217db8efe878aed6f1bf10f1d2b426c Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 15:07:31 +0100 Subject: [PATCH 15/29] usermod_esp32s3 --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 9b1dd2ab9..a597d2bf5 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -35,7 +35,7 @@ jobs: fail-fast: false matrix: usermod: ${{ fromJSON(needs.get_usermod_envs.outputs.usermods) }} - environment: [usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermod_esp32s3] + environment: [usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermods_esp32s3] steps: - uses: actions/checkout@v4 - name: Set up Node.js From 92db9e0e002fe1c541005dae2de5d02df13a5ab4 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 15:21:22 +0100 Subject: [PATCH 16/29] fix envs --- usermods/platformio_override.usermods.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 5a0d8c3fb..a2324ba4f 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -8,10 +8,11 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} +board_build.flash_mode = dio custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32c3] -extends = esp32c3 +extends = esp32c3dev board = esp32-c3-devkitm-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} From f1c88bc38d5ef94d7c0a36af93ad033e42724a60 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 26 Apr 2025 15:54:14 +0100 Subject: [PATCH 17/29] fix envs --- usermods/platformio_override.usermods.ini | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index a2324ba4f..127b5d33a 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -19,25 +19,31 @@ build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} +board_build.flash_mode = qio custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s2] -extends = esp32s2 +extends = esp32s2dev +board = esp32-c3-devkitm-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} +board_build.flash_mode = dio custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s3] extends = esp32s3 +board = esp32-s3-devkitc-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" lib_deps = ${esp32.lib_deps} board_build.partitions = ${esp32.big_partitions} custom_usermods = ${usermods.custom_usermods} +board_build.flash_mode = qio + [usermods] # Added in CI \ No newline at end of file From 65a79d411d3d72aa1d92ce91cf6bf3ae9e5fb5f5 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 14 Jun 2025 20:52:27 +0100 Subject: [PATCH 18/29] Fix build_flags and lib_deps for usermods# --- .github/workflows/usermods.yml | 1 + usermods/platformio_override.usermods.ini | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index a597d2bf5..34df9f35c 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -65,6 +65,7 @@ jobs: cp -v usermods/platformio_override.usermods.ini platformio_override.ini echo >> platformio_override.ini echo "custom_usermods = ${{ matrix.usermod }}" >> platformio_override.ini + cat platformio_override.ini - name: Build firmware run: pio run -e ${{ matrix.environment }} diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 127b5d33a..17e806684 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -5,8 +5,8 @@ default_envs = usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermods_esp3 board = esp32dev platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\" -lib_deps = ${esp32.lib_deps} +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\" #-D WLED_DISABLE_BROWNOUT_DET +lib_deps = ${esp32_idf_V4.lib_deps} board_build.partitions = ${esp32.big_partitions} board_build.flash_mode = dio custom_usermods = ${usermods.custom_usermods} @@ -16,8 +16,8 @@ extends = esp32c3dev board = esp32-c3-devkitm-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" -lib_deps = ${esp32.lib_deps} +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" +lib_deps = ${esp32c3.lib_deps} board_build.partitions = ${esp32.big_partitions} board_build.flash_mode = qio custom_usermods = ${usermods.custom_usermods} @@ -27,8 +27,8 @@ extends = esp32s2dev board = esp32-c3-devkitm-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" -lib_deps = ${esp32.lib_deps} +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" +lib_deps = ${esp32s2.lib_deps} board_build.partitions = ${esp32.big_partitions} board_build.flash_mode = dio custom_usermods = ${usermods.custom_usermods} @@ -38,8 +38,8 @@ extends = esp32s3 board = esp32-s3-devkitc-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" -lib_deps = ${esp32.lib_deps} +build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" +lib_deps = ${esp32s3.lib_deps} board_build.partitions = ${esp32.big_partitions} custom_usermods = ${usermods.custom_usermods} board_build.flash_mode = qio From b0dd9690e70cb3ff01315b38fda57356243ade79 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 14 Jun 2025 20:56:11 +0100 Subject: [PATCH 19/29] Add missing ${esp32_idf_V4.lib_deps} to usermods lib_deps --- usermods/platformio_override.usermods.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 17e806684..3bc606daf 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -17,7 +17,7 @@ board = esp32-c3-devkitm-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" -lib_deps = ${esp32c3.lib_deps} +lib_deps = ${esp32c3.lib_deps} ${esp32_idf_V4.lib_deps} board_build.partitions = ${esp32.big_partitions} board_build.flash_mode = qio custom_usermods = ${usermods.custom_usermods} @@ -28,7 +28,7 @@ board = esp32-c3-devkitm-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" -lib_deps = ${esp32s2.lib_deps} +lib_deps = ${esp32s2.lib_deps} ${esp32_idf_V4.lib_deps} board_build.partitions = ${esp32.big_partitions} board_build.flash_mode = dio custom_usermods = ${usermods.custom_usermods} @@ -39,7 +39,7 @@ board = esp32-s3-devkitc-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" -lib_deps = ${esp32s3.lib_deps} +lib_deps = ${esp32s3.lib_deps} ${esp32_idf_V4.lib_deps} board_build.partitions = ${esp32.big_partitions} custom_usermods = ${usermods.custom_usermods} board_build.flash_mode = qio From a6f5080a4fd1ebe8f227d00bf1380aa887056c7a Mon Sep 17 00:00:00 2001 From: netmindz Date: Sun, 15 Jun 2025 09:26:22 +0100 Subject: [PATCH 20/29] Update usermods/platformio_override.usermods.ini Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- 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 3bc606daf..4c93a3b47 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -24,7 +24,7 @@ custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s2] extends = esp32s2dev -board = esp32-c3-devkitm-1 +board = esp32-s2-devkitc-1 platform = ${esp32_idf_V4.platform} build_unflags = ${common.build_unflags} build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" From e97723dcc7da34c105334ab2c51d1aa8c03a20c2 Mon Sep 17 00:00:00 2001 From: Will Miles Date: Mon, 16 Jun 2025 13:51:08 -0400 Subject: [PATCH 21/29] Use existing board envs for usermod build --- usermods/platformio_override.usermods.ini | 34 +++-------------------- 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 4c93a3b47..3bd3ca6a4 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -2,47 +2,21 @@ default_envs = usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermods_esp32s3 [env:usermods_esp32] -board = esp32dev -platform = ${esp32_idf_V4.platform} -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\" #-D WLED_DISABLE_BROWNOUT_DET -lib_deps = ${esp32_idf_V4.lib_deps} -board_build.partitions = ${esp32.big_partitions} -board_build.flash_mode = dio +extends = env:esp32dev_V4 custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32c3] -extends = esp32c3dev +extends = env:esp32c3dev board = esp32-c3-devkitm-1 -platform = ${esp32_idf_V4.platform} -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"C3_USERMODS\" -lib_deps = ${esp32c3.lib_deps} ${esp32_idf_V4.lib_deps} -board_build.partitions = ${esp32.big_partitions} -board_build.flash_mode = qio custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s2] -extends = esp32s2dev -board = esp32-s2-devkitc-1 -platform = ${esp32_idf_V4.platform} -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S2_USERMODS\" -lib_deps = ${esp32s2.lib_deps} ${esp32_idf_V4.lib_deps} -board_build.partitions = ${esp32.big_partitions} -board_build.flash_mode = dio +extends = env:lolin_s2_mini custom_usermods = ${usermods.custom_usermods} [env:usermods_esp32s3] -extends = esp32s3 -board = esp32-s3-devkitc-1 -platform = ${esp32_idf_V4.platform} -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"S3_USERMODS\" -lib_deps = ${esp32s3.lib_deps} ${esp32_idf_V4.lib_deps} -board_build.partitions = ${esp32.big_partitions} +extends = env:esp32s3dev_16MB_opi custom_usermods = ${usermods.custom_usermods} -board_build.flash_mode = qio [usermods] From 1c4141a2b1e1661c3b4e641ae22a3ef92720299e Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 13:44:55 +0100 Subject: [PATCH 22/29] Exclude PWM_fan --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 34df9f35c..796f229eb 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -22,7 +22,7 @@ jobs: - name: Get default environments id: envs run: | - echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | jq --slurp -c)" >> $GITHUB_OUTPUT + echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | jq --slurp -c)" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} From 7cc5c87a527a12ca859833c79eae2c0b16090a9d Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 13:59:13 +0100 Subject: [PATCH 23/29] Fixing Si7021_MQTT_HA --- usermods/Si7021_MQTT_HA/library.json | 3 ++- usermods/Si7021_MQTT_HA/readme.md | 12 +----------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/usermods/Si7021_MQTT_HA/library.json b/usermods/Si7021_MQTT_HA/library.json index e3d7635e3..22d9f7dc9 100644 --- a/usermods/Si7021_MQTT_HA/library.json +++ b/usermods/Si7021_MQTT_HA/library.json @@ -3,6 +3,7 @@ "build": { "libArchive": false }, "dependencies": { "finitespace/BME280":"3.0.0", - "adafruit/Adafruit Si7021 Library" : "1.5.3" + "adafruit/Adafruit Si7021 Library" : "1.5.3", + "SPI":"" } } \ No newline at end of file diff --git a/usermods/Si7021_MQTT_HA/readme.md b/usermods/Si7021_MQTT_HA/readme.md index 99a240f7d..b8ee06a73 100644 --- a/usermods/Si7021_MQTT_HA/readme.md +++ b/usermods/Si7021_MQTT_HA/readme.md @@ -49,18 +49,8 @@ SDA_PIN = 4; ## Software -Add to `build_flags` in platformio.ini: +Add `Si7021_MQTT_HA` to custom_usermods -``` - -D USERMOD_SI7021_MQTT_HA -``` - -Add to `lib_deps` in platformio.ini: - -``` - adafruit/Adafruit Si7021 Library @ 1.4.0 - BME280@~3.0.0 -``` # Credits From b187f9427d6920f9510cae35b36bce5ee2d8f9c1 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 14:03:06 +0100 Subject: [PATCH 24/29] use extreme_partitions --- usermods/platformio_override.usermods.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/usermods/platformio_override.usermods.ini b/usermods/platformio_override.usermods.ini index 3bd3ca6a4..84e56bcd1 100644 --- a/usermods/platformio_override.usermods.ini +++ b/usermods/platformio_override.usermods.ini @@ -4,19 +4,27 @@ default_envs = usermods_esp32, usermods_esp32c3, usermods_esp32s2, usermods_esp3 [env:usermods_esp32] extends = env:esp32dev_V4 custom_usermods = ${usermods.custom_usermods} +board_build.partitions = ${esp32.extreme_partitions} ; We're gonna need a bigger boat + [env:usermods_esp32c3] extends = env:esp32c3dev board = esp32-c3-devkitm-1 custom_usermods = ${usermods.custom_usermods} +board_build.partitions = ${esp32.extreme_partitions} ; We're gonna need a bigger boat + [env:usermods_esp32s2] extends = env:lolin_s2_mini custom_usermods = ${usermods.custom_usermods} +board_build.partitions = ${esp32.extreme_partitions} ; We're gonna need a bigger boat + [env:usermods_esp32s3] extends = env:esp32s3dev_16MB_opi custom_usermods = ${usermods.custom_usermods} +board_build.partitions = ${esp32.extreme_partitions} ; We're gonna need a bigger boat + [usermods] From a2e9e2b7d1de92c6f254761f6317113c3a8b99cd Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 14:45:13 +0100 Subject: [PATCH 25/29] Update buzzer to default to 21 if GPIO 32 is not defined --- usermods/buzzer/buzzer.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usermods/buzzer/buzzer.cpp b/usermods/buzzer/buzzer.cpp index 60db08abc..9d62fc20c 100644 --- a/usermods/buzzer/buzzer.cpp +++ b/usermods/buzzer/buzzer.cpp @@ -5,16 +5,17 @@ #define USERMOD_ID_BUZZER 900 #ifndef USERMOD_BUZZER_PIN +#ifdef GPIO_NUM_32 #define USERMOD_BUZZER_PIN GPIO_NUM_32 +#else +#define USERMOD_BUZZER_PIN 21 +#endif #endif /* * Usermods allow you to add own functionality to WLED more easily * See: https://github.com/wled-dev/WLED/wiki/Add-own-functionality * - * Using a usermod: - * 1. Copy the usermod into the sketch folder (same folder as wled00.ino) - * 2. Register the usermod by adding #include "usermod_filename.h" in the top and registerUsermod(new MyUsermodClass()) in the bottom of usermods_list.cpp */ class BuzzerUsermod : public Usermod { From b1ed99dfe69a570a78a8ebde33b26544a5364049 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 14:47:34 +0100 Subject: [PATCH 26/29] Disable BME68X_v2 --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 796f229eb..d3fd1d51d 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -22,7 +22,7 @@ jobs: - name: Get default environments id: envs run: | - echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | jq --slurp -c)" >> $GITHUB_OUTPUT + echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | grep -v BME68X_v2 | jq --slurp -c)" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} From 0ba05877d762fe83aa727e048ee456b42c54bb9d Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 14:47:34 +0100 Subject: [PATCH 27/29] Exclude BME68X_v2 --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index 796f229eb..d3fd1d51d 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -22,7 +22,7 @@ jobs: - name: Get default environments id: envs run: | - echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | jq --slurp -c)" >> $GITHUB_OUTPUT + echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | grep -v BME68X_v2 | jq --slurp -c)" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }} From 9099b13f692275978c8848923f29dd536fa5938a Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 15:11:40 +0100 Subject: [PATCH 28/29] Fix deps for Si7021_MQTT_HA --- usermods/Si7021_MQTT_HA/library.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usermods/Si7021_MQTT_HA/library.json b/usermods/Si7021_MQTT_HA/library.json index 22d9f7dc9..36a930ca5 100644 --- a/usermods/Si7021_MQTT_HA/library.json +++ b/usermods/Si7021_MQTT_HA/library.json @@ -4,6 +4,7 @@ "dependencies": { "finitespace/BME280":"3.0.0", "adafruit/Adafruit Si7021 Library" : "1.5.3", - "SPI":"" + "SPI":"*", + "adafruit/Adafruit BusIO": "1.17.1" } } \ No newline at end of file From e227d01436adaf305d32296f0326cc074ad34af5 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 28 Jun 2025 15:37:24 +0100 Subject: [PATCH 29/29] Exclude pixels_dice_tray until we can limit what the CI builds, respecting the limited platforms - no bluetooth on S2 --- .github/workflows/usermods.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/usermods.yml b/.github/workflows/usermods.yml index d3fd1d51d..a1cd8fbb7 100644 --- a/.github/workflows/usermods.yml +++ b/.github/workflows/usermods.yml @@ -22,7 +22,7 @@ jobs: - name: Get default environments id: envs run: | - echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | grep -v BME68X_v2 | jq --slurp -c)" >> $GITHUB_OUTPUT + echo "usermods=$(find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | jq -R | grep -v PWM_fan | grep -v BME68X_v2| grep -v pixels_dice_tray | jq --slurp -c)" >> $GITHUB_OUTPUT outputs: usermods: ${{ steps.envs.outputs.usermods }}