Changes since v1.1.2
New features
-
Experimental: O2 Ring (Gen1) support. Added a multi-driver oximeter
architecture that supports both the OxyII protocol (Gen2 devices) and the
Legacy protocol (Gen1 devices). If you have an older ring-only O2 Ring
(OEM model PO2B / S8-AW) — also sold under any of these names:- Viatom O2Ring
- Wellue O2Ring (non-S)
- LOOKEE O2Ring
- SleepHQ O2 Ring (non-Pro)
- Vivos O2 Ring
— please pair it and let us know how it goes. The device is
auto-detected during pairing; no manual protocol selection needed. -
Heap diagnostics API. New
GET /api/heapendpoint exposing internal
RAM, PSRAM, and DMA breakdowns (free / minimum / largest block) plus a
per-task list with stack high-water marks.
Stability fixes
-
Internal RAM optimisation. Migrated large static buffers and several
task stacks (upload scheduler, alert monitor, alert routine, oximeter scan
and notification buffers) from internal RAM to PSRAM. Internal free RAM
improved from ~33 KB to ~70 KB. Enabled BSS-in-PSRAM for further automatic
savings. -
HTTP server and BLE stack headroom. Increased the HTTP server task
stack (8 → 12 KB) and NimBLE host task stack (3584 → 4096 bytes) to
eliminate near-overflow conditions observed under load. -
Upload JSON corruption fix. Added an in-place chunked transfer-encoding
decoder for HTTP responses, preventing hex chunk-size prefixes from being
misinterpreted as JSON during upload operations. Fixes some SleepHQ uploads. -
LCD DMA recovery. Added timeout detection for wedged SPI DMA transfers
with automatic bus recovery and full re-render, replacing the previous
infinite-wait behaviour that could freeze the display. -
Audio codec init retry. The ES8311 codec may NACK register writes
immediately after power-up. Added up to 3 retries with 300 ms delays to
handle the power-up timing race.
Internal
- Simplified portal signal-data rendering (always emit min/max pairs).
- BLE pairing buttons are now hidden during reconnection to an already-paired
device. - Expanded third-party notices with Gen1 protocol references and clarified
clean-room implementation status.