Skip to content

WLED (upstream): monthly activity digest

What landed on wled/WLED's main branch, month by month. External-context reference, a factual log of a friend repo's releases, not MoonLight's own history or roadmap. Newest month on top. The reusable prompt that generates these lives in index.md.

Months are not split at release dates: upstream WLED cuts releases from separate release branches (0_15, 16_x), so the version tags aren't on main, main is the development trunk that feeds future releases. Each month notes which release shipped, as context.

October 2026

A fuller month on main than September: three new 2D effects, a palette, reworked segment transitions and the audio usermod on the V5 framework.

No versioned release in October: v16.0.1 (2026-07-07, from a release branch) is still the latest, so the month is not split. Nightly builds stay off while main migrates frameworks (#5880).

New

  • A 2D Analog Clock effect with hour, minute and optional second hands from local time, bringing antialiased line and circle drawing with it (#3943, open since 2024).
  • A 2D Perlinscape effect in the user_fx usermod: a Perlin noise landscape with sliders for speed, zoom, X and Y stretch, and rotation (#5587).
  • A 2D Jack-o-Lantern effect in user_fx: a carved pumpkin whose candle flickers and whose mouth follows the microphone volume, with an idle animation when there is no audio (#5917).
  • A Fireworks palette, sorted in rainbow order with slight gradients per color (#5910).
  • Segment transitions are reworked: opacity and CCT changes now fade in every transition style instead of jumping, a swipe in progress carries through while a second change degrades to a fade, global and per-segment fades run alongside spatial transitions, and on/off transitions take priority (#5729).
  • The AudioReactive usermod runs on the V5 (ESP-IDF 5) framework on every ESP32 variant: I2S uses the new API, and analog microphones now work on all variants through a shared ADC manager that samples in the background and pauses for about a millisecond when another usermod (analog button, battery) reads a pin (#5764, #5773).
  • HUB75 output uses the global buffer, saving RAM and running faster; large buffers now go to PSRAM so a 128x128 panel fits on an ESP32-S3, and an off-by-one that stopped MAX_LEDS from being reached is fixed (#5744).
  • The Arc Expand mapping gets a new algorithm that closes holes on wide matrices and nearly doubles the frame rate (45 to 80 FPS on a 64x32 HUB75 build) (#4994).
  • Flash use drops by about 4 KB on classic ESP32 through shared settings helpers, about 1 KB by removing implicit double floats, and about 3 KB by using powf() instead of pow() for color temperature (#5927, #5925, #5899).
  • CI now builds a set of HUB75 environments.

Fixed

  • Security: a playlist posted with an empty transition array caused an out-of-bounds read; fixed per advisory GHSA-rrjq-j36x-xrpq (medium) (#5909).
  • 2D effects on panels 128 pixels wide and up: DNA Spiral no longer freezes, Crazy Bee keeps its bees on track (and allows eight), Colored Bursts and Rotozoomer use the full panel, Polar Light scales to large fixtures, Sun Radiation's undefined byte to int8_t casts are gone, and GEQ peak indicators stay within the display (#5908, from #5903).
  • Plasma Ball draws correctly on non-square segments, wobbles less on large panels, and runs up to 40 percent faster (#5907).
  • color_fade(), used for global brightness scaling, gave coarser steps than needed in the video path; fixed with fewer branches, and marked for backport to 16_x (#5897).
  • At boot the output buses are blanked directly instead of running a full show(), so usermod overlays are no longer called before setup; the show callback hook is removed (#5933).
  • The Fireworks palette is aligned with the 16 palette slots.
  • The preset Quick Load button no longer misaligns with wide, CJK or emoji labels (#5886).
  • The removed WizLights usermod gets a README pointing to its new repository (#5892).

Fixed (reported by users)

  • The segment power toggle is shown again when the only segment is off at full brightness, so the strip can be switched back on from the web UI (#5913).
  • The ESP32-ETH01 "TypeError" on 0.15.x, open since February 2025, is closed after the fix was cherry-picked to a 0.15.6 beta (#4535).
  • The expired certificate on download.wled.me was renewed within a day (#5938).

Watching

  • UDP sync on ESP32 16.x: the sync master leaks heap on every notification it sends and reboots every 40 minutes or so (#5924, the month's busiest thread), and a master can block itself from receiving further sync packets after rejecting its own broadcast, since WiFiUDP on ESP32 needs an explicit flush (#5929, confirmed).
  • Short or crafted packets can read beyond the buffer in UDP sync (#5942) and in the Art-Net and E1.31 effect modes (#5940); the maintainers are weighing whether to harden every network input against fabricated packets.
  • A partial POST /json/cfg resets unrelated settings such as linked remotes, FPS, auto-white mode, gamma, I2C pins and the 2D setup (#5883).
  • Gravimeter bars turn black at full volume through a uint8_t overflow (#5891, confirmed); the thread notes that casting an out-of-range float to uint8_t is undefined behavior and already misbehaves on the C3.
  • ESP8266 on 16.0.1 with audio reactive runs out of RAM ("No Ram for Buffer") and drops to a solid color; the reporter went back to 0.15.4 (#5931).
  • Nightly builds have been disabled on purpose since July because main is not stable enough during the ESP-IDF 5.5 and arduino-esp32 3.x migration, with flicker and crashes on multiple outputs still open (#5880).
  • A proposal to transform sRGB into LED RGB "Hue-like" through XYZ color space (#5934); a maintainer is reading up on the color theory before deciding.
  • Feature requests include native UCS2904 RGBW support (#5887), Matter over Thread (#5941, marked backburner), and OTA pushes from other subnets (#5926).
  • The "Version 17 - key features" issue (#5867) did not move in October (last update 2026-09-27, five comments).

Checked: 59 commits on main with author-date 2026-10-01..2026-10-31 via git log --first-parent origin/main (59 by committer date too; newest fce41f26, oldest acde35a4). Issues via search/issues for repo:wled/WLED+is:issue+created:2026-10-01..2026-10-31 (20 opened) and repo:wled/WLED+is:issue+closed:2026-10-01..2026-10-31 (7 closed); only user-facing ones surfaced. No versioned release published in October 2026 (repos/wled/WLED/releases; the v16.0.1 tag is not an ancestor of main), so no month split. The CONTRIBUTING.md, AGENTS.md and .coderabbit.yaml edits (AI attribution, CodeRabbit interaction, PSRAM, I2C and SPI, usermod security guidance) and the dependabot bumps are omitted.

September 2026

A modest month on main: new effect and usermod options, a handful of preset, WiFi and Ethernet fixes, and many maintainer updates on how AI-assisted contributions are handled. No versioned release was published in September (v16.0.1, 2026-07-07, is the latest, cut from a release branch), so the month is not split.

New

  • Sparse LED maps can now be followed by a trailing strip, a request open since early 2026 (#5529, #5745).
  • A new "Dissolve Plus" user effect extends Dissolve with separate fill speed, a "last one stays lit" mode, and a fade rate.
  • The timers page gets a "remove" button for each timer.
  • The relay's post-switching delay is now a setting instead of a fixed value.
  • HUB75 gains a pinout for the Seengreat RGB Matrix HUB75 S3 board.
  • The WizLights usermod supports controlling each light individually, and then moves out of the main tree.
  • The SD card usermod's SPI setup is adjusted to work on ESP32-S3.
  • The log warns when more effects are registered than the effect list can hold (#5827).

Fixed

  • HUB75 matrices of 128x128 are handled correctly and a divide-by-zero in the automatic brightness limiter is gone (#5826).
  • The active preset is no longer cleared by JSON requests that arrive during a brightness transition (#5856).
  • The device now reconnects when the access-point name changes, and no longer restarts the AP when the name is unchanged after saving WiFi settings (#5866).
  • A crash when comparing Ethernet IP addresses before an address exists is fixed (#5796).
  • The Stream effect misbehaved after about an hour at its highest speed (a 32-bit versus 16-bit comparison) and is fixed (#5739).
  • Audio-reactive documentation now correctly lists the volume value as an integer, not a float.

Fixed (reported by users)

  • Peek preview no longer shows as 32x32 on a 64x64 matrix (#5852).
  • The MQTT topic length limit is raised (#5854).
  • Uploading cfg.json and presets.json through PlatformIO's filesystem image upload works (#5839).
  • Several long-running reports were closed: ESP8266 Wemos D1 mini unable to join the router on 14.1 (#3690), the "WLED-AP" network not appearing on NodeMCU (#5100), flicker on the second output (#2268), and Alexa sync problems on 0.15.1 (#4875).

Watching

  • A maintainer's "Version 17 - key features" issue (#5867) lists the topics proposed for the next major version: a realtime review, a new audio-reactive model, the LED bus, and a new settings UI.
  • The Presets UI sorting and the Time Controlled Presets dropdowns are both reported as confusing or empty on some devices (#5841, #5840, #5836).
  • ESP-NOW toggling freezes the CPU on 16.0 after the peer list is populated (#5871).
  • Ethernet DHCP hostname sometimes advertises as "tasmota" after upgrading to 16.x (#5831).
  • Feature requests include a Morse SOS effect (#5876), applying a preset to one segment via the JSON API (#5868), I2C LED drivers (#5865), and AirPlay 2 for audio reactive (#5842).
  • WS2805 RGBCCT strips flicker at specific brightness and color combinations (#5877).

Auditability: 35 commits on main with author-date 2026-09-01..2026-09-30 via git log --first-parent origin/main (37 by committer date; newest 35948831, oldest f49e541c). Issues via search/issues for repo:wled/WLED+is:issue+created:2026-09-01..2026-09-30 (21 opened) and repo:wled/WLED+is:issue+closed:2026-09-01..2026-09-30 (24 closed); only user-facing ones surfaced. No versioned release published in September 2026 (repos/wled/WLED/releases; the v16.0.1 tag is not an ancestor of main), so no month split. Contributor-guide, agent-instruction and template edits, the netmindz and willmmiles internal refactors, and dependency pins are omitted.

August 2026

A quieter, consolidation month on main after July's V5 platform switch: the toolchain moved forward again, drawing and segment bugs got fixed, and a set of long-open field reports were finally closed. No versioned release was published in August, so the month is not split.

New

  • Trunk builds move to ESP-IDF 5.5.4, and the ESP32-C5 target now builds on the same platform as the rest (its NTP workaround is gone, so time settings behave normally there).
  • The Waveshare ESP32-S3 HUB75 build gains the SHTC3 v2 temperature and humidity sensor usermod.
  • Effects can now load palettes from their own code, so an effect can pick or cycle palettes itself.

Fixed

  • Circle drawing is more accurate: outlines no longer come out slightly flat, and filled circles are rounder.
  • Renaming a segment while effects are running no longer risks a crash on dual-core ESP32.
  • If the device runs out of memory at startup, it now creates a small default segment instead of showing "no segments" with most controls disabled.
  • Pac-Man is hardened against drawing outside the strip, and ESP8266 gets a smaller DDP send packet so streaming does not fail, plus about 2.5 KB of flash back by dropping unusable GIF code.
  • ESP32 chip revision is reported correctly again on the V5 platform.

Fixed (reported by users)

  • FW1906 strips no longer light the cool-white and warm-white channels on certain solid colors (#5812).
  • The effects list no longer loads incomplete or broken over a slow connection (#5813).
  • Waveshare ESP32-S3-RGB-Matrix HUB75 boards: boot failures (#5776) and swapped green and blue channels (#5815) both resolved.
  • Long-running strip flicker and strobe reports from the 0.15 line were closed out, including the LEDs-flashing-every-10-30-seconds thread (#4805), DRGB realtime strobing (#5512), and the effect jumping to "Copy Segment" (#5506). Also closed: white flash at full brightness before the boot preset loads (#5468), a permanently locked OTA on QuinLED Dig-Uno (#5158), and Gledopto Ethernet dropouts (#5431).

Watching

  • Adding a second LED output crashes on 17.0.0-dev; confirmed and marked major (#5770).
  • Two proposals are gauging community interest: PPP-over-serial as a network transport, turning the USB cable into a full network link (#5811), and a DDP compression extension for low-bandwidth links (#5810), the busiest thread of the month.
  • An RFC proposes rewriting the settings web UI to be schema-driven, generated from the code rather than hand-written HTML (#5792).
  • A WLED-MM backport is proposed upstream: switching DDP, E1.31 and Art-Net output to AsyncUDP for better streaming performance (#5816).
  • A BSSID typed with colons or dashes is silently parsed wrong, so access-point pinning never matches (#5797).

Auditability: 52 commits on main with author-date 2026-08-01..2026-08-31 (range aa98fe4 ... c472e41), via gh api repos/wled/WLED/commits?sha=main&since=2026-08-01T00:00:00Z&until=2026-09-01T00:00:00Z. Issues via search/issues for repo:wled/WLED+is:issue+created:2026-08-01..2026-08-31 (19 opened) and repo:wled/WLED+is:issue+closed:2026-08-01..2026-08-31 (14 closed); only user-facing ones surfaced. No versioned release published in August 2026 (repos/wled/WLED/releases), so no month split. Internal refactors (the netmindz global-state encapsulation series, ~15 commits), CI changes, docs and dependency bumps are omitted.

July 2026

The month main switched to the V5 platform: WLED's trunk moved from the ESP-IDF 4.4 / arduino-esp32 v2 build to ESP-IDF 5.3 / arduino-esp32 v3, and the long-running V5 branch became the development trunk (merged July 19). Maintainers warned publicly that main would be unstable for a while, and the web UI now shows a "development build" banner. v16.0.1 shipped July 7 from a release branch, so the month is not split.

New

  • Trunk builds move to ESP-IDF 5.3 / arduino-esp32 v3, opening the door to the newer chips (ESP32-C5, C6 and P4 build targets ride along).
  • ESP-NOW now uses WLED's own code instead of the QuickESPNow library, faster, and roughly 10 KB more free memory on ESP32 (1.5 KB on ESP8266).
  • New esp32_eth_V4 build for Ethernet boards; ESP32-C6 boards get 4 MB and 8 MB builds.
  • Nightly builds renamed, and the web UI warns when you're running a development build.
  • Audio-reactive now compiles on all the newer chips.

Fixed

  • ESP32-C3 and S3 no longer boot-loop on the new platform (device-ID and audio-reactive builds rescued).
  • Usermod settings: non-pin dropdowns no longer reserve GPIO pins, which was blocking pin choices elsewhere.
  • Several DMX-input crashes and a robustness fix in its configuration; a possible array overrun in the Improv response.
  • ESP8266 minimum build shrank by 1.5 KB; the unmaintained WLED_SAVE_RAM build option was removed.

Watching

  • The loudest thread of the month is #5746, asking the project to do unstable work on a dev branch rather than breaking main.
  • Ethernet users want the WiFi access point to switch off entirely once the wired link is up (#5762).
  • Open v16 field reports: Animated Staircase segments switching instead of fading (#5731), APA102 on GPIO19 misbehaving (#5728), HUB75 color-order options hidden and mostly unimplemented (#5723), and a request for current-limited LED support in the brightness limiter (#5715).

Auditability: 40 first-parent commits on main with author-date 2026-07-01..2026-07-31 (56 including merged sub-commits). Issues via search/issues for repo:wled/WLED+is:issue+created:2026-07-01..2026-07-31 (20 opened) and closed:2026-07-01..2026-07-31 (15 closed); only user-facing ones surfaced. v16.0.1 (2026-07-07) is not an ancestor of main (GitHub compare reports main and v16.0.1 diverged), so no month split.

June 2026

Post-16.0 stabilisation month: no new version tag (v16.0.0 shipped 2026-05-03 off a release branch, so the month is not split), just a steady stream of bugfixes and small additions landing on main.

New

  • HUB75 matrix panels: added a "Seengreat" pinout, plus fixes for 4-scan and chained-panel setups.
  • Renamed the "CW" LED type to "CCT" for clarity when configuring CCT white strips.
  • V5-C6 boards are now covered by the V5 build.

Fixed

  • "Rainbow" and other color-wheel effects no longer mis-drive the white channel on RGBW strips.
  • Restored the pre-16.0 look of several effects that had changed appearance after the 16.0 upgrade (also fixes the DJ Light intensity regression).
  • HUB75: restored missing pixel trails on some 2D effects (Black Hole, Lissajous, Spaceships).
  • Fixed a crash when creating a 2D setup larger than the actual number of LEDs.
  • Fixed LED glitches on long strips with ESP32-C3.
  • Nightlight: brightness now applies correctly, including small transition steps, and no longer resets when set to max brightness.
  • Color no longer jumps when you change it mid-transition; gamma is now applied correctly during realtime/live-data override.
  • Improved boot behavior for boot presets, and "Reset segments" now respects "Make a segment for each output".
  • Fixed a ledmap parser reading past the end of the map, an analog-button reading fix, and a pixel-buffer refresh after changing matrix dimensions.
  • Better brownout detection and extended error codes aligned with WLED-MM.

Watching

  • Discussion opened on switching from plain gamma to an sRGB transfer function for better low-brightness accuracy (#5707), and on improving the Nodes/Instances page (#5711), no shipped outcome yet.
  • Several v16.0 field reports still open: multi-controller sync losing color (#5705), UDP sync failing in AP mode (#5709), and OTA-update trouble on some boards (#5682, #5702).

Auditability: 43 commits on main with author-date 2026-06-01..2026-06-30 (repos/wled/WLED/commits?sha=main, first-line view; a few older-dated cherry-picks appear in-range and were excluded as non-June). Issues via search/issues for repo:wled/WLED created:2026-06-01..2026-06-30 (18 opened) and closed:2026-06-01..2026-06-30 (25 closed); only user-facing ones surfaced. No versioned release published in June (v16.0.0 was 2026-05-03), so no month split.

May 2026

Summarized from 72 first-parent commits on main, 2026-05-01 … 2026-05-31. (Trunk after the v16.0.0 release on May 3; v16 is codenamed "Kagayaki".)

New / boards

  • HUB75: FM6124 driver for 4-scan panels and the 64×64 limit removed on PSRAM boards; new ESP32-S3-without-PSRAM build environments; option to build against the Espressif framework instead of Tasmota.

Fixed / hardened

  • Effects: restored palette wrap in color_wheel() (a regression since 0.15.x), Twinkle fixes, Dissolve "Complete" same-color-as-background fix, gravity audio-reactive top-LED fix.
  • Audio-reactive auto-suspends in realtime modes (but stays on with "use main segment only").
  • DDP and all realtime protocols: relaxed-but-safer header acceptance + bounds checks; Improv/UDP parsing hardened; /reset auth clarified.
  • Auto-migration for legacy sunrise/sunset config; animated-staircase inverted-PIR support.

April 2026

Summarized from 67 first-parent commits on main, 2026-04-01 … 2026-04-30. (v16.0.0-beta was tagged April 11.)

New / effects

  • Game of Life fix; FPS bump via a fast path in blendSegment; better packet queuing/pacing for custom-palette live preview.
  • PixelForge palette/tools list moved into the repo; fxdata serialized without ArduinoJSON (smaller/faster).

Fixed

  • Critical Candle-FX bug + Flow-FX integer issue; segment inputs no longer restrict trailing strips; iOS blending-style list filter; DDP flag-bit masking for compatibility; robustness rewinding file pointers before writes.
  • (Otherwise a heavy AI-contributor-guideline / docs month.)

March 2026

Summarized from 65 first-parent commits on main, 2026-03-01 … 2026-03-31. (v0.15.4 shipped March 14 from the 0_15 release branch; trunk version bumped to 17.0.0-dev.)

New / effects

  • Full FastLED replacement merged (#4615), WLED's own color/math instead of the FastLED dependency.
  • Many new user_fx effects: Spinning Wheel, Color Clouds, Lava Lamp, Magma, Ants, Morse Code, Comet (fire particle system), a slow >4-hour transition FX, Tetris line-clear flash.
  • Scrolling-text FX gains custom fonts + international UTF-8; stencil blending mode; ESP32-C3 audio-reactive (DSP FFT + integer math); more macro/timer slots; longer max playlist duration.
  • OTA update page restyled (auto-sets download URL from info.repo); clearer UI tool icons.

Fixed

  • Segment-index misalignment; hostname/DNS cleanup; hue preservation in color fade; array-bounds on short WS payloads; DDP rejects unsupported/non-display packets.

February 2026

Summarized from 35 first-parent commits on main, 2026-02-01 … 2026-02-28.

New

  • Version scheme changed to Major.minor (dropped the leading "0."), heading toward v16; bumped to 16.0.0-alpha.
  • New Pin Info page (used/available pins overview); UI settings readability improvements.
  • Improved bus handling, free choice of bus driver in any order, better memory calculations; gamma lower-limit removed (enables inverse gamma correction, applied to segment brightness too).
  • Extended CCT blending (exclusive blend, color-jump fix); full WiFi scan with BSSID apply; new ESP32-S3 8MB QSPI build; experimental ESP32-C5/C6 in the node list.

Fixed

  • LED animations briefly pausing at bootup (ESP32); boot-up WiFi pause with extended scanning; removed dangerous mutex macros in the bus manager; Flow-FX flow at segment start/end.

January 2026

Summarized from 38 first-parent commits on main, 2026-01-01 … 2026-01-31.

New

  • New custom-palettes editor (#5010); WPA-Enterprise WiFi support; random per-LED colors via JSON API; option to save unmodified presets to autosave; PixelForge GIF image rotation.
  • Removed the MAX_LEDS_PER_BUS limit for virtual buses; new ESP32 node types; JSON validation + minify on file upload in the UI.

Fixed

  • Relay not turning on at boot; GPIO0 always grabbed by a button; gamma correction on a fresh install; Ethernet static-IP ignored; HUB75 improvements; config exceeding the LED limit.

December 2025

Summarized from 39 first-parent commits on main, 2025-12-01 … 2025-12-31. (v0.15.3 shipped December 4 from the 0_15 release branch.)

New / effects

  • PacMan effect and the new "WLEDPixelForge" image & scrolling-text interface (#4982); dynamic LED-type dropdown; improved 2D particle collisions; sequential UI-resource loading.
  • Usermod Temperature uses full 12-bit precision; "peek" shows gaps; removed legacy EEPROM support.

Fixed

  • FX checkmark sync; UI TypeError with a custom palette; rotary-encoder palette-count off-by-one; particle-collision binning; segment overflow.

November 2025

Summarized from 46 first-parent commits on main, 2025-11-01 … 2025-11-30. (v0.15.2-beta1 → v0.15.2 shipped Nov 9 / Nov 29 from the 0_15 release branch.)

New

  • New file editor (#4956) with ctrl+S, toasts, efficient ledmap reading, 0-byte-file handling.
  • DDP over WebSocket; improved 1D GIF support with blur option; variable button count up to 32; Dissolve "Complete" mode (always fades fully).
  • Aurora FX speedups; better PSRAM-MB usage reporting; bootloader offsets for C3/S3 + variable bootloader sizes per MCU; Adafruit board partitions.

Fixed

  • Stale UI after firmware updates; AP-not-showing (default channel tweaks); device-fingerprint crashes; millis()-rollover robustness in wait logic; OTA update for C3 from 0.15; ESP8266 low-heap and DMA fixes.

October 2025

Summarized from 9 first-parent commits on main, 2025-10-01 … 2025-10-31.

  • Quiet month on trunk. DDP over WebSocket groundwork (shared WS connection in common.js); Twinkle blank-area fix; low-brightness gradient "jumpyness" fix; bootloop-tracker safety check; GIF-player inactive-segment + copy-FX bugfixes.

September 2025

Summarized from 41 first-parent commits on main, 2025-09-01 … 2025-09-30.

New / effects

  • Shimmer FX added; "unrestricted" number of custom palettes; center-bin selection for 2D GEQ; Twinklecat reverse option; speed optimizations + restoreColorLossy fix.
  • Heap-memory and PSRAM handling improvements; HUB75 AC fixes.

Fixed

  • Tri Fade FX; custom-palette color picker; Colortwinkles; LED buffer-size calculation; UDP name-sync rework; crash debug output added.