Monday, April 8, 2013

DIY OVC3860 Bluetooth Receiver / PKB-PCBA Evaluation Board

Introduction
Continuing on my quest to get good audio from my phone to my car's aux in I started playing around with bluetooth receiver modules.  The ElectroDragon PKB-PCBA caught my eye as a fairly easy to implement solution that offers potentially good quality for the price.  It uses the OVC3860 IC which I've heard good things about and also features a SGM4917 headphone amplifier IC which appears to be a fairly handy part with both integrated click/pop suppression and charge pump circuitry to generate it's own negative rail for producing a ground referenced output.  Many of the other similar boards I've seen use a basic opamp with a single supply and bulky capacitors at the output to get rid of the resulting DC offset.  I believe this is the main reason for their poor performance.

As with all of these Chinese made modules English documentation is sparse at best for the PKB-PCBA and ElectroDragon support was utterly useless as well when I tried to ask for more specifications.  Fortunately whoever designed the board had easy implementation as a goal and pretty much all you need to do to use this thing is just feed it power and get your audio output from it.  I don't know the exact schematic of the board but it probably looks similar to this application circuit for the BLK-MD-SPK-B which looks fairly solid to me.

If I wanted a more audiophile grade solution I could try to lay my own PCB using a Roving Networks / Microchip RN52 Bluetooth Audio Module with a TPA6138A2 from TI driving the output, but I don't have the equipment or experience needed to take measurements for optimizing the layout/performance of such a design and it's really just too much work for me.  My approach of using a highly integrated module saves a lot of time and still yield respectable performance.

Note that I tried the Griffin Technologies BlueTrip Aux (it is one of few commercial products low profile enough to plug-in inside my car's center compartment) before pursuing a DIY solution and found that the BlueTrip outputs a low volume signal with completely non-existent bass.  My music simply sounded so terrible that I returned the BlueTrip immediately after testing it.  The funny thing is that I was contacted by another BMW owner about my Amazon review who had the same issue with the BlueTrip so I know it isn't just me.

Preliminary Testing
I did some basic bench testing with the breakout board I made below before moving onto the full design.
 photo IMG_20130324_185705_zpsf42d494e.jpg
I found it to draw about 80mA of current total when driving a 32Ω pair of headphones at listening volumes and was not able to measure any DC offset at the output with my equipment.  Output voltage level hovered around 0.7Vrms at max volume which is pretty good.  The sound quality seemed fairly good through my headphones - there was an audible noise floor but I think this was due to my testing power supply being tied to earth ground.  We'll see how it fares in the car on the full design.

Design Overview

As mentioned previously all you really need to do to implement the PKB-PCBA is feed it stable power and give it a jack for output.  The 4.7uF output capacitors on the ElectroDragon wiki application circuit are almost definitely not necessary as I did not see any harmful DC offset at the output.

My main concern regarding sound quality would be the possibility of ground loop noise within the car, as the ground throughout this circuit is tied to both the car power ground and stereo ground.  If this becomes a huge issue, I may need to use a ground loop noise suppression cable at the output or implement an isolated DC-DC converter for power like I did previously to power a CMOY.
 photo Schematic_zpse9ed757b.png
EAGLE Project Folder

An LM2937ES-5.0 IC from Texas Instruments takes in the nominal 12V directly from the car's cigarette lighter jack and provides the 5V power that the PKB-PCBA needs.  This is a fixed 5V LDO regulator in a TO-263 form factor which uses the PCB as a heatsink.  The LM2937 is "ideally suited for automotive applications" according to the TI datasheet and will "protect itself and any load circuitry from reverse battery connections, two-battery jumps and up to +60V/−50V load dump transients."  A 10uF ceramic cap bypasses the input of this regulator and a 220uF low ESR electrolytic cap and 1uF ceramic cap keep the ESR at the output of the regulator within the stable region.

You can see I've also put in a DC power jack for the 12V from the car and a little slide power switch for turning off the unit when it's no longer needed.

R5/R10 add some series resistance to the output of the PKB-PCBA to provide short circuit protection; I'm not really sure if they're necessary as most headphone amp ICs should have this integrated, but they don't really harm the performance any since the input impedance of a car stereo is so high.

Parts List
Mouser Part #
Description
PKB-PCBA Nice little bluetooth receiver module you can buy from ElectroDragon based on the OVC3860 IC.  I do not know of a US supplier that stocks these so shipping usually takes a while.
LM2937ES-5.0 5V fixed TO-263 variant of the LM2937 LDO regulator from Texas Instruments
STX-3120-3B Basic 3-pin stereo jack from Kycon.  It's a very cheap part but the 5-pin version is used in the Objective2 so I know the quality is fairly good.
103-12100-EV Tiny little SPDT slide switch from Mountain Switch that serves as the power switch in this circuit.
RXK221M1EBK-0815P A 220uF low ESR electrolytic capacitor from Lelon that serves as the power reservoir for the circuit
MF1/4DCT52R8R06F Metal-film output series resistors- these aren't really necessary but help provide some short circuit protection as I'm not sure if this is integrated into the SGM4917 IC
ETC All of the other little parts in this circuit I got from Tayda Electronics or somewhere on eBay.
-2.1mm ID / 5.5mm OD DC power jack (Tayda A-4118)
-1206 X7R SMD Decoupling Caps can be found around on Mouser or Tayda
-1KΩ 0805 SMD RLED (seems like a high resistance for a LED resistor but the LED is still pretty bright actually)
-Blue or Red 1206 SMD LED - I had some superbright ones laying around from Sky-Macau
-For the cigarette lighter plug the Philmore units from Minute Man Electronics are pretty good quality in my opinion

Assembly
Unfortunately I couldn't really find any particular enclosure that this would perfectly fit inside of so I simply made the board perfectly square with holes for standoffs at each corner for screwing it down to some sort of block.  The whole board only measures 5 x 5 cm so it can easily fit almost anywhere in the car.
 photo IMG_20130405_201956_zps502079d9.jpg
I soldered down the smaller SMD parts first and then did all of the through-hole parts in one pass.  I stuck a tiny little heatsink on the ground plane for cooling the LM2937 but it isn't really necessary as I only measured 85mA of current draw from a 12V power source while driving headphones.
 photo IMG_20130405_202012_zpscd5c08d4.jpg
Soldering wires to the cigarette lighter plug was pretty tricky for me especially since the wire I'm using is so thick, but I managed to get everything in there.
 photo IMG_20130405_2114591_zps8621ca09.jpg
Fully setup - nice and neat under that center compartment.  Notice how there isn't a whole lot of space height-wise in there which is why I used right angle connectors for the power and 3.5mm aux jacks.

Testing
Setup:  from Galaxy Nexus 3.5mm and A2DP to 2008 BMW 328xi stock stereo

The overall sound is better than the sub $50 receivers I've tried from Amazon so far - it's still a little muddier than just using the aux input directly but the frequency response is quite good.  The bass response in particular is noticeably better with the receiver so my phone likely just doesn't do a good job with this from its 3.5mm out.  I don't hear any audible noise floor or ground loop noise; my car may have audio transformers on the aux input to deal with this, but this could potentially be an issue in other vehicles.

One annoying thing I've noticed is that my phone seems to still think it's connected for a while after I've already turned off the car and receiver, so it'll keep "playing" until it finally notices it's been disconnected.

Conclusion
Overall if you want a simple and good quality bluetooth music receiver this is worth a shot if you're an experienced DIYer.  The parts involved are fairly cheap and it's a good learning experience as well.  The PKB-PCBA performs remarkably well especially given its price point, and I'm sure that a higher end design could do even better.  Sadly I haven't seen many particularly good car powered bluetooth receivers on the market besides the TuneLink Auto which is a bit too tall to fit under the center compartment of my car.

I've shown here you can get pretty decent results with only cheapo parts; I'm only disappointed that I could never find a good commercial product to suit my application, as it wasn't even all that difficult to put together a fairly well performing DIY solution.

25 comments:

  1. Hey, I'm really interested in this as I want to do a very similar project. However, I want basic play controls (Play/pause, next and previous) via buttons connected to the module.

    Do you know where I can get some more information regarding the serial ports of the module. I'm hoping that maybe sending some array of commands to the unit would be able to implement this function.

    ReplyDelete
    Replies
    1. Actually the PKB module might do exactly what I want to do right out of the box!

      Delete
    2. As far as documentation goes I honestly haven't found much of anything particularly good.
      http://www.electrodragon.com/w/index.php?title=PKB-PCBA

      You could try asking the customer service of companies that sell the module to see if they have any additional information, but most of them seemed pretty clueless when I asked a few things.

      I usually just use my phone's playback controls, but I have seen modules with buttons for sale on AliExpress so for sure it can be done.

      Delete
  2. How much current does the whole circuit consume?

    ReplyDelete
    Replies
    1. I only measured 85mA when driving headphones with the circuit. This was measured with a fairly basic DMM when driving the circuit from a 12V bench power supply.

      Delete
  3. I have a couple of questions if you know the answers.

    What is the input MFB? and is it possible to get a digital stream output from this module to put through my DAC?

    Great blog by the way :)


    Craig

    ReplyDelete
    Replies
    1. I don't believe this module has any sort of digital output capabilities - you'd have to get something more advanced like the Bluegiga WT32 or Roving RN52. Your project would become way out of my leauge of simple projects with those modules.

      What's MFB stand for?

      Delete
  4. Hi there, great article!

    Do you know anything about the TX/RX pins? I can't seem to access them and exchange AT commands. Do you know anything about that?

    ReplyDelete
    Replies
    1. Sorry, but I've honestly got no idea how the TX/RX pins work and none of the documentation I've seen makes any mention of it either. You could try emailing ElectroDragon support about it to but they've been pretty useless for me so far.

      Delete
    2. This comment has been removed by the author.

      Delete
    3. Here is .NET MF class to work with that module using AT commands ;) https://github.com/toxsedyshev/imBMW/blob/master/imBMW/Multimedia/BluetoothOVC3860.cs

      Delete
  5. Hi Yangorang,

    In the application notes from the PKB wiki, they use an ST TS482 100mW Stereo Headphone Amplifier. Why didn't you use the amplifier for the audio headphone jack?

    Is the sound good enough?

    see http://www.electrodragon.com/w/File:PKB_peripheral_circuit_design.jpg

    ReplyDelete
    Replies
    1. The BLK-MD-SPK-B PCB is just one part of the PKB-PCBA board - it takes up basically a whole side of the PKB-PCBA board and contains the OVC3860 IC and the signal antenna trace.

      If you look at the other side of the PKB-PCBA you'll notice that it has a SGM4917 IC. I don't know much about this IC, but it seems to be a fully integrated headphone amplifier that is ground referenced as it generates its own negative rail via charge-pump and it also features click-pop suppression which is a big plus. I think that the usage of this IC with the BLK-MD-SPK-B module likely yields better sound quality than the design in your link.

      I believe it's best to keep things simple, and the PKB-PCBA already has everything you need for car audio in a cheap and fairly robust package.

      Delete
    2. I agree, I don't have that module. Would you mind taking a picture of the SGM4917 IC please? Or do you have the datasheet? I looked for it but no luck. The closes thing was this http://www.ti.com/product/lm4917

      Delete
    3. I tried searching for my original prelim test circuit so I could take a picture of the back but I couldn't find it. There is a low-res image of it available at the ElectroDragon webpage: http://www.electrodragon.com/?product=pkb-pcba-bluetooth-stereo-audio-module-for-music-speaker

      My assumptions on the SGM4917 were based on the shape/pinouts of the IC and its surrounding components as well as some information I had gleaned off a website with some details on the SGM4916: http://www.52rd.com/blog/Archive_Thread.asp?SID=64002
      That webpage is now down unfortunately but I had the URL bookmarked still. It's one of those Chinese parts from who knows where so it's doubtful we'll ever get our hands on a proper datasheet.

      It's purpose should be similar in nature to the TPA6132A2, though obviously it's a much cheaper and lower performance part.

      Delete
  6. I just found a little bit more info on the pins:

    http://www.elecfreaks.com/wiki/index.php?title=BLK-MD-SPK-B

    ReplyDelete
    Replies
    1. Good find! - this will definitely be useful for some people.

      Delete
  7. I tested this module and it works very well. Before I implement it into a amp I am building, which will be mainly made of aluminium, I suspect the aerial may not work too well. Can I solder a wire to the aerial on the PCB to extend it, or does it have to be the set length that is on the board.

    Craig

    ReplyDelete
    Replies
    1. It's surprisingly good for a module of its price with a bunch of no-name parts isn't it?

      I'm not familiar with antenna design myself, but I'm fairly certain there's more to it than just the area. In your case though if you're surrounding the thing with aluminium you may be forced to explore a solution like you mentioned.

      For me I've found the range to be quite good - as I dropped off a friend who was connected to it (I was stopped on his driveway) I found the music was still playing on my car perfectly fine until he entered his house.

      I haven't really done detailed range testing for this module - that would be some useful data to have if anyone would be willing to help contribute.

      Delete
  8. Here a link to another guy that also used this module for his project: http://www.diyaudio.com/forums/digital-source/240457-streaming-macbook-pro-iphone-via-bluetooth.html
    He might know more about it than myself as his project is a bit more involved.

    One very useful bit of information he provides: "There are 13 tabs on each side of the board, you can use the 1.8v output tab and feed that into the FWD or BACK tab, and the iPhone skips songs. There are also vol+, vol- and mutes tabs, but I believe these are used on the BT reciever, not for controlling the volume of the device paired with it."

    I might consider stacking a 2nd PCB on top with a few control push buttons now that I know it's so easy to deal with.

    ReplyDelete
    Replies
    1. Hi Yangorang, I am the guy on diyaudio.com you mention.

      The device delivers surprisingly good audio for such a cheap part, but it doesn't offer a digital-out. I am looking into the Roving Networks RN-52 as it has digital out, but the datasheet isn't too good. I have emailed them to ask for some more information, if I get any info, I'll add it to the thread I started on the diyaudio forum.


      Craig

      Delete
  9. Hi! Are you sure that it is ok to power that module with 5V? All datasheets I've found say that it should be powered with 3.3-4.2V.

    ReplyDelete
    Replies
    1. This is true of the BLK-MD-SPK-B board for the OVC3860 which is used as part of the PKB-PCBA.
      http://www.electrodragon.com/w/index.php?title=PKB
      http://www.electrodragon.com/product/bluetooth-audio-stereo-voice-sound-box-module-bqb-certificated/

      The PKB-PCBA board, however, most likely has its own LDO regulator since it states "Voltage input: from 4.2V to 10V, best at 5V" on the ElectroDragon website. Measuring between pin 12 (VBAT) and pin 13 (GND) of the BLK-MD-SPK-B board yields approx 3.57V so I can confirm they are not simply feeding the 5V straight to it.

      Delete
  10. Does this module automatically power down or switch to power save (sleep) mode when no decice is paired? If it does, anyway to disable power save mode such that the module would be on at all time?

    ReplyDelete
    Replies
    1. As far as I've seen the module seems to always be available for pairing and doesn't seem to ever turn itself off. I'll keep an eye on it in my car to make sure but that's how I think it's been so far.

      Delete