ADR-0013: The eye is a button; the room-off glow; a kit with no surface-mount soldering

Context

Rafa, reviewing the design:

"I think the eye / or entire strip needs to go red when it's off the record mode, and maybe the eye needs to be able to be pressed. It's the most sensitive part of the design and discussion, people need to be able to be like 'stop recording' at a moments notice and maybe need the physical option to engage with it. Maybe not a bright bright red but a low glow."

"might be worthwhile to look at opportunities to make the overall build more kit-friendly,,, such that it doesn't require special expertise or tooling if we can avoid it."

Five simulated builders, given only the site, found that the kit needed:

The electrical engineer's review added several findings:

Options

Option For Against
Keep the read button on the flank; off the record by voice only No new part The fastest, most sensitive act needs the right words, said aloud, and a quiet person may not say them
A separate "off" button Clear meaning Another hole and another thing to find under stress
The eye is the button (chosen) Everyone at the table knows where it is; pressing the thing that listens is the gesture The eye must also stay a truthful mic light, and a guide that moves must not rattle
Flank button with a long press for off No change on top Hidden; nobody across the table can reach it

Decision

  1. Press the eye: the room goes off the record. The press is a room lowering to 0 with source: "ui", applied at once (RP §6.2).

    • Press again to come back on. That is a provisional resume, which anyone can undo within 30 s (RP §6.3), exactly like saying "back on the record".
    • A press identifies nobody, so it can never raise anyone's own level, and a voice that lowered itself stays lowered.
  2. Hold the eye for 2 s to arm the NFC hand-off for 10 s, and show the battery. This replaces the read button.

  3. The whole ring glows a low red while the room is off the record (every LED at 15 % red: 38, 6, 6). The per-person segments step aside, so the state reads from across the table and from any seat.

    • The eye light stays on the mic rail: the hardware truth about whether the microphones have power.
  4. Mechanism:

    • The light guide floats in its opening, held in by its flange.
    • A 6 × 6 × 4.3 mm through-hole tactile switch (DTS-61K) sits in a printed cradle that hangs from the roof on three arms, 0.1 mm under the guide.
    • The eye light moves to the guide's +Y edge.
  5. Kit build (kit_friendly): through-hole parts and plug-in boards only. No surface-mount soldering, no hot air.

    Before After
    AO3401A P-FET power switch Pololu 2810 MOSFET slide-switch module (the shell switch drives its control terminal)
    AO3400A motor FET PN2222A (TO-92) with a 470 Ω base resistor
    RV3028 (out of stock) Adafruit PCF8523 STEMMA QT, own CR1220
    Hand-wired I²C STEMMA QT / Qwiic cables
    JS102011SAQN SMD slide switches C&K OS102011MA1QN1 through-hole (the actuator reaches the skin, so no printed caps)
    Würth SMD read switch Gone
    0.5 A 1206 fuse MF-R110 radial on the ring, MF-R300 in the battery lead
    Ring on VSYS (3.4–4.5 V) Ring on 5 V. The tail icon LED goes first in the chain, fed through a 1N4148, and acts as the level shifter
    — 100 µF at the boost input; 10 kΩ on ring data; 100 kΩ on mic data; a 10 kΩ NTC on the cell; charge set to 500 mA
  6. Shape:

    • T goes from 27 to 29 mm.
    • The in-stock 2000 mAh cell (PKCELL LP803860, 62 × 38.5 × 8.5) sets a 63 × 39 × 9.3 mm bay.
    • The taller through-hole switches fit below the band.
    • The DRV2605L haptic board was tried and dropped: it could not clear the light strip.

Consequences

# ADR-0013: The eye is a button; the room-off glow; a kit with no surface-mount soldering

- **Status:** accepted (2026-10-12)
- **Date:** 2026-10-12
- **Requirements touched:** P-12, S-05/06, D-01; supersedes the read button in ADR-0007 and ADR-0009
- **Builds on:** ADR-0007, ADR-0009, ADR-0012

## Context

Rafa, reviewing the design:

> "I think the eye / or entire strip needs to go red when it's off the record mode, and maybe the eye needs to be able to be pressed. It's the most sensitive part of the design and discussion, people need to be able to be like 'stop recording' at a moments notice and maybe need the physical option to engage with it. Maybe not a bright bright red but a low glow."

> "might be worthwhile to look at opportunities to make the overall build more kit-friendly,,, such that it doesn't require special expertise or tooling if we can avoid it."

Five simulated builders, given only the site, found that the kit needed:
- SMD soldering on adapter boards: two SOT-23 MOSFETs, three SMD switches and an SC70 ideal diode;
- a switch carrier that did not exist (B-28);
- an out-of-stock RTC and battery.

The electrical engineer's review added several findings:
- The ring ran below its LED supply spec on VSYS.
- The ring's worst case was ≈ 0.86 A, against a 0.5 A fuse.
- There was no main fuse, no boost input capacitor and no cell thermistor.
- Ring data and mic data had no pull-downs.

## Options

| Option | For | Against |
|---|---|---|
| Keep the read button on the flank; off the record by voice only | No new part | The fastest, most sensitive act needs the right words, said aloud, and a quiet person may not say them |
| A separate "off" button | Clear meaning | Another hole and another thing to find under stress |
| **The eye is the button** (chosen) | Everyone at the table knows where it is; pressing the thing that listens is the gesture | The eye must also stay a truthful mic light, and a guide that moves must not rattle |
| Flank button with a long press for off | No change on top | Hidden; nobody across the table can reach it |

## Decision

1. **Press the eye: the room goes off the record.** The press is a room lowering to 0 with `source: "ui"`, applied at once (RP §6.2).
   - Press again to come back on. That is a provisional resume, which anyone can undo within 30 s (RP §6.3), exactly like saying "back on the record".
   - A press identifies nobody, so it can never raise anyone's own level, and a voice that lowered itself stays lowered.
2. **Hold the eye for 2 s to arm the NFC hand-off** for 10 s, and show the battery. This replaces the read button.
3. **The whole ring glows a low red while the room is off the record** (every LED at 15 % red: 38, 6, 6). The per-person segments step aside, so the state reads from across the table and from any seat.
   - The eye light stays on the mic rail: the hardware truth about whether the microphones have power.
4. **Mechanism:**
   - The light guide floats in its opening, held in by its flange.
   - A 6 × 6 × 4.3 mm through-hole tactile switch (DTS-61K) sits in a printed cradle that hangs from the roof on three arms, 0.1 mm under the guide.
   - The eye light moves to the guide's +Y edge.
5. **Kit build (`kit_friendly`):** through-hole parts and plug-in boards only. No surface-mount soldering, no hot air.

   | Before | After |
   |---|---|
   | AO3401A P-FET power switch | Pololu 2810 MOSFET slide-switch module (the shell switch drives its control terminal) |
   | AO3400A motor FET | PN2222A (TO-92) with a 470 Ω base resistor |
   | RV3028 (out of stock) | Adafruit PCF8523 STEMMA QT, own CR1220 |
   | Hand-wired I²C | STEMMA QT / Qwiic cables |
   | JS102011SAQN SMD slide switches | C&K OS102011MA1QN1 through-hole (the actuator reaches the skin, so no printed caps) |
   | Würth SMD read switch | Gone |
   | 0.5 A 1206 fuse | MF-R110 radial on the ring, MF-R300 in the battery lead |
   | Ring on VSYS (3.4–4.5 V) | Ring on 5 V. The tail icon LED goes first in the chain, fed through a 1N4148, and acts as the level shifter |
   | — | 100 µF at the boost input; 10 kΩ on ring data; 100 kΩ on mic data; a 10 kΩ NTC on the cell; charge set to 500 mA |

6. **Shape:**
   - T goes from 27 to 29 mm.
   - The in-stock 2000 mAh cell (PKCELL LP803860, 62 × 38.5 × 8.5) sets a 63 × 39 × 9.3 mm bay.
   - The taller through-hole switches fit below the band.
   - The DRV2605L haptic board was tried and dropped: it could not clear the light strip.

## Consequences

- **Easier:**
  - one obvious, physical "stop";
  - the build needs only a soldering iron and a multimeter;
  - every part is in stock in Germany except the Radxa (B-02) and the NFC tag (B-04);
  - the ring runs within its LED spec at every battery level.
- **Harder:**
  - The 5 V ring costs battery: the worst case is 1.43 h against the 1.5 h target (B-34).
  - The first-pixel level shift has about 0.1 V of margin at a high boost output (B-39).
  - The device is 2 mm thicker and 6 g heavier.
  - The Pololu module's off-state current must be measured (B-32).
- **To test:**
  - eye-button force and accidental presses when handed round (B-33);
  - the room-off glow in daylight (B-06);
  - the switch reach on a printed shell.
- **Code:**
  - `Goldfish.press_eye` and `room_off` (`firmware/goldfish/device.py`);
  - `ring_frame(room_off=True)` (`display.py`), mirrored in `goldfish.js` (`pressEye`, `ringFrame(..., roomOff)`), with the parity check in `validate.py`;
  - `bindings.controls` in the profile;
  - geometric checks in `review_geometry.py`;
  - electrical checks in `sim/power_sim.py`.