Bi-directional wireless audio between smartphone and Arduino

Hi friends, apologies if this is the wrong topic but it seemed the most fitting to me.

I'm an avid user of analog two way radios for communication, but, for a myriad of reasons, it is becoming infeasable to use these for me anymore. I have considered other options such as SDF, Digital Mobile Radio, advanced amateur radio, and even switching to ePTT solutions. However, none of these solutions are as simple, or cheap as I want them to be.

To this end, I've set out to create my own solution. What I have in mind is the equivalent of a shoulder mic for a standard radio, like you might see on a cop's shoulder. However, instead of connecting to a radio, it'll be connected to a smartphone wirelessly (I'm thinking Bluetooth here.) It doesn't need to do anything fancy at all, and right now all I want to build is a working prototype, so it doesn't have to be small or portable yet, I can do all that later on.

All I need it to do is this:

  • Connect to a smartphone
  • Play audio from the smartphone over a speaker
  • Send audio from a microphone to the smartphone

I was initially looking into the Arduino Nano 33 BLE for this project, but further down the line I read that BLE is not particularly suited to audio streaming, and this device does not support Bluetooth Classic.

Later on, I stumbled on the RN-52 Breakout Board from SparkFun, which appears to be exactly what I need in terms of hardware. Unfortunately, this product has since been retired and even while it was being sold, the reviews aren't stellar.

I've also read that Arduinos might not be fast enough for audio processing in general, which could be a hurdle. If indeed Arduinos can't handle my needs, I'm perfectly fine using the likes of Raspberry Pi, but I have faith that an Arduino will be able to handle this project sine it is in essence very simple.

My questions to you all:

  • Do I need an Arduino at all for this project, or is there a simple dedicated Bluetooth device I can use instead?
  • Which arduino is best suited for this purpose?
  • How would you go about this project?

I know this is an incredibly non-trivial project, however the only problem I have is the hardware. I write software and am completely dumb to hardware, so I have no idea can interface with the software on a phone.

Thank you for any information you can offer!

Bluetooth range is some small number of meters. What is the point of transmitting voice audio over that range?

The device is meant to be functionally the same as a remote microphone for a radio, so the idea is that you can keep your phone or perhaps in your vehicle as you get out and move around, and just reach up to press the button and speak. Think one of these.

I have a completely separate solution for streaming audio data between a number of clients (in this case smartphones), so that's completely separate. This device is intended to be used within about 3 feet of a phone at any given time, so range and obstructions are not much of a concern.

You can think of this device as a wireless bluetooth headset.

Bluetooth microphones are already available, quite cheaply.

Yes, but I haven't found any in the form factor I'd like or with the compatibility I'd like.

There are several very decent looking options on Amazon, but unfortunately they usually claim to only support Android or specific apps like Zello. I need something generic that will work as a bluetooth headset with any device it connects to on any app.

Additionally, I have future plans to update the hardware to do more than just relaying audio, but that's all I need for now.

I've never done anything with Bluetooth so I don't know what's available but the Bluetooth module(s) would have to handle the "heavy lifting" and the Arduino would only act as a "controller".

The regular Arduino isn't fast-enough for real-time audio. Similarly, if you want to play MP3s, you get an audio shield and the Arduino just tells it what file to play (the file is stored on an SD card on the audio shield), and when to start/stop, and it can send volume commands, etc.

1 Like

That’s kinda the vibe I was getting, and I’m okay with that.

The best looking bluetooth controller I found has been the RN-52. Specifically, SparkFun’s breakout board for it. Unfortunately, that board has been discontinued. Perhaps, though, there are other boards that utilise this module.

I might end up going with an Arduino Nano as the controller.

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