github ilyakruchinin/SomnoTrace v3.2.1

3 hours ago

What's Changed in v3.2.1

This is a bug-fix release focused on O2 Ring Bluetooth reliability, resolving
the issues reported in #302.

Fixed

  • O2 Ring stops syncing until reboot ("connect start failed: 6").
    A race between NimBLE's connect timeout and a late-arriving connection
    event could leak a BLE connection slot. Once leaked, every subsequent
    connect attempt failed until SomnoTrace was rebooted. Connect attempts
    are now properly cancelled on timeout, late connections are terminated,
    and leftover state is cleaned up before each new attempt — in both the
    Gen2/OxyII and Gen1 ring drivers.

  • SomnoTrace could connect to the wrong Wellue/Viatom device.
    If the paired O2 Ring was asleep or out of range while another Wellue
    device (e.g. an ER1-LW ECG Holter, or a second ring in the household)
    was advertising, SomnoTrace would fall back to connecting to it anyway —
    and could corrupt its saved paired-address hint in the process. The ring
    is now identified by its own identity: exact MAC address, saved BLE name,
    or the last 4 digits of its serial number. If the paired device isn't
    seen in a scan, the cycle is skipped instead of connecting to whatever
    happens to be nearby.

  • Pairing discovery remains model-agnostic. Scanning is still
    permissive, so unofficial and future Viatom/Wellue models (Oxyfit,
    O2 Flex, etc.) continue to appear and work during pairing — see
    discussion #257.

Internal

  • The paired MAC address hint is now only updated after the device's
    serial number has been verified over GATT.
  • Added host-side unit tests covering paired-device selection
    (MAC match, name match, serial-suffix match, and rejection of
    unrelated devices).

Don't miss a new SomnoTrace release

NewReleases is sending notifications on new releases.