Add S3 hub I2C control-bus wiring

blue — ESP32/PlatformIO firmware 2026-06-11 10:26:28 -04:00
parent f59acd9814
commit 70d4a16ae4

@ -0,0 +1,34 @@
# Hub Control Bus (I2C)
Wires the **ESP32-S3-Touch-LCD-1.28 hub** to the two source boards (B = JBL,
C = Cardo) so the on-screen UI can set delay / volume (and later pick speakers).
## S3 expansion header — free pins
The 1.27 mm header (P2) brings out: **GPIO15, 16, 17, 18, 21, 33** + **3V3**, **VSYS**, **GND**.
We use two of them for I2C.
## I2C bus wiring (3 wires + pull-ups)
| Signal | S3 hub (master) | Board B (JBL) | Board C (Cardo) |
|--------|-----------------|---------------|-----------------|
| SDA | **GPIO15** | GPIO32 | GPIO32 |
| SCL | **GPIO16** | GPIO33 | GPIO33 |
| GND | **GND** (header)| GND | GND |
- S3 **GPIO15 (SDA)** -> B **GPIO32** *and* C **GPIO32**
- S3 **GPIO16 (SCL)** -> B **GPIO33** *and* C **GPIO33**
- S3 **GND** -> common with B and C (and with Board A — everything shares one ground)
### Pull-up resistors (required for I2C)
Add **two ~4.7 kohm resistors**: one from **SDA -> 3V3**, one from **SCL -> 3V3**
(use the S3 header's 3V3 pin). One pair for the whole bus is enough.
## I2C addresses
- Board B (JBL) = **0x10**
- Board C (Cardo) = **0x11**
## Notes
- This is separate from the audio I2S bus (Board A GPIO5/25/23 -> B/C GPIO19/18/22).
- B/C touch pads (GPIO4 = +, GPIO27 = -) still work as a local fallback.
- Keep wires short; common ground across all boards is mandatory.
- The S3 is powered by its own USB/battery; only GND is shared for signaling.