Skip to content

v0.6.0 – First Stable iDotMatrix Command Foundation

Choose a tag to compare

@piggei piggei released this 02 Sep 17:42
· 35 commits to main since this release

First stable command-capable release

This release establishes the stable foundation of the iDotMatrix Usermod for WLED.

An ESP running WLED can now emulate an iDotMatrix BLE peripheral, be discovered and connected by the official iDotMatrix app, and execute the primary display commands.

Verified functionality

  • BLE discovery and connection from the official iDotMatrix app

  • Device profiles:

    • 0x01 – 16×16
    • 0x03 – 32×32
    • 0x04 – 64×64
  • Correct app power-switch initialization after connection

  • Screen ON/OFF mapped to WLED power

  • iDotMatrix brightness mapped to WLED master brightness

  • Full-screen RGB mapped to WLED static color

  • BLE advertising restarted after disconnection

  • Wi-Fi and BLE operating together

Architecture

The implementation is divided into independent components:

  • IDotMatrixBLEServer – BLE transport, GATT services and bounded receive queue
  • IDotMatrixProtocol – packet validation, decoding and responses
  • IDotMatrixWLEDAdapter – mapping between protocol events and WLED
  • usermod_idotmatrix.cpp – Usermod lifecycle, configuration and diagnostics

BLE callbacks remain short and non-blocking. WLED state changes are processed from the normal Usermod loop.

Important limitations

  • Brightness synchronization currently works only from the iDotMatrix app to WLED.
  • Brightness changes made directly in WLED cannot update the app slider because no verified device-to-app brightness-state message is known.
  • Full-screen RGB affects the active and selected WLED segments.
  • Graffiti/pixel drawing and the resolution-independent framebuffer are not implemented yet.
  • Text, clock, GIF/media, countdown, stopwatch, alarms and schedules are not included in this release.
  • Fragmented commands and payloads larger than the current 64-byte command slot are not yet supported.
  • The WLED I2S LED backend is required; RMT is not compatible with BLE on the tested classic ESP32 configuration.
  • The supplied 4 MB partition layout disables OTA updates. Upload through USB/serial is required.

Verified build environment

  • WLED 0.16.0.1
  • Classic ESP32 / esp32dev
  • PlatformIO espressif32@~6.13.0
  • Arduino-ESP32 2.0.17
  • ESP-IDF 4.4.7
  • NimBLE-Arduino 1.4.3
  • WLED digital LED driver set to I2S

This stable release contains the same runtime source code validated as 0.6.0-dev.7, with consolidated documentation and version metadata.

See README.md, PROTOCOL.md, ARCHITECTURE.md, TESTING.md, HISTORY.md and TODO.md for installation details, protocol coverage, known limitations and the development roadmap.