Introduction: Change Bluetooth Headset/Speaker/Adapter's Name or Other Settings Through UART
Do you happen to have a pair of bluetooth headsets or other bluetooth audio accessories which have a really disgusting name and every time you pair them up you have this inner desire to change their name? Even if the reasons aren't the same, there are still a lot of people who'd like to customize their accessories, with me being one of them. My headphones had the name POR1007BT which didn't satisfy me so I looked up various methods of changing the name and this instructable is the easiest way to do so.
Therefore, I'd like to present to you this instructable which will guide you through the steps on how to change the properties of any bluetooth audio module or gadget, including the name modification.
Please note that this method is restricted to only those devices which have OVC3860 installed in them.
One such module is XS3868 which I'll be using to demonstrate this method. Also, most of the cheap Bluetooth dongles like this one are based on OVC3860 so there's a high probability that this method will work for you.
Step 1: Gather Around Some Stuff
This instructable documents two methods to achieve the goal. One implements the usage of a USB to TTL Coneverter, while the other uses an Arduino UNO. It is up to you to choose one of them. That being said, the requirements for this instructable are basic enough that you won't have to spend a single penny if you're into electronics because you might already have the stuff!
I'd like to add that there are small chances of the Arduino method not working. It's because Arduino UNO uses CH340G which has its fame for not being able to sustain higher baudrates. On the contrary, I didn't face any problem in my case therefore the chances are low I think.
USB To TTL Converter Method Requirements:
- A Bluetooth Audio Gadget
I'll be using my bluetooth headphones which I had made a year back. It uses the XS3868 module which is based on OVC3860 IC. Please check whether your gadget is based on OVC3860 before proceeding with this instructable.
- A USB to TTL Converter (here, USB to TTL Converter (CP210))
While using or buying a converter, ensure that the converter you're choosing has 3.3V logic level because the module only supports 3.3V logic level. So, if you have a 5V logic level converter, be sure use a logic level shifter.
- A Breadboard (here, 400 Tie Point Crystal Breadboard)
This is only used for making multiple connections to TTL Converter's ground socket. If your converter has at least two GND sockets, then you won't need a breadboard. Mine has only one GND pin therefore I will require a breadboard.
- Jumper Wire - 5 pieces (here, Arduino Jumper Cables (M/M))
That's it for the requirements for this method.
Arduino Method Requirements:
While I'm referring to this method as Arduino method, you have to note that here there is no usage of ATmega or any kind of Arduino code. All that we care about is the USB to TTL Converter which is in-built in Arduino for programming purposes.
- A Bluetooth Audio Gadget (based on OVC3860)
- Arduino UNO or any other model with UART capabilty
- Jumper Wire - 5 Pieces (here, Arduino Jumper Cables (M/M))
That's it for the Arduino method requirements.
Now that we've covered up the requirements, so let's truly begin with the instructable.
Step 2: Locating the Pins
Open up your headphone or gadget and try to locate these three pins or pads:
The above picture is of a USB Bluetooth Audio Adapter which has been taken by a fellow maker (rohit7gupta). As you can see, the all the three pads have been indicated clearly. This is how the locating has to be done!
If you are having a bluetooth module without any circuitry done externally, then you'll also need to locate the RESET pin. Since my headphone crudely uses the XS3868 module, that is why I also had find the RESET pin. I located the pins by referring to the pinout posted above.
If you have BluFi, then you don't have to locate the RESET pin because the wiring has already been done there. I, while making my headphone, was tactful enough to add four female headers(Rx, Tx, GND, RST) for serial communication. So I'll be connecting to these handy headers without having to open my headphones. I have attached pictures which you may refer to for better understanding.
It would be better for you to add female headers to these pins for easy plugging and removal of jumper wires. See how handy it is for me to just plug in-and-out jumper wires to my headphone.
Step 3: Wiring the Bluetooth Board (USB to TTL Converter Method)
Now that you've successfully located the above stated pins, wire the USB To TTL Converter with the pins using jumpers and the breadboard as shown in the wiring diagram. I have attached pictures of my wiring as well.
The wiring of Rx and Tx on board boards should be cross-wise, that is Rx should be connected to TxD and Tx should be connected to RxD.
Step 4: Wiring the Bluetooth Board(Arduino Method)
Interconnect the RESET and GND pins of the Arduino board to use Arduino as a TTL Converter.
Now your Arduino will behave as a USB to TTL Converter.
Once you are done with the above step, start wiring your Arduino board with the Bluetooth board according to the above posted wiring diagram.
After finishing the wiring, double check it and then proceed to the next step.
Step 5: Ensuring Communication Between PC and Module (Optional Step)
Now that you've done the wiring of the Bluetooth board correctly, you should be able to TALK to your board using AT commands. AT Commands are those magical words which can be sent to the module through UART to ask it to do a specific operation(based on the command being sent). On reception and completion of the operation being commanded to it, the module usually responds as OK. To send "AT commands" and to get the response as well, you're going to need a serial terminal software such as TeraTerm, Serial Monitor(in-built in Arduino IDE), PuTTY and so on.
To start a serial session with the module, you need to set the following settings for serial communication:
- 115200 bps baud rate
- Data Bits: 8
- Both New Line and Carriage Return
- 1 Stop Bit (default in Arduino IDE)
- No Parity (default in Arduino IDE)
- Local Echo (optional)
I'll be using Arduino IDE's in-built serial monitor for this purpose because it is simple and easy to use.
To test the communication between bluetooth board and PC, follow these steps:
- Hook up your TTL Converter or Arduino with your PC and power on the bluetooth gadget or accessory.
- Open your serial terminal software with the appropriate COM port selected and set the settings stated above.
- Try sending an AT command, for example, "AT#VU" without the quotes. You may see other AT commands from the PDF attached below. On sending this, you should receive a response as "OK" in the serial terminal from the module.
In the third point above, I have sent the command to increase the volume.
If you're not getting any response, try reversing the Rx-Tx connections and check whether GND pins of both boards are connected or not.
With this, you have finished testing the communication between your PC and Bluetooth board and can now proceed to the next step.
Step 6: Setting TTL Converter/Arduino Port As COM1
The tool which we're going to use for modifying the settings of our bluetooth module/gadget isn't well developed. It's major drawback is that it can only use COM1 port for modifying the settings. Therefore, we'll have to set our inserted TTL Converter/Arduino's port as COM1.
To do that follow the steps stated below:
- Open Device Manager by typing "devmgmt.msc" in Run dialog box.
- Find your TTL Converter/Arduino under "Ports(COM & LPT)" section.
- Right click on your device and open "Properties".
- Click on "Advanced" in the new window that opens.
- Select COM Port as COM1 using the drop down list.
- Click "OK" and close everything.
Now all the prerequisites for the tool have been finished. Let's begin modifying the configurations.
Step 7: Changing the Values Using OVC3860 Tool
We are 90% done! All that's left to now is to modify the Bluetooth board values using the OVC3860 Development tool. I have attached it below.
To modify the values of your bluetooth board, follow these steps:
- Ensure that your bluetooth module/gadget is powered off while following these steps.
- Download the OVC3860 Development Tool and open it.
- It will indicate that no device is connected to it by showing "Not Connected".
- Now power on your bluetooth module/gadget and the tool should indicate that it is connected by showing "Connected".
- Click on "Read All" to read all the values of the module.
- Then locate and select the value which you wish to change, for example, I wanted to change the name of my Bluetooth headset. The name was located in the localname key.
- After that, fill in your desired value in the blank below and click on "Write Selected".
- Once all modification has been done, click on "Disconnect" and then restart your module for the changes to take effect.
I have attached a PDF which states the description of various keys(actually Persistent Store Keys). Refer to it for more insight into OVC3860 configuration.
Some common-use Persistent Store Keys:
- localname - stores the name
- pincode - stores the pin code
- uart_baudrate - stores the baud rate at which UART communication is to be done.
I have posted the pictures of how I changed my Bluetooth headset's name above.
Step 8: Congratulations
Congratulations on successfully modifying the name of your bluetooth board and other details. Now you'll be free to customize your bluetooth gadgets according to your needs and even integrate bluetooth audio modules with Arduino by setting a lower baud rate.
This opens a lot of possibilities so go ahead and try them out!
That's all for this instructable! If you have any doubt, feel free to comment. Don't forget to subscribe if you liked this instructable. Please support me by reopening the shortened links twice or thrice.
Thank You DFRobot:
I'd like to express my thanks to DFRobot for providing me with equipment and modules for my projects. I really love the stuff they have sent me. Be sure to check out their website.
In collaboration with DFRobot.com
Thanks to Ashish Choudhary for lending his camera.