Add in-app speaker discovery and connection guide

This commit is contained in:
lda committed 2026-10-25 04:59:07 +07:00 Verified
1 parent 038e152bbc
commit f75d3fb558
7 files changed
+287 -28

No files matched your search

+39 -6
View File
@@ -14,19 +14,52 @@ Use Windows Python for a Windows Bluetooth adapter. From WSL, invoke `uv.exe`
so Bluetooth runs on Windows rather than inside WSL.
```powershell
uv run soundtower --address YOUR_SPEAKER_MAC
uv run soundtower
```
For WSL:
```bash
uv.exe run soundtower --address YOUR_SPEAKER_MAC
uv.exe run soundtower
```
Replace `YOUR_SPEAKER_MAC` with the Bluetooth address of your speaker. Keep it
powered on, close the phone app, and click **Connect**. The address can also be
entered in the window. `uv run python -m controller` remains supported, as does
the earlier `--with-requirements requirements.txt` launch command.
1. Turn on Windows Bluetooth and power on the speaker. Close the phone's Sound
Tower app if it is holding the control connection.
2. Click **Scan**. The window stays responsive during the eight-second search.
3. Choose your speaker in the **Speaker** dropdown, then click **Connect**.
A single result is selected automatically when the field is empty; the app
never connects automatically. Addresses distinguish speakers with the same name.
4. Wait for **Speaker handshake complete**, then use the controls.
The MX-T40 can advertise without a name. The selector recognizes its known
model advertisement and shows **MX-T40 (model advertisement)** in that case.
Discovery of another Sound Tower model is not a compatibility guarantee.
`uv run python -m controller` remains supported, as does the earlier
`--with-requirements requirements.txt` launch command.
### Finding or entering the Bluetooth address manually
The selector includes the Bluetooth address after each speaker name. You can
also list candidate names and addresses from the terminal without opening Tk
or connecting to a speaker:
```powershell
uv run python -m controller.discovery
```
An address looks like `12:34:56:78:9A:BC`. Copy your speaker's actual address,
not that example, and either type it in the editable **Speaker** field or use:
```powershell
uv run soundtower --address YOUR_SPEAKER_MAC
```
Use the address observed in the BLE scan rather than assuming an audio-device
display name is an address. If no speaker appears, ensure Windows Bluetooth
and the speaker are on, close the phone app, and scan again. An already open
phone connection can affect advertising. Scanning lists advertisements only;
it does not send control commands or pair/remove devices.
Python 3.11 or newer is required; physical device testing used Windows Python
3.14. The interpreter needs Tcl/Tk. If the interpreter provided by uv lacks Tk,