Releases: MoonModules/WLED-MM
Nightly mdev Build 20260117
Changelog
nightly (2026-01-16)
Implemented enhancements:
- upgrade buildenvs to V4 for "special boards and controlers" #316
Fixed bugs:
- Garbage in nightly build release notes #318
Merged pull requests:
- Fix URL-encoded changelog in nightly release notes #319 (Copilot)
- Automate nightly build VERSION from build date, update Changelog generator to v2.4 #317 (Copilot)
* This Changelog was automatically generated by github_changelog_generator
WLED-MM v14.7.1
Happy New Year! 🥂
I hope you had a great holiday, spending time with your loved ones. We're starting into 2026 with a bunch of bug fixes and improvements for WLED-MM that we've been working on over the last year. As always, our goal is to deliver the best experience on exciting hardware, especially HUB75 and large audioreactive LED installations. The HUB75 rig I'm using at the moment is a 192x64 matrix (3 chained 64x64 modules), powered by an ESP32-S3 with PSRAM and 16MB flash memory (MoonHub adapter by @lost-hope). In most effects, WLED-MM is able to deliver solid 25-45fps on this setup, even when receiving a real-time DDP stream.
We've made network protocols like DDP and Art-Net more stable and perform better. And Audioreactive has become better again. Scrolling text made the first baby steps towards supporting multi-language and unicode letters in PR #282. Many WS2812b LEDs are now working flicker-free thanks to a new RMT driver by @willmmiles in PR #308. Particle-FX from upstream are integrated into WLED-MM now (thanks @DedeHai).
Finally, we're saying goodbye to 8266 with this release. The code still compiles for 8266, but there was hardly any testing on 8266 boards.
Our firmware builds now default to the newer "V4" Espressif framework. We suggest using "V4" builds on classic esp32; esp32-S3/-S2/-C3 were always using "V4" so all our builds are now based in the same framework. If you're having problems updating your esp32 from upstream WLED 0.15, try the "ESP32_compat" build. It has fewer features and lower performance, but it's meant to be OTA compatible with upstream 0.15.x.
Highlights
- Realtime Mode (DDP, Art-Net, etc) stability and performance improvements
- New Particle-FX (upstream backport)
- GIF Player image effect and PixelForge tool (upstream 0.16 backport)
- flicker-free LEDs driver for esp32 and esp32-S3 (upstream 0.15.4 backport, "V4" builds only)
- No more corrupted presets!
- effect improvements and speedups for large fixtures
- Audioreactive sound sync: reduced latency, better handling of datastream
- Moved to newer "V4" framework for improved stability and better performance
what's the difference to Aircoookie/WLED ?
WLED-MM is a fork that concentrates on supporting large installs and advanced audio analysis. We also use our fork for trying new ideas, that may later become part of WLED upstream. Due to chip capabilities, we mainly use "classic" esp32 and ESP32-S3 with PSRAM, or esp32-s2 for smaller setups. Esp32-C3 is supported however usually we don't spend time optimizing for it.
If you have an esp32-P4 board, you might want to try the high-performance ESP32-P4 fork by @troyhacks.
We work closely with upstream WLED developers, and our ultimate goal is for all WLED-MM improvements to be included in future releases of WLED.
Firmware binaries:
firmware images for common boards are included in the "Assets" section - click on "show all assets" to see them all (~31 files). Please be aware that boards with 4MB flash will have some features disabled due to flash size limits. A detailed list of "what's included in each build" is in work 😅, and will be added here once it's done.
What's Next
Our current feature / bugfix plans for the next two releases are here:
What's Changed (PRs)
Audioreactive
- Fixes for ES8311 auto level control by @troyhacks in #208
- ES8311 Init Fix by @troyhacks in #257
- Fix AutoPlaylist race condition with AutoChange preset applications by @Copilot in #264
- receiveAudioData() process latest packet only by @troyhacks in #231
- AR Sound receive: better management of outdated packets by @softhack007 in #314
Effects
- Full "high ASCII" support for scrolling text by @softhack007 in #282
- Adding Particle System (port from AC) by @DedeHai in #237
- bugfix for very low brightness in PS FX by @DedeHai in #252
- ParticleFX: adding fixes and improvements from AC by @DedeHai in #276
- GIF Playback by @netmindz in #226
- gifdecoder bugfixes, up to 30% speedup, and minor improvements by @softhack007 and @DedeHai in #279
- Pixelforge backport, UI stability improvements, speedup for UDP real-time receiving by @softhack007 in #293
Optimizations and Bugfixes
- RMTHI High-priority Interrupt driver - solves flickering problems on esp32, esp32-S2 and esp32-S3 by @willmmiles in #308
- Bus level setPixelColor and getPixelColor optimizations by @softhack007 in #269
- disable SPC optimizations when outputs overlap (solves #296) by @softhack007 in #315
- Art-Net Improvements and Other Fixes by @troyhacks in #236
- Ethernet Fixes IDFv4 by @troyhacks in #230
Build Environment and Tools
- Implement conditional ARDUINO_USB_MODE: dev=1, release=removed for USB-OTG boards with production warnings by @Copilot in #263
- Mdev v4 only by @netmindz in #244
- esp32_4MB_V4_S_eth by @SpecOp6 in #217
- esp32_4MB_V4_S_eth by @netmindz in #213
- Add deviceId by @netmindz in #284
- Upgrade reporting by @netmindz in #286
- Backport version reporting (PR wled#5093 and wled#5111) to 0.15.x by @netmindz in wled#5126
- Repo info by @netmindz in #313
- 404 mystery (implements #288) by @softhack007 in #289
From Upstream WLED
- Add correct pin availability for ESP32 Mini modules by @ladyada in wled#4450
- bugfix: do not reset segments if unchanged by @DedeHai in wled#4969
- Add must-revalidate to Cache-Control header and use WEB_BUILD_TIME for ETag to fix stale UI after firmware updates in wled#5120
- Adding Shimmer FX by @DedeHai in wled#4923
- Adding perlin noise replacement for fastled functions by @DedeHai in wled#4594
- improved & refactored Android FX by @DedeHai in wled#4522
- Update to distortionwave FX by @DedeHai in wled#4693
- Soap FX optimization by @DedeHai in wled#4543
- Add segment checkmarks to differs check by @blazoncek in wled#5031
- Random colors via JSON API in Segment object like "col":["r","r","r"] by @AlexeyMal in wled#4996
- Add Gledopto Series With Ethernet by @Aogu181 in wled#5156
- Adding DDP over WS by @DedeHai in wled#4997
Full Changelog: v14.5.0-beta...v14.7.1
WLED-MM v14.5.0 with HUB75 support
We're thrilled to bring you a new release of our latest MoonModules WLED, perfect for your holiday projects!
Apart from technical changes:
- We changed our versioning scheme - you will notice that this release is not
0.14.4-b34but14.5.0-beta(we basically skipped the leading0.) - Licensing changed from GPLv3 to EUPL-1.2 (to align with upstream WLED licensing)
- Just a heads-up: ESP8266 support is being phased out with this release, and it might be removed in the next release.
A few new features didn't make it in time and will be added soon with a new release - see "Known Limitations and upcoming enhancements" 😃.
Firmware binaries:
firmware images for common boards are included in the "Assets" section.
News
New/Improved Effects:
- 3D GEQ
- Snow Fall
- Enhanced Game-of-Life
- audio reactive Paintbrush effect
- audio reactive Comet effect
- GEQ "flat mode" for 1D stripes
- DNA option "phases" (thanks @ewoudwijma)
- Octopus option "radial wave"
- Improved accuracy in many effects (thanks to @DedeHai wled#4181)
New features:
- Improved HUB75 support - faster, better colour accuracy, reduced memory requirements
- Significantly speeded up all effects functions - a 128x64 HUB75 setup (esp32-S3 with PSRAM) can now achieve stable 40fps or more!
- Effects bugfixes to make them look great on large panels
- 2D effects support more than 255 pixels width/height (i.e. x or y dimension)
- 6 months worth of bug fixes
- AC101 and ES8311 audio support
- Improved support for professional Art-Net equipment
- many audio reactive improvements
Known Limitations and upcoming enhancements
The following features and bugfixes are still pending:
- New 1D->2D mapping mode "Waterfall" is still in work (will be awesome 😀 when its finished)
- currently you can't use "custom bus start indices" (LED settings) to mirror outputs. A fix is in work.
- HUB75 setup: currently all your HUB75 panels are put into one horizontal row (i.e. a chain of 4 panels 32x32 => 128x32)
- HUB75 settings need more panel driver options (chipset, panel layout).
what's the difference to Aircoookie/WLED ?
WLED-MM is a fork that concentrates on supporting large installs and advanced audio analysis. We also use our fork for trying new ideas, that may later become part of WLED upstream. Due to chip capabilities, we mainly use "classic" esp32 and ESP32-S3 with PSRAM, or esp32-s2 for smaller setups. Esp8266 and Esp32-c3 are supported however usually we don't spend time optimizing for them.
WLED-MM will continue to follow WLED upstream ("AC WLED") where we focus on cherry-picking the best and stable features.
Current status is:
- Bugfixes: close to AC 0.15.0 (including UI stability improvements)
- Features: slightly behind 0.14.4 (missing: latest LED drivers, improved effect crossfading, simple UI, reverse proxy support)
- Audio: many unique enhancements -> 2 years ahead of AC WLED.
- Many effects can run much faster, compared to standard AC WLED.
- Improved stability with large fixtures
- You can use very large LED maps without running into low memory problems
- Some unique features - like HUB75 support, DMX input, MM specific usermods, better LEDs preview, better support for advanced audio and lighting equipment.
What's Changed
- Change to EUPL-1.2 License by @softhack007 in #170
- Art-Net Improvements v2 by @troyhacks in #179
- Full audio fastpath (part2) by @softhack007 in #141
- AC101 audio support by @troyhacks in #144
- 3D GEQ by @troyhacks in #143
- 2D Audio Reactive Paintbrush Effect by @troyhacks in #154
- ESP32 Dual Booting by @troyhacks in #157
- Add support for HD-WF2 by @netmindz in #158
- HUB75 PSRAM Buffers by @troyhacks in #163
- 2D Effect Snow Fall by @Brandon502 in #147
- Expand1D Arc - No holes by @Brandon502 in #171
- Improved framerate control code - strip.show(), strip.service() by @softhack007 in #176
- T7-S3 (LILYGO / TTGO) with MOONHUB by @softhack007 in #177
- Game of Life Optimizations by @Brandon502 in #149 and #181
- audio reactive comet effect (from WLED-SR) by @softhack007 in #199
- ES8311 Support by @troyhacks in #168
- Cosmetic 2D Setup change: Start at Panel 1 instead of 0 by @troyhacks in #201
Full Changelog: v0.14.1-beta.32...v14.5.0-beta
WLED-MM v0.14.1-b32
This is a maintenance release for -b30, with some new features and lots of bug-fixes.
what's the difference to Aircoookie/WLED ?
WLED-MM is a fork that concentrates on supporting large installs and advanced audio analysis. We also use our fork for trying new ideas, that may later become part of WLED upstream. Due to chip capabilities, we mainly use "classic" esp32 and ESP32-S3 with PSRAM, or esp32-s2 for smaller setups. Esp8266 and Esp32-c3 are supported however usually we don't spend time optimizing for them.
WLED-MM will continue to follow WLED upstream ("AC WLED") where we focus on cherry-picking the best and stable features.
Current status is:
- Bugfixes: close to AC 0.15 (including UI stability improvements)
- Features: slightly behind 0.14.4 (missing: latest LED drivers, improved effect crossfading, simple UI, reverse proxy support)
- Audio: many unique enhancements - 2 years ahead of AC WLED.
- Effect speed: up to 50% higher fps
- Improved stability with large fixtures
- Some unique features - like HUB75 support, DMX input, MM specific usermods, better LEDs preview, better support for advanced audio and lighting equipments.
News (MM specific)
effects
- internal effect framework optimisations by @softhack007
- several effect bugfixes
- blur function speedup by @DedeHai (wled#3904) ported to WLED-MM by @softhack007
- up to 60% higher frame rates, especially with many output pins by @softhack007
- New expand1D effect PinWheel by @Brandon502 in #118
- Game of Life Rework by @Brandon502 in #120 and #133
- preview: better handling of RGBW color (avoids white-out)
- reduced LED glitches during WiFi activity or flash memory access
- pause LED updates during OTA - prevents electrical problems due to uncontrolled flickering
audioreactive
- UDP sound sync: reduced latency, added soundPressure
- audioreactive bugfixes and speed optimizations
- Settings to reject WM8978 mic noise during line-in use. by @troyhacks in #115
- WLEDMM_SLOWPATH: optimizations for large fixtures by @troyhacks in #131
- New Usermod - Auto Playlist by @troyhacks and @netmindz in #124
- analyzes the music, and tries to change presets "at the best moment"
misc
- DMX input with rdm support by @arneboe and @netmindz in #64, #111
- (experimental) Hub75 output by @netmindz in #108 https://mm.kno.wled.ge/2D/HUB75/
- currently uses hard-coded pins for a few boards we had at hand, especially Adafruit Matrix Portal S3
- up to 8 connections in AP mode (instead of 4)
- better error messages in UI (JSON buffer errors, low memory situations)
- better use of PSRAM, keeping more RAM available for WLEDMM
- Info page cleanup: RAM and Flash utilisation in percent; added PSRAM and Flash size and speed, clean-up of duplicate information.
- new MM build for esp32-S3 with 4MB flash
- new MM build for esp32-C3 with 2MB flash (OTA not possible, because flash size is too small)
Other important bugfixes
- webServer stabilizations and optimizations (backported from upstream 0.15) - special thanks to @willmmiles for debugging and improving ESPAsyncWebServer v2.2.1 👍
- Palette handling optimizations by @blazoncek, backporting from upstream 0.15 by @softhack007
- Multiple analog button fix (wled#3549)
- JSON API bugfixes (wled#3589, wled#3605)
- preset saving bugfixes (wled#3382, wled#3312)
- ESP-Now: support for wizmote smart buttons
- gamma correction for custom palettes (#126)
New Contributors
- @Brandon502 made their first contribution in #118
Full Changelog: v0.14.1-beta.30...v0.14.1-beta.32
What's the right firmware for my device?
For beginners: it depends on your board ("MCU variant"), and on flash size:
- ESP32, 4MB Flash: WLEDMM_0.14.1-b32.40_esp32_4MB_M.bin (standard) or WLEDMM_0.14.1-b32.40_esp32_4MB_S.bin (optimised for speed)
- ESP32, 4MB Flash, Ethernet: WLEDMM_0.14.1-b32.40_esp32_4MB_M_eth.bin
- ESP32, 16MB Flash: WLEDMM_0.14.1-b32.40_esp32_16MB_M.bin (standard) or WLEDMM_0.14.1-b32.40_esp32_16MB_V4_S.bin (optimised for speed)
- ESP32-S2, 4MB Flash: WLEDMM_0.14.1-b32.40_esp32s2_PSRAM_M.bin
- ESP32-S3, 4MB Flash: WLEDMM_0.14.1-b32.40_esp32S3_4MB_PSRAM_M.bin
- ESP32-S3, 8MB Flash: WLEDMM_0.14.1-b32.40_esp32S3_8MB_S.bin
- ESP32-C3, 4MB Flash: WLEDMM_0.14.1-b32.40_esp32c3dev_4MB_M.bin
- ESP8266, 2MB Flash: WLEDMM_0.14.1-b32.40_esp8266_2MB_S.bin
- ESP8266, 4MB Flash: WLEDMM_0.14.1-b32.40_esp8266_4MB_M.bin
For intermediate users: we have a few more binaries for commonly used LED shields
- ESP32 on "Wemos shield", 4MB Flash: WLEDMM_0.14.1-b32.40_wemos_shield_esp32_4MB_M.bin
- ESP32 on "Wemos shield", 16MB Flash: WLEDMM_0.14.1-b32.40_wemos_shield_esp32_16MB_ICS4343x_XL.bin
- ESP32-PICO board: WLEDMM_0.14.1-b32.40_esp32_pico_4MB_M.bin
- ESP32 "athom music controler": WLEDMM_0.14.1-b32.40_athom_music_esp32_4MB_M.bin
- ABC WLED controller v4.3 (esp32, 4MB): WLEDMM_0.14.1-b32.40_abc_wled_controller_v43_M.bin
- Adafruit MatrixPortal -S3, with HUB75 support: WLEDMM_0.14.1-b32.40_adafruit_matrixportal_esp32s3.bin
For experts: we have firmware binaries for specific needs and special boards
WLED-MM v0.14.1-b30
This is a maintenance release for -b29, including relevant bugfixes from upstream up to 0.14.1.
News (MM specific)
- palettes preview with gamma corrections. Palettes on screen are now much closer to how it looks on your LEDs: example
- bugfix: "segment off" button is finally(!) working (#90)
- Bugfix for sound sync "Receive or Local" mode - avoid that local samples sneak in between network sound packets
- some speed optimizations
Other important bugfixes
- Fix for UI crashes with many segments or frequent JSON requests (wled#3648)
- Fixing a crash when Streaming LEDs over UDP (wled#3672)
Full Changelog: v0.14.0-beta.29...v0.14.1-beta.30
WLED-MM v0.14.0-b29
This release provides a critical bugfix (#104 random crashes when "use global LED buffer" is enabled). In addition, several bugfixes from upstream and a few MM specific enhancements are included in this version.
New MM features
- UDP sound sync - sequence checking can be disabled in settings (useful if several units send sound)
- Audio Reactive effects: enhanced versions of "Fireworks", "Fireworks Starburst", "Popcorn" (#103) - back-ported from WLED-SR. These "audio enhanced" effects are triggered by sound. Like clapping of hands, music starts, beats, fireworks explosions.
- MM build environment for ESP32-C3 Mini/Zero/SuperMini (#101, #102)
What else?
Our 4MB "XL" build has (again) hit the flash size limit, so we had to remove two usermods (buzzer, sn_photoresistor). If you want to run "XL" builds, our suggestion is to use a board with 16MB flash, like this ESP32 WROOM32E 16MB.
Full Changelog: v0.14.0-beta.28...v0.14.0-beta.29
WLED-MM v0.14.0-b28
News since previous release: Release notes v0.14.0-b28
This release collects 4 month worth of new features, enhancements and bug fixing. Special thanks go to our friends from upstream (@blazoncek in particular), who improved and stabilised the WLED core a lot. And - last not least - thanks to all direct MM contributors for enhancements and features created especially for the MoonModules WED fork.
New MM features:
New MM features are described in detail in our Release notes v0.14.0-b28.
effects, 2D, UI
- deterministic effects (by @ewoudwijma, @troyhacks, @netmindz) in #72
- supersync mode - run effects in parallel on serveral devices, in perfect sync (by @ewoudwijma, @troyhacks)
- "Party Jerk" - a JBL partybox-like soundreactive effect by @tonyxforce in #67
- Fix return value (frameDelay) of FX_MODE_STATIC by @arneboe in #73
- animartix update (all rgb data set for every effect) by @netmindz in #83
- Fixes for animated staircase usermod by @troyhacks in #95, #96, #97
audio
- audio latency reduced, both locally and when using UDP sound sync (by @softhack007)
- Audio sync framecounter by @netmindz in #76
-
- note: please make sure to only have one sender for each UDP soundsync port
- New Audio sync mode "Receive or Local" - automatically falls back to local microphone when no sender is in the network (by @softhack007)
- WM8978 support for Ohmic Pico DSP, etc. by @troyhacks in #84
- esp32: 9 LED pins with audioreactive
build system and other
- Speed up builds by caching build_cache by @netmindz in #66
- PlatformIO upgrade - align with upstream platformio.ini in #93
- json/info: brand and product configurable by compile variables (by @ewoudwijma and @Moustachauve)
- PlatformIO buildenv for abc_wled_controller_v43_S from MyHome-Control.de
- Add Ethernet type: Olimex ESP32 Gateway
- WLEDMM now has
#define _MoonModules_WLED_that can be checked in usermods, to create "runs anywhere" mods
New features from upstream
The full list of upstream changes brought into our fork is here.
MM specific bugs solved
- Battery auto-off enabled by default #92
- ES8388 AIThinker - broken #61
- animartix weird colors in some effects #82
Bugfixes from upstream
Full List
Full Changelog: v0.14.0.b27...v0.14.0-beta.28
WLED-MM v0.14.0-b27
New since previous release: Release notes v0.14.0-b27
New MM features:
- experimental: 8266 support for UDP sound sync. Audioreactive effects on 8266 can now receive sound from an esp32 ! (https://youtu.be/2Bct_Q7fzTE) (https://youtu.be/9K6dRoxzNQk)
- Add Ethernet build for esp32 4MB
- experimental: preview with gamma correction
- CI: "_S" versions (optimised for speed) added to nightly builds
New features from upstream
- Add send and receive groups to json api (wled#3317)
MM specific bugs solved
- fix for 8266 network connectivity problems (esp8266 was unusable since -b25)
- fix usermod pin conflicts in pico board buildenv
- fix I2C related code in ES8388 and ES7243 sound input drivers
Bugfixes from upstream
Full Changelog:
WLED-MM v0.14.0-b26
This is a bugfix release for the previous -b25
New since previous release: Release notes v0.14.0-b26
Bugs solved
- fix for effects that were much too dim, due to missing setUpLeds()
- workaround for spurious "assertion crashes" in wifi core (may help with pico boards)
- Fix palette preview of Audio Responsive Ramp
- minor effect bugfixes and speedups
- reverts some over-optimizations from fastpath
New features:
- some _S builds compiled for speed (see release notes)
- experimental support for ESP-NOW remotes (see wled#3237 )
- improvements for ESP32-S3 with "opi" (octal) PSRAM
- "Major Peak" frequency according to human hearing (breaking! frequency responsive effects will look better)
Full Changelog: v0.14.0.b25...v0.14.0.b26
WLED-MM v0.14.0-b25
WLED AC 0.14.0-b2 daily build of June 2, 2023
plus
New since previous release:
Notes
- Using bin aware bins, see Assets, choose the one which matches your hardware. If not sure, take WLEDMM_0.14.0-b25_ESP32_M.bin
- This WLED MM release is based on latest stable dev of WLED AC (June 2, 2023). As WLED AC is undergoing a lot of changes, MoonModules built in a longer delay then normal to keep up with upstream until latest upstream is well tested
What's Changed
- WiP - ES8388 by @netmindz in #5
- ES8388 init optimizations and fixes by @troyhacks in #30
- Dmx input esp dmx by @netmindz in #28
- "Unfixing" an optimization to the Art-Net header by @troyhacks in #34
- Audio palette updates by @netmindz in #16
- DDP Transmit RGBW Fix by @troyhacks in #35
- Fix invalid environment error in PlatformIO by @Fonta in #36
- Update FX.cpp by @netmindz in #37
- ES8388 LyraT Fixes by @troyhacks in #39
- Update ANIMartRIX usermod to use 0.42.Beta by @netmindz in #46
- Heap debug via WLED_DEBUG_HEAP by @troyhacks and @softhack007 in #50
- ARTIFX add support for pixelart + small changes by @ewoudwijma
in cae1c00 - Animartrix updates by @netmindz in #55
- WiP -Audio fastpath by @softhack007 and @netmindz in #40
New Contributors
Full Changelog: v0.14.0.b15...v0.14.0.b25