⚠️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 [[projects: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.\\ There is a [[https://www.youtube.com/watch?v=lVrJdW9ekro|tutorial on YT for QCC3008]] ADK Configuration Tool. \\ 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 ===== 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 [[projects:usb-c-ify|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