Comments: RN-52 Bluetooth Hookup Guide

Pages

Comments 54 comments

  • Do you think it would be possible to sync RN-52 to another RN-52?

  • Hello.

    Thank you for sharing this. I am using RN-52 for streaming audio from my mobile to speakers. But I am getting a high pitched noise from Bluetooth module. If I connect audio through audio cable, it works fine but if i change it to bluetooth same high pitched noise starts again. And its so loud that we cant here original music. Can anyone please help me regarding this??? Thank you

  • Leaving a quick comment to let others know - it’s possible to upgrade the firmware on this on Linux! I couldn’t get the Microchip drivers to install properly on the one Windows laptop I have (running Windows 7, from the posts I found on the Microchip forums I’m not the only one that had issues), so I decided to tempt fate and try flashing it with dfu-util, because my Linux machine had no issues recognizing it properly from the start. I had two power cycle it twice after flashing, but it’s running 1.16 now!

  • pressing Push buttons not controlling various features,please help,i tested with multimeter,everything is fine,but push buttons not controlling features

  • After entering into CMD mode,when i connect GPIO9 to High it will not show END and whether Bluetooth connects with master only during CMD mode ??,In that CMD mode Bluetooth connecting for 20-30 seconds and then disconnects,same with audio and call streaming,please help

    • in the pcb designed ,Ground plane is missing,so after shorting chip GND to main GND pin,its working fine,thanks

  • I want to access the system settings without using the FTDI breakout board ?

    Is there a slight possibility ? I only want to change the Bluetooth name.

    Thanks

    • If in SPP mode, you should be able to configure the bluetooth module over bluetooth using a terminal program such as TeraTerm. You need to have a computer with bluetooth built in or one that has a bluetooth dongle.

  • I want to access the system settings without using the FTDI breakout board ?

    Is there a slight possibility ? I only want to change the Bluetooth name.

    Thanks

  • could anyone tell that whether rn52 can be used as master now?if no please suggest another module and documents?

  • hi,

    is it possible to send audio/music from computer to RN-52 using the RN-52 USB? bluetooth will be used to connect to headphone.

    thanks

    • This breakout could, in theory, be used in a headset, but it would be rather large. You would want to design something around the bare module. Audio can only be streamed TO this module over Bluetooth, not over USB.

      • is it possible to send audio/music from computer to RN-52 via GPIO or UART, then steam the same via bluetooth to headphone?

        many thanks

  • Am I correct in assuming that since the guide has the GPIO’s and PWR_EN directly hooked up to switches and buttons that the RN-52 has internal pull-ups/pull-downs?

  • Hi,

    I’ve update from RN52-i/rm100 to RN52-i/rm116, but unable to go in CMD Mode by putting GPIO9 to GND? Is there anoter way? How to processd?

    Best regards

  • Problem solved

  • ——————– Tech Support Tips/Troubleshooting/Common Issues ——————–

    Source or Sink?

    Unfortunately, the current RN-52 firmware cannot be configured as a source just like the bluetooths used in commercial wireless speakers. The way that it was currently designed with the firmware, you cannot stream audio from the RN-52 like a smartphone. Try checking or posting in the Microchip’s Forums [ http://www.microchip.com/forums/f505.aspx ] to see if there has been any updates to upgrade the firmware to set the RN-52 as a source.

    As an alternative, I recommend looking at the BC127 [ https://www.sparkfun.com/search/results?term=bc127 ] if you require an audio bluetooth set as a sink. I use the BC127 amplifier on the Purpletooth development board [ https://www.sparkfun.com/products/11924 ] with some of my projects already. There is an option to set the BC127 as a source or a sink. For more information, I recommend checking out my comment here under“Audio Bridge: Configuring Two BC127s as Source and Sink using a Serial Terminal” [ https://learn.sparkfun.com/tutorials/understanding-the-bc127-bluetooth-module/discuss#comment-56be3197ce395f9c598b4568 ] .

    Checking the Version Number

    To check the version number of your RN52, you can use the “v” command. Make sure that you connect the 3.3V FTDI to the RN-52 as stated in the hookup guide for CMD mode: Rx <-> UART_Tx, Tx <-> UART_Rx, 3.3V <-> PWR_EN <-> 3.3V, GND<-> GND, and GPIO9 <-> GND. Using a serial terminal connected to the FTDI’s enumerated COM port (with setting 115200, 8-none-1-none). After typing the command, the RN-52 will respond with:

    Ver 1.10 04/04/13
    (c) Microchip Technology Inc.
    

    Upgrading DFU Firmware over USB

    Note: Upgrade at your own discretion before proceeding!!! You might brick your module if you are not cautious!!!

    If you are interested in upgrading the firmware on the RN-52s, you will need the USBD+, USBD-, GND and GPIO3 pins. The standard default v1.10 firmware on the RN-52s requires DFU over USB. After flashing the v1.16 (file rn52-i_rm116.dfu ), the RN-52 will have the ability to use DFU over UART.

    Try looking at the “RN52 Firmware v1.16 Release Notes” [ http://ww1.microchip.com/downloads/en/DeviceDoc/RN52%20Firmware%201.16%20Release%20Notes.pdf ] for new additional features.

    1.) Head to Microchip’s RN-52’s Product Page http://www.microchip.com/wwwproducts/en/RN52 .

    2.) Download the RN52 Bluetooth DFU Utility Installer located under “Documentation > Software.” This will contain the application called MicroChip Bluetooth DFU Utility Installer.exe and a guide called RN52-EK DFU Procedure Guide.pdf . The guide was written for Microchip’s RN52-EK development board but there was no issues updating RN-52’s on our breakout board.

    3.) Download the image of your choice below the software. You have the option of using “RN52-I/RM110 DFU Image” (saved as the rn52-i_rm110.dfu file) or “RN52-I/RM116 DFU Image” (saved as the rn52-i_rm116.dfu file).

    4.) Unzip Microchip Bluetooth DFU Utility Installer.zip .

    5.) Click on the Microchip Bluetooth DFU Utility Installer.exe to install.

    6.) Follow the installation instructions in the installer. This will also install the driver for your Rn-52 audio bluetooth though USB.

    7a.) Hardware Connection Connect a DFU Over USB Pins: USBD+, USBD-, 3.3V, PWR_EN, GND, and GPIO3 pins. You could use the a USB Mini-B Breakout [ https://www.sparkfun.com/products/9966 ], mini-B cable [ https://www.sparkfun.com/products/11301 ], and jumper wires. Since I already connected the 3.3V FTDI to the RN-52, I just used 3.3V and GND from the FTDI to the RN-52 for power. Make sure to connect GND of the USB Mini-B breakout with the GND of the FTDI so the reference is the same:

    USB Mini-B Breakout <=> RN-52 Breakout
    D-                  <=>      USBD-
    D+                  <=>      USBD+
    GND                 <=>      GND
    
    3.3V FTDI Basic Breakout <=> RN-52 Breakout
            3.3V             <=>    GPIO3
            GND              <=>    GND
    

    7b.) Power Cycle Power cycle the RN-52 so that the GPIO3 is HIGH at boot time. The green LED labelled (LED0) and red LED labelled (LED1) will blink simultaneously.

    7c.) Launch the the “Microchip Bluetooth Device Firmware Upgrade Utility” software (i.e. MCHPDFUUtility.exe ).

    7d.) You will be greeted with a note from Microchip. Click on the “Next >” button to begin.

    7e.) Connection Type Selection Select “DFU over Universal Serial Bus (USB)” and click on the “Next >” button.

    7f.) The software should automatically search for the device that is connected over USB. Your computer might pop up with a new device (For Windows, there was a popup in the notifications):

    CSR BlueCore in DFU Mode
    

    7g.) Upgrade Action Selection Select “Download a new version of the firmware, saving a copy of the current version first. Any previous saved version will be replaced. (Recommended.)” and click “Next >”.

    7h.) Upgrade File Select the location of your file (i.e. rn52-i_rm116.dfu ). and click “Next >”.

    7i.) Ready to Upgrade Verify your selections and click “Next >”. Your window might say something like this:

    USB device:
            HUB5_PORT2(BD_ADDR = ??-??-??-??-??-??)
    
    Upload:
            Existing firmware will be saved
    
    Download:
            C:\Users\...\Desktop\RN52saved\rn52-i_rm116.dfu
    

    Note: Since the PWR_EN is connected to 3.3V already, you do not need to “hold the power button down” as stated in the guide for Microchip’s RN52-EK development board. The upgrade automatically started as soon as I pressed on the “Next >” button.

    7j.) Upgrade in Process Make sure to not interrupt the power and connections during the firmware upgrade. There will be progress bars that indicate your progress. Depending on your upgrade selection, it will save the previous firmware, flash the new firmware, and verify the update on the RN-52.

    7k.) Successful Upgrade Once finished, the utility will provide the total time it took to save your file and flash the new firmware. It took less than 5 minutes to upgrade the firmware:

    .
    .
    .
    Time Taken:
        Upload    00 minutes 24 Seconds
        Download  03 minutes 06 seconds
    

    There was also a verification process after flashing the new firmware. This should take about a minute to complete. Click “Finish” to complete the upgrade at the final screen.

    7l.) Cycle Power Disconnect GPIO3 from 3.3V so that it is LOW. Power cycle the RN-52 by disconnecting and reconnecting power to 3.3V.

    8.) If you are already connected to a serial terminal with a 3.3V FTDI and the RN-52 set to CMD mode, you can verify the version number by sending the “v” command. The RN-52 should respond with this output:

    RN52-I Ver 1.16 (c) Microchip Technology Inc.
    

    This should indicate that the firmware has been upgraded to the new firmware. Try testing out the new firmware by playing music from a smartphone. =) For more information on the updated firmware and commands, I recommend looking at this user guide => [ http://ww1.microchip.com/downloads/en/DeviceDoc/50002154A.pdf .

    Streaming Music and Phone Calls

    When streaming music with the audio bluetooth and a call comes in, the smartphone will automatically stop the music and begin to ring until the call is answered/rejected. After answering or rejecting the call, the music will begin to stream again.

    Useful mic design application notes for the RN-52

    http://www.jenrathbun.com/Electronics/rn52-bluetooth-adapter-microphone/

    http://www.microchip.com/forums/m770128.aspx

    https://learn.sparkfun.com/tutorials/rn-52-bluetooth-hookup-guide/discuss#comment-5241d04ed3ae260a048b4567


    Discoverable Mode

    If a smartphone is not able to view the audio bluetooth in the list of devices in the area, try sending the command

    @,1
    

    , to briefly make the RN-52 discoverable.

  • Looking at the existing comments, it seems to me that the microphone connection is actually an line in connection. Is this correct, and if so, will the circuit diagram in the datasheet (page 18 http://cdn.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bt-audio-ug-2.0r.pdf) make it work with a standard microphone?

  • Hi! Is it possible for the RN-52 to receive any kind of data and then relay it to an arduino board through serial or can you only send commands to the RN-52 over serial. I would like to be able to stream audio as well as send other data to my arduino board, both using Bluetooth. Using another Bluetooth module would be fine but my understanding is that I wouldn’t be able to process the data on the arduino in a way that would allow me to play audio because I would have to buffer data and the memory of the arduino is too small. So instead of having the arduino process the data the RN-52 would do all the audio streaming and the arduino would never have to touch it. However, I still need to send other data to the arduino and I wouldn’t want to have to add another Bluetooth module just for that so if the RN-52 could receive that data as well as the audio, realay some of the data to the arduino and play the audio on it’s own. This wouldn’t have to happen at the same time but it would of course be ideal. Is this something that I can achieve with the RN-52? Alternatively, are there any other modules that can achieve this or will I have to add another Bluetooth module for the data?

    • Streaming audio and sending data is not something the RN-52 can do simultaneously.

      • It doesn’t have to do it simultaneously, it would just have been really nice if it could. The main question was if it could realay data it receives to an arduino board.

        • If I’m understanding you inquiry correctly, the answer is no. The RN-52 can only act as a slave device, allowing master devices like smart phones or PCs to connect to it. It cannot be a master device that sends data to an Arduino or other Bluetooth enabled devices.

          • Hi, Can two RN-52 talk to each other?, It is possible in RN-42. Can I use RN-42 for audio transmission? Thanks in advance.

            • No, two RN-52s cannot talk to one another because they are slave devices only. The RN-42 cannot handle audio transmission. It is for low data rate information only.

          • Okay, thank you for your answer. I’ll just have to look for an alternative solution then ;)

  • Hello, I have followed the guide exactly as stated and have gotten to the point when the device can be discovered. But when I attempt to drive GPIO9 to ground, it does not enter command mode. I even placed the wire directly to the output pin on the module (in case the PCB was malfunctioning), to no avail. I checked to ensure the UART was working by looping it to itself, which it was. I even tried resetting it by driving GPIO4 in the sequence for resetting, which did nothing to the device. The device connects and outputs sound, but it simply will not go into command mode. Any suggestions?

    • Hi, I recently pulled a unit from stock to see if anything had changed in the module. I was able to get the RN-52 to go into CMD mode on the first attempt. Make sure your terminal is set to 115200 baud rate. Also make sure you are connecting TX->RX and RX->TX from the FTDI Basic to the RN-52. You should see CMD in the terminal as soon as GPIO9 is connected to GND and END as soon as it’s disconnected.

      • I figured it out - turns out the headers were not making contact with some of the breakout points (most likely the transmit/receive). I used a wire directly through the holes to the breadboard and it began working. Thank you, however!

  • Could someone please explain why the RTS and CTS pins are not being used for the UART connections in the hookup guide. I want to use the 5vcc/3.3v FTDI cable to make my connection to my computer for the initial power up, then later use and Arduino Uno to issue commands and take rssi readings. Can the RTS and CTS connections be neglected?

    • Hi, While it may not be the best practice, serial connections can consist of just VCC, GND, RX and TX. I almost never use CTS and RTS when wiring up a serial connection. I’d consider it the quick and dirty method.

  • can someone tell me the UART command to enable the RN 52 to be able to connect with push buttons and skip,play, ect.

  • I can connect 2 modules RN-52, ie communicate with one another?

  • I can connect 2 modules RN-52, ie communicate with one another?

  • The hookup guide is a little confusing when discussing enabling the AVRCP buttons. It says that “When you type D to see the basic settings, you’ll notice a line that says ExtFeatures=05” and then shows a table with the descriptions of bits 0, 1, and 2. Then it says “Notice that bit 0 is the bit we need to enable to activate the AVRCP button functionality. Send the command S%,07(/r) to enable this bit while leaving the other two bits enabled.” What’s confusing is that if the original value is 5, then bits 0 and 2 are already set (AVRCP buttons are enabled and it’s discoverable on start up) and the only bit changing with this command is bit 1, which has nothing to do with AVRCP. The guide’s explanation would make more sense if it started with ExtFeatures=06, or with a little bit of rewording, the factory default of ExtFeatures=00.

  • Hi , I want to connect a microphone to RN-52 . Then i want to hear auido from my android phone. How can i do it? Can you help me please?

  • Hi, I might ask a stupid question, but is it possible to send also serial data besides audio (i.e. emulate an external keyboard)? (doesn’t have to be at the same time as streaming audio).

  • Does this automagically work with iPhones? I though apple required some additional hardware to connect over BT?

    Probably no way to get a playlist from the phone?

  • Hi, I need a little help. I can’t seem to get led0 pulled high to break it out for a case. What value resistor do I need?

  • 1-can anyone tell me the command to get the name of the paired device ?

    2-is it possible to get the strength of the signal ?

  • Have an Iphone 5 running V 7.04. Have paired successfully, however, a few things fail or don’t work correctly. 1. No volume up/down controls (through the RN-52 work. 2. Pause works fine, but when activated again to play, the audio is now routed via the RN-52 rather than the headphones on the phone (which it was using prior to pause. Not sure if this problem occurs on Driod or Windows phones.
    Anyone have this issue and have resolved it? Thanks in advance.

  • Oops!

  • Is there any way that rn-52 module can stream audio to multiple devices or multiple other slave rn-52 modules……!!!! I want to use it to stream audio from television sets to multiple bluetooth receivers….

    • I’m curious about this as well! I would like to figure you how to set up one RN-52 as a master (which would pair to your device) and the have sub-sequential RN-52 slaves that would receive all the same audio!

      • I have the same problem! rn-42 offers a command to switch to “master” mode but I did not find that command in rn-52, so I think rn-52 cannot work as a master (I am not sure). Would that be possible with “Bluegiga WT32”? Help please!

        • From the datasheet: “Roving Networks modules do not currently support multi-point master mode.” The RN-52 only operates in Slave mode with the current firmware. There may an update in the future that allows master mode to be enabled on the RN-52.

  • Any notes on connecting a microphone? I want to build some custom “headsets” with one of these, not just listen to tunes.

    • Adding a mic proved to be more difficult than adding speakers. You could use the mics we sell (in theory) but would have to have a bunch of supporting circuitry to make them work. I suggest getting a mic that’s meant for mobile phones or video cameras (ones with a 3.5mm jack on the end). You could then use one of our 3.5mm jack breakouts to attach the mic to the RN-52. Check out the example circuit in the datasheet. It has some external circuitry you may need to get the mic to work. I’ve managed to get line-in music to work (I attached my phone to the mic/line-in lines, connected to the computer, then recorded the music using Quicktime), but I have yet to find a good mic that will work for phones calls and such. Let us know if you find a mic that works well. We’re looking into it as well.

      • Any progress here? My order depends on this. Also what does “differential audio input and output for highest quality audio” (from the datasheet) mean? Is it only that there is a separate grounds for both channels?

      • So is that the issue?!?!? It’s labeled Mic but it’s expecting line level voltage? Ok. Seems like SF could knock a board together pretty easily for that. I’d buy it. Maybe you guys (SF) should state this fact more clearly, if it is indeed a fact, because I’ve read a lot of posts about frustrated customers trying to get this to work as hands free device (I’d count myself in that group). I know it’s being sold as an audio streaming solution, but it has SO much more potential.

        • Respectfully
  • I was too eager to wait for the breakout board so i’ve essentially been recreating the portions of the development kit that I need (microphone and speaker interface) on a perf-board… I’m hoping to embed this interface in a vehicle and leave it so you won’t need to touch it once the device is paired to an Android phone (Nexus 4). I can pair just fine, but the next time I power up, I have to pair it again. Is there any way to make it remember the last pairing (or multiple pairings, for that matter… I thought it could do up to 8 or 10) and automagically connect to them on the next boot?

    • I’ve only tested pairing on an iPhone and iMac. You should be able to just pair it once and then connect automatically every time after that. There are some settings in the module that deal with stored and paired devices. Check out the datasheet and play around with some of those settings.


If you've found a bug or have other constructive feedback for our tutorial authors, please send us your feedback!