Author Topic: Good Cheap DIY or Ready-Made Bluetooth Audio Reciever? Cheap ebay speakers SUCK.  (Read 7128 times)

0 Members and 1 Guest are viewing this topic.

Offline iamdarkyoshiTopic starter

  • Frequent Contributor
  • **
  • Posts: 381
  • Country: us
Hello again everyone. I have gotten myself into a hobby of homemade portable bluetooth speakers. I need a good controller board with media buttons (vol+/-, track fwd/back, play/pause) and I cannot seem to find a cheap solution (<10$) that works. I have been able to use controllers from some cheap speakers and take the outputs from the analog switches and feed it into my good amp, but all the cheap speakers from china have literally the most annoying programming ever. Instead of making a little chime noise or beep to tell you that its been switched on and that you have connected, THEY SPEAK. Someone in china tried to speak chenglish and record themselves using a potato and those recordings are the status noises for the BT controller. In the case of mg latest purchase, I have to wait through several seconds of blabbing before I can use it. "Deh blootoof dewice eesh reyy to payh................. Deh blootoof dewice hash been payhed susesfuly" :blah:

Absolutely USELESS.  :--

So does anyone know of a cheap stereo speaker from ebay or a cheap controller with aux in/bluetooth that has sensible sounds?
 

Offline Dave

  • Super Contributor
  • ***
  • Posts: 1356
  • Country: si
  • I like to measure things.
Good and cheap don't go hand in hand. If you want to make something decent, you're gonna have to pay for it.

I would recommend Microchip (ex. Roving Networks) RN-52 modules for your application. Not quite as cheap as you'd like them to be, but they do the business and they do it well.
<fellbuendel> it's arduino, you're not supposed to know anything about what you're doing
<fellbuendel> if you knew, you wouldn't be using it
 
The following users thanked this post: iamdarkyoshi

Offline iamdarkyoshiTopic starter

  • Frequent Contributor
  • **
  • Posts: 381
  • Country: us
Good and cheap don't go hand in hand. If you want to make something decent, you're gonna have to pay for it.

I would recommend Microchip (ex. Roving Networks) RN-52 modules for your application. Not quite as cheap as you'd like them to be, but they do the business and they do it well.

I wish I could source JUST the controller from this crappy Craig unit I got at a thrift store for 3$. It has an awesome FM tuner, aux in and bluetooth. No annoying sounds. This ebay listing looks like it uses a very similar screen and likely the same family of controller: http://www.ebay.com/itm/Portable-Micro-SD-TF-USB-Mini-Stereo-Speaker-Music-Player-FM-Radio-PC-MP3-4-S3-/272166475576?var=&hash=item3f5e62d738:m:mDWmYONAzqnfgTfIIyFp5WQ

But... I bet anything it has annoying sounds. Might have to just buy one and see. But I will look into an actual decent quality part like the one you suggested.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1688
  • Country: gb
I've recently been tinkering with the CSR8645 module, like this one on a carrier board:

http://www.ebay.co.uk/itm/Mini-CSR8645-APT-X-Hifi-Bluetooth-4-0-Receiver-Board-3-7V-4-2V-Lithium-Bat-Power-/131627749807?hash=item1ea5a011af:g:jz4AAOSw9mFWHkc5

I haven't used that particular one, mine just had a breakout for most of the connections - mostly because I wanted access to the SPI port for configuration and didn't want an external amp - just to test the on-chip amp or an an external one.

This thread may be helpful:
https://www.eevblog.com/forum/projects/programming-off-the-shelf-csr8635-module/msg932936/#msg932936

I used the CSR-SPI-FTDI driver here:
https://github.com/lorf/csr-spi-ftdi

Used the 'headset configuration utility' to 'read' the config, change its name, default volume, turn off some beep's (you can enable or disable the text-speech function)... saved it as a pskey file, and finally, used PS-tool to configure the module.  The blue 'csr8645' modules all appear to have the same ROM which has apt-x enabled, so it is limited in what you can change, but many functions are configured and saved in an external EEPROM.  Don't use the headset configuration tool to write to device - it only writes a few keys and pretty much bricks the module.  The PS-tool has the facility to 'merge', as in, you read from device, merge your saved pskey file, then write to device.  I have done this several times and whilst its annoying having to use two tools, you get the convenience of a GUI for the headset config, with the reliability of the PS-tool.

So far I have two applications. First is a pair of decent bluetooth headphones, using my chosen pair of headphones (originally wired).  The second is a portable speaker which has the charging disabled, as well as the headset function - so its audio streaming only.  Both have excellent sound quality.  The chip outputs differential channels, so you'll either need differential-single conversion before an amp, or just buy an amplifier module that accepts differential.

If you can easily get a PCB made, you can just buy the bare module, it'll work out of the box, but you'll have the facility to change/turn off many things.  Bit of a ballache but totally worth it if you have specific requirements.  Plus they're around $7 each.
 
The following users thanked this post: iamdarkyoshi

Offline iamdarkyoshiTopic starter

  • Frequent Contributor
  • **
  • Posts: 381
  • Country: us
I've recently been tinkering with the CSR8645 module, like this one on a carrier board:

http://www.ebay.co.uk/itm/Mini-CSR8645-APT-X-Hifi-Bluetooth-4-0-Receiver-Board-3-7V-4-2V-Lithium-Bat-Power-/131627749807?hash=item1ea5a011af:g:jz4AAOSw9mFWHkc5

I haven't used that particular one, mine just had a breakout for most of the connections - mostly because I wanted access to the SPI port for configuration and didn't want an external amp - just to test the on-chip amp or an an external one.

This thread may be helpful:
https://www.eevblog.com/forum/projects/programming-off-the-shelf-csr8635-module/msg932936/#msg932936

I used the CSR-SPI-FTDI driver here:
https://github.com/lorf/csr-spi-ftdi

Used the 'headset configuration utility' to 'read' the config, change its name, default volume, turn off some beep's (you can enable or disable the text-speech function)... saved it as a pskey file, and finally, used PS-tool to configure the module.  The blue 'csr8645' modules all appear to have the same ROM which has apt-x enabled, so it is limited in what you can change, but many functions are configured and saved in an external EEPROM.  Don't use the headset configuration tool to write to device - it only writes a few keys and pretty much bricks the module.  The PS-tool has the facility to 'merge', as in, you read from device, merge your saved pskey file, then write to device.  I have done this several times and whilst its annoying having to use two tools, you get the convenience of a GUI for the headset config, with the reliability of the PS-tool.

So far I have two applications. First is a pair of decent bluetooth headphones, using my chosen pair of headphones (originally wired).  The second is a portable speaker which has the charging disabled, as well as the headset function - so its audio streaming only.  Both have excellent sound quality.  The chip outputs differential channels, so you'll either need differential-single conversion before an amp, or just buy an amplifier module that accepts differential.

If you can easily get a PCB made, you can just buy the bare module, it'll work out of the box, but you'll have the facility to change/turn off many things.  Bit of a ballache but totally worth it if you have specific requirements.  Plus they're around $7 each.

That looks super promising, I seem to be seing them for about 10 bucks. And the differential outputs are perfectly fine, my pam8610 boads use it and so far I havent had any issues tapping into the differential outputs from the analog switches on my Arctic Cooling BT speaker. I will have to read through the threads, but if I can fairly easily program custom BT names, sounds, etc, this thing is basically ideal.
 

Offline iamdarkyoshiTopic starter

  • Frequent Contributor
  • **
  • Posts: 381
  • Country: us
Wait just a friggin minute.
I went to google the CSR8645, and the link was purple, meaning I had visited the page before. Its the same chip used in my arctic cooling speaker.
https://linustechtips.com/main/topic/458101-review-and-teardown-arctic-coooling-s113bt-bluetooth-speaker/
And I made a thread here a while back asking if I can reprogram its name, and I was told that its damn near impossible. But from what I have heard on this thread, maybe not? |O
« Last Edit: May 26, 2016, 04:33:23 pm by iamdarkyoshi »
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1688
  • Country: gb
Its surprisingly common, the datasheet for it is ridiculous with all its bells and whistles - built in battery charging supporting external pass element, almost endless button combinations for events, apparently even has basic voice recognition for hands free dialing.  As CSR only deal with manufacturers, not end users, and only provide ROM's, its a case of relying on those who have done a bit of hacking to change config.   You might not even need to change anything - the modules I had used relatively quiet beeps for power up/down, and key presses, had Apt-X enabled by default, and the bluetooth name 'CSR8645'.   Whilst I've changed some stuff, that wasn't' really necessary (only did it because I'd spent so long trying to work out how!).

Theres another thread that I just posted on with the method - beware, its lengthy and involves copying/pasting strings of hex values from one file to another..

Another reason its popular is the Apt-X which really does sound decent.  But I think its mare marketing, because there are many flavours of that codec, bluetooth uses either standard Apt-x (really coudn't tell the difference between that and wired) or low-latency Apt-x.  There's also a 'lossless' Apt-x which is used in industry, and I've seen some sites claiming that because their bluetooth headset/speaker uses Apt-X, its lossless - it ain't.  But it does mean cheap modules have become popular, driving down prices.

I keep saying it but I'm thoroughly impressed with it.  The commercial products in my price range (which is pretty damn low..) always had issues, poor sound quality, crap battery life, uncomfortable to wear etc.. it's one of the few times where 'DIY' pays off.
 
The following users thanked this post: iamdarkyoshi

Offline PuterGeek

  • Regular Contributor
  • *
  • Posts: 88
  • Country: us
    • SolutionsPLUS engineering
Checkout the Microchip BM20.

http://www.digikey.com/product-detail/en/microchip-technology/BM20SPKA1NBC-0001AA/BM20SPKA1NBC-0001AA-ND/5323463

Less than $8 with real support including being reconfigurable.

The
 

Online Marco

  • Super Contributor
  • ***
  • Posts: 6971
  • Country: nl
Meh. The tools from CSR might be unobtainium for normal people, but at least they exist. Microchip doesn't seem to be willing to provide them at all. Silicon Labs likewise.

A bluetooth audio SOC with DSP and open source compiler tools, is that really too much to ask?
« Last Edit: May 27, 2016, 05:43:25 am by Marco »
 

Offline PuterGeek

  • Regular Contributor
  • *
  • Posts: 88
  • Country: us
    • SolutionsPLUS engineering
Meh. The tools from CSR might be unobtainium for normal people, but at least they exist. Microchip doesn't seem to be willing to provide them at all. Silicon Labs likewise.

I guess it's all what you are trying to accomplish.

Microchip provides tools to reconfigure the BM20 (change supported Bluetooth profiles, operation options, DSP parameters, etc.) but not source of the software as far as I know. I may be wrong but for the OP's stated purpose the Microchip support should be adequate.

For most low cost Bluetooth modules from eBay you can't even get full datasheets let alone configuration support. I'm not saying it can't be done but I have better ways to spend my time than chasing documentation to save $3 on a Bluetooth module.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1688
  • Country: gb
I also looked at the RN52 from microchip.  Whilst only bluetooth 3.0, the datasheet mentions an APt-X codec, but doesn't specify whether this is standard or requires licensing:

http://ww1.microchip.com/downloads/en/DeviceDoc/70005120A.pdf

I agree that buying up cheap modules only to have to go through the pain of setting them up is counter-productive, and having a working UART for basic AT commands (something that most of the cheap CSR modules lack)  would make setting up a breeze.  I know I keep banging on about Apt-X, but compared to stock SBC it really does sound better.  I am unsure if this is as noticeable with speakers but it certainly is with headphones.

The final option, which can be rather expensive is from bluegiga WT32i:
https://www.bluegiga.com/en-US/products/wt32i-bluetooth-audio-module/
I checked it out a couple of years ago when it was expensive, I'm unsure of its price now.
 

Online Marco

  • Super Contributor
  • ***
  • Posts: 6971
  • Country: nl
So what does it cost to get the Microchip module with AAC?
 

Offline PuterGeek

  • Regular Contributor
  • *
  • Posts: 88
  • Country: us
    • SolutionsPLUS engineering
So what does it cost to get the Microchip module with AAC?

The RN52 supports AAC and aptX. I think the BM20 supports AAC.

I say think for the BM20 because the documentation is a little unclear. It says it's optional but I haven't ... It is also confusing because it talks about an external CODEC but that may be for the BM23 (same datasheet) has a digital audio output stream (no analog).

I found where it is enabled in the UI tool so it appears AAC is supported.

Edit: Updated with new information.
« Last Edit: May 28, 2016, 05:00:14 am by PuterGeek »
 

Online Marco

  • Super Contributor
  • ***
  • Posts: 6971
  • Country: nl
Thanks, that does make it more interesting.
 

Offline vindoline

  • Supporter
  • ****
  • Posts: 328
  • Country: us
Wait just a friggin minute.
I went to google the CSR8645, and the link was purple, meaning I had visited the page before. Its the same chip used in my arctic cooling speaker.
https://linustechtips.com/main/topic/458101-review-and-teardown-arctic-coooling-s113bt-bluetooth-speaker/
And I made a thread here a while back asking if I can reprogram its name, and I was told that its damn near impossible. But from what I have heard on this thread, maybe not? |O

I've been using these: http://www.tinyosshop.com/index.php?route=product/product&path=158&product_id=875

The board seems well designed and they have tools and instructions on their website to change the Bluetooth name to whatever you like. It works perfectly and is $7.95

They also sell full amplifier boards incorporating this unit. They might be a nice option if you're creating custom Bluetooth speakers.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf