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
MoonModulelifecycle 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/systemJSON. - 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.
- HttpServerModule — serves the SPA + the REST API.
- WebSocketModule — pushes schema + state to clients at 1 Hz, accepts binary preview frames.
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.