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
Requirements
- passive speaker
- amplifier (here: TPA3118)
- power supply unit
- optional: DC-DC decoupler / filter (to eliminate noise of PSU) / LC-filter
- receiver/player (here: BT201 KT1025A)
- optional: MCU
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
the verdict: use QCC / CSR BT only modules
If you want APT-X, you might go for Qualcomms chipsets (formerly CSR)
https://www.diyaudio.com/community/threads/qcc5125-and-qcc3034-qcc3031-programming.374322/
https://github.com/lorf/csr-spi-ftdi/issues/59
- USB programming first (easiest) (if available)
- USB-SPI / SPI-ISP
- official QCC development/evaluation kit (Qualcomm ADK / QCC dev kit)
use QCC Audio Tool / QCC Tool / ADK Config Tool to read/write config files and flash .xuv/.htf firmware images.
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
Option A) Connect via USB (or USB-SPI if needed). Disable via QCC Audio Tool (or the legacy CSR “Audio Development Kit” tools).
Option B) Replace the prompts with silent audio files
- Extract the current voice-prompt pack (usually .vp, .xuv, or .bin).
- Import into the Voice Prompt Tool (in Qualcomm ADK).
- Replace each voice file with a 0.1–0.2 second silent WAV file.
- Reflash the VP pack to the module.
Option C) Remove the prompt table in firmware (advanced / not always possible)
Some cheaper modules embed the VP activation table inside firmware. Disable VP triggers in the ConfigStore (DSP configuration), or flash a minimal firmware build that has no voice prompts - requires the full ADK and sometimes vendor passwords.
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
