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.