Keep Your Bluetooth Speaker
Awake & Connected

BTSpeakerManager stops your Bluetooth speaker from going to sleep, sets it as the default audio device the moment it connects, and falls back to your wired output when it disconnects. No more sound blasting from monitor speakers.

FreeOpen SourceWindows 10 / 11Standalone EXE

The Problem

Bluetooth speakers are great — until they go to sleep. Most speakers enter standby after a period of silence, sometimes as short as 30 seconds. When that happens:

Windows has no "keep this device alive" setting, no "always reconnect" toggle, and no fallback-device option. If you work at a desk with a Bluetooth soundbar, you're switching audio devices by hand multiple times a day.

What BTSpeakerManager Does

Silent Keep-Alive
Plays a continuous, inaudible tone through the speaker so it never enters standby mode. Uses SND_LOOP for gapless playback.
Auto Default Device
Detects when your BT speaker connects and automatically sets it as the default audio device. No manual switching.
Fallback Audio
When the speaker disconnects, automatically switches to your wired output (e.g. Realtek) so you're never stuck on monitor speakers.
System Tray
Runs quietly in the tray with color-coded icons: blue = connected, gray = disconnected, orange = paused.
Speaker Selection
Scans your audio endpoints and lets you pick which Bluetooth speaker to manage. Auto-detects the BT instance ID.
No Audio Blips
Uses state-transition polling — only changes the default device on connect/disconnect events, not every poll cycle.

How It Works

BTSpeakerManager polls Windows audio endpoints at a configurable interval (30 seconds to 10 minutes). It tracks the connection state of your selected Bluetooth speaker and only takes action on state changes:

The keep-alive is a WAV file containing a single sample of silence, played on continuous loop via winsound.SND_LOOP. The speaker sees an active audio stream and stays awake.

Everything is configured from the tray menu and stored in config.json next to the executable — speaker selection, polling interval, keep-alive toggle, and auto-start with Windows.

Install

BTSpeakerManager is free and open source. Download the standalone EXE (no Python install needed) — a single ~27MB file you can drop anywhere and run — or run from source:

pip install pystray Pillow pycaw comtypes python bt_tray.py

Source, EXE build script, and documentation: github.com/VAROIndustries/BTSpeakerManager

FAQ

Why does my Bluetooth speaker keep disconnecting or turning off?
Bluetooth audio devices have aggressive power-saving behavior — most speakers enter standby after a period of silence, sometimes as short as 30 seconds. When that happens the speaker disconnects, Windows silently switches your default audio to whatever's next in line (usually your monitor), and it never switches back when the speaker wakes up. BTSpeakerManager prevents the standby with a silent keep-alive tone and handles the device switching automatically.
How does the silent keep-alive work?
BTSpeakerManager plays a WAV file containing a single sample of silence on continuous loop. The speaker sees an active audio stream and never enters standby — you hear nothing, and playback of real audio is unaffected.
Will Windows switch back to my Bluetooth speaker automatically?
Windows won't — but BTSpeakerManager will. When your speaker reconnects it is automatically set as the default audio device, and when it disconnects the default switches to your chosen wired fallback so you're never stuck on monitor speakers.
Do I need Python installed to use BTSpeakerManager?
No. You can download the standalone BTSpeakerManager.exe — a single ~27MB file you can drop anywhere and run, no Python install needed. Running from source is also supported.

More Free Tools