Skip to content

Below are the ongoing updates in WLEDMM which has not made it to a release yet (Next major release will be v0.14.3-b32)

MoonModules v0.14.3-b32 (work in progress)

Info Page improvements

May 4th, 2024

System information in the "Info" panel re-organized, and PSRAM statistics added.

new INFO Panel

By @softhack007

Lots of bugfix back-porting from upstream

ongoing, 2024

Due to technical incompatibilities to latest upstream source code, WLEDMM is still building on the WLED core from summer 2023 (long story...). We have however made an effort to analyze bugfixes from upstream until version 0.14.3, and brought them into WLED-MM if possible. We also pack-ported a few features from upstream 0.15.0-beta.

by @softhack007

Updated DMX Input - now with RDM support

Feb 10th, 2024

The (wired) DMX Input has been given significant rewrite by @arneboe and now supports RDM - NOTE: you will need to re-enter all 3 pins used when you upgrade to this version

by @arneboe

MoonModules v0.14.1-b30

gamma-correct palettes preview

Jan 25th, 2024

old old preview   new new preview

By @softhack007

option to disable sequence checking in sound sync

Jan 5th, 2024

UDP sound sync - sequence checking can be disabled in settings (useful if several units send sound)


By @softhack007

new audio reactive effects (enhancing standard effects)

Dec 31st, 2023

Audio Reactive standard effects - clap your hands - Popcorn ;-)


back-ported from WLED-SR. These "audio enhanced" effects are triggered by sound. Like clapping of hands, music starts, beats, fireworks explosions.

The popcorn audio effect looks particularly great in 2D mode - select 1D-2D mapping "bars").

By @softhack007

build runs-anywhere usermods

Dec 15th, 2023

WLEDMM now allows you to encapsulate your MoonModules specific code like this:

class ShtUsermod : public Usermod
#ifndef _MoonModules_WLED_
    bool enabled = false; // Is usermod enabled or not //WLEDMM not needed - using public attribute of class UserMod

#ifdef _MoonModules_WLED_
    ShtUsermod(const char *name, bool enabled):Usermod(name, enabled) {} //WLEDMM usermod initializer with parameters

void ShtUsermod::setup()
  if (enabled) {

#ifdef _MoonModules_WLED_
    if ((i2c_sda >= 0) && (i2c_scl >= 0) && pinManager.joinWire(i2c_sda, i2c_scl)) {   // WLEDMM pin management done by pinManager.joinWire()
      pinAllocDone = true;
    } else {
      USER_PRINTF("[%s] SHT pin allocation failed!\n", _name);                       // WLEDMM using USER_PRINTF for important messages
    PinManagerPinType pins[2] = { { i2c_sda, true }, { i2c_scl, true } };
    if (i2c_sda < 0 || i2c_scl < 0 || !pinManager.allocateMultiplePins(pins, 2, PinOwner::HW_I2C)) {    
      DEBUG_PRINTF("[%s] SHT pin allocation failed!\n", _name);
    } else pinAllocDone = true;
  initDone = true;

By @softhack007

UDP Sound Sync improvements

December 2023

Latency reduced drasticially

Latency from microphone to receiving sound on the remode unit has been optimized drasticially. Previously the average delay was 30-60ms. With our optimized code, UDP packets are sent out directly when new samples arrive from the driver, resulting in average delay of 10-25ms.

By @softhack007

New UDP sync mode "Receive or Local"

Acts like "Receive", however automaticially falls back to local whenever the UDP stream is missing.


image Local input when sender is missing.

image Automatic switch-over to network sound.

By @softhack007

UDP sound sequence checking (framecounter)

UDP transport itself does neither guarantee delivery nor sequence.

Leveraging on a previously unused byte in the UDP sound sync format, WLED-MM now checks that a newly received sound sample is "in sequence". Too-late packets will be dropped, leading to smoother animations.

By @netmindz

Presets name and default checkboxes

Nov 23st, 2023

Default name of new preset now includes the icons (cause it's nice to know if a preset is sound reactive or not) Preset checkboxes have now default of last set values (cause it's handy of you don't want to save brightness it is not saved in next preset save as well)

By @ewowi

Super Sync

October 15, 2023 By @ewowi

Super Sync runs one effect on multiple instances allowing for higher framerates as each instance runs only part of the effect.


The nodes tab shows more info per instance, info which is needed for SuperSync.

SuperSync takes all the panels in the 2D config setup and each panel will be setup on a different node.

  • Master node is in red
  • Orange: non critical differences with the master node
  • Red: client node is not setup right

  • SuperSync button: for all nodes with a red yes in the SSync column the desired configuration will be send and configured on that node. After pressing SuperSync all nodes should be in the right config

  • SuperSync is work in progress. Some effects run perfect, others not yet. This has mostly to do with the random function giving different values on different instances. Some effects have been adapted to give the same values for random using the same random seeds

Example of setup of supersync on 3x3 = 9 nodes:

WM8978 support for Ohmic Pico DSP

Oct 20st, 2023

Essentially a similar type of chip to the ES8388 - I2S codec configured over I2C. Configured for line-in with pass-thru on the Ohmic ESP32 Pico D4 DSP board:

May not work out of the box with all WM8978 boards because of the vast configuration options in the codec, but could easily be adjusted for various configurations. Not that there's many out there. :)

By @troyhacks

Lots of bugfix back-porting from upstream

Dec 16th, 2023

Due to technical incompatibilities to latest upstream source code, WLEDMM is still building on the WLED core from summer 2023 (long story...). We have however made an effort to analyze bugfixes from upstream until version 0.14.1-beta, and brought them into WLED-MM if possible.

As a user, you get our latest features, combined with various stability improvements and bugfixing made in upstream WLED. Plus all bugfixing and improvements of MM specific features that were created in the last 3 months.

by @softhack007