1
Speaker Sync (Touch)
blue — ESP32/PlatformIO firmware edited this page 2026-06-10 14:19:02 -04:00

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.