Speaker Sync (touch pads)
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. The value is saved to flash (survives power-cycles).
| 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 (a bare header pin is hard to trigger).
- Raise the delay on whichever speaker is early until the two line up.
- Touch threshold is ~40 (untouched reads ~115-130); adjust in firmware if your
pads read differently.
Why no Wi-Fi/phone UI: Wi-Fi + Bluetooth-A2DP + the audio buffer exceed the
classic ESP32's RAM and starve the Bluetooth stack (it won't connect to a speaker).
So sync control is local capacitive touch instead of a web page.