Creative Commons images are CC BY-NC-SA 3.0

Description: This is a breakout for the BC127 Bluetooth Module. The BC127 is a highly flexible, low power, small form factor Bluetooth Version 4.0 Certified Audio module. This is an ideal module for developers who want to quickly and cost effectively integrate Bluetooth functionality into their products.

The BC127 Breakout board provides basic access to all the pins on the BC127 module, along with a six-pin serial header with the same pinout as the FTDI Basic boards, allowing it to connect to boards like the Arduino Pro, Pro Mini, and LilyPad. It also includes voltage regulation, serial data level shifting circuitry, and support for the built-in battery charge circuitry.


Recommended Products

Customer Comments

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

    Connecting the BC127 Breakout Board to a Serial Terminal

    Don’t expect to directly connect the 5V FTDI breakout board to the bottom FTDI header pins on the BC127 breakout board. The Eagle board layout & schematic files show that the Tx pin would connect to your Tx on the FTDI and the Rx to the Rx pin on the FTDI. This was due to the design of the BC127 Breakout board so that you can connect it directly to an Arduino Pro, Pro Mini, and LilyPad. If you place it on a breadboard or wired the pins appropriately from Tx to Rx and vice versa, you are able to go into command mode with the BC127 through the serial terminal (with settings 9600 8-none-1-none) after entering “$$$$”.

  • As I wanted to avoid using a voltage regulator in my project, I tried to push the embedded voltage regulator to its limits. As seen in the schematics, the board uses a MIC5219 from Maxim to get 3.3V. I found its datasheet, which tells us that the maximum input voltage is 12V. Bingo ! Alas, the board couldn’t take more than 9V from the VCC (V_FTDI) and stopped working immediately, but worked fine again when fed acceptable voltage. My greatest mistake would have been trying one last time with another 12V power supply; since then, the board is dead :(

    Could you tell me why, knowing that theorically the 12V should have been converted to 3.3V ? Maybe something else broke ? If anyone has a clue, just let me know !


    • Do you have an idea of how much current you were drawing?

      The power dissipated by the regulator is (VIN-3.3V)*Iout; at, say, 100mA, that’s nearly one watt! It has some protection against that but it’s not foolproof.

      On the bright side, I’d be willing to bet the downstream stuff survived, so you could probably provide 3.3V directly to the 3.3V pin and power the board that way, bypassing the dead regulator altogether.

      • I used a multimeter to see if the regulator still worked; and it did, outputting a steady 3.3V. You gave me a little hope, but providing 3.3V to the power pin didn’t work. Should I try something else, or just wait until Sparkfun makes that board again ?

  • I am currently using a 5V 16MHz Arduino Pro Mini to communicate with the BC127, is 5V or 3.3V Arduino recommended? Every time I send a command to the BC127, I receive an ERROR message prior to receiving an OK and am not sure why.

    • Did you try the RESET command ? Does it work? It should tell you the version of the software, at least. You could start from that.

    • Are you using the println() command? That command sends a newline AND a carriage return; the BC127 expects only a newline. To fix it, use print() instead, and to the end of your string that you print, add \n. That will inform the BC127 that you’re done sending WITHOUT causing the error.

      • I’m using one of the Arduino library functions to send a command, for example “BTModu.stdCmd("DISCOVERABLE OFF”)“. I then receive an ERROR then OK message. I can send commands to the BC127 no problem with an FTDI, the problem I’m having is using the Arduino.

        Also, what is the best way to observe the responses from the BC127 when using the Arduino? Is it ok to use an FTDI to read the responses (via a serial monitor) while programming it with the Arduino?

        • Eesh, I don’t know, then.

          As for watching the responses, I usually just hook up one or more RX pins from other FTDI basic boards and open serial windows on each. That allows you to see what’s going across on each pin. Timing is an issue, but for verifying the formatting of the strings it can’t be beat.

  • Hoping someone from Sparkfun tech support can help me with this.

    Bought the BC-127 breakout module a few weeks ago. Soldered on some header pins, and after some struggles with the FTDI connection (wish I had spotted these comments sooner!) was able to get it configured.

    I’m getting an issue though with a roughly 800hz hum over the audio channel, which I’ve determined is originating from the BC127 module. When everything is hooked up, but no audio is playing, there’s no hum. When I begin playback though, the hum is overlayed on the output audio coming from the BC127. Pausing playback on the BT connected phone results in the audio stopping, but the hum continuing for several seconds, followed by a loud pop, and then the hum stopping.

    It seems to me that it’s an issue internal to the BC127 or breakout board. Is this a defective board? Or is there some way I can remove this hum without affecting the audio quality? I’ve confirmed that it’s not a result of a ground loop, and tried adding some filtering to the audio output, but can’t remove the hum without cutting out audible range frequencies on the output. Any suggestions would be appreciated.

  • Other than supporting BLE, how does this module differ from the RN-52?

  • Does anyone have information about enabling the aptX low latency codec for Melody v5.2 or v5.5? They mention it has these capabilities in a press release ( and demo it on youtube ( However, enabling this feature is not mentioned in the v5.2 or v5.5 manual. Using the aptX codec with the v5.0 software, I’ve measure the latency to be 150ms. This is still too high for my project. Any help would be great.

    • Were you able to figure this out? Also, how are you telling it to connect with aptX instead of SBC? I have CODEC set to 001, which means aptX is enabled, but when I connect with OPEN [address] A2DP, it automatically uses SBC. Incidentally, I’m getting about 150ms delay with SBC.

      • As far as I’ve been able to determine, using aptX doesn’t affect the latency. I measure nearly 200ms using SBC or aptX. Also, it appears that there’s no way to initiate an aptX connection from the BC127. The audio source has to do it. My testing was done using two BC127 devices with one set as an audio source, as my apple devices don’t support aptX.

  • Has anyone who is on a firmware capable of iBeacon, had any trouble with the format of UUID? I can’t find my iBeacon, but when I give the same UUID to another iBeacon, I can discover it.

  • I saw this module supports BLE, but I can’t find anything mentioned about supporting GATT, service discovery, custom profiles, and notifications/indications. Is this supported? I’d like to interface it to my BLE remote.

  • Don’t expect to directly connect the 5V FTDI breakout board to the bottom FTDI header pins on the BC127 breakout board. The Eagle board layout & schematic files show that the Tx pin would connect to your Tx on the FTDi and the Rx to the Rx pin on the FTDI. If you place it on a breadboard or wired the pins appropriately from Tx to Rx and vice versa, you are able to go into command mode with the BC127 through the serial terminal (with settings 9600 8-none-1-none) after entering “$$$$”.

  • Inquiry: I enjoy taking old cell phones (a few I put back for safe keeping) and turning them into bluetooth handsets. However, they are limited to “push a button, talk to voice dial, hope it gets your request correct.” What I was curious, can this be used to make, lets say a Microtac function as though it was actually a cell phone?

    • Well, that depends. You can use it to send a phone number, so if your handset can generate a number somehow, you can certainly capture it and send the command to the phone. No guarantee that older phones will respond to that datastream, however.

      • Judging from the datasheet, which didn’t say yes or no, I am assuming a microcontroller, such as the ATMega chip. May be worth checking out, though. Thanks.

  • Just purchased this and the PTJ. I wanted to update mine. Wired my FTDI Rx to Tx and Tx to Rx as well as vcc and gnd. The melody update tool ran and updated until about 97%. Froze for a minute where no more lights were blinking. And then said completed. Now, the LEDs on my bc127 breakout just blink in synch to the ftdi where it outputs “BlueCreation Copyright” infinitely. Tried bringing PIO_0 high when booting, but nothing. If anyone has any idea on how to get this stable again, I’d really appreciate it. .

  • Although this breakout board is designed for audio purposes, can it make use of the message access profile (MAP)? I would like to have a microcontroller use my phone to send and receive texts.

  • Just received this board. I can confirm it DOES support both aptX and AAC. There are serial commands to enable these codecs which are extensively documented in the BlueCreation Melody software manual. I connected my Mac to the device and played audio through iTunes. Both MacOS and the device reported aptX codec in use. There is some documentation about how to enter an aptX license key, but it seemed to work without it. I also connected my iPhone 6, and confirmed it playing AAC audio from iTunes Match. I was told by a BlueCreation employee that AAC only requires licensing if you’re going to sell a product, and that I was free to use it as I like for personal projects.

  • Anyone know if this module can do A2DP and SPP at the same time? Both profiles active on the same bluetooth connection at the same time? Is this even possible?

    • Yes, it can, although you can’t remotely control the device via SPP.

      Well, that’s not entirely true…if you tie RX and TX together on the remote device, it should see the strings you pump across SPP echoed right back into it…

      I should try this.

  • Can Anybody tell me whether I can Transmit MUSIC from this module? I have doubt about Term Melody?

    Is this module can transmit Audio SONG?

  • I can’t figure out how to connect a mic to this. I got the Sparkfun electret microphone breakout and the mems microphone breakout , but the pins don’t really match. The mic breakouts have VCC, GND, and AUD, whereas BC127 has MIC_RN, MIC_RP, and MIC_BIAS (and GND) which probably means the BC127 expects balanced audio input? Anyway, with VCC 3.3V, AUD connected to MIC_RP and GND connected to either MIC_RN or to GND, all I get is excruciating noise. Does anybody know this?

    • ok, maybe it was because I used 3v3 from an FTDI basic board to power the mic, because when I used a 1.5v battery it worked much better.

      • Hmm. I still only get good signal when I power the Mic and the BC127 from separate sources. Does anybody know how to hook up a SparkFun MEMS Microphone and the BC127 on a single battery?

        • OK solved it but I did have to upgrade firmware. Connect mic breakout GND to BC127 GND and to MIC-. Connect AUD to MIC+. Connect VCC to MIC_BIAS. Mic is now powered by same battery and there is less noise. MIC_BIAS cannot be set in Melody 5.0. I upgraded to Melody 5.7RC4. MIC_BIAS is set using command ‘CODEC’.

          • Thank you so much!!! I was getting horrendous noise on my microphone and your comment solved my problem. In retrospect it was a really stupid mistake, but in case anyone has this same problem, the noise coming across the line of the MIC (and speaker) came from the fact that I connected the mic GND straight to the arduino’s GND through the breadboard, when in fact I should have connected it to the BC-127 breakout board GND instead.

  • Can someone explain the differential audio output. If I wanted to connect this to a headset speaker (mono), do I need a amplifier or can I do this with discrete parts?

    • This is obviously quite late, but figured I would respond for the benefit of anyone finding this later.

      You can configure the module to output in mono by adjusting the codec setting. The default codec setting is 0 0 1, with the third digit representing stereo/mono output. If you set that last integer to be zero, then the module will output in mono over the left channel output.

  • Hi All, just to clarify a few things. AAC and APTX are royalty-based codecs. Typically, you pay the royalty per part. I assume SF did not sign up for this. You may be able to contact BC and ask to purchase FW with AAC and APTX codecs, let us know how it goes if you do!

    Setting the codec to APTX (or AAC) does not guarantee that it will be used. It just “requests” to use it. Both devices must support it. If they don’t, it will default to SBC.

    Also, you can communicate with iOS via BTLE without MFi (as well as streaming audio via A2DP), but you will need MFi if you want to use SPP. You can, however, use SPP with Android.

  • as this supports BLE can it communicate w the iphone, no need for MFi?

  • Hi. I am a little bit confused so I would like to ask you. Does anybody know if this BC127 or BC127 DEV KIT support codecs aptX, AAC ? On BlueCreation site is written that Melody is the same software running on BC127 modules. /Melody offers these features/. I would like to high quality audio, so better safe before buying than sorry THNX John

  • Hey, does anyone have the mechanical dimensions for this unit? Thanks.

    • The ideal method for figuring this out is to download the free version of EAGLE from CadSoft and figure it out yourself; that way, when you need another, different measurement (say, the exact location of a header pin relative to the lower right corner) later, you don’t need to ask again.

      That said, it would appear to be 2.5" by 1.3", although the module hangs off the end by a smidge (less that .05 inches).

  • Does this module come with AAC codec support? I’m trying to find a chip that can provide high quality audio from an iPhone. I don’t care about APT-x if it can do AAC.

    • It does not support AAC.

      • Actually it might! On page 13 of the Melody manual, it says you can select one of several codecs, including AAC. It has a footnote that says they’re not included by default with Melody, and that you need to ask BlueCreation for them, but in theory then you would have AAC.

  • Hi? I need Bluetooth module that can be master role like as PBAP profile support smartphone. Can be support Master Mode on BC127 Breakout Board ?

  • Has anyone tried using the event notifications? I can’t seem to get them read from the Arduino. Specifically I want to get the song information out of the notifications.

    • When I had the BC127 directly connected to my computer and was playing music from my phone to the BC127, I could see the AVRCP song info automatically being printed from the BC127 to the computer. If you haven’t already, try to get that working and see the printouts to confirm that the BC127 is doing its job with that. You might not be reading the printouts properly with the Arduino.

  • Hi, I was trying to connect the breakout board to the pc, I used Hercules, Putty, Tera Term nothing works!!!! I had the right setting but still cant get the “READY” prompt, can anyone help? BTW I am using FTDI 6 pin board.

    • maybe your pinout of the ftdi isnt well matched… don’t match it by its colour, but its actual configuration… find gnd and go down from there… I suggest CoolTerm i think thats what its called. In the settings select the ftdi cable as the connection and set it to 9600 baud! thats it!

  • When using a microphone with the BC127, it is very quiet and not sensitive enough. I have to have the mic ON my mouth for it to work. The bias circuit that I built worked great for the RN-52, but the same exact circuit yields very low mic sensitivity with the BC 127. What can be done to fix this?

    • I noticed the same thing as well. One thing that helped a bit was ‘set input_gain=15’. You have to do that every time you use the mic though. When read, you get input_gain=15 but for some reason, the back end register gets reset to something like 7 or 8, and has to be rewritten back to 15 to get the microphone sensitivity back up. It’s a little annoying. I suppose some of that also has to do with mic sensitivity or bias voltage. Maybe try lowering the bias resistor value to get more current across the mic? Is your filtering attenuating your signal?

  • I’m getting tons of noise when I try to connect the audio outputs (which are differential) to a non-differential audio amplifier. I’m using an op amp to convert the differential signal to a non-differential one, but I’m sure that I must be missing something. What are all of you using?

    • Take a look at the Purpletooth Jamboree schematics: It’s basically a reference design. I found it helpful for figuring out how to do the audio stuff on this chip.

      • Yeah, I’ve discovered that too. The Jamboree’s design uses a TPA6138A2 headphone amplifier to go from differential to single-ended, and they’ve used the reference design from its data sheet. My project originally was going to use a small amp that had differential inputs and everything was fine. After switching to a larger amp which was single-ended, I eventually also switched to a Jamboree to make things easier.

  • Can this be used with both 3.3V and 5V Arduinos (or other controllers)? Both a 3.3V and 5V Pro Mini are used in the hookup guide. The supply voltage in the BC127 datasheet is listed as 3.3V to 4.7V, so 5V should be fine, right? I wanted to ask because the RN-52 Bluetooth module that is also sold on a breakout board by Sparkfun is very specifically only a 3.3V chip, so I don’t know how strict that is with this one.

    • There’s a voltage shifting circuit on the board, so it can be used with 3.3V or 5V processors. It also has an onboard 3.3V regulator, so it can be powered from 5V as well.

      • to add to this answer, the max ratings of this module are up to 4.2V, that means that if you want to power your circuit with the li-on batteries they sell here you can do it with minimim hardware modifications (directly although not recommended)

      • Thanks. Is the 3.3V regulator just for the power supply or does that also apply to the UART TX/RX lines? I.e. can I directly connect the TX/RX lines to a 5V Arduino, or does that need to be level-shifted down to 3.3V externally?

        • There is level shifting circuitry on the board to protect it from being damaged by 5V data signals.

          • Thanks again. Last question, I promise: Is this level shifting circuitry on the Purpletooth Jamboree board as well?

            • Yes. In fact, it’s pretty much a standard feature on most modules that we sell that run on 3.3V. Smaller breakout boards don’t usually get it, however, to keep the size down.

  • Has anyone tried using the Melody Updater? I can’t get it to run on any of my Windows machines. I would post this question on the Bluecreation forums, but I’ve been waiting a couple of days for them to activate my account.

    • Resolved. It appears to have been missing VC++ libraries and possibly the order in which they were installed. The Melody Updater comes with the 2005 and 2012 redistributable libraries, but I also ended up installing the Windows 7 SDK. Now I have Melody v5.5 running on my BC127.

      • Did you use a FTDI bridge (and have you connected all the pins, including CTS and DTR)?

        I tried the upgrade but it bricked the BC127, and now it seems to be stuck on DFU mode, I was using a PL2303 with TX RX only (well 70 bucks to the trash bin, time to order a new jamboree board).

        • did you flip tx to rx and rx to tx? $70 bucks is quite a lot of money you could use towards other hardware!

        • I used the SparkFun FTDI Basic Breakout, and didn’t connect CTS or DTR - just VCC, GND, TX, and RX. I’ve just gotten a PurpleTooth Jamboree and am about to upgrade it as well. Hopefully it works.

        • CTS and DTR should not be required for the updater (earlier versions did need it, but not any more). I did a lot of upgrades but never saw a bricked board…I wonder if it’s something with the PL2303?

          • But the PL2303 did work great for a month with the jamboree (bc127).

            Wondering if this (pl2303) has something to do with phonebook downloading that never completes (the PBAP_PB OK event is never signaled by the BC127, but the phone book list size seemed complete)

            But it seemed more like a firmware bug than a UART bridge issue (all other command and events did worked great). That is why I wanted to update to the latest firmware.

            It is bricked (really really bricked it seems) as it outputs a series of BF FF (in several combinations) when powered, in what probably is the DFU mode sending a “ready” header hex string.

            Now if there is a pin that can be tied low (or high) at power up to unbrick it (like in similar BT IC’s), THAT will be great (not holding by breath for that though)

            From BlueCreations BC127 page:

            “Additionally the DFU process is a reliable upgrade protocol. If this upgrade fails or is not completed the device still functions and allows the upgrade to be restarted.”

            Yeah, right ;)

            • I think I did read about it in the datasheet, I think you do pull high a pin for one second or more for switching mode/profile

              • Yes, but only to “restore to factory settings” (gpio0) but for that you need a working firmware.

                Actually there is no way to recover from a half firmware write. Tried almost all of the possible ways to recover it (short of using the konami code ;) ), no repsponse fromBlueCreations, no activation to post on their forums, and a “you should contact BlueCreations” from sparkfun “support”.

                Actually there might be a way to recover it, using the usb port on the BC127, but then again it is undocumented and it seems that it will continue to be that way.

                Already ordered a new unit, but not really sure that I will risk it with a firmware update again (even with the ftdi ic)

                I have implemented a BC127 emulator in software and I can reproduce the firmware update error every time (just a few bytes are sent continously to the unit after entering in DFU mode, but the updater reports update completed ok, thus bricking the module), so it has nothing to do with being PL2303 or FTDI, it is an updater issue or a DFU process issue. Definetely it is not “unbrickable” as claimed.

  • BlueCreation’s Battery Schematic shows a 150mAh Li-Ion battery and notes that an R2 of 0.4 ohm provides a 500mA fast charge. However, in the BC127 Breakout and Purpletooth Jamboree schematics, this resistor (R11) is 0.75 ohm. Was it chosen to provide a slower charge? Can I use a much larger battery - like a 2500mAh Li-Polymer?

  • Am I correct in assuming that Blue Creation will eventually include in the firmware commands to configure the cap_sense pins?

  • Just so you know the link to your “Understanding the BC127 Bluetooth Module” Module Datasheet.pdf is giving a 404 error. Correct link is >> You left the last part off.

  • Will this device allow me to stream audio from Arduino Due connected to it to BT speakers?

  • will this sync with a phone?

  • Question for anyone that’s played with one of these, how do you connect a microphone from a standard phone headset through a TRRS connector? I have tried hooking up MIC_RP to the sleeve, with MIC_RN to Ring 2, MIC_LP -> S MIC_LN -> R2; MIC_RP & MIC_LP -> S, MIC_RN & MIC_LN -> R2, and nothing seems to work. I can hear audio just fine, but nothing goes through the mic. Am I missing an amplifier or do I have to do something with MIC_BIAS_A? I have FORCE_ANALOG_MIC set to ON, but still nothing. I realize that I have probably bit off more than I can chew with this, but any help is appreciated.

    • Never mind. I’m an idiot, and an internet search about microphone bias is your friend if your like me and don’t know what your doing.

  • I was wondering if the gods of sparkfun know of any documentation on how to use the programmable io pins and/or the capacitive touch. have they even implemented this in the current firmware? i have searched for ages and can’t find a thing.

    • The IO pins are fairly easy to use; check the command set manual, page 6, under PIO. Note that you’ll need to disable GPIO control first; see page 15 of the manual.

      At this point, however, the cap sense is not supported by the Melody firmware that ships with the device. If that changes, we’ll update the product description.

  • Im having a difficult time with this device. It seems the UART is very unreliable when sending commands via Hercules. I send music commands, and it might work ONCE, then I get the ERROR response when I send any other commands. The GPIO buttons always work and if I use them, I can send another command via UART before it breaks again. Whats up with that?

    Edit: I have found out that the module expects a return carrage ‘\r’ after the command. When I used Hercules, I was pressing enter after commands, which sends a ‘\n\r’. The module does not like the ‘\n’ before the ‘\r’ and it will cause problems… Just an FYI!

    Also, how does one obtain the firmware upgrade software and upgrade tool??

  • Ummmmmmm…. What’s up with Rx and Tx not being swapped on the FTDI port?? I tried direct connecting my FTDI and realized that Rx on the FTDI goes to Rx on the breakout board. Same with Tx. What gives??

    • It doesn’t fit your FTDI board, but it will connect to your Pro Mini. Its always a toss up as to which we want things to connect to, but we figure its going to end up in a project connected to something like a Pro Mini and not your FTDI board.

  • Just to clarify, does the TOGGLE_VR command activate the voice assistant on iPhone/Android phones (e.g. Siri or Google Now or whatever the phone has configured)? This is supposedly part of the A2DP profile, but I couldn’t make it work on the RN-52 and it’d be great if it was that easy on the BC127. Let me know, and thanks!

    • Yes, I was just playing with the module and it does kick in the voice commands on the phone (siri, gnow) when you send it TOGGLE_VR. Sending TOGGLE_VR a second time has it cancel.

  • The Blue Creation web site mentions a Melody 5.2 interface [announced August 2013] and the linked pdf says 5.0. Is there a planned upgrade? Does this already have the new firmware and just an old document? I’m interested in the multiple SPP/audio connection feature that is supposed to be in 5.2.

  • Can we create custom BLE services with this chip? For example, could I make an iBeacon with it, or is it limited to the serial BLE service like most other Arduino BLE modules?

  • So, any way you guys can publish what the serial command set for the interface is? I ask because in the library tutorial, you guys say:

    To make things easy for the advance user, we’ve also included three additional functions that allow you to send any command in the datasheet, and to alter or retrieve any parameter setting.

    But if you look at the datasheet( linked here, there are no such commands listed.

  • Will this work to send data to an iOS device or is it a purely audio profile?-Keith

  • is it a simple BLE module or does it have an embedded uC? like a 8051 or something similar? Interesting product, looking forward to trying it out

    • It does have an embedded uC to handle the stack; data transactions are handled through simple streaming to and from the onboard UART.

      • maybe this is a stretch but do you have the eagle file for people who want to develop their own circuits with this module?


        • There’s a link to the EAGLE files above; you can also find them in the GitHub repository. The BC127 module footprint is in the SparkFun EAGLE library, also available on GitHub.

Customer Reviews

4.3 out of 5

Based on 3 ratings:

5 star
4 star
3 star
2 star
1 star

1 of 1 found this helpful:

It's tight

Good break out board for the bc127. It comes with melody v.5 you’ll want to update it to melody v.6

Also download coolterm for your serial monitor as the arduino serial monitor does not recognize carriage returns (it sends them but doesn’t interpret them)

I’m using a generic USB to serial contest for testing, works great.

All in all very convenient solution. Thanks a bunch for putting this together, it’s been a big help. Hit me up if you need help with it.

1 of 1 found this helpful:

Test Board

I bought this breakout bd to test the audio output. Without a headphone amplifier the 8670 cannot drive earphones. This was a cheap quick way to prove if a headphone amplifier was needed.

Capacitive pinouts not functional

The rest of the board is exactly what I expected and required. I thought it would be cool to use the 4 broken-out CAP_SENSE pins to drive the playback functionality, but unfortunately BC says that’s not going to happen. Overall a very good BOB.

Edit: the sound quality coming off of this and the media info coming in as alerts is awesome. moving to 5 stars.