Reorganize the repo so it can rebuild the audio hub on any Pi, not just the live `adac` box: - README.md: now a project landing page (overview, repo map, deploy summary) instead of the adac-specific maintenance guide. - MAINTENANCE.md: the "how it's wired / day-to-day upkeep" guide, genericized with <pi-host>/<pi-ip>/<lan-cidr>/<desktop-host> placeholders. - config/: the actual PipeWire/WirePlumber drop-ins as deploy-ready templates (<VOLT_SOURCE>/<VOLT_SINK>/<LAN_CIDR> placeholders, with the commands to resolve them in each file's header comment). - systemd/bt-agent.service, firmware/config.txt.snippet: the remaining deployable artifacts. - instances/adac.md: the live deployment's real values (host, IP, Volt serial, paired phones, history) — the one place machine-specific data lives. - RUNBOOK.md: replace the hardcoded LAN subnet with <lan-cidr>. - root-README.md: genericized; .gitignore keeps local harness settings out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
55 lines
2.4 KiB
Markdown
55 lines
2.4 KiB
Markdown
# Instance: `adac`
|
|
|
|
The live deployment. Substitute these values for the `<placeholders>` in
|
|
`RUNBOOK.md`, `MAINTENANCE.md`, and the `config/` templates.
|
|
|
|
## Identity & network
|
|
|
|
| Placeholder | Value |
|
|
|---|---|
|
|
| `<pi-host>` | `adac` (reachable as `adac.local`) |
|
|
| `<pi-ip>` | `10.12.10.110` (wired `eth0`) |
|
|
| `<lan-cidr>` | `10.12.10.0/24` |
|
|
| `<desktop-host>` | `animal` (the desktop; shows up as `Tunnel for user@animal` streams) |
|
|
| login user | `user` (uid 1000) — the account PipeWire runs under |
|
|
|
|
## Audio interface
|
|
|
|
- **Universal Audio Volt 4** (model **476P**), serial **22432056005060**, USB, in
|
|
**Pro Audio** profile.
|
|
- PipeWire card: `alsa_card.usb-Universal_Audio_Volt_476P_22432056005060-00`
|
|
- `<VOLT_SOURCE>` (for `30-mixer-return.conf`):
|
|
`alsa_input.usb-Universal_Audio_Volt_476P_22432056005060-00.pro-input-0`
|
|
- `<VOLT_SINK>` (for `40-desktop-34.conf`):
|
|
`alsa_output.usb-Universal_Audio_Volt_476P_22432056005060-00.pro-output-0`
|
|
- Network advert name (auto-generated from the model): **"Volt 476P Pro"**.
|
|
|
|
## Physical patching
|
|
|
|
| Volt jack | Carries | Patched to |
|
|
|---|---|---|
|
|
| Outputs 1/2 | Phone (Bluetooth) + desktop default audio | Mixer channel A |
|
|
| Outputs 3/4 | Desktop "Desktop (Volt 3/4)" feed | Mixer channel B |
|
|
| Inputs 3/4 | Mixer main output (the return → OBS) | Mixer main out |
|
|
|
|
## Bluetooth phones (paired + trusted)
|
|
|
|
| Name | MAC | Trusted |
|
|
|---|---|---|
|
|
| `Pixel 8 Pro` | `B8:DB:38:79:90:CC` | yes (2026-06-15) |
|
|
| `atomic` | `A4:42:3B:9A:5F:82` | yes (2026-06-15) |
|
|
|
|
## Notes / history
|
|
|
|
- **Wi-Fi disabled** in firmware (`dtoverlay=disable-wifi`); the box is wired-only.
|
|
If the wired link dies it's unreachable until the cable/switch is fixed.
|
|
- A stock `filter-chain.service` runs but uses the default config and does **no**
|
|
custom processing — ignore it; there's no EQ/filter set up.
|
|
- **2026-06-14 "connected but silent" fault:** the desktop (`animal`) tunnel
|
|
streams arrived **muted** on the Pi while routing was fine. Fixed with
|
|
`pactl set-sink-input-mute <id> 0`. Confirmed it survives reboot. If it recurs,
|
|
the mute originates on `animal` — unmute that output device on the desktop.
|
|
- Gain staging is **unity** end-to-end (all PipeWire stages 0 dB, no Volt hardware
|
|
attenuation). The desktop volume slider digitally scales the stream feeding the
|
|
mixer's line input; the mixer fader is the real "hub volume". Leave the desktop
|
|
at 100% and ride the mixer fader.
|