This is an old revision of the document!
Table of Contents
⚠️UNDER CONSTRUCTION!⚠️⚠
DIY active speaker
There is different hardware on the market available to convert a passive speaker to an active one. Here I present a variable solution with Bluetooth and the possibility to control it with an MCU.
FYI: If you have an old amp with 30-pin iPod Dock, see ipod-simu
Hardware modules
- passive speaker
- amplifier (here: TPA3118)
- power supply unit
- optional: DC-DC decoupler / filter (to eliminate noise of PSU) / LC-filter
- receiver/player (here Bluetooth via BT201 KT1025A or CSR/QCC chipset)
- optional: MCU (used for BT201)
TPA3118 class D mono amp
BT201 module with KT1025A
MeanWell SMU01L-05 DC/DC Wandler, 5V zu 5V, 200mA, 1W
BT201 KT1025A
What is different with this module from other common ones: It has RX/TX lines for AT-commands, so it's easy to use an MCU for setup and controls - no logic level converter needed, it can use 3V or 5V logic.
It also has iR for a remote control. It can play audio files from Bluetooth, USB, SD-Card, AUX.
Latest(?) (V2.4 / 2020-04-17) Firmware is available here: http://www.szqyvhome.com/DownLoad/18685.html
Put “updata.bfu” in USB/SD card (FAT/FAT32, 32GB max), connect the power, wait ~10s, it will beep a few times on speaker output and stops when update process is done.
“updata.bfu” file location: 20240524154050.zip/99_BT201方案_KT1025A_B_资料_V2.4_20200426/02_用户手册/
Manuals
https://web.archive.org/web/20240615231859/https://nettips.ru/book/BT201%20Module%20_KT1025A_B_User%20Manual%20_V2.3.pdf
https://elektrotanya.com/kt1025b_bt201_bluetooth_audio_chip_user_manual_v2.4.pdf/download.html
https://www.electronics123.net/amazon/datasheet/FN-BT91%20(BT201)%20Bluetooth%20Audio%20Player%20Module.pdf
https://www.scribd.com/document/857956764/BT201-Module-KT1025A-B-User-Manual-V2-4
Code sources
example code links:
https://github.com/MooreSound/code
https://github.com/mehdi-adham/BT201
https://github.com/christian-kramer/JieLi-AC690X-Familiarization/issues/4
QCC / CSR BT only modules
Many audio Bluetooth player modules use CSR/Qualcomm chipsets. CSR has been acquired by Qualcomm in 2015.
CSR chips → require CSR USB-SPI programmers, uses BlueSuite toolchain.
QCC chips → prefer USB DFU, only use QCC USB-SPI when needed
| Feature | CSR (Legacy CSR86xx Series) | QCC (Modern QCC30xx / QCC51xx Series) |
|---|---|---|
| Programming Interface | CSR USB-SPI (proprietary CSR protocol) | USB-DFU (if exposed), or QCC USB-SPI (different protocol from CSR) |
| Official tools | BlueSuite (PSTool, BlueFlash, Audio Prompt Manager, ROM Config Tool) | QCC Tool, QCC Audio Tuning Tool, Qualcomm ADK tools (QACT, ConfigStore editors, VP Tool) |
| Config system | PSKEYS | ConfigStore (new architecture) |
| Firmware format | .xuv, .xpv, AMT/BlueSuite prompt packs | .dfu, partition images, QCC voice-prompt packs |
| Voice prompt storage | Separate AMT VP pack or embedded table referenced via PSKEYS | Partitioned VP image or ConfigStore mapping entries |
| VP disabling method | Edit PSKEY_AUDIO_PROMPT_ENABLE or remove mapping | Disable “Voice Prompts” in ConfigStore or remove VP partition |
| USB programming | NO (CSR USB is not for flashing) | YES on many modules (USB DFU mode) |
| SPI programmer needed | Yes, almost always | Only if the module does not expose USB DFU |
| Alternative open-source tools | csr-spi-ftdi, CsrSpiDrivers | csr-spi-ftdi sometimes works only for CSR chips (not for QCC) |
| Interchangeable toolchains? | No | No |
https://www.diyaudio.com/community/threads/qcc5125-and-qcc3034-qcc3031-programming.374322/
https://github.com/lorf/csr-spi-ftdi/issues/59
alternative flashers:
https://github.com/lorf/csr-spi-ftdi
https://github.com/Frans-Willem/CsrSpiDrivers
https://www.diyaudio.com/community/threads/csr8675-programming-guide-w-software-and-tons-of-csr-info.349336/
https://www.tinysineaudio.com/blogs/news/how-to-change-the-qcc30xx-series-bluetooth-eq-settings
mute voice prompts
⚠ QCC does not use CSR BlueSuite anymore. All Qualcomm voice-prompt handling uses QCC/ADK tools. Access via USB DFU or QCC USB-SPI.
Option A for QCC) Disable prompts in ConfigStore (recommended)
- Tools: QCC Audio Tuning Tool; QCC Tool / ConfigStore editor
- Open ConfigStore (inside QCC Tool or QACT).
- Disable VoicePromptsEnabled / VP_Enable
- Optional: disable earcons (EarconEnable).
- Save to flash → reboot. Result: No more spoken prompts.
Option A for CSR) Disable voice prompts using PSKEYs (recommended)
- Tools: BlueSuite → PSTool
- Edit or add the PSKEY:
- PSKEY_AUDIO_PROMPT_ENABLE = 0
- Some firmwares also have:
- PSKEY_EVENTS_AUDIO_PROMPTS
- PSKEY_USR0 flags controlling individual events
- Write changes → reboot
Option B) Replace VP files/partition with silent audio
- Tools for CSR: BlueSuite → Audio Prompt Manager
- Tools for QCC: Voice Prompt Tool (QCC/ADK); ImagePack Manager
- Extract the VP pack (usually .vp, .xuv, or .bin) or partition.
- For QCC: Import into the Voice Prompt Tool (in Qualcomm ADK).
- Replace each file with a 0.1s silent WAV (16 kHz, mono PCM).
- Reflash the VP pack/partition.
- Result: Events still fire, but silence is played.
Option C) Remove mapping table entries
- Tools for CSR: BlueSuite → ROM Config Tool / AMT
- Tools for QCC: ConfigStore
- Delete / clear the event→prompt mapping entries.
Option D) Flash minimal firmware without voice prompt partition
- Requires: Full CSR ADK / Qualcomm ADK; probably requires vendor keys
There is a tutorial on YT for QCC3008 ADK Configuration Tool.
power supply
The amp needs >=12V, the player 5V. There are different choices as PSU:
For >=12V:
- Use a random AC-DC power supply unit
- Use USB-C PD trigger (module): see USB-C-ify everything
To get 5V:
- 5V module (either switching regulator or LDO): switching introduces noise, an LDO heat an inefficiency
- use a 12V car cigarette 5V USB adapter
If there is noise, smoothen 5V on the player. Options are:
- use 5V DC-DC decoupling module (+ ~5€)
- try if an LC filter is sufficient: #TODO: add schematics
- use an LDO to get your 5V
