Skip to content

Reaction: Fix volume stuck low after talking with one AirPod in case#610

Merged
d4rken merged 2 commits into
mainfrom
worktree-fix-ca-dropped-terminal-608
Jun 10, 2026
Merged

Reaction: Fix volume stuck low after talking with one AirPod in case#610
d4rken merged 2 commits into
mainfrom
worktree-fix-ca-dropped-terminal-608

Conversation

@d4rken

@d4rken d4rken commented Jun 10, 2026

Copy link
Copy Markdown
Member

What changed

When Conversational Awareness lowered the volume (or paused media) while you talked, the volume could stay low after the conversation ended — until you took the AirPods out of your ears. This happened reliably when one AirPod was in the case. Volume now comes back a few seconds after you stop talking.

Also fixed the volume-reduction slider feeling laggy while dragging and sometimes saving a different value than the one shown.

Closes #608

Technical Context

  • Root cause: with only one pod worn, the firmware deterministically drops the terminal 0x4B stop frame — the wind-down ends on a transitional status. Since Reaction: Fix Conversational Awareness resuming media too early #601 disengages only on an explicit terminal frame (with a 5-minute backstop), the reaction stayed engaged and the volume stranded low. Reproduced on Pro 3 and Pro 2 USB-C; with both pods worn the terminal always arrives.
  • The pod sends no 0x4B frames during active speech, so any non-START frame means the wind-down has begun. A transitional frame now arms a short 6s disengage fuse; if the terminal never arrives, the reaction restores anyway. STARTs still arm the long backstop, preserving Reaction: Fix Conversational Awareness resuming media too early #601's protection against resuming mid-conversation (the pod stays engaged and silent against ambient noise for 20-30s+).
  • The fuse must stay ≥ ~5s: gaps up to 2.8s were observed between consecutive wind-down frames of a healthy flurry.
  • Validated live on AirPods Pro 3 (fw …6503) and Pro 2 USB-C (fw …6814): 7/7 single-pod conversations restored exactly 6s after the last wind-down frame; both-pods behavior unchanged. Matches both logs from the Volume not increasing after conversation #608 reporter (fw …6589).
  • Known residual risk: a transitional frame mid-active-speech would resume ~6s early — never observed across ~30 captured conversations, and it self-heals on the next START.
  • Slider: the reduction slider wrote to the profile on every drag frame; racing async writes persisted stale mid-drag values (observed 78 stored vs 70 shown). Now commits only on drag release, matching the adaptive-noise and tone-volume sliders.

d4rken added 2 commits June 10, 2026 11:25
With one AirPod in the case the pod deterministically drops the
terminal 0x4B frame: the wind-down flurry ends on a transitional
status (1,2,3,0xB,4 then nothing), so the reaction never disengaged
and the volume stayed low until the 5-minute backstop (#608).
Reproduced on Pro 3 (fw 6589, 6503) and Pro 2 USB-C (fw 6814) —
all three share one firmware train; with both pods worn the terminal
always arrives.

The pod sends no frames during active speech, so any non-START frame
means the wind-down has begun and a terminal is imminent. A HOLD now
arms a short 6s fuse instead of the 5-minute backstop: if no terminal
(or fresh START) follows, the reaction disengages anyway. The fuse
must stay above ~5s — gaps up to 2.8s were observed between
consecutive wind-down frames. STARTs still arm the long backstop,
since the pod stays engaged and silent against ambient noise for
20-30s+ and a short timeout there resumes media mid-conversation.

Validated on hardware on both models: 7/7 single-pod conversations
restored exactly 6s after the last wind-down frame.
The conversation volume slider committed a profile write on every
drag frame — laggy dragging, and racing async writes persisted stale
mid-drag values (observed: 78 stored while the UI showed 70). Use
local state while dragging and commit on release, matching the
adaptive-noise and tone-volume sliders.
@d4rken d4rken added bug Something isn't working coms/AAP Uses Apples AirPod Protocol. Requires Android ROM with fixed L2CAP support on the Bluetooth sockets. labels Jun 10, 2026
@d4rken d4rken merged commit 3803973 into main Jun 10, 2026
11 checks passed
@d4rken d4rken deleted the worktree-fix-ca-dropped-terminal-608 branch June 10, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working coms/AAP Uses Apples AirPod Protocol. Requires Android ROM with fixed L2CAP support on the Bluetooth sockets.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Volume not increasing after conversation

1 participant