Bluetooth audio transmitter arduino

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Utilities to help program the KCX_BT_EMITTER module

License

Mark-MDO47/BluetoothAudioTransmitter_KCX_BT_EMITTER

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

This is the master branch; code is original KCX_BT_EMITTER_V1.7

Utilities to help program the KCX_BT_EMITTER module. Collected here to make them easier to find.

Go to the branch for the firmware version of KCX_BT_EMITTER: KCX_BT_EMITTER_V1.1 or KCX_BT_EMITTER_V1.7

This code was originally done for KCX_BT_EMITTER firmware V1.1 (found on modules stamped V1.1 and on some modules stamped V1.2).

There is now a version V1.7 of the KCX_BT_EMITTER and Holger Pandel made some changes to ProgrammingArduino.ino in his fork in branch v1.7 to accomodate the new AT commands. This can be found here

Holger kindly did a pull request to alert me to this update, and I will merge that code in.

There are now two branches to this repo:

  • https://github.com/Mark-MDO47/BluetoothAudioTransmitter_KCX_BT_EMITTER/tree/KCX_BT_EMITTER_V1.1 — works with firmware V1.1 and based on everything from before the pull request
  • https://github.com/Mark-MDO47/BluetoothAudioTransmitter_KCX_BT_EMITTER/tree/KCX_BT_EMITTER_V1.7 — works with firmware V1.7, based on Holger’s code, and will be under development

My V1.7 parts are expected to arrive in the middle of July 2023 so in the meantime I won’t be able to experiment much with the KCX_BT_EMITTER_V1.7 branch; please bear with me.

This tool is designed to help explore the commands of the new V1.7 KCX_BT_EMITTER.

Читайте также:  Дооснащение bmw e60 bluetooth

The purpose of KCX_putty.ino is to be loaded in an Arduino connected the same as the «Programming Arduino» and act like a «dumb» terminal with echo on communicating between the USB «Serial Monitor» of the Arduino IDE and the KCX_BT_EMITTER.

This is somewhat like the Linux/Unix utility «putty», thus the name KCX_putty

This is derived from the Rubber Band Gun routine BlueToothTesting.ino

Note: These utilities were originally developed by me for the Rubber Band Gun (RBG) project https://github.com/Mark-MDO47/RubberBandGun

alt text

alt text

alt text

The KCX_BT_EMITTER Bluetooth Audio Transmitter Module receives line-level (not speaker-level) stereo audio in and transmits to a Bluetooth receiver (speaker, headphones, etc.). Be sure to connect the audio (analog) ground and do not connect audio ground to digital ground. Also due to latency in packetizing/depacketizing the Bluetooth audio, it is best to turn off any parallel wired speaker if using the Bluetooth audio at the same time.

This chip works great! It is not the very latest Bluetooth spec so it doesn’t work with every single Bluetooth speaker, but it works with many and then it sounds great. One downside is that it is so small that the soldering is a challenge for me.

This Bluetooth Module uses an «AT» command set to program it to connect to your speaker and not others. Included in this repository is Arduino code (ProgrammingArduino.ino) that is used to program the KCX_BT_EMITTER. This can be used to store information about your Bluetooth speakers and/or headsets that will stay in the KCX_BT_EMITTER even after power off/on; the KCX_BT_EMITTER will scan for the matching speakers/headphones and connect only to items in that list.

Note that the KCX_BT_EMITTER expects 5V inputs for the serial port. I have heard of problems when trying to use an ESP32 as the programming Arduino. The code itself should work on an ESP32, but the ESP32 boards I know of have 3.5 V outputs. As the first document below says: «The Programming Arduino should be a type of Arduino that uses 5 Volt interfaces. For example, an Arduino Uno or an Arduino Nano Classic.»

That is why I used a cheap Arduino Uno or Arduino Nano clone, which seems to me to be the simplest. Alternatively (although I have not tried this), you could potentially use the ESP32 by passing the serial transmit to KCX_BT_EMITTER signal through a 3.5 V to 5 V buffer driver and vice-versa for the return signal. If I was doing this alternative method, I would be sure also to provide 5 V power to the KCX_BT_EMITTER.

The following document describes using this capability:

Information on the Bluetooth audio transmitter module is found here (along with ordering info)

Читайте также:  Как работает bluetooth стереогарнитура

Best information on the Bluetooth module I could find is here; need to translate from Chinese (see next link)

Some more usage info on the Bluetooth module, especially English information on controlling with serial AT commands

Look in the comments in ProgrammingArduino.ino to see my interpretation of the AT commands

Источник

Arduino.ru

Здравствуйте! Подскажите, пожалуйста, с выбором компонентов. Есть задача передать звук с аудиовыхода телевизора на Bluetooth наушники. Если с самой Ардуиной и модулем Bluetooth понятно, то какой модуль нужен для ввода звука на плату?

Вот вам решение задачи сразу и без ардуины.

Jeka_M аватар

Если с самой Ардуиной и модулем Bluetooth понятно, то какой модуль нужен для ввода звука на плату?

Никакой, мощности ардуины не хватит для работы со звуком приемлемого качества.

andriano аватар

Если с самой Ардуиной и модулем Bluetooth понятно, то какой модуль нужен для ввода звука на плату?

Никакой, мощности ардуины не хватит для работы со звуком приемлемого качества.

Т.е. 48kHz/74dB для Вас качество неприемлемое?

Т.е. ардуинка не потянет цифровку звука с такой скоростью, примерная скорость при использовании встроенного ацп — 9кгц, при использовании внешнего ацп — проще взять специализированые МК а не друину..

andriano аватар

Т.е. ардуинка не потянет цифровку звука с такой скоростью, примерная скорость при использовании встроенного ацп — 9кгц, при использовании внешнего ацп — проще взять специализированые МК а не друину..

У меня — тянет именно с такой.

Это я о том что ардуина, в меру своих ограниченых программно\аппаратных возможностей, просто не справится с оцифровкой звука с достаточной частотой, его кодированием, и передачей по UART.

Или у вас леонарда, или у вас атмега(не ардуина), или по ушам проехался товарный поезд, ибо после медведя такой звук на слух можно отличать от нормального.

Т.е. 48kHz/74dB для Вас качество неприемлемое?

Мне немного кажется что тут вы очень лукавите или подменяете понятия, сам от темы обработки звука я далек, но даже если взять на веру что 48кгц вы получите, обьясните мне как вы получаете на ардуинке диапазон в 74дб? =)

не забудьте, звук нам надо отцифровать, а не воспроизвести =)

andriano аватар

Это я о том что ардуина, в меру своих ограниченых программно\аппаратных возможностей, просто не справится с оцифровкой звука с достаточной частотой, его кодированием, и передачей по UART.

Но узкое место здесь не Ардуина, а UART (о котором, к слову, в этой теме не было ни слова).

Или у вас леонарда, или у вас атмега(не ардуина), или по ушам проехался товарный поезд, ибо после медведя такой звук на слух можно отличать от нормального.

Только идиот будет пытаться работать со звуком на Леонардо или Меге. Единственный продходящий для обработки звука контроллер — это Due. Без вариантов.

Читайте также:  Блютуз наушники поменялись местами

andriano аватар

. обьясните мне как вы получаете на ардуинке диапазон в 74дб? =)

не забудьте, звук нам надо отцифровать, а не воспроизвести =)

Во-первых, лично я звук не оцифровываю, а синтезирую. Строго говоря, об оцифровке посредством именно Ардуины речи в теме не было — это Вы сами придумали. Изначальный вопрос подразумевал возможность применения внешнего устройства для ввода звука.

74 дБ — величина расчетная по известной формуле 2+6N. ПОмерять мне такое нечем.

Для передачи с TV еще немаловажно минимизировать задержки в канале. Ну и всякие там Apt-X, наверное, не помешают.

Но узкое место здесь не Ардуина, а UART (о котором, к слову, в этой теме не было ни слова).

Опять лукавите, или совсем далеки от тематики, 192кбит\с — для уарта вполне себе не высокая скорость.

Только идиот будет пытаться работать со звуком на Леонардо или Меге. Единственный продходящий для обработки звука контроллер — это Due. Без вариантов.

Т.е. ардуинка не потянет цифровку звука с такой скоростью, примерная скорость при использовании встроенного ацп — 9кгц, при использовании внешнего ацп — проще взять специализированые МК а не друину..

У меня — тянет именно с такой.

Собсно вот вам ответ о чем же я, у вас ардуинка тянет оцифровку звука именно с такими параметрами =)

andriano аватар

Опять лукавите, или совсем далеки от тематики, 192кбит\с — для уарта вполне себе не высокая скорость.

Максимальная скорость UART (стандартного) 115200.

Но даже если взять 192 кбит/с. При пересчете в кбайты это будет 19.2 (не удивляйтесь, на байт данных приходится 2-3 служебных бита, которые учитываются в скорости, в стандартном протокоде Ардуино — конкретно 2 бита). При честоте дискретизации 48 кГц, получаем, что на один отсчет приходится 3.2 бита.

Да. трехбитный звук — совсем не предаел желаний.

Не силен в тематике кто есть кто, если Due это 32 битник, то именно о нем речь я и вел.

Мы с вами наверно общаемся на разных языках, но давайте по порядку

1) Что есть стандартный? 384к? или больше? ардуинку можно разогнать до мегабита практически, но даже без этого, почитайте что есть SBC и как именно и насколько он сжимает звук, а ведь именно этот кодек является стандартом синего зуба.

Дальше, зачем вы пересчитываете на байты? у нас битность звукового потока стала измерятся в байтах?

Идем дальше, вы стандарты вообще хоть какие либо из приведенных вами знаете? 48khz ? правда? а ничего что стандартом опять таки, тогоже синезуба максимум при кодеке SBC немного меньше? если вы начнете сьезжать на иной кодек то опять облом, ибо там 24кгц

Due так Due, почему то думал леонарда это 32х битник =)

Источник

Оцените статью
Adblock
detector