Skip to content

Direction ring: the Dot 3's real mic angles, and each board's LED 0 - #1040

Merged
wilbowes merged 1 commit into
mainfrom
fix/donut-direction
Oct 26, 2026
Merged

wilbowes merged 1 commit into
mainfrom
fix/donut-direction

Conversation

@wilbowes

Copy link
Copy Markdown
Owner

The Dot 3's direction ring now points the right way: real mic angles, and each board's own LED 0.

  • Mic angles. Capture: the Dot 3's microphones (4ch S32, loopback first, its own mutes) #1038 guessed the donut's mics sat at the corners (45/135/225/315). They sit beside the buttons, on the hours. With volume-up at 12 o'clock: ch0 by volume-up, ch1 by action (3), ch2 by volume-down (6), ch3 by mute (9). Tapping each hole on 41C8 put every tap on one channel, 10–25 dB above the rest.
  • Ring offset as board data. server.go hardcoded biscuit's LED 0 at 240°. The donut's LED 0 is the first clockwise past 6 o'clock, and its LEDs straddle the hours (lit one at a time on 41C8), so it's Hardware.RingLED0: 240 on biscuit and radar, 195 on the donut.

A test holds biscuit to the old mapping at every whole degree. Not yet seen live: that needs a controller with Home Assistant, so a turn locks a mic.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XMzTzy1gEcUkKfAD2QDkL5

#1038 placed the Dot 3's microphones at 45/135/225/315 degrees on the guess
that they sat at the corners between the buttons. They sit beside the
buttons, on the hours: with volume up at 12 o'clock, ch0 by volume up, ch1 by
action at 3, ch2 by volume down at 6, ch3 by mute at 9 (a tap on each hole of
41C8, 2026-10-25, each landing on one channel 10-25dB above the rest).

The ring that points at a talker counted from biscuit's LED 0 at 240 degrees,
a constant in server.go. The Dot 3's LED 0 is the first clockwise past 6
o'clock and its LEDs straddle the hours (lit one by one on 41C8), so it is
now board data, Hardware.RingLED0: 240 on biscuit and radar, 195 on the donut.
ringLEDFor holds biscuit to the old mapping at every whole degree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XMzTzy1gEcUkKfAD2QDkL5
@wilbowes
wilbowes merged commit e159b53 into main Oct 26, 2026
13 checks passed
@wilbowes
wilbowes deleted the fix/donut-direction branch October 26, 2026 23:51
wilbowes added a commit that referenced this pull request Oct 26, 2026
…icrophones) (#1041)

- JOURNAL: the donut's bootloader (199-byte cmdline, ramdisk only in
  recovery) and the image that boots it; the cache superblock emOS's trail
  was destroying; the warm-reboot hang traced to the unclaimed ring; the
  donut hearing its own wake word; its stock sound read and swept; the open
  no-WiFi-after-emOS fault.
- CLAUDE.md: devcheck, so nine emOS off-target checks, in the quickref and
  the release and CI wording.
- device/CLAUDE.md: the capture as board data (MicArray, Loopback opened
  first, MicMutes, RingLED0), the donut's microphone and ring geometry, and
  what is still biscuit's inside the drivers.


Claude-Session: https://claude.ai/code/session_01XMzTzy1gEcUkKfAD2QDkL5

Co-authored-by: Wil Bowes <wil@presence.run>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant