Extend Audio mic & speaker to Bluetooth earbud or headset

I wish to extend the MOVI mic in and headphone out to a user with a cell phone type hands free bluetooth earbud. I find transmit only or receive only devices for audio, and data only bluetooth devices. but it’s difficult to find full duplex simultaneous bluetooth adapters. I do find SMD modules with antenna built in but little practical information about how to connect them to something like a MOVI board. I think I want bluetooth 4.2, HFP protocol capable device. Any help would be greatly appreciate. Device I have made is toi assist quadriplegic people.

I spent some time and money trying to find something like this to no avail. I really NEED to have a BT headset for the application for a number of reasons (noise, speaking difficulty). I’ve gone through 6 different microphones so far and nothing seems to help. Some days they work OK and other days one can speak the wake up word endlessly without result. Conditions are essentially the same regardless of result.

I thought that perhaps I was overloading the 2560 and went to the Due, but that didn’t make any difference other than giving me a lot more memory to expand into :slight_smile:

Once MOVI recognizes the wake up word (tried a number of those too) which is a pure crap shoot in anything but total silence there is almost no problem with recognizing spoken words that have been set up.

Throwing more money away on microphones seems a waste as who knows if I’ll find one that works or how many I have to go through to find that one.

A BT headset would seem ideal but I have not found anything that worked.

Yes, rather frustrated, been working on this for a long time now…

Interesting to note that under the same conditions, Alexa does FAR better at recognizing the wake up work although not as well in recognizing desires after that :confused::confounded::confounded:

Going to dig through the manual in search of anything I missed. Still could seriously use a BT headset.

Any thoughts appreciated!

Vic,

This sounds to me like the Microphones you tested have some noise or overflow. There is a way to find that out: Use the low level interface with the MICDEBUG command.

To access the low level interface, compile and upload the LowLevelInterface example (see
Examples/MOVI/proficient/LowLevelInterface in the Arduino IDE menu) or make sure the
MOVI object is constructed using ‘true’ as first argument. Open the Serial Console in the
Ardunio IDE. Then issue the command MICDEBUG ON followed by RESTART. The recognizer
will restart and operate normally, with the exception that every detected input is played
back through the speakers, which allows to listen to the speech signal (and other noise)
as captured through the microphone (or connected headset). In the Serial Console, now
slowly increase the value of the energy threshold by issuing THRESHOLD commands (e.g.
THRESHOLD 5, THRESHOLD 10, THRESHOLD 15) and calling MOVI and speaking a sentence
until in between each THRESHOLD call until MOVI’s reactionseems normal again.
MICDEBUG OFF followed by a RESTART will set MOVI back to normal. Setting the threshold
too high, however, will make MOVI insensitive and you will probably have to yell at it.

Let me know if that helped,
Gerald

I’ve been using a PoP voice Upgraded cavalier Lapel Microphone,
https://smile.amazon.com/gp/product/B075VQ7VG7/ref=ppx_yo_dt_b_asin_title_o01__o00_s00?ie=UTF8&psc=1
With reasonably good results. It does not matter whether the Arduino cpu is a UNO3, Mega2560, or a Nano, they all respond the same. The threshold setting makes a big difference, and also the distance between speaker and the mic. Like you I am trying to go Blue Tooth for user reasons (no wires). Still looking for a solution.
Bart

1 Like

Thanks Gerald!

Will set up another Due with the same mic and give it a go in the next day or two. Test and production versions of this are a bit clunky to move around :).

Much appreciated Vic

Thanks Bart,

Got a couple of those ordered, Looks very much like the ones I have that work best, but without the noise canceling feature.

Got a couple devices that claim to do tx/rx with a BT headset, but I’ve found no way to pair anything with them. Tossed :-(.

I’ve got the same requirement - no wires and much closer to the user with the noise canceling too.

Still looking, most odd that there seems to be nothing that will do what we need.

Take care, Vic.

I’ve been making some progress on blue tooth.
There are tons of bluetooth modules that either transmit or receive. They are set up to stream audio one way with high fidelity. They tend to use the A2DP protocol. In order to Transmit and receive from a device that is not a cell phone, like for example talking to MOVI, you need to use a different protocol, HFP. In addition to be able to have MOVI the source device and have bluetooth headset or earbuds connect to it, the bluetooth chip must be set to Master mode rather than Slave. Sometimes people also refer to this as Source and Sink. At any rate, the Bluetooth chip must be capable to receiving analog audio in and of also outputting analog audio out. Most Bluetooth modules for Arduino, hobbies, cannot do this. They only do data modes and no voice. Popular modules like HC-05 or HC-06 are data only bluetooth modules. Even if you could convert the analog audio through a DAC, the bandwidth in digital data modes would be too low and the analog would be distorted.
A few bluetooth modules seem capable of HFP audio. These include the RN-52 (See great information on Sparkfun for this chip) CSR8670 and CSR8675, BT127 to name a few. You change the mode and settings on these devices by connecting a FDTI UART to USB board between your computer USB and the bluetooth module. You program the bluetooth module by using a terminal program connected to the usb port the FDTI device is on. You connect only Rx, Tx, Vcc+ (usually 3.3 volts), ground, between FDTI board and the bluetooth module. There is a pin on the bluetooth module (often PIO9) that if grounded, but the bluetooth module in the program mode rather than the run mode. When in command or program mode, you use what look to me to be an offshoot of the old analog modem commands using the AT command set. Like ATDT followed by a phone number would command the dial up analog modem to call the number the follows the ATDT command.
Fast forward 20-30 years and guess what? Bluetooth modules are programmed by a glorified set of AT commands. They have also added GET and SET commands to the AT commands.
To change the bluetooth module to be a Master, to put it into the HFP mode, etc. are terminal commands using AT, GET, and SET. You have to see the Bluetooth chip command list from the manufacturer to see the specific commands that want to change these and other settings.

Currently I am trying to program a bluetooth module, but getting access to the pins is very difficult.
Most are made with SMD solder connections with 1.5mm spacing, far smaller than Arduino breadboard pins.
It is very difficult to buy an expansion board for bluetooth chips. Qualcomm as one for $679 or so for specific chips they make. Sparkfun used to have an expansion board for the RN-52 but is it discontinued, as well as for the BC127 chip, also discontinued. You can download the Autocad Eagle file fo the RN52 expansion board it and make one your self, then collect the components and solder them to the board.

By the way HFP stands for the Hands Free Protocol.

So at the moment I am struggling to get the physical electrical connections made to a couple of audio bluetooth chips I have purchased, so I can program them to work with MOVI. Even after that I will need to work on getting the right audio levels and impedance matches between MOVI and the bluetooth module so they will work well together.

Hope this information is helpful to some of you trying to connect MOVI via bluetooth.

Thanks for the info Bart, stuff I haven’t seen before as to the “hands free” stuff other than commercial stuff that is black boxed and nothing you can get it (that I could tell).

WIll take a look over on sparkfun for the chip and see if I can understand what goes on.

MUCH appreciated! Please keep us informed on your progress.

EDIT: Just checked sparkfun and it looks like the breakout board is back!??!:

HTH!

EDIT2: They also have this thing, which if in the same category is certainly more affordable:

SparkFun Pro nRF52840 Mini - Bluetooth Development Board…:

Going to take some research :-).

Vic,
That’s great new the RN-52 breakout board is available again.

Be careful on the nRF52840 development board. Notice on the bluetooth chip there is only audio in, no audio out. Also there is no mention of the HFP protocol. It appears to me this is mostly a data only device, not suitable for duplex transmit and receive operation. It may be able to stream audio using the A2DP protocol, which is a one way high fi channel. It won’t work with the MOVI chip to both send and receive at the same time from what I can tell, whereas the RN-52 bluetooth module will do HFP and has audio /mic input and audio out pins.

I’ve ordered the SparkFun Bluetooth audio breakout board RN-52. Thanks so much for letting me know it is in stock again. This should really help. I already have an FDTI to UART board to program it.

After studying it some, I do believe you have the right of it. Looks like the RN-52 and break out board is going to be it. Thanks for confirm!

Glad to be of help! I’ll order same as soon as things calm down here :-).

Let’s keep talking. We have very similar goals.
I am awaiting arrival to the R-52 breakout board to see if I can program it as a master and put into HFP mode. I will need to build two attenuator circuits for

  1. RN-52 headphone out to MOVI mic in and
  2. MOVI headphone out to RN-52 mic in.

I am hopeful that running audio in and out of the RN-52 audio digital processors will not create a problem for MOVI recognition.
Bart

Went to order the ?stuff? and it isn’t clear if the breakout board contains the RN-52 or not. The pix show what looks like the RN-52 on the board. “Educational” video was rather useless.

Other issue is that the page for the breakout board lists the 52840 development board as a required / necesary accessory.

Guess I need to email them and see what the story actually is.

Any links to the attenuators required?

Thanks!

And yes, I hadn’t considered the possibility of problems with the BT audio to the MOVI.

More to follow.

New super shotgun mic arrived today, will hopefully get a chance to test it out in the next day or two.

This one::

https://smile.amazon.com/gp/product/B076J4TTQP/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

If successful, it is going to require a 1.5V power supply for 24/7 operation though.

I have now powered up the RN-52 SparkFun breakout board and am talking to the RN-52 Bluetooth module using a FTDI to UART board. I have been able to change the audio mode to HFP, (hands free protocol). However it seems to be in the Slave mode rather than Master. I can’t find a command to put it into Master mode.
Per this users report, I may need to change the firmware to a version that supports Master mode.
See: https://learn.sparkfun.com/tutorials/rn-52-bluetooth-hookup-guide/discuss.

So some progress, but scratching my head how to put it into Master or source mode.

Bart

Vic,
That is a powered mic. The Movi mic input cannot handle a powered mic without input modifications.

Oy, thanks. Hadn’t had a chance to try it yet. Need to find out what it takes.

Also heard from Sparkfun, doesn’t look good:

BlockquoteHi Vic, and thanks for writing.

The breakout board does include the RN-52 module so you wouldn’t need to order that separately and you don’t need the Bluetooth development board to use it. I’m not seeing it listed as an essential item so that may have been a glitch in the website while you were viewing.

We don’t really have a video just for the breakout since it’s a piece of fiberglass and kind of boring on it’s own. The video for the board really is just an example of a project you could do with the RN-52. The only aspect of that project that actually used the RN-52 was the fact that you could play audio from your phone over the speaker in the project.

All I hope to accomplish with the BT is to route audio from a BT
(telephone style (Motorola 730 or equivalent)) headset to / from a voice
recognition / speech synth module. Wires for mic and speaker are
contraindicated due to the condition of my friend.

Unfortunately you need a Bluetooth device that can act as an audio source to do that and this module sadly can only work as a ‘sink’ or a target device. You can connect these to an audio source like a phone or computer, but not to another ‘sink’ device like a headset. We used to carry a module that acted as a source but unfortunately we don’t anymore. If you’re able to find a Bluetooth breakout based on the BC127, that will do what you’re looking for. I’m not sure where to get those now though.

V.

Status update:
I just received in the mail a bluetooth module model RN-52SRC which has firmware to act as a Master or Source, rather than the Slave/Sink version that SparkFun puts on their breakout board. I used an air heat gun to unsolder the RN-52 module. I will solder to the same pads the RN52SRC which, if I don’t mess up the solder job will finally allow me to transmit the MOVI audio as a Master to Slave devices like the bluetooth ear buds that are on the market.

Once I can connect to it with my bluetooth earbud, I will have to design the audio interfaces, which I believe SparkFun has documentation for on some of their discontinued boards for the RN-52.

Thanks for the update!

Although I am confused. The rn-52 on the break out board isn’t going to work for what we want.

You are replacing the RN-52 that comes on the break out board with a RN-52(SRC), Where did you find that?

Or am I more confused than I think :-)?

Tnx, V.