Fix power fade and enhance usermod functionality#5743
Conversation
- AwtrixFont (BSD-3-Clause TomThumb), MQTT, OSC, text overlay - Pixel effects: sparkle, twinkle, strobe, blink, rain - First-boot cfg.json template (behav:1, dpx-tc002 AP, GPIO32 256 LEDs) - Buzzer RTTTL support - Loop rate-limited to 50Hz; UDP open deferred to connected() - platformio_override.ini: ulanzi_tc001 USB env, shared build flags - tools/ltc_osc_bridge: LTC→OSC bridge utility
- Remove custom /api/* routes — stripped dpx_api.h to /dpx status endpoint - Add dpx_mqtt.h: MQTT subscribe via WLED broker (dpx/# topics) - Add dpx_overlay.h: text overlay + pixel effects (sparkle/strobe/rain/twinkle/blink) - Add dpx_firstboot.h: write /cfg.json on first boot (dpx-tc002 AP, behav=1, 2D 32x8) - Replace 5x7 column-major font with AwtrixFont (BSD-3-Clause TomThumb-derived) - Rewrite dpx_text.h renderer for GFX row-major format; fix baseline (y=0 was off-screen) - Fix REGISTER_USERMOD missing from dpx_matrix.cpp — usermod now actually loads - Fix UDP crash: move dpxOscBegin() to connected() (lwip not ready in setup) - Rate-limit loop() to 50Hz — was hammering UDP socket stack on every tick - Fix root / route shadowing WLED web UI (ESPAsyncWebServer LIFO order) - Print IP to serial on WiFi connect; reprint when monitor opens - Guard DEFAULT_LED_COUNT in const.h to avoid redefinition warning - Refactor firstboot from raw JSON string to ArduinoJson builder - readme: filled in About, Getting Started, First Boot Defaults, Usage, Acknowledgments - platformio_override.ini: OTA env, shared common section, DPX_BTN pins
…e; serial debug; roadmap
- Any app (incl. native Time/Date/WLED) removable from rotation via dpxHiddenApps set
- WLED native app: silent passthrough so WLED effects show full screen
- handleButton() replaces _pollBtn: debounce + short/long press, uses WLED APIs
- Button layout fixed (mid/right were swapped)
- Time/Date use WLED localTime + hour()/minute() — respects useAMPM setting
- NTP enabled in firstboot config; firstboot 2D default serpentine=true
- Serial 's' command dumps IP, AP, WiFi, heap, time, app, MQTT, OSC status
- App mute: dpxMuteApp() + MQTT dpx/mute/<name> + JSON {dpx:{mute:{Name:bool}}}
- Channel mute shown in GET /dpx/apps response
- useAMPM respected: 12h with a/p suffix or 24h based on WLED setting
- ROADMAP.md: Phase 1.5 ctrl UI refactor scoped and queued
…e cleanup - WLED_NTP_ENABLED=true in platformio_override.ini (default was false) - NTP status added to serial 's' debug dump - DNA Spiral (effect 182) set as default startup effect in firstboot - Removed transition=0 from firstboot so power fade works again - Time/Date render: snapshot localTime; leftover fragment removed - Reverted forced ntpEnabled override (not needed with compile flag)
feature/buzzer rtttl
- Register 'dpx Matrix' as WLED effect wled#200 via strip.addEffect() - dpxSetPixel/dpxGetPixel/dpxClear now use SEGMENT APIs (setPixelColorXY) → brightness, transitions, power-fade, and 2D panel mapping all work natively - handleOverlayDraw() removed entirely - dpxActivateEffect(): auto-switch to dpx Matrix when TC/notify/app arrives - 'WLED' rotation slot now switches AWAY to DNA Spiral (passthrough restored) - _dpxEffectId moved to dpx_apps.h so it's visible before first use - firstboot default fx updated to 200 (dpx Matrix)
- WLED slot removed from native app list — dpx Matrix IS the effect, there is nothing underneath to passthrough to - Effect registered with ID 255 (auto-assign) instead of 200, which conflicted with existing built-in effects - Dead WLED passthrough handler removed from dpxRenderCurrentApp - firstboot: def.fx removed (effect ID is dynamic, set via dpxActivateEffect)
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (10)
📒 Files selected for processing (42)
WalkthroughThe change establishes the DPX Matrix firmware foundation for WLED, including rendering, apps, overlays, notifications, HTTP/MQTT/OSC control, and persistence. It also adds an LTC-to-OSC bridge with CLI and web GUI modes, plus hardware configuration, project documentation, templates, and release metadata. ChangesDPX Matrix firmware
LTC-to-OSC bridge
Project and repository documentation
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
Suggested labels: Suggested reviewers: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Address issues with power fade functionality and improve the dpx_matrix usermod by adding new features, fixing bugs, and enhancing stability. The changes include updates to the first boot configuration, improved MQTT and OSC support, and various fixes to the web UI and effect registration. Documentation has also been updated to reflect these changes.
Summary by CodeRabbit