From 66f56f1e09fc8f0fb3adc07575b4a7106b7b79ec Mon Sep 17 00:00:00 2001 From: blue Date: Wed, 10 Jun 2026 14:18:05 -0400 Subject: [PATCH] docs: document touch-pad sync (GPIO4/27), no WiFi UI Co-Authored-By: Claude Opus 4.8 (1M context) --- README_RELAY.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/README_RELAY.md b/README_RELAY.md index 3de810d..8de3ca2 100644 --- a/README_RELAY.md +++ b/README_RELAY.md @@ -52,6 +52,23 @@ matching input pins on **both** B and C, and tie **all grounds together**. Each board can be powered from its own USB/5V; only the grounds must be common. +### Sync (touch pads on each source board) + +JBL and Cardo have independent Bluetooth buffering, so one lags the other. Each +source board has an **adjustable delay** (0–200 ms) you trim live, by ear, with two +capacitive-touch pads — raise the delay on whichever speaker is *early* until they +line up. The value is saved to flash (survives power-cycles). + +| Touch pad | Pin | Action | +|-----------|-------|--------------------------------| +| **+** | GPIO4 | tap = +5 ms, hold = ramp up | +| **−** | GPIO27 | tap = −5 ms, hold = ramp down | + +Attach a short wire or a bit of foil to GPIO4 and GPIO27 on each source board and +touch the end. (There is intentionally **no Wi-Fi/phone UI**: Wi-Fi + Bluetooth + +the audio buffer don't fit in RAM on the classic ESP32 — it starves the Bluetooth +stack — so the control is local touch.) + ## Build & flash ``` @@ -78,7 +95,9 @@ B and C start reading it. ## Known limitations - **The two speakers are not sample-synchronized.** JBL and Cardo each have their - own Bluetooth buffering, so one may lag the other by some tens of milliseconds. - Fine for music/intercom; not suitable for tight stereo L/R separation. + own Bluetooth buffering, so one lags the other. The per-board touch delay (above) + lets you trim a fixed offset to line them up by ear; it is not continuous + sample-lock, so slow drift over long sessions is possible. Fine for music/intercom; + not suitable for tight stereo L/R separation. - Audio is fixed at the SBC standard **44.1 kHz / 16-bit / stereo**. - If Board A reboots, the slave boards' audio pauses until A is clocking again.