Using Arduino and Bluetooth to broadcast Simple Audio Signals

Hi everyone, first time poster here. Currently have an Arduino Nano 33 BLE.

I'm working on a project where we are interested in using an Arduino to:

  1. read input sensor data in real-time (i.e. from an ultrasonic distance sensor, infrared temperature sensor, etc.)

  2. convert that sensor data to a digital audio signal that changes as the input sensor signal changes. The vision is a simple tone that changes frequency linearly with the input sensor signal.

  3. transmit that audio signal to Bluetooth headphones / headset, with low latency.

The challenge I face immediately is that Bluetooth Low Energy (BLE) does not seem be equipped for audio-streaming, mostly due to bandwidth constraints. As far as I can see, there is not an Arduino that is equipped with a Bluetooth Classic module. Further, there is not even a library for Bluetooth Classic whereas ArduinoBLE exists for BLE.

I am hoping that the simple nature of our audio signal will permit us to use BLE to output an audio signal to an LE audio-enabled headset. I actually have a pair of headphones that have an 'LE' channel, although this functionality isn't specifically called out on the product page.

I'm hoping you all can provide me some guidance on what my next steps should be, given my goals. Is it realistic to try and use BLE for this purpose or should we try to integrate some kind of external Bluetooth module? Should we using something like a Raspberry Pi instead? Will we need other hardware like ADC/DAC?

Sorry if this is the wrong place for this post. Please know that I've also searched through several Arduino forum posts / Google and haven't found something conclusive regarding using BLE for something like this.

I would just send sensor data digitally, and generate the audio at the other end.

That would require some additional hardware before the headphones right? There's no way to make the headphones process the sensor data into a usable audio signal, correct?

Yes, but as you discovered, it might realistically be the only way you can do this.

Bluetooth Classic and BLE are totally different, except that they use the same portion of the radio spectrum.

The $1 433MHz radio modules (various carrier frequencies available) can be used to transmit simple tones at different audio frequencies. Just use the tone() output to drive the DATA pin.

Look for an esp32 microcontroller with a2dp source functionality.
This will do everything you want.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.