Rafa asked whether a finger can reach the switches, and for simulations of the build and of use, step by step. Five simulated reviewers worked from the repo alone:
Rafa's rulings on their findings:
"we can assume they reach and press it" (the eye from across the table)
"this seems like an advance feature so ok for now" (showing the 30 s undo window)
"I think that's OK as long as person can see their own lights" (each seat sees half the ring)
"that's ok" (passing the pebble can press the eye)
"What's the phone transfer? Maybe that needs to be a diff button? I was thinking that can happen without a button, more like a link in the phone so it's not handled on the device?"
| Finding | Who | Fix here |
|---|---|---|
| A board post ran through the eye opening (7.7 mm from its axis) | builder, mechanical | The board hangs on 3 posts; the post that would land in the eye is left out; a review check |
| The tongue overlapped the top shell's tip walls (≈ 400 mm³ at each tip) | mechanical | Tongue clipped to the cavity less the fit; a shell-overlap check |
| The eye cradle couldn't take the switch's legs, and the guide couldn't pass its hangers | builder | The cradle is its own print on three pins, with leg notches and a wire slot |
| Heat stack fitted after the board, which blocks it, and over-squeezed by 3 mm | builder, mechanical | Stack fitted first; soft 1.5 mm pads; a 0.34 mm roof boss sets a 0.5 mm squeeze |
| Slide switches needed a fingernail (0.6 mm proud in a 2.4 mm slot) | all five | Printed caps 1.8 mm proud; power smooth with one dot, mic ridged with two dots; 31 mm apart |
| No coin fit the 1.2 mm coin slot | owner, mechanical | 12 × 2.6 mm across the seam |
| A press toggled: pressing "to stop" could turn the room back on | meeting, owner | A press only ever goes off the record; a double press while off comes back on |
| A panicked long press armed the phone transfer instead | meeting, owner | The phone transfer needs no button at all (below) |
| Room-off glow too dim, and dimmer than one person's red | meeting, accessibility | Room off breathes red 0.15 → 0.39 over 4 s; a dim idle pixel means dark never means anything |
| No haptic vocabulary | accessibility | display.HAPTIC: a buzz for off, still-off, provisional, reverted, battery, note ready |
| Snap interference 0.22 mm, ≈ 3.3 % root strain | mechanical | 0.10 mm (bump 0.25 mm proud) |
| Lens 0.4 mm at the centre; guide could rattle | mechanical | A uniform 1 mm lens under a 1 mm dish; the switch preloads the guide by 0.05 mm |
| Print settings said "no supports" for parts that need them | mechanical | print_spec.json corrected |
display.seat_frame).assembly.md now says so).# ADR-0015: Usability and build round: safe eye presses, reachable switches, buttonless phone transfer, a buildable shell - **Status:** accepted (2026-10-13) - **Date:** 2026-10-13 - **Requirements touched:** S-05/06, P-12, D-01; RP §6.3.4 (show the provisional state) - **Builds on:** ADR-0007 (passive NFC), ADR-0009 (light ring), ADR-0013 (eye button, kit), ADR-0014 (bigger cell) ## Context Rafa asked whether a finger can reach the switches, and for simulations of the build and of use, step by step. Five simulated reviewers worked from the repo alone: - a first-time owner; - a five-person meeting; - an accessibility user; - a novice kit builder; - a mechanical engineer who measured the meshes. Rafa's rulings on their findings: > "we can assume they reach and press it" (the eye from across the table) > "this seems like an advance feature so ok for now" (showing the 30 s undo window) > "I think that's OK as long as person can see their own lights" (each seat sees half the ring) > "that's ok" (passing the pebble can press the eye) > "What's the phone transfer? Maybe that needs to be a diff button? I was thinking that can happen without a button, more like a link in the phone so it's not handled on the device?" ## What the simulations found (blockers first) | Finding | Who | Fix here | |---|---|---| | A board post ran through the eye opening (7.7 mm from its axis) | builder, mechanical | The board hangs on 3 posts; the post that would land in the eye is left out; a review check | | The tongue overlapped the top shell's tip walls (≈ 400 mm³ at each tip) | mechanical | Tongue clipped to the cavity less the fit; a shell-overlap check | | The eye cradle couldn't take the switch's legs, and the guide couldn't pass its hangers | builder | The cradle is its own print on three pins, with leg notches and a wire slot | | Heat stack fitted after the board, which blocks it, and over-squeezed by 3 mm | builder, mechanical | Stack fitted first; soft 1.5 mm pads; a 0.34 mm roof boss sets a 0.5 mm squeeze | | Slide switches needed a fingernail (0.6 mm proud in a 2.4 mm slot) | all five | Printed caps 1.8 mm proud; power smooth with one dot, mic ridged with two dots; 31 mm apart | | No coin fit the 1.2 mm coin slot | owner, mechanical | 12 × 2.6 mm across the seam | | A press toggled: pressing "to stop" could turn the room back on | meeting, owner | A press only ever goes off the record; a double press while off comes back on | | A panicked long press armed the phone transfer instead | meeting, owner | The phone transfer needs no button at all (below) | | Room-off glow too dim, and dimmer than one person's red | meeting, accessibility | Room off breathes red 0.15 → 0.39 over 4 s; a dim idle pixel means dark never means anything | | No haptic vocabulary | accessibility | `display.HAPTIC`: a buzz for off, still-off, provisional, reverted, battery, note ready | | Snap interference 0.22 mm, ≈ 3.3 % root strain | mechanical | 0.10 mm (bump 0.25 mm proud) | | Lens 0.4 mm at the centre; guide could rattle | mechanical | A uniform 1 mm lens under a 1 mm dish; the switch preloads the guide by 0.05 mm | | Print settings said "no supports" for parts that need them | mechanical | `print_spec.json` corrected | ## Decision 1. **Eye gestures. Every press is safe.** - A press takes the room off the record as it goes down, and never turns it back on. A second press says "still off". - A double press (within 0.6 s), when the room was already off, comes back on as a provisional resume (RP §6.3), undoable by anyone saying "no". - Holding the eye shows the battery. Nothing else is on the eye. 2. **Phone transfer: no button.** - When the meeting ends (the session gap, or a clean switch-off), the device writes the note into the NFC tag and the tail icon lights. Touching a phone to the tail opens the note as a link; no app. - The tag is always readable. Reading still needs physical handling, and the tag holds only the last meeting's note at the levels each voice allowed. 3. **Each person sees their own lights.** - With seat directions known, a person's segment sits on the side of the ring facing them (`display.seat_frame`). - The head and tail microphones measure only the angle from the head, not the side. So each person gets two mirrored arcs (±angle), and one of them always faces them. - Two people at mirrored seats share arcs, and the speaker is drawn on top. A third microphone would remove that (B-45). 4. **The objection window shows** as an amber arc counting down, because RP §6.3.4 requires it and it costs nothing. Rafa rated the feature as advanced, so nothing more is built on it. 5. **Shell:** - three posts; - the tongue clipped; - the cradle as its own print; - caps on both switches, with tactile dots; - a 2.6 mm coin slot; - the snaps softened; - a 1 mm eye dish with a uniform 1 mm lens; - outward offsets of the pebble kept straight (OCC booleans on the slope-aware outward offset failed silently). 6. **Not changed, by Rafa's call:** reach to the eye from across the table, and presses while the pebble is passed round. With rule 1, an accidental press can only take the room off, which is the safe direction. ## Consequences - **Checks:** - geometric review 33/33, with new checks: posts clear of the eye, shells don't overlap, switches reachable and told apart, coin slot, heat-stack squeeze; - firmware tests 32; - Python and JS agree on 18 ring frames and 6 eye-press sequences. - **Build time:** realistically 12–15 h for a first-timer, not 4 (`assembly.md` now says so). - **Still open** (backlog): - B-43: the drop test decides drop safety. At 207 g the 1 m energy is ≈ 1.6 J, and the old 1.5 J line was retired as arbitrary. - B-44: a power-switch sense line plus a keep-alive, for a clean shutdown when the switch is bumped. - B-45: a third microphone, or a better direction estimate, to resolve mirrored seats. - B-46: tip screws or snap testing over repeated opening. - B-47: a printed tray and a dummy cell, so the cell goes in last. - B-48: inter-shell wire lengths and one connector. - B-49: reader-page localisation.