Skip to content

User Guide

Per-module reference for projectMM v2, grouped by the directory each module lives in under src/modules/. Every page is structured the same way:

  • End-user reference — what the module does and what controls it exposes in the UI. Read this first when configuring a device.
  • Developer reference — which MoonModule lifecycle methods the module overrides and what each implementation does. Read this when extending the module or writing a new one. onBuildControls() is intentionally omitted from the developer half — its job is to register the controls already documented in the end-user half.

Modules

System

src/modules/system/ — always-present infrastructure modules. The first four in main.cpp's boot list (system, wifi-sta, http, ws) plus state-store.

  • SystemStatusModule — chip / heap / PSRAM / fs / build identity exposed as read-only controls + /api/system JSON.
  • WifiStaModule — WiFi-STA with smart TX-power adaptation.
  • StateStoreModule — persists module list + per-control values across reboots (LittleFS).

Network

src/modules/network/ — HTTP + WebSocket transports for the frontend.

Lights

src/modules/lights/ — the first feature domain on top of the runtime.

  • RipplesEffect — radial sine ripples on a 2D RGB panel.
  • PreviewModule — ships the current frame to the frontend as a binary WS message.
  • ArtnetOutModule — packs the current frame into Art-Net OpDmx UDP packets.