github ilyakruchinin/SomnoTrace v1.3.1

latest release: v1.3.2
3 hours ago

Changelog since v1.3.0

O2 Ring connection reliability

Fixed: Phantom connections after rapid connect/disconnect

When the ring connected and immediately disconnected (within milliseconds),
the firmware lost track of the real connection ID and logged handle=65535.
The orphaned connection stayed alive on the ring's side for ~98 seconds until
the ring's internal timeout fired, wasting battery and blocking reconnection.
The firmware now saves the connection ID the instant it arrives and uses it to
clean up orphaned connections properly.

Fixed: Endless retry loop kept ring stuck

When the ring was in a bad state, the firmware retried connection every ~15
seconds for hours, preventing the ring from powering off and resetting its
Bluetooth. After 3 consecutive failures, the firmware now pauses for 130
seconds to let the ring power down and recover naturally.

Fixed: Confusing "service range empty" error on Gen2 ring

When the Gen2 ring is on a finger and actively recording, it exposes a
stripped-down Bluetooth profile that lacks the file-transfer service. The
firmware now detects this state (via MTU negotiation result) and reports a
clear message: "Ring may be in recording mode — remove from finger and retry."
A separate, distinct error is reported when the MTU exchange itself times out,
indicating the ring is unresponsive rather than in recording mode.

Improved: Disconnect reason logging

Disconnect logs now show the human-readable error name alongside the numeric
code, e.g. reason=571 / 0x3B Unacceptable Connection Parameters instead of
just reason=571. This eliminates the need for a lookup table when analyzing
logs.

Improved: Connection parameter visibility

The firmware now logs the negotiated Bluetooth connection parameters (interval,
latency, supervision timeout) immediately after connecting, and again whenever
the ring requests a parameter update mid-connection. This provides diagnostic
visibility that was previously completely absent.

Improved: Connection parameter update handling

The firmware now explicitly accepts and logs L2CAP connection parameter update
requests from the ring, rather than silently handling them via a catch-all
default case. No behavior change — just visibility.

Don't miss a new SomnoTrace release

NewReleases is sending notifications on new releases.