Skip to content

Release 0.9.2

piggei edited this page Sep 30, 2026 · 2 revisions

Release: 0.9.2
Build: 0.9.2
Status: stable release

0.9.2 adds configurable Active/Passive buzzer hardware, persistent Clock presentation preferences, explicit runtime notification routing, and the final hardware-qualified real-time buzzer scheduler. It is promoted from the final development baseline without functional changes in the stable packaging step.

Buzzer support

  • Active and Passive buzzer types are selectable from Usermod settings.
  • Active mode retains configurable active-high/active-low polarity.
  • Passive mode uses the qualified 2 kHz LEDC backend and supports High/Low trigger polarity.
  • Trigger-low Passive modules return to a constant silent HIGH idle state.
  • The settings page shows only the polarity control relevant to the selected type.
  • One Test buzzer control uses the saved configuration.

Runtime sound routing

The same buzzer engine is used for the real notification paths:

  • BLE connection: one short low-priority beep;
  • natural Countdown completion: one three-pulse trill;
  • Alarm: repeating trill for the Alarm lifetime when its protocol sound field is enabled;
  • Program/Schedule: finite notification groups when the global sound flag is enabled.

The qualified pattern remains 90 ms ON, 70 ms inter-pulse gap, three pulses per trill and 550 ms inter-group pause.

Real-time timing

Alarm and Program begin sound from a fresh post-media-load timestamp. On ESP32, buzzer-envelope transitions are serviced by ESP-IDF esp_timer every 2 ms rather than depending on WLED main-loop cadence. Absolute pattern deadlines prevent small service delays from accumulating through a trill. If timer setup fails, a WLED-loop fallback remains available.

/json/info exposes buzzerTiming, lateLast and lateMax diagnostics. Hardware qualification confirmed the buzzerTiming=esp_timer-2ms path and stable Alarm/Program rhythm, including heavier media cases.

Clock presentation persistence

Clock style, 12/24-hour mode, date visibility and RGB colour are stored in NVS and restored before standalone Clock fallback. The existing transient showDate=0 protection remains active. iDotMatrix device reset clears the saved Clock presentation state.

Compatibility

No BLE packet format, Carousel, Preset / Default, Graffiti, GIF/media, WLED ownership or AudioReactive behavior is intentionally changed by the stable promotion. Existing 0.9.1 hardware/profile support remains available.

Clone this wiki locally