Author Topic: Programming off the shelf CSR8635 module  (Read 170327 times)

0 Members and 1 Guest are viewing this topic.

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Programming off the shelf CSR8635 module
« on: December 09, 2015, 09:40:04 pm »
Hi friends,

I recently bought a cheapie Bluetooth -> Stereo amplifier board. It works pretty well for what I need and I'm thinking about buying another. Unfortunately the device comes with "SANWU Audio" as the hard-coded BT device name. I'd like to change that to something nicer like "JamBox", especially if I'm going to have two of these sweetpeas.

Has anyone had experience with re/programming these modules?

My stereo amplifier had this soldered on to it: http://www.dx.com/p/csr8635-2-channel-bluetooth-v4-0-module-black-blue-368089

Possible pinout for module: http://g04.s.alicdn.com/kf/HTB1Med2FVXXXXaIXFXXq6xXFXXXJ/220226238/HTB1Med2FVXXXXaIXFXXq6xXFXXXJ.jpg

I'm starting to think the "Debug SPI" on the chip (PDF: http://www.csr.com/sites/default/files/csr8635_qfn_technical_overview.pdf) isn't exposed on the outside pins...

EDIT: s/SANDWU/SANWU/
« Last Edit: December 10, 2015, 06:38:58 am by l0rd_hex »
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #1 on: December 09, 2015, 10:13:38 pm »
So after looking through more info I noticed there are USB_P and USB_N pin outs on the bottom (from this lovely webpage http://td-tech.en.alibaba.com/product/1799195826-219822392/CSR8635_Bluetooth_speaker_module_with_serial_interface.html)

I'm thinking of hooking up a USB cable to it and seeing what happens, do I need anything else besides +/- and GND?
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #2 on: December 09, 2015, 10:17:23 pm »
Ahhh sorry for radio noise, I found a USB connection diagram on this page: http://www.aliexpress.com/store/product/CSR8635-4-0-low-power-Bluetooth-audio-module-lossless-compression-high-quality-speaker-amplifier/1813412_32331572729.html

Going to give that a shot later in the month.
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline stmdude

  • Frequent Contributor
  • **
  • Posts: 479
  • Country: se
Re: Programming off the shelf CSR8635 module
« Reply #3 on: December 09, 2015, 10:33:45 pm »
Last time I worked with CSRs BT/Audio chips professionally, I had to use a proprietary piece of SW from them to do settings like device name, audio parameters, etc, etc.

Unfortunately, I can't remember the way it was hooked up, or if it even was (many chips to configuration over the BT link). Anyhow, I doubt you'll find an easy-to-understand protocol anywhere. Best bet is probably to scour the chinese internet for a leaked copy of the CSR software.
 

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #4 on: December 09, 2015, 10:41:55 pm »
Ah, thanks! I was just reading about the UART protocol as well, not sure if it's possible to configure it via RS-232 as well.
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline amyk

  • Super Contributor
  • ***
  • Posts: 8240
Re: Programming off the shelf CSR8635 module
« Reply #5 on: December 10, 2015, 03:53:14 am »
CSR8600 ROM ConfigTool is what you're looking for. A quick search will find it on a very appropriately-named Chinese site.
 

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #6 on: December 10, 2015, 05:47:37 am »
Found it, thanks! I mean... my sales representative was able to grab me a copy... and fly it here on his supersonic jet!

As he was handing me the copy a moose licked his hand and he INSTANTLY turned to vapor so I didn't get a chance to ask him what kind of hardware I'd need to connect to the BT board with. The moose mentioned a "CSR USB-SPI converter" such as this gem:

 

I don't know if the software would work with a run-of-the-mill USB-SPI board or not.

It seems like some other people have been working on Linux based solutions for similar boards: http://members.efn.org/~rick/work/rpi.csr.html

I might give it a poke with the RaspPi and see what happens...

EDIT: I might check this out too: https://github.com/lorf/csr-spi-ftdi#csr-chips-supported-by-programmer
« Last Edit: December 10, 2015, 06:09:47 am by l0rd_hex »
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline palletmouth

  • Newbie
  • Posts: 1
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #7 on: January 28, 2016, 06:09:45 pm »
hey l0rd_hex

did you get anywhere with doing the name change? 

I've purchased 5 of these for all around the house and I could really do with some name changes.

If you've managed could you let me know how you did it please

Cheers

Pallet
 

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #8 on: February 02, 2016, 04:50:08 pm »
Howdy Pallet!

I haven't gone any farther with this, although it's still on my todo list. I gave my only board to my parents for the time being.

As far as I discovered, it is possible with that software amyk mentioned. The tricky part is going to be hooking it up as it looks like the software and maybe hardware require a specific SPI controller.

If I find out more I'mm be sure to post it here and I encourage you to do the same.

"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline taken31

  • Newbie
  • Posts: 1
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #9 on: February 15, 2016, 08:02:17 pm »
Hello fellas, I too am interested in this topic, I read through your posts, and in addition to the info I have, still haven't been able to piece it together. (Doesn't help that translation from Chines to English isn't always flawless either). I'm fallowing this post, so any info you have, I would be happy to have! I will do likewise aswell.
So far, this is the most helpful site I have found. Even though it doesn't apply to the exact chip I have (CSR8635) it gives a good rundown of how the setup might work: http://www.tinyosshop.com/index.php?route=information/news&news_id=42
Thanks guys!
 
The following users thanked this post: vindoline

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #10 on: February 15, 2016, 08:04:35 pm »
That's awesome, thanks for the link.

I believe you can get pretty far with this: https://github.com/lorf/csr-spi-ftdi#csr-chips-supported-by-programmer

But I haven't tried it yet, I need to get my paws on another module :)

« Last Edit: February 15, 2016, 08:23:33 pm by l0rd_hex »
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline zackinthebox

  • Newbie
  • Posts: 1
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #11 on: April 11, 2016, 04:12:36 pm »
Hey Guys,
This thread was pretty helpful. I have a few amplifier boards with the CSR8635 module on them See here: http://www.aliexpress.com/item/Free-shipping-TDA7492P-25W-25W-Bluetooth-CSR4-0-stereo-audio-power-amplifier-board-NE5532-Pre-amplifier/32620953190.html

I didn't want to wait for that programmer from china so I bought this one made by CSR: https://www.digikey.com/product-detail/en/csr-plc/DK-USB-SPI-10225-1A/DK-USB-SPI-10225-1A-ND/5269739

If you want to jump through some hoops you can download the latest software versions by registering at csrsupport.com Once you have access to the support page, use the category tree to navigate to the latest software.  Home ? Bluetooth Tools & Firmware ? PC Software/Tools
I used the tynoshop guide Taken31 linked to in the earlier post for a step by step guide to change the name.

For the audio settings I didn't see the romconfig tool on the CSR support site, so i just downloaded it from  http://www.tinyosshop.com/download/CSRXX_ROM_ConfigTool_3.0.64.rar

At first I had some problems getting it to work. All my fault. First I had a bad USB cable. Second I crossed the CLK and the CSB wires. Once those were connected properly it was a breeze.
Note: If the bluetooth module is not connected properly the you will get an error that says something like "unable to identify device"   
 
The following users thanked this post: l0rd_hex

Offline l0rd_hexTopic starter

  • Regular Contributor
  • *
  • Posts: 61
  • Country: ca
  • I'm a master of karate and friendship for everyone
Re: Programming off the shelf CSR8635 module
« Reply #12 on: April 12, 2016, 02:20:16 am »
You are a gentleman and a scholar, thanks!
"I haven't paid taxes in six years, and I'm not getting busted by a damn sandwich." - Benjamin Franklin
 

Offline lakistrike

  • Newbie
  • Posts: 2
  • Country: cs
Re: Programming off the shelf CSR8635 module
« Reply #13 on: April 30, 2016, 09:47:20 am »
Can anyone explain what pins exactly I should connect, this is all new to me, but I want it to work so bad!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #14 on: April 30, 2016, 10:05:04 pm »
Just got one of these modules in the post today, and hooked it up to power regulators, and an FT232R - just to see the settings and to turn on apt-x.

The module I have has a different pinout, but all mine needed was 3.3V on Vbatt and it worked (designed for lipo's so ~3.2 - 4.2V).  In order to use the ft232 programmer I also of course had to hooked up the SPI lines, as well as a pull up resistor (10k) to the SPI_EN pin.  IO voltage was 1.8V.  Aside from buttons switching the various inputs (vol up, vol down, mute, play etc..) to 1.8V, and speaker connections, I don't think you'll need much more.

Be advised that the audio out ports are differential, you don't have a common connection between left and right.  I'll post more if I find anything else the module needs to get up and running.
 

Offline lakistrike

  • Newbie
  • Posts: 2
  • Country: cs
Re: Programming off the shelf CSR8635 module
« Reply #15 on: May 01, 2016, 11:50:23 am »
I'm not sure this module supports APTx... Anyway, I have this little amp with 8635 module on it and I want to change the device name etc. Will it be complicated to do that cause the module is soldered to the board, is it harder to access the pins?
 

Online vindoline

  • Supporter
  • ****
  • Posts: 324
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #16 on: May 01, 2016, 01:06:07 pm »
Thanks everyone for this info! I can't believe it's such a pain to do something so obviously useful.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #17 on: May 02, 2016, 02:50:34 pm »
Thanks everyone for this info! I can't believe it's such a pain to do something so obviously useful.

Whether or not its a pain depends on what parts you have around and what kind of electronics you're used to doing.  I was in a position where I had various FT232 boards around, and googled for links to the CSR software suite, and the wonderful open source programmer based on the aforementioned chip.  All in all about an hour.   For using a module thats solder on board, you would probably have to solder thin wires to the pins for SPI, and then of course, you'll need an FT232 as well as a 1.8V power supply for its IO (if its on a carrier board, that board might already have a 1.8V line to use).

I can see it being a real hassle for someone that just likes plugging things together, or those who purchased a self-contained module (on a carrier, with regulators, amps, just needs power) then yes, its a pity there isn't an all-software solution.  The advantage of having to delve into its config just to change its name is that you also have access to many many settings, from RF power, to LED flash patterns for certain situations, to EQ of the audio out which can be very handy in tweaking for a flat response (they tend to boost the bass because, well, consumers apparently like more bass).

I went down the cheapo route of just buying the bare module and tinkering because at least then I'll know if a product contains the chip I've poked around on, I'll know its limitations/capabilities.  That is always the trouble buying consumer products blind, whilst they are so much cheaper than building your own you don't know what you're getting unless you get to try it out.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #18 on: May 03, 2016, 01:26:50 am »
Sorry to keep hijacking this thread!

Seems I have managed to brick my module.  At first I thought I had made a booboo with the power supply, or IO voltages but... using the FT232 I can get 'bluecore persistant core' to read the devices config, albeit, very very slowly.

It still comes up with the settings, although there are so many, and that particular bit of software allows one to program the settings in hex - unlike the config utility which is a (relatively) nice GUI.

I believe the trouble started when I changed the name of the device and clicked 'write to device'.  The program hanged whilst doing so, so I suspect its flashed some settings, but left others.  Bummer.  It now no longer flashes its LED's in the 'search for pairing' pattern.  The LED's don't light at all.  Gonna fight with this till the sun comes up then order a new one >.<
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #19 on: May 03, 2016, 07:32:42 pm »
Probably should stop posting, but I have a favour to ask anyone who is working with CSR8645 bluetooth modules.

Would it be possible for someone to get a firmware dump of their modules?  I believe the blueflash utility can do this and whilst I'm not overly hopeful of de-bricking my module, the fact I can read some settings using the PS-tool gives me hope.  It seems the EEPROM settings are there, and it passes all the tests in 'bluetest' (reading IO pins, tone tests on the output etc..) but the actual firmware for USB, UART, or pairing/radio is dead.

I have ordered a second, and the first think I will do is get a backup copy of that firmware and settings and post somewhere.

Cheers!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #20 on: May 06, 2016, 01:48:38 pm »
Well, managed to unbrick it with the help from a member of another forum.   I'll be delving into it, so any questions people have about this module, post here and I'll see what I can do
 

Online vindoline

  • Supporter
  • ****
  • Posts: 324
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #21 on: May 10, 2016, 02:59:46 pm »
Hello fellas, I too am interested in this topic, I read through your posts, and in addition to the info I have, still haven't been able to piece it together. (Doesn't help that translation from Chines to English isn't always flawless either). I'm fallowing this post, so any info you have, I would be happy to have! I will do likewise aswell.
So far, this is the most helpful site I have found. Even though it doesn't apply to the exact chip I have (CSR8635) it gives a good rundown of how the setup might work: http://www.tinyosshop.com/index.php?route=information/news&news_id=42
Thanks guys!

I can confirm that using the tools and instructions at  http://www.tinyosshop.com/index.php?route=information/news&news_id=42 works perfectly. The only downside is that the tools are a bit pricy (~$65 US). I just bought their USB-SPI adapter and programming cable rather than try to bodge my own together. I've already spent more time that I wanted trying to find a solution. The shipping from China was very quick and the software and programming worked as advertised!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #22 on: May 26, 2016, 04:21:43 pm »
Might as well just post what I used to change the config because I mentioned it in another thread.

With an FT232, the csr-spi-ftdi driver, the 'Headset configuration utility' and 'PS-Tool' you can change many functions, but the only way I have found taht works (ie: doesn't brick the module) is the following.

-Connect your CSR8645 module to the FT232 as per the instructions on this page: https://github.com/lorf/csr-spi-ftdi
-Replace the driver for the FT232, also in the instructions (you can change it back later if you want to use the FT232 for standard serial stuff).-
-Open PS-tool, and hopefully it'll pick up the FT232.  Get a dump of the config as backup, File -> dump.
-Close PS-tool, open up the headset configuration utility (a quick google of 'CSR8600 ROM series configuration' and you should find it).
-'Open from device', and it should also pick up the FT232.
-Now you should see all the settings your module has - leave most of it alone but can change its name, disable charging, notifications etc..
-Click 'Write PSR' which will save to a *.psr file.
-Close headset config utility.
-Use notepad++ 'compare' plugin to compare the headset PSkey file (the one you just made) and the 'dump' - whats actually on the eeprom.-
-Manually copy differences, anything that is different on the headset PSkey - copy it to the 'dump' file.  The headset file will have a LOT missing, and the keys it does have will most likely be the same.
-Save the dump as 'newdump'.
Open up PS-tool again, and wait for it to read the chip.
File-merge, grab the *.psr file you just made - 'newdump', wait for it to finish configuring.
Done.

Not a pretty method, but does mean you can have a customised system, with or without the bells and whistles you need, and excellent audio quality (if Apt-X is enabled).  Whilst its still probably cheaper to buy earphones/headphones/speakers ready made, they tend to leave one wanting because often the speakers are just terrible.

A friend on the diyaudio forum is working on a way to get I2S out of this for an external DAC.  I don't really see the point in that since it transfers 16-bit @ 48kHz max, and even then it only ever uses a lossy codec like the awful SBC or Apt-X... an external DAC won't improve the quality much  Pleasantly surprised by the on-board DAC and headphone amp, couldn't hear any hiss, noise or artifacts and seems to be able to drive 32-ohm headphones quite well - but I haven't actually performed any measurements.
« Last Edit: May 26, 2016, 04:26:45 pm by Buriedcode »
 
The following users thanked this post: kile

Offline pcl

  • Newbie
  • Posts: 1
  • Country: hu
Re: Programming off the shelf CSR8635 module
« Reply #23 on: May 27, 2016, 11:33:54 am »
Hello,

I downloaded the csr software but since I do not have any hardware yet, it's not possible to explore its functionality without anything actually connected. Could somebody please check what kind of button functions can be set?

I'm looking to build a PTT mike for Zello but I did not manage to find an off the shelf solution for a reasonable price (they're asking in excess of $100 for a $20 device). I bought a few bluetooth headsets but I was unable to assign any of the buttons in a PTT fashion (toggle works, but that's not really suitable).

Before diving into this project, I would like to know if it's possible to do what I'm looking for. Basically I'd need a bluetooth device that has mike input + headphone/speaker output and a button that sends some sort of keypress continously while it's held down (the devices I tried either had a second function when held down or a continous key repeat, making PTT completely useless).

Commercial examples include
http://www.pryme.com/index.php?l=product_detail&p=2450
http://www.ebay.com/itm/272040820127
http://small-order.hktdc.com/small-order-suppliers-products/Bluetooth-PTT-Speaker-Microphone-H2/en/1X09CZNG/2955921/

Thanks for checking!
 

Offline smolny

  • Newbie
  • Posts: 1
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #24 on: June 02, 2016, 05:48:19 pm »
Hi,
I've got an audio amplifier with a BT PCB soldered on (pinout looks like in the lakistrike's Reply #13). The audio side works OK, but the BT range is up to 3m only. From the CSR8635's docs I understand that fiddling with the "PS keys" could extend the range (setting the gain of the RF power amplifier). As I'm new to programming (except for "hacking" old mobos to program BIOS chips :) perhaps somebody would care to explain to me, how to supply power to CSR8635 chip, when I connect it to an FT232RL programmer? Have read
https://github.com/lorf/csr-spi-ftdi
and understand how to connect four pins (SPI_CS#, SPI_CLK, SPI_MOSI, SPI_MISO) to the programmer, and how to get 1.8V out of 5V. And some more detailed questions:
-can I power (for programming) the CSR8635 as it's originally powered in this device - with 3.6V to VBAT, and get the 1,8V from the internal CSR8635's regulator?
-where shall I apply the 1.8V - to the 4th pin of FT232RL (VCCIO)?
Or perhaps an easier way th extend the BT range, at least to 5m?
Any poke in the right direction appreciated :)
« Last Edit: June 02, 2016, 05:55:47 pm by smolny »
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #25 on: June 05, 2016, 12:12:45 am »
The 1.8V is *usually* broken out on the module on a pin.  Would trust to to supply much, but should be fine for the FT232. 

Yes, I used that as the VCCIO on my FT232, as well as 220ohm series resistors 'just in case'.

As for range, RF is always tricky, and you may have noticed that many cheap modules china kicks out, whilst functional, and sometimes very useful - rarely design good PCB antenna's.  Often these are just copied from gerbers of other designs - many inverted F, meander, PCB antennas in general etc.. are copied without any care about what matching network to use, or the effect of housing, nearby traces etc..

It seems most bluetooth 'audio' modules (ones mounted on a PCB with audio amps, regulators and connectors) just have a bare wore soldered to the antenna, then to the PCB so one can 'connect their own'.  But this not only detunes the antenna, it also provides an unknown impedance out.  Connect it to a 50 ohm antenna and who knows what range you'll get, its all very haphazard.

I've used the cheap blue CSR8645 modules mounted on a  PCB with the antenna off the edge - away from traces, inside a plastic housing and had no trouble with 8m.

There are PSKeys to set the tx power, but it can only set the 'max' and the actual power it uses is dynamic - it will change tx power on the fly to save battery life when the link is robust.  A reasonable way of making it easier to get 'good range' would be disconnecting the PCB antenna (there's a 0402 cap that acts as a link between the onboard antenna and the module pin) and using 50-ohm coax to an RP-SMA connector, then a standard 2.4Ghz 1/4 wave antenna, the likes of which you get on wificards.  This of course would hinder portability, but if its going in an enclosure - especially a protable speaker, then an external antenna would allow you to use a metal housing, as well as provide a fairly decent range.

For audio streaming the range is inherently limited by the high throughput and limited time for resends
 
The following users thanked this post: l0rd_hex, smolny

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #26 on: June 19, 2016, 07:59:10 pm »
I bought an amplifier board too, it ("BLAMP-50W-V3", http://www.ebay.com/itm/281967072104 ) is built around the TDA7492 50W class-D amplifier and a CSR8635 bluetooth module (without antenna). The main board is populated with a a DC socket for power (center positive). Pairing went without problems ("M-DIY-AUDIO-"). At 12 V it draws less than 100 mA with "JBL Control One" (~10 yrs old), and I don't need it much louder. The AUX input (3.5 mm stereo) has a contact to detect if something is plugged in and it seems to be routed via the nearby SGM4717 analog switch. Volume control is digitally controlled via pushbuttons and I suspect that everything goes through the bluetooth module. Unfortunately, there is quite a bit of quiescent noise. It's tolerable at room level but not suitable if you want to listen to something very quietly (e.g at night). Dialling down the amplifier gain level via DIP switches helps a bit, also making the source louder and the module quieter seems to help a bit.
Actual problems however are the default volume level and the startup sounds. Powering the board, one is greeted with a loud "du du du da - blip" followed by aforementioned audible white noise. It takes 6 "volume -" button pushes to get that down to bearable. So I am trying to figure out how to change that.

I seem to have found the pinout of the module in question, "F-3288":
  http://www.aliexpress.com/item/New-Arrival-Bluetooth-4-0-Stereo-Audio-Module-Control-Chip-CSR8635-Stereo-Bluetooth-Module/32308035803.html
  http://www.dhgate.com/product/bluetooth-stereo-audio-module-ble-4-0-module/241472833.html

Trying to figure out the audio signal paths:

MIC -> C82 -> SGM4717  Pin 2 NO1
GND -> C86 -> SGM4717  Pin 5 NC1
SGM4717 Pin 3 COM1 -> BT-Module Pin 27 LINE / MIC_AN

MIC -> C87 -> SGM4717  Pin 10 NO2
TRS Audio jack Tip (left channel) -> C81 -> SGM4717  Pin 7 NC2
SGM4717 Pin 9 COM2 -> BT-Module Pin 28 LINE / MIC_AP

TRS Audio jack Ring (right channel) ->  C80 -> BT-Module Pin 31 LINE_BP
TRS Audio jack Sleeve (GND) switch contact ->  BT-Module Pin 19 RX (PIO0/PIO1?*)
BT-Module Pin 30 LINE_BN -> C88 -> GND

BT-Module Pin 18 TX (PIO0/PIO1?*) -> SGM4717  IN1&2   

*note that the schematics differ from pinout

So the analog switch normally routes the audio jack to the IC's Line in pins, but the IC detects if no plug is present and then has the choice of using the microphone as input (for the bluetooth hands free function). So the audio is ADC/DSP/DAC'ed and I think that might not help with the noise.
So I am thinking about bypassing/mixing the jack input directly to the amp input, which should be accessible at the filter capacitors next to the BT-Module outputs. However, to be able to use the Bluetooth audio as well, I need to at least change its startup volume and sound. So ...

The BT-Module has 4 undocumented pads on top, near the GT4128 "2-WIRE 128 K Bits Serial EEPROM" (http://www.giantec-semi.com/upload/datasheet/GT24C128_DS_Adv.pdf) :

1 (module corner) EEPROM Pin 7 WP - CSR Pin  PIO12 Pin 22 (SPI flash chip select)
2 CSR8635 Pin 31 - PIO13 (SPI flash data bit 1)
3 VCC / 1V8
4 GND / GND

What could this be used for?

Found the datasheet:
http://www.datasheetcafe.com/csr8635-datasheet-csr/ -> http://www.ndatasheet.com/datasheet-frame/300/mdownload.php?id=869877

EEPROM connections (see pads above)
1-4 GND
5 SDA <-> CSR Pin  PIO11 Pin 26 (SPI flash data bit 0)
6 SCL <- CSR Pin  PIO10 Pin 25 (SPI flash clock)
7 WP <- CSR Pin  PIO12 Pin 22 (SPI flash chip select)
8 VCC (1.8 V, up to 5.5 V for GT4128 only!)

So reading this directly is not out of the question but the work is probably the same.
This leaves digging out an unreliable FT232RL board I made years ago...

On this module, PCM needs to be pulled high to enable the debug SPI interface (and I think released again, to test the new settings).

So far I have been able to change the device name but my changes have always caused problems (and suspected bricking, but then after a few trials, reading/writing was possible again) . At the moment, I cannot connect to the device at all; the programs just freeze at "communicating with device". Buriedcode might be right. I think the last I tried was "Merging" a ConfigTool .psr file into the connected device in PSTool... Maybe my FT232RL wires are falling apart.

I have written a small Python script that reformats the ConfigTool .psr into something more similar to what PSTool generates. Makes it much easier to compare. Will publish that soon.
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #27 on: June 22, 2016, 09:57:44 am »
Despite rebuilding my FT232 interface with SOP-adapter and a breadboard, triple-checking all voltages (VCCIO), I am not able to program the chip anymore. I can only read the firmware ID with Blueflash. PSTool and ConfigTool transfer data indefinitely. After a few seconds of "opening transport" or whatever, the data rate is changed drastically and then it just keeps on communicating. I once managed to "cancel" during the initial phase and PSTool actually showed its list of keys. Writing my backup dump failed.
The command line tool used with usbspi.dll's debug-options (https://github.com/lorf/csr-spi-ftdi) does the indefinite transfer with a lot less CPU usage and only ocasionally reports SPI errors. So it does not seem a problem with transport, but rather the communication.
PSTool and Blueflash seem to work only in their installation directory, otherwise PSTool simply does not start. Blueflash seems erratic in finding the adapter. I previously used 2.6.2 but reinstalled 2.6.0 to be sure.
When things hang and the processes are killed, the SPI levels are left 'dangling', i.e. CS# is not released. So replugging the FT232 is necessary.
I am not certain whether writing bad keys could have corrupted the chip (ROM). It could be that the interface voltage was too high at some point. Also, I have to admit I did not use resistors. So maybe I fried the chip.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #28 on: June 22, 2016, 10:21:40 am »
What IO voltage were you using for the FT232?  I would have thought it could cope wtih 3.3V if series resistors were used, but I have used the 1.8V from the module as VCCIO on the FT232.  I too initially had problems with infinite 'reading....' but that turned out to be the shoddy breadboard setup.  Once I made a semi permanent version on stripboard it worked like a charm.  I had a 10K pull up on the CS line as well because the FT232 can make its IO's high-Z.

If you have bricked the module, I can send a *.psr file to you to at least get it 'back to default'.
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #29 on: June 23, 2016, 11:49:09 am »
Thanks for the offer, greatly appreciated! I'm not sure if my dump may be corrupted, as I've only made it after playing with ConfigTool. However, I used to be able to restore it at the beginning, which I now cannot (can't read or write, only read firmware). I used the 1.8 V output from the module for VCCIO, but this was pulled higher for some reason, and once it disconnects I am not sure what the FTDI actually puts on the CSR inputs.

I did lower the SPI clock down to 20 kHz, to no avail. However, the signals look OK. I might attempt a capture by logic analyzer and see if there are decode errors.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #30 on: June 23, 2016, 02:51:41 pm »
These chips are easily bricked by the 'CSR-tool' as it only writes specific keys- and wiping the rest.  It can mean the chip gets stuck in a bootloop because whilst the firmware is in ROM, the on-board I2C EEPROM contains configuration for booting as well as user config.  It took me a few days of head-scratching and I actually had to order a second module to read the keys off (with PStool) and write them to the bricked module (also using PStools). 

The result of the shoddy config was - very slow reading with PStools, and then it froze.  I cannot remember exactly how I managed to stop this but I believe it was playing around with the Vreg line (Vreg enable, also the 'multi-function button' input).  I was also using a separate power supply for the module - not derived from USB - because the FT232 would take a while to power up, and the CSR module I had used a POR circuit (holds reset line low for ~3ms at power on) it would power up sometimes before, sometimes after the FT232.  That way I could connect to the dongle using PStools, then power cycle the CSR module, then try to 'read from device'.

The only way I found to modify the settings using CSR_headset_config was to get a dump using PStools.  Then read the device with the headset config utility, make modifications but write to a file.  Then you have your original config, and the config form the headset utility that will only contain a few PSkeys.  Using notepad ++ with the compare plugin, I could see what the headset utility had changed, and copied them over to the original dump.  This was then written back to the device.  Its long winded but it works.
« Last Edit: June 23, 2016, 02:59:36 pm by Buriedcode »
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #31 on: June 25, 2016, 06:31:12 am »
Something is definitely stuck in a loop, I'm just not sure whether the CSR or the PC side has the problem.

This is four repetitions of the MISO line data:
Code: [Select]
0x00 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

And MOSI repeats, too:
Code: [Select]
0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00
0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00
0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00

This sequence can be found in both:
Code: [Select]
0x00 0x00 0x30 0x06 0x00 0x00 0x04 0xB0 0x00 0x00 0x00 0x80 0x00 0x00

The chip reports stack version 8648 (0x21c8):
  "dal_10compact_rom_bt4.0_dal_a04_1112061248_encr128 2011-12-06"

I might try to send a "debug,dump" log to the csr-spi-ftdi developer in the hopes they might be able to see what's being sent.
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #32 on: June 25, 2016, 06:33:53 am »
Here's my little Python script

Code: [Select]
#! python
#coding=utf-8
"""Convert .psr files as generated by CSR ConfigTool into the format that BlueFlash 2.6.2 uses.

Strips the header, reformats comments, omits empty keys and strips blank lines.
Writes keys in ascending order to stdout. Usage: pipe into new file like "psr.py infile > outfile".
"""
# settings
comments = True
reformat = True
empty_lines = True
showheader = True

import sys

def main(filename):
    """"""
    # read the whole file and split it into list on empty lines, ignoring the file header
    with open(filename, 'r') as f:
        r = f.read().strip().split('\n\n')
        header = r[0]
        keys = r[1:]

    # iterate over comment/key line pairs
    d = {}
    for key in keys:
        # split the pair
        comment, key = key.split('\n')

        # reformat comment
        if comments and reformat:
            parts = comment[2:].split('-')
            pskey = "".join( parts[0].strip().split() )
            if not pskey.startswith("PSKEY"):
                newcomment = "// PSKEY_" + pskey
                #comment += ' (' + parts[1].strip() + ')'
            else:
                newcomment = "// " + pskey
        else:
            newcomment = comment

        # test for data
        try:
            # key has data
            address, data = key.lower().split('=')
            d[address.strip()] = (data.strip(), newcomment)

        except ValueError:
            # key without data
            print("skipping key (no value):", address, comment, file=sys.stderr )
            pass

    # output
    if showheader:
        print(header)
        print("##        converted by psr.py        ##")
        print("#######################################")
        print()

    for key in sorted(d):
        if comments:
            print( d[key][1] )
        print( key, "=", d[key][0])
        if empty_lines:
            print()

    print("Done. Key(s) reformatted:", len(d), file=sys.stderr )

if __name__ == "__main__":
    main( sys.argv[1] )

I wonder what the CSR does if it cannot find the EEPROM?
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #33 on: June 25, 2016, 08:12:52 am »
I found hints on writing to / clearing the EEPROM with BlueSuite'S e2cmd.exe when searching for info on a CSR site. It's also mentioned in https://github.com/lorf/csr-spi-ftdi#useful-commands. After successfully (!) doing

Code: [Select]
set SPIMAXCLOCK=20
set FTDI_DEBUG_LEVEL=debug,dump
set FTDI_LOG_FILE=log.txt
e2cmd.exe dump eeprom-backup.hex
e2cmd.exe fill 0xff

I was finally able to connect with PSTool again and restore my backup PS keys.

But "rebooting" the module without the debug SPI enabled, it does not show the original behaviour and it does not show up in the ether either.

So I think I would need the original EEPROM contents that probably also contain the code that manages the audio switching on my amplifier board. If someone has this board or one that uses the signals described above, could you send me an EEPROM dump please?
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #34 on: June 25, 2016, 08:24:47 am »
On second thoughts, I'd appreciaty any working EEPROM contents for this chip in order to try to get it to work again (as long as I can connect and it DACs some audio it is useful to start with).
 

Offline BananaForScale

  • Newbie
  • Posts: 1
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #35 on: June 26, 2016, 10:15:42 pm »
Also interested in programming the module on an amplifier board, would the babel programmer work (http://www.digikey.co.uk/product-search/en?keywords=DK-USB-SPI-10225-1A-ND%09 , http://bcdmicro.co.uk/shop.php?pg=4#!/CSR-Low-Cost-Babel-USB-SPI-Debug-Programmer/p/50636001/category=11287798 ) or the one mentioned before in the thread. I have got CSR Blue Suite 2.5.0 but not a programmer yet (don't know what one) and I can't find good information as most is in Chinese.
Thanks 
 

Offline doctormord

  • Regular Contributor
  • *
  • Posts: 190
  • Country: cx
  • !nop
    • #fine_arts & #electronics - 360customs.de
Re: Programming off the shelf CSR8635 module
« Reply #36 on: June 29, 2016, 04:57:20 pm »
(Bulk) Writing to the device or unbricking it is much more reliable if you disable the VM first via PSTools and the corresponding key.

It's named "VM disable". After setting this "true" restart the module from within the tool.

After writing back your dump, just enable it again if it's not by itself after power-cycling.

Another note:

If you change settings with the ROm configure tool and write the keys back to your device it will brick the FW keys for the enabled codecs. (AAC,MP3,APT-X - so only basic A2DP and SBC is left then)

Diffing the dump to your settings is easier if you first load your unchanged dump, made with PS-Keys tool, into the ROM configure tool and save it unchanged to a new .psr file as the keys gets resorted somewhat.
#fine_arts & #electronics  - www.360customs.de
 

Offline Limoster

  • Newbie
  • Posts: 1
  • Country: es
Re: Programming off the shelf CSR8635 module
« Reply #37 on: August 11, 2016, 07:00:16 am »
Will anyone help me find the pinout of this CSR8645? It looks a bit wider than most modules...

http://www.aliexpress.com/store/product/Free-shipping-Original-new-CSR8645-APT-X-Bluetooth-4-0-Audio-Receiver-Board-Wireless-Stereo-Music/1905399_32582365030.html

I found somewhere you can use a different method to change the name of the bluetooth module by hooking up a SOIC8 EEPROM Programmer to the EEPROM in the bluetooth module. It is more difficult because everything is in hex and most things are unreadable.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #38 on: August 14, 2016, 01:16:31 am »
That method is essentially what using PSYkeys and the headset config utility does - just reprograms the EEPROM on the module.  It still contains config keys that we pretty much have no home of fully decoding so you'll need a 'stock' module with working config in its EEPROM to copy.  The main SOC is ROM-based - nothing to program there - that has capabilities fixed.

So ultimately, its actually more work to program an EEPROM, and switch it for the one on board.
 

Offline kile

  • Contributor
  • Posts: 18
  • Country: hu
Re: Programming off the shelf CSR8635 module
« Reply #39 on: September 06, 2016, 10:44:44 am »
I am trying to build a BT speaker with one of these CSR modules. This is my module: http://www.ebay.com/itm/CSR8645-Bluetooth-stereo-audio-module-support-APT-lossless-speaker-amplifier-AMP-/181903054267?hash=item2a5a4455bb:g:ZVoAAOSwYHxWHq-x

I've made a PCB that contains the CSR8645 module, the LEDs, buttons, power, USB charger and the flashing interface.

I have built a dedicated programmer based on the schematic found here: https://github.com/lorf/csr-spi-ftdi

The module works fine when powered. I can connect to it from my phone.

The problem is that the flash interface does not work. I can't even identify the module. This is what I get:

Quote
C:\>BlueFlashCmd.exe -identify
blueflashcmd, version 2.3.0.15
Copyright (C) 2002-2010, Cambridge Silicon Radio Ltd.
10:14:56.301658: all:spi.c:558:spi_init: csr-spi-ftdi 0.5.1, git rev b60665a
Resetting XAP
10:14:56.677089: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:14:56.761056: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:14:57.015927: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:14:58.995330: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:01.063303: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:01.200860: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:02.861680: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:03.175285: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:03.862987: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:05.192672: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:05.550446: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:05.804504: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:06.415120: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:06.649859: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:06.705838: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:07.273037: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:07.561272: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:07.877662: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:09.086594: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:09.095746: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
10:15:09.104089: err:basics.cpp:479:spifns_sequence_read: Unable to start read (invalid control data)
...

And this goes on forever or until I press Ctrl-Break.

This is the schematic of the PCB with the module (PDF):

https://drive.google.com/open?id=0B5QsMM8GX6NEWGk1b1QtbTRpLWc

I have not populated the USB charging part of the circuit. So, R7, R8, C2, Q1 and the USB plug are not on the PCB. I am powering the module from a Li-Ion 18650 battery.

This is my programmer (PDF):

https://drive.google.com/open?id=0B5QsMM8GX6NEdmxZNU5nVkg0dEE

The JP1 voltage selector is in the 1.8V position. The FTDI chip is FT232RL 1147-C. I have read that revisions A and C have bugs in the bit-banging modes of the chip, so maybe this is my problem?

This is a photo of the two PCBs:

https://drive.google.com/open?id=0B5QsMM8GX6NETzUwcG4zOTg0Nms

Before I did this I have already tried to flash a CSR8635 module (not CSR8645 like the one I have now) with a FTDI breakout and got the same result. I thought I messed up something with the wiring and I didn't have a stable 1.8V source for the FTDI, so I decided to make a dedicated programmer and a decent PCB for the BT module. But the result is the same, so I am guessing that something is wrong with my understanding of how this thing should be wired. Maybe I missed a pull-up or pull-down somewhere, or something like that.  |O

Any help or suggestion is more than welcome. Thank you!
 

Offline Dimoza

  • Newbie
  • Posts: 1
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #40 on: September 16, 2016, 03:13:29 pm »
Hi everyone,

a bit off-topic question (but i see that this is only thread, where people discuss CSR8635 module). So...
Am I right understand that this module can work in RX (default) as well as TX mode? If my assumption correct, how to switch module in TX mode? and how to initiate pairing process (for both RX and TX)? 

Thanks for any hints!
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #41 on: October 01, 2016, 08:32:18 am »
Maybe I missed a pull-up or pull-down somewhere, or something like that.
Do you have debug SPI interface enabled by pulling CS (SPI) high?
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #42 on: October 01, 2016, 12:42:40 pm »
I bought a 2nd unit to fix the first I bricked.
Testing dumping the bricked EEPROM with e2cmd.exe:
  128 kbit = 16 kByte part is installed
  only 8192 lines in hexdump, but these are word (0x00ff)!
  adresses @0000 .. @003ffe (16382) confirm

Which makes me wonder if my "fill" from june 25 was incorrect.

Code: [Select]
>e2cmd.exe fill 0xffff
e2cmd.exe, version 2.6.2.632 Release
Copyright Cambridge Silicon Radio Limited 2007 - 2015.

Fill successful

>e2cmd.exe dump eeprom-backup8kffff.hex
e2cmd.exe, version 2.6.2.632 Release
Copyright Cambridge Silicon Radio Limited 2007 - 2015.

File written successfully

Resulting in

Code: [Select]
@000000 ffff
@000002 ffff
@000004 ffff
@000006 ffff
@000008 ffff
...
@003ffa ffff
@003ffc ffff
@003ffe ffff

(nothing happens on reboot in run mode)

After writing default header with "e2cmd.exe header":

Code: [Select]
diff --git a/eeprom-backup8kffff.hex b/eeprom-backup_header.hex
index a3ec3ca..3918e34 100644
--- a/eeprom-backup8kffff.hex
+++ b/eeprom-backup_header.hex
@@ -1,13 +1,13 @@
-@000000 ffff
-@000002 ffff
-@000004 ffff
+@000000 8f70^M
+@000002 8f70^M
+@000004 0000^M
 @000006 ffff
-@000008 ffff
+@000008 0000^M
 @00000a ffff
-@00000c ffff
-@00000e ffff
-@000010 ffff
-@000012 ffff
+@00000c 0000^M
+@00000e 0000^M
+@000010 0000^M
+@000012 c0de^M
 @000014 ffff
 @000016 ffff
 @000018 ffff
@@ -4097,10 +4097,10 @@
 @002000 ffff
 @002002 ffff
 @002004 ffff
-@002006 ffff
-@002008 ffff
-@00200a ffff
-@00200c ffff
+@002006 0000^M
+@002008 0000^M
+@00200a 0000^M
+@00200c c0de^M
 @00200e ffff
 @002010 ffff
 @002012 ffff

(nothing happens on reboot in run mode)

PS Tool connects without problems
Factory>Factory Restore all
Too quick (nothing really seems to happen) and no effect (eeprom dump identical).

But "Merging" with the earliest PSTool "Dump".psr I could find results in ... the module working again (blue leds alternating, startup sound rising "du du du da". And I can connect again to "M-DIY-AUDIO-" and play music!

If you have linux tools available, this may help with comparing files:
Code: [Select]
grep "&" in.psr | sort > out.psr
But unfortunately, I have not been able to get the module to work with changed default volume levels yet

The interesting key is "USR 15 - PSKEY_FEATURE_BLOCK":
Code: [Select]
working (both levels 15):            &0299 = 9231 2c00 11e7 05f1 3e40 f61a
default AD2P volume level -> HFP 1:  &0299 = 9231 2C00 11E7 05F1 3E40 161A
default      volume level -> HFP 1:  &0299 = 9231 2C00 11E7 0511 3E40 F61A
aptx                                 &0299 = 9231 2C00 11E7 05F1 3E40 F71A
                                                              X       X
                                                                       X

Changing either of these in PSTool (filter for "15") breaks audio.
So it's not configtool's fault.

If you've had any success with these audio settings, please let me know.

Removing power-on sound (PSKEY_USR26)
This is what config tool does when one removes a sound (selecting no-sound does not work for some reason):
Code: [Select]
&02a4 = ff1d 010b 020c 030d 0502 060d 070e 0802 141a 280e 290d 2a1a 0902 0402 623a 633b 6917 fe56 0d46 2616 0e02 0f02 1002 1102 1202 3a02 3b0d 3c0e 1a18 7214 7312 7412 8950 ba13 bb10 0000 0000 0000

&02a4 =  FF1D 020C 030D 0502 060D 070E 0802 141A 280E 290D 2A1A 0902 0402 623A 633B 6917 FE56 0D46 2616 0E02 0F02 1002 1102 1202 3A02 3B0D 3C0E 1A18 7214 7312 7412 8950 BA13 BB10 0000 0000 0000

PS-Tool warns that the data length is unusual. But compare the last three entries 0000 that match "no sound" in config tool. So:

Code: [Select]
&02a4 = ff1d 0000 020c 030d 0502 060d 070e 0802 141a 280e 290d 2a1a 0902 0402 623a 633b 6917 fe56 0d46 2616 0e02 0f02 1002 1102 1202 3a02 3b0d 3c0e 1a18 7214 7312 7412 8950 ba13 bb10 0000 0000 0000
Finally something that works (besides changing friendly name)!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #43 on: October 02, 2016, 09:58:59 am »
As I mentioned in a previous post, modifying things like default volume, name, feature list etc.. is ridiculously difficult to do just from the datasheet and manually editing hex dumps.  But using the nice 'headset configuration utility' which has a GUI results in a bricked module, because it only writes to certain addresses, and fills the rest with 0xFF (important things like boot config).  So the only way I have found is to Use PStools to read a working device config, save it, open config in headset configuration utility, change some settings and save as a *different* file, then compare the two... any values that have been changed in the later file, must be moved to the stored config whilst leaving the rest as is.  Only then can the config be written back, with all the same values except the few that were changed.

It's time consuming but only needs to be done once.  I haven't managed to get the I2S port working - I dont' think its enabled in the ROM anyway - but the on-board DAC is more than good enough
 

Offline none

  • Contributor
  • Posts: 32
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #44 on: October 02, 2016, 12:03:24 pm »
I followed that initially, but comparing the keys showed that the exported PSR file does not differ in data except for the changed values. It does have a header, different comments and some additional whitespace. However, merging the changes manuall into the PSTool's Dump file and then writing this to the device did not work either. Manually writing a single modified key with PSTool didn't work either. I suspect that some of the user code might rely on these values.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #45 on: October 07, 2016, 04:06:38 pm »
It is most likely a ROM - there is no 'user code', only the firmware which is permanently burned in. And yes, the firmware is dependant on many of the values in the EEPROM, which is why its so easy to brick them.

When I compared the dump file from PStools, and the one created by the headset utility (you must 'open from device' first, then make changes, then save to file) I only noticed a few lines that were different, and as you rightly pointed out, it adds white-spaces, which don't make a difference.  But it also misses out key entries which is the problem.  That is why you make the changes to the dump from a working chip, rather than copy over the dump to the headset config output.
 

Offline kile

  • Contributor
  • Posts: 18
  • Country: hu
Re: Programming off the shelf CSR8635 module
« Reply #46 on: October 20, 2016, 01:37:55 pm »
Maybe I missed a pull-up or pull-down somewhere, or something like that.
Do you have debug SPI interface enabled by pulling CS (SPI) high?

The FTDI chip is supposed to the pull the CS pin high, right? I don't think I need to pull it up with a resistor. Is that correct?

In any case, it looks like the problem I had is with genuine FTDI chips. http://blog.bitheap.net/2012/03/ft232r-bitbang-mode-is-broken.html
If you have an FTDI knock off - everything works fine, if you have a genuine FTDI chip - bit-banging will not work. Nice, huh? :D

Then I learned you can also make an LPT programmer, and since I have an LPT port on my PC, I did just that. Then I learned LPT programmers are not supported on 64bit windows which I have. :( Not even through virtualization. :( Another bummer.

So I gave up and ordered a dedicated CSR programmer from ebay. I am waiting for it to arrive. I really hope this works, because I am running out of options.

Sorry for the very late reply but I haven't checked this thread in a while.
 

Offline ratep2001

  • Newbie
  • Posts: 1
  • Country: dk
Re: Programming off the shelf CSR8635 module
« Reply #47 on: November 18, 2016, 11:42:01 am »
I've also had success changing the name of the Sanwu amplifier (CSR6835 + TDA7492) with the procedure and hardware from TinyOS. 3 out of 3 boards were renamed although the one was more sensitive to cable positioning and curvature than the others.

However, I have also two almost identical bluetooth amplifier boards named QS audio (seems to be the same raw PCB and same component values on bigger components, but some of them look different), which are less noisy than Sanwu and therefore I wanted to use and rename these too. Unfortunatelly, following exactly the same method and using the same hardware like I used on Sanwu, I could not connect to the CSR6835 module of both QS audio amplifiers.

What is going on? Is it possible that QS audio boards are locked for SPI programming, or some programming fuse is intentionally interrupted/burned before leaving the factory in order to avoid messing around with the settings?
 

Offline beercohol

  • Newbie
  • Posts: 1
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #48 on: December 18, 2016, 11:33:16 am »
Hi Everyone, I'm adding myself to the list of headscratchers trying to program the CSR8635 when attached to the TDA7492P board (here: http://www.ebay.co.uk/itm/Wireless-Digital-Bluetooth-4-0-Audio-Receiver-Amplifier-Board-TDA7492P-50W-50W-/141738932730).

I'm using the CSR low-cost programming board (DK-USB-SPI-10225-1A) I purchased (here: http://bcdmicro.co.uk/shop.php#!/CSR-Low-Cost-Babel-USB-SPI-Debug-Programmer/p/50636001). You can see from the nice photo of the board, the SPI pins.

Now onto my programming attempt. I installed Bluesuite on my Windows 10 machine (including the USB>SPI driver) and loaded up PSTOOL. It can see the driver fine, the Programmer board power LED lights up when connected. So far so good.

Looking at the CSR8635 soldered to the amp board, I noticed the 7 square soldered tabs just south of the bluetooth module (pointing towards the push button controls). I noticed they were all connected to the relevant SPI pins, so using a very small pitch IC Socket (I don't know what the pitch is, but 4 pins seems to span 5mm to my dodgy eyesight). The pins conveniently touch those soldered tabs dead centre - so I used this as a convenient tool to touch the 7 tabs. I connected back from those tabs back to the CSR Programmer board (see attachment).

At this point I consistently get read failure. I suspect there may be some protection in place to stop me getting the CSR8635 into SPI programming mode. The SPI_EN connector on the CSR programmer board reads 3v when checked across the GND pin, so I am sure the CSI Programmer board is trying to put the CSR8635 into SPI mode.

I have ordered a separate CSR8635 module from china and will have to wait a month or so before it arrived before I can test a CSR8635 that is not installed onto the board. Other than that, I'm stumped.

It looks like I'm not the only one who wants to change the BT name in situ (on the AMP board), and those 7 tabs tell me the manufacturer must at some stage intended their use for SPI programming the board - probably once on the production line. But if they did anything else to the board to lock/disable SPI programming after that, it would be great to understand and defeat it.

Let's nail this one!

b.
« Last Edit: December 18, 2016, 11:43:49 am by beercohol »
 

Offline fixedcoil

  • Newbie
  • Posts: 1
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #49 on: January 02, 2017, 01:09:48 am »
I wrote this for another forum but thought it might be helpful to someone here, hence the redundant details about CSR.

DISCLAIMER: Everything written below is information I have gleaned from reading CSR documentation, blog posts and related comments. It is offered in good faith with no promises. What I relate worked for me, your mileage may vary but BEFORE changing any PSKey parameters you should DEFINATELY BACKUP your modules by dumping/writing their initial settings to file using both PSTool and the ROM Configuration Tool.

I recently bought a Sanwu Audio Bluetooth Audio Amp module on Ebay and was disappointed to find that it played loud discordant event tones when powering up, pairing, connecting and when the volume was changed. I just wanted to put it in to the ceiling void of my bathroom to be able to play music from my phone with better sound quality than that provided by the phones speaker.

The Bluetooth chip is by Cambridge Scientific Research (since bought by Qualcomm) CSR8635, designed to be used in a hands free a car phone, or similar, application. Searching online I not come across anyone also finding these features unwanted and solving the problem of removing them. I did find CSR information and programming software not easy to obtain but it is available if you look.

This document is written for a different device but the parameters seems identical:
http://read.pudn.com/downloads166/sourcecode/compiler/758171/BlueLab-3.6.2-release/3.6%20support%20documentation/docs/CS-110372-UGP2_BlueVOX_Configurator_User_Guide.pdf

This is the PSTool Users Guide:
http://www.52bluetooth.com/csr/adk3.0/adkdocs/CS-101505-UGP7PSToolUserGuide.pdf

To communicate with the module you need a USB/spi module. It is possible to DIY one but a CSR module can be found here:
http://www.broadband.se/shop/bluetooth/classic-bluetooth/programmer/csr-%C2%B5energy-low-cost-usb-spi-programmer/

There are spi lands on the Sanwu module to which fly leads can be soldered.

The 8635 configures itself when it boots by reading default parameters, called Keys from ROM. It can be customised by writing modified parameters into EEPROM which then mask and overide the corresponding default parameter. These modified parameters are called persistant store keys (PSKey). PSKeys are split into three groups. The first are fully locked down from manufacture, they configure the bluetooth radio and other regulated features. The second group contain the user configurable PSKeys; those from 0 to 24 are secure keys and need the CSR86xx Series ROM Configuration Tool to write to them. The keys from 25 to 49 can be written to using the PSTool.

The event tone parameters are stored in PSKey USR26. The format is four hex digits:
xxyy xxyy, where xx is the event and yy the tone to play. Setting all the yy digits to 00 removes the tones.

The Hands Free Profile is stored in USR3 and can be removed by simply deleting all between USR3 up to USR4. Alternatively the ROM Config Tool can be used to unselect the HSP and HFP profiles under the HFP tab.

Finally to change the module name from SanwuAudio use the PSTool, search for name, type in the new name and press Set.

 
 
The following users thanked this post: l0rd_hex

Offline bluetoothnewbie

  • Newbie
  • Posts: 2
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #50 on: January 18, 2017, 06:34:26 am »
Alright folks! After reading through this entire thread a few times It seems we should all know by now how to
a) change the name (this is super easy)
b) change the tones (startup beeps, I have yet to attempt this, but with the advice from BuriedCode we should be able to)
c) change any other settings in the Config tool


Now my question is, has anyone successfully been able to alter the internal EQ of the CSR8635? I have been struggling to do this (I am using the Universal Parameter Manager (UniversalFrontEnd.exe) obtained from a buddy in China helpin me with this.

However I am having difficulty connecting to this program as "algorithm not recognisible" keeps showing up. My guess is I would need to alter a setting inside PSTools or Config Tool to allow connections to the Parameter Manager?

If anyone is currently experimenting with this and has any insights, please let me know. Maybe there is a way to edit the EQ within PSTools or the Config Tool however I have searched diligently and been unable to find any.





 

Offline bluetoothnewbie

  • Newbie
  • Posts: 2
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #51 on: January 19, 2017, 11:27:25 pm »
Also if anyone can put in directions of how to unbrick a module please let me know. I have two bricked modules with the "correct" code saved as a dump however this backup file is not doing anything for me. Cannot seem to load it properly. Maybe im missing some step?

I open PSTools
I connect to the USb SPI (takes forever on the bricked modules)
File-merge
select dump
and done.

Usually ends with error with bluetooth address or something. Or also PSTools will crash will trying to connect to the SPI.


 

Offline slavj

  • Newbie
  • Posts: 3
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #52 on: January 29, 2017, 11:29:38 pm »
Hi,
I have the same problem with the CSR8645 (F-3188 module). My module stopped working as a result of upload config from Config Tool CSR8600 ROM series. I've made a backup (PS Tools , Headset) but have no idea how to use it (communication seems not work).
Bluetoothnewbie - how long it takes PSTools to connect to your bricked module ? (secconds, minutes ...)
Please, any advice how to restore to life this module.
 

Offline e.sjolund

  • Newbie
  • Posts: 2
  • Country: no
Re: Programming off the shelf CSR8635 module
« Reply #53 on: February 02, 2017, 10:18:27 am »
Alright folks! After reading through this entire thread a few times It seems we should all know by now how to
a) change the name (this is super easy)
b) change the tones (startup beeps, I have yet to attempt this, but with the advice from BuriedCode we should be able to)
c) change any other settings in the Config tool


Now my question is, has anyone successfully been able to alter the internal EQ of the CSR8635? I have been struggling to do this (I am using the Universal Parameter Manager (UniversalFrontEnd.exe) obtained from a buddy in China helpin me with this.

However I am having difficulty connecting to this program as "algorithm not recognisible" keeps showing up. My guess is I would need to alter a setting inside PSTools or Config Tool to allow connections to the Parameter Manager?

If anyone is currently experimenting with this and has any insights, please let me know. Maybe there is a way to edit the EQ within PSTools or the Config Tool however I have searched diligently and been unable to find any.

I´m also curious to see if we can change the EQ of these modules.
As for PS tools, I´ve manage to change Name, Fixed volume tomes, Tones, Button presses. The only thing i´m missing is to change the TX power for longer range. I´ve never used PS-Tools to merge, heard too many people messing it up. So I´m using the command prompt with the useful commands described on https://github.com/lorf/csr-spi-ftdi to merge. Never had a failure unless i messed up when editing in Notepad++

If you could be so nice and share the UniversalFrontEnd.exe, I´ll be happy to share any progress that I´ll make :-)
 

Offline simba15

  • Regular Contributor
  • *
  • Posts: 118
  • Country: ca
Re: Programming off the shelf CSR8635 module
« Reply #54 on: February 07, 2017, 10:35:43 pm »
The 8635 configures itself when it boots by reading default parameters, called Keys from ROM. It can be customised by writing modified parameters into EEPROM which then mask and overide the corresponding default parameter. These modified parameters are called persistant store keys (PSKey). PSKeys are split into three groups. The first are fully locked down from manufacture, they configure the bluetooth radio and other regulated features. The second group contain the user configurable PSKeys; those from 0 to 24 are secure keys and need the CSR86xx Series ROM Configuration Tool to write to them. The keys from 25 to 49 can be written to using the PSTool.

The event tone parameters are stored in PSKey USR26. The format is four hex digits:
xxyy xxyy, where xx is the event and yy the tone to play. Setting all the yy digits to 00 removes the tones.

The Hands Free Profile is stored in USR3 and can be removed by simply deleting all between USR3 up to USR4. Alternatively the ROM Config Tool can be used to unselect the HSP and HFP profiles under the HFP tab.

Finally to change the module name from SanwuAudio use the PSTool, search for name, type in the new name and press Set.

 


Hi there Fixedcoil,

I have also been working on reprogramming the CSR Module.

I have noticed that as mentioned in this thread disabling the VM greatly reduces the issues.

I have successfully updated the Name to my own liking, but I am unable to remove the event tones.

When I download a dump from PStool or Rom config there is no values in USR26.

from PSTool:
// PSKEY_USR24
&02a2 = 0b01 0001 7ffe 0b05 0001 7ffe 0c01 0002 7ffe 0c05 0002 7ffe 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 140b 0003 5fff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
// PSKEY_USR25
&02a3 = 9308 0004 6008 9508 0010 6000 9608 0008 6000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
// PSKEY_USR30
&02a8 = 0001

from Rom config:
//USR 25 - PSKEY_EVENTS_C                   
&02a3 =  9308 0004 6008 9508 0010 6000 9608 0008 6000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

//USR 26 - PSKEY_TONES                     
&02a4 -

//USR 27 - PSKEY_RSSI                       
&02a5 -

At this point I am not sure how to remove the sounds that occur on boot up or during volume changes.

I too would enjoy a permanent EQ adjustment.

Please let me know if any one has any thoughts.

Thanks Tristan
 

Offline e.sjolund

  • Newbie
  • Posts: 2
  • Country: no
Re: Programming off the shelf CSR8635 module
« Reply #55 on: February 09, 2017, 12:34:01 pm »

from PSTool:
// PSKEY_USR24
&02a2 = 0b01 0001 7ffe 0b05 0001 7ffe 0c01 0002 7ffe 0c05 0002 7ffe 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 140b 0003 5fff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
// PSKEY_USR25
&02a3 = 9308 0004 6008 9508 0010 6000 9608 0008 6000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
// PSKEY_USR30
&02a8 = 0001

from Rom config:
//USR 25 - PSKEY_EVENTS_C                   
&02a3 =  9308 0004 6008 9508 0010 6000 9608 0008 6000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

//USR 26 - PSKEY_TONES                     
&02a4 -

//USR 27 - PSKEY_RSSI                       
&02a5 -

At this point I am not sure how to remove the sounds that occur on boot up or during volume changes.

I too would enjoy a permanent EQ adjustment.

Please let me know if any one has any thoughts.

Thanks Tristan

Hi Tristan, to get the module to work you have to do some changes. If you pay attention there are missing some part in the edited code.
Example, "//USR 25 - PSKEY_EVENTS_C"  Yo have to edit it to: "// PSKEY_USR25" it´s important to copy it exact, all the spaces underscore etc. Remove the  "- PSKEY_EVENTS_C " part at the end of the edited code too.

I´ve not had any problem changing tones etc with this metode. Perhaps you can keep the "- PSKEY_EVENTS_C " but I don´t  take any chances :) 

-Erik
 

Offline drd

  • Newbie
  • Posts: 1
  • Country: cz
Re: Programming off the shelf CSR8635 module
« Reply #56 on: February 09, 2017, 03:13:31 pm »
Hi guys.

I got dump (PStool backup), i wrote into file (Config tool backup), compared.
I tried to 'marge' it in PStool or/and 'Write ti device' in Config tool. Programs says - successful.
But if i 'Open from device' in Config tool there is still old settings (I did also factory restore all in PStool)

Does anyone know how to write new settings (PStool or Confing tool) please ?

Thanks a lot.
« Last Edit: February 09, 2017, 03:15:28 pm by drd »
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #57 on: February 09, 2017, 05:20:41 pm »
I haven't been able to 'write to device' using the 'config tool' without bricking the module. PStool uses the 'merge' to write new settings, but as I've stated many times in the thread, I have only been able to do this manually by adding/modifying the PSkeys in notepad.
 
The following users thanked this post: mehdikh15

Offline slavj

  • Newbie
  • Posts: 3
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #58 on: February 09, 2017, 07:43:42 pm »

Configuring CSR86xx is a big challenge. A very important thing is to make a good backup. The best solution I've found so far is to use the application BlueModify from http://www.cisdo.cn/post/5.html (Chinese production tool, to make it working you need replace driver USBSPI.dll).
Backup made by PSTool and / or Config Tool does not allow surely restore the initial state in case of problems. It is necessary to take a direct copy of the external EEPROM (sometimes Flash). This can be done using e2cmd from Bluesuite package, but much better option is Bluemodify. I'm writing this post because I spent a lot of time to restore my module to working condition.
 

Offline slavj

  • Newbie
  • Posts: 3
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #59 on: February 09, 2017, 08:09:50 pm »

One of the two modules I have (CSR8645, F-3188) goes sleep after about 300s.
Do you know how wake CSR8645 from sleep? How to turn off "deep sleep mode" ? Do you have any experience ?
It does not help to disconnect power.
The only thing that helps is to wait a few hours without power :)
 

Offline jimmy888

  • Newbie
  • Posts: 1
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #60 on: February 27, 2017, 10:43:23 pm »
anyone know the pitch of the spi lands on the tda7492p?  I'm waiting on my board to arrive, but from beercohol's previous post it looks to be 1.27mm. I'd rather try attaching a header rather than soldering to those tiny pads. My hands aren't so steady anymore. Thanks.
 

Offline reapster

  • Newbie
  • Posts: 1
  • Country: za
Re: Programming off the shelf CSR8635 module
« Reply #61 on: March 06, 2017, 05:53:00 pm »
Hey there,

I've also managed to trash one of my CSR8645 modules (My own fault, I should've read about the config tool bricking modules). I see I can still sort of read/write the EEPROM, is it possible that anyone would be able to send me a copy of the ?  I gather its 128kbits based on what e2cmd and friends tells me.

 

Offline Gibol

  • Newbie
  • Posts: 9
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #62 on: March 09, 2017, 11:01:47 pm »
I've bought CSR8630 based module. It is advertised as AVRCP 1.4 Compatibile, but I did not find any way to extract AVRCP metadata (which is a part of 1.4 spec). I've managed to dump and write config using 86XX config tool. If anyone knows anything about a possiblity of gettin the metadata using this module, please let me know :) (Otherwise I will have to purchese PI Zero W :) )
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #63 on: April 01, 2017, 01:06:01 pm »

One of the two modules I have (CSR8645, F-3188) goes sleep after about 300s.
Do you know how wake CSR8645 from sleep? How to turn off "deep sleep mode" ? Do you have any experience ?
It does not help to disconnect power.
The only thing that helps is to wait a few hours without power :)

I believe you can change the value of the timeout using the 'CSR8600 ROM series configuration tool' under the tab 'timers'.  You can also change how it behaves in terms of power saving, sleep, and what to do when it loses connection.  There's a wealth of config settings.

I think I have posted this here before, if not here it is (apologies to admin if this isn't legit, I haven't seen licensing mentioned anywhere so I'm assuming this is free):

http://www.tinyosshop.com/download/CSRXX_ROM_ConfigTool_3.0.64.rar

Please note, as I've mentioned ten times before - only write to PSR file, never 'write to device'.  As this app will only output a handful of PSkeys.  'Open from device', make your changes, save to PSkey file, then check the values in the generated file against a full 'dump' file.  You will see that a couple of hex values have been changed if you have made changes in the GUI.
 
The following users thanked this post: mehdikh15

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #64 on: April 01, 2017, 01:10:22 pm »
I've bought CSR8630 based module. It is advertised as AVRCP 1.4 Compatibile, but I did not find any way to extract AVRCP metadata (which is a part of 1.4 spec). I've managed to dump and write config using 86XX config tool. If anyone knows anything about a possiblity of gettin the metadata using this module, please let me know :) (Otherwise I will have to purchese PI Zero W :) )

As far as I am aware, the 8645/0630 are ROM devices, so their ROM mask determines their capability, whilst the EEPROM determines the configuration of its functions.  Unless the UART is enabled I don't think there is any way to access metadata with these modules.  It could be that the CSR8630 modules floating about do have their UART enabled, but I have yet to see a 8645 with it.

You might be better off using a more expensive module like the RN42 http://www.microchip.com/wwwproducts/en/RN42 or perhaps other microchip modules: http://www.microchip.com/ParamChartSearch/Chart.aspx?branchID=12094

Often these will have teh UART interface enabled and allow for AT commands that may, or may not.. allow you to access the metadata.
 
The following users thanked this post: mehdikh15

Offline lipton5001

  • Newbie
  • Posts: 5
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #65 on: May 20, 2017, 12:11:16 am »
Alright - I've modified this post to contain all the videos I have on this topic: renaming, setting the equaliser and disabling the handsfree functionality (stop phone calls from being hijacked on startup)


Renaming CSR8645 chips: https://youtu.be/7gdZsPkljoo

Setting the equaliser: https://youtu.be/6D31lBP0pvc

Disabling Microphone/Handsfree Mode :


Have a great day everyone  :-+
« Last Edit: September 09, 2017, 11:49:15 am by lipton5001 »
 
The following users thanked this post: kripton2035, zeroneuron

Offline zeroneuron

  • Newbie
  • Posts: 1
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #66 on: May 25, 2017, 01:00:58 pm »
Very useful post, especially for EQ programming lipton5001 !!
I plan to build an adaptative BT APT-X receiver..
{(Pink noise & Dirac generator + measurement microphone + Spectrum analyser -> EQ curves and compression (with delay ?)) => CSRA Flash}

I bought a CSRA64215  module (stamp) on ICstation webstore  (hope it is compatible and writeable, not received yet), looking forward to try this !
(http://www.icstation.com/btm625csra64215-bluetooth-audio-module-wireless-module-i2stwsaptx-p-9959.html)

Have you drawn a schematic on how to connect to the USB-SPI dongle ?
Any suggestion on where to buy this dongle and the motherboard for the stamp ?

Thanks again, it was very hard to find someone who managed to use EQ (is the compressor-expander as trivial ?) on this chip, and explained it

Thx, thx, thx.  :-+
« Last Edit: May 25, 2017, 01:08:39 pm by zeroneuron »
 

Offline cowana

  • Frequent Contributor
  • **
  • Posts: 324
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #67 on: May 25, 2017, 01:24:42 pm »
What a handy thread - I'd often wondered about further configuration of these modules!

Subscribed :)
 

Offline Echolot

  • Newbie
  • Posts: 3
  • Country: ch
Re: Programming off the shelf CSR8635 module
« Reply #68 on: July 20, 2017, 09:46:30 pm »
First off thanks a lot for all the research that has already been done in this thread and elsewhere. I read through it all and tried to understand as much as I could and I think I got the software part of the config changes pretty well figured out.

But what ultimately holds me up at the moment is the hardware part of hooking up the programmer to the CSR8635. I bought the FT232RL FTDI programmer as suggested by the Readme in the csr-spi-ftdi repository. Could someone advise me how I should connect the FT232RL to the CSR8635 based on these pictures (http://imgur.com/a/Rj9qN)? I marked the traces that connect the test points on the board with the CSR8635 using photoshop.

Thanks a lot for any help it is extremely appreciated as I'm really stuck here...

Kind Regards
Marc
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #69 on: July 22, 2017, 03:09:42 pm »
The good news is you already have the hardware you need.  The bad news is, that particular FT232R board only breaks out the most common connections (*most* applications only require Tx, Rx and a couple of handshaking lines). 

Here are the connections:
https://github.com/lorf/csr-spi-ftdi#using-ft232rl-breakout-board-as-a-programmer

It seems you either have to get a FT232R breakout board with all the connections - I soldered a chip to a generic SSOP28 breakout board, or if you have a steady hand and some kynar wire, solder wires directly to the chips pins.

I haven't used the CSR8635, but that small carrier board on your main board looks to be a BTM835.  As shown here:
https://www.eevblog.com/forum/projects/programming-off-the-shelf-csr8635-module/  (scroll down for pinout).

From that image in imgur - with the help of your red lines showing connections, and *if* it is a BTM835, then the pins appear to be (from left to right):

GND
MOSI - Master out, slave in... RI on FT232
CLK - clock, RTS on FT232
CS  - chip select, DTR on FT232
MISO - master in, slave out, DSR on FT232
SPI_PCM - should be pulled high to IO voltage via a ~10k resistor.  IO voltage will be 1.8V


the 1.8V is available on that module on pin 10, and should be the input to VCCIO on the FT232.   But I have used it with 3.3V IO voltage, and as long as you have series resistors for every connection (I used 220ohm) I'm sure it'll be fine.  That FT232R module looks like it has switchable IO voltage 5V/3.3V, you'll want to use 3.3V.

Its a bit of a pain, I was fortunate enough to have a breakout board and spare FT232R's left over from projects.
 
The following users thanked this post: Echolot, mehdikh15

Offline Echolot

  • Newbie
  • Posts: 3
  • Country: ch
Re: Programming off the shelf CSR8635 module
« Reply #70 on: July 22, 2017, 05:15:58 pm »
Thank you very much Buriedcode for your answer. I'm currently looking around for a breakout that includes all connections. Should this have all the needed pins broken out?
http://www.ebay.ch/itm/USB-to-TTL-FTDI-Serial-Converter-mit-FT232RL-Chip-fur-Arduino-Prototyping-DIY-/172265388890

I checked the ebay listing from the amplifier and it says that the carrier board is in fact a BTM836 but after a quick search on google it seems that such a board doesn't really exist so I'm not sure what to make of it. Here's the ebay listing of the amplifier board:
http://www.ebay.ch/itm/TPA3116D2-120W-x-2-Wireless-Bluetooth-4-0-Audio-Receiver-Digital-Amplifier-Board/152562776469

Thanks a lot for the clarification on the 1.8v 3.3v difference. I was really hesitant because I thought I would fry the chip for sure with my 3.3 volts.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #71 on: July 23, 2017, 02:21:42 pm »
Thank you very much Buriedcode for your answer. I'm currently looking around for a breakout that includes all connections. Should this have all the needed pins broken out?
http://www.ebay.ch/itm/USB-to-TTL-FTDI-Serial-Converter-mit-FT232RL-Chip-fur-Arduino-Prototyping-DIY-/172265388890

Looks fine.

I checked the ebay listing from the amplifier and it says that the carrier board is in fact a BTM836 but after a quick search on google it seems that such a board doesn't really exist so I'm not sure what to make of it. Here's the ebay listing of the amplifier board:
http://www.ebay.ch/itm/TPA3116D2-120W-x-2-Wireless-Bluetooth-4-0-Audio-Receiver-Digital-Amplifier-Board/152562776469

I based my assumption off the chip used (CSR8635) and how it looks (some boards have the chip horizontally - square, others have it diagonal like that).  I would bet it is the BTM835 if the main chip on there is indeed a CSR 8635.  I haven't heard of a 8636.  The fact the amplifier board broke out those pins to a header implies it really is for configuration, in which case I do think the pinout is correct.

Thanks a lot for the clarification on the 1.8v 3.3v difference. I was really hesitant because I thought I would fry the chip for sure with my 3.3 volts.

Yeah, I originally just used the 1.8V pin to provide the VCCIO voltage for the FT232, but I made a mistake hooking it up and ended up using 3.3V (again, with every data connection via 220ohm resistor).  I didn't fry anything but.. the real problem is the MISO line - that is the data coming from the bluetooth module, which will be at 1.8V level.  1.8V TTL logic levels aren't really compatible with 3.3V, I'm surprised it worked at all. 

Edit: Apparently the FT232R has CMOS inputs - the input has a threshold with hysteresis rather than specific high/low thresholds like TTL.  This means as long as the device can output >1.2V for a logic high, it'll work.
 
The following users thanked this post: Echolot, mehdikh15

Offline Echolot

  • Newbie
  • Posts: 3
  • Country: ch
Re: Programming off the shelf CSR8635 module
« Reply #72 on: July 26, 2017, 10:24:46 pm »
Everything went just as planned, changed the bluetooth name and lowered the output gains. Seemed to write fine and the module works after a restart, bluetooth name successfully changed. Couldn't test the new gain settings yet. Big thanks to Buriedcode for helping me out here and all the other lovely people in this thread.

One more thing to make this module perfect: Has someone figured out how to change the default volume level? Because at the moment it's way too high and if I change the volume over bluetooth before playing music it gets reset to the default level when I start the playback.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #73 on: July 27, 2017, 03:39:28 am »
I believe the 'CSR8600 ROM series configuration tool' has a default volume level on its first page.  Off the top of my head, i think its under the 'features tab' on the right, 0-15.  Theres also a checkbox to make all feedback tones the same volume, and you can set that too (handy to make them quieter).
 
The following users thanked this post: mehdikh15

Offline Burakko

  • Newbie
  • Posts: 1
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #74 on: August 19, 2017, 07:05:16 pm »
I understand that I need to connect in this way ? (on picture)

 

Offline densmith123

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #75 on: September 11, 2017, 10:15:08 pm »
Hello all,

I have an old bluetooth headset that uses the CSR8670 and I would like to replace the chip because I believe it has an internal failure in its charger circuitry.  I have already purchased a pair of replacement 8670s.  Correct me if I'm wrong, I believe that I need PSTOOLS to transfer the config settings from the factory chip to the new chip so it will work with the headset.

I can find a USB-SPI programmer and I have mapped out where all the SPI communication points are on the PCB, but I cannot find the IDE software anywhere.  I've seen software names such as BlueSuite, BlueLab, ADK 4.1, but I'm not really sure what I need.
I'm running Windows 7 and would like to communicate to the board via USB. 

What software do I need and where the heck do I get it?  I have registered with CSR Support and asked them for the software, but I highly doubt that will pan out.  I've scoured the internet to no avail... can somebody hook me up?   Please help (I'm a noob).  Thanks!!!
 

Offline lipton5001

  • Newbie
  • Posts: 5
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #76 on: September 12, 2017, 07:44:10 am »
Yep, for a simple config backup PSTools is all you need; luckily it’s the most updated/compatible software there is for this chip.

The software that includes it is indeed called BlueSuite, and might indeed now be hard to find since CSR was bought out and is now moving resources;

Irrespective - you somehow seem to not have searched youtube: https://youtu.be/7gdZsPkljoo
 
The following users thanked this post: densmith123

Offline densmith123

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #77 on: September 12, 2017, 02:13:19 pm »
Lipton,

Thanks for your help.  I did a Youtube search for CSR8670, but silly me, I did not expand the search to include other chips in the series - Lesson Learned!

The video you shared has provided me with everything I need.  Here's a quick recap of what I did to obtain the BlueSuite software, for others that may be in the same dilemma:

1) Register at www.csrsupport.com - you will get grief from the website for using your personal email address vice business email, but you can ignore this
2) Wait for account approval - this took about an hour for me - you will get an email with your account approval and password
3) To download Bluesuite: www.csrsupport.com/PCSW.  If you need an older version of the software (Windows Vista, XP, 32-bit, etc.), go to www.csrsupport/PCSWArchive
4) Download latest version: as of 9/12/2017 it is BlueSuite 2.6.8

I will get this software installed and use PSTools to migrate the config data from old CSR8670 chip to new.  Thanks eevblog, this was a great first experience on the forum!!!

-Denny
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #78 on: September 12, 2017, 02:14:59 pm »
The config isn't stored on chip.  They are ROM devices, with an external EEPROM for config.

If you are dealing with 'modules' (which contain the EEPOM and passives) then you would indeed need to transfer the settings from one to the other, but if you are actually swapping the chips (QFN or BGA, either way, not easy with all the tiny surrounding passives!) then you won't need to transfer any settings, just make sure the device has the same ROM mask.

For the most part, as mentioned, just using PSTools to make a memory dump, then 'merge' to write to the new EEPROM will work.  Again, assuming the ROM's are the same.
 
The following users thanked this post: densmith123, mehdikh15

Offline densmith123

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #79 on: September 12, 2017, 03:34:17 pm »
Thanks Buriedcode!

For this particular headset (BlueParrott B350-XT) there is only one chip/module, the CSR8670, in a 112 pad BGA package.  The design of the PCB includes a location for an EEPROM, but it is not populated so I am guessing it used in some of BlueParrott's other headset models. 

I did successfully remove and replace the 8670 module with hot air and lots of Kapton tape on the surrounding little components so they wouldn't be disturbed.  While it was off, thanks to the 8670 datasheet, I was able to map out all of the traces and make a spreadsheet that correlates the BGA pads to the 34 test points located throughout the board. 

After installing the new 8670 module, I have confirmed that all of the power rails supplied by the internal regulators are putting out good voltages, yet I cannot make the headset function.  I am assuming that the problem is that I still need to migrate config data over from the old chip, which probably includes programmable input/output (PIO) settings for the buttons and LEDs,  and other configuration settings.  That dilemma is what brought me to this thread.  I have just downloaded BlueSuite 2.6.8 and purchased a Chinese CSR USB-SPI programmer on ebay, so I guess this project will be on hold for a few weeks now  :-\

With the original 8670 module off the board now, I am sure it is going to be a real treat trying to download config data off of it.  I may need to make a little PCB with Eagle, or perhaps try to solder some magnet wire onto the chip's SPI pads.  :o   

-Denny
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #80 on: September 12, 2017, 05:23:48 pm »
Hopefully there will be test pads on the original unit for the SPI connections.

The lack of EEPROM on there leads me to think its a custom ROM for that particular headset/product.  This may or may not be a deal breaker because it means the 8670's available on ebay and the like will have a different ROM mask/version to the one you are replacing.  I don't think you have much hope of recovering the original 'settings', as they would be permanently in the ROM mask.

However.  As there is a footprint for an EEPROM, there is hope.  Any new device (8670) you'll solder on there will most likely expect an EEPROM - as all the 'modules' on ebay have them on board.  Now, if you can find any test pads for config (might not be any as it seems the device has no EEPROM, and so, won't require configuration) you could use your programmer... but as you have to solder on an EEPROM anyway, you might be able to program that first, them solder it on.

I can provide a hex file for the EEPROMs I have on my modules. (I have an Arduino sketch for reading a dump somewhere..).

But again with the bad news... whilst there are 'standard' profile setups for these things (like 3 button headphones, 5 button headphones, single button hands free etc..) your headset could have a completely custom setup, with specific PIO's used... if you have traced out the PCB to those PIO's then you can set them in the 'headset configuration utility' that is kicking about the web.

So I suspect the reason it isn't up and working is one/some/all of the following:
-Not all connections soldered, a real possibility with BGA rework. No insulting your skills here!
-Different ROM mask, one that expects an external EEPROM to have settings.  If none is detected, these things remain in standby. Good call on checking the output from its internal 1.8V regs.
-Wrong pin mapping from buttons to IO.

Given you removed an 8670 from a module, if the EEPROM footprint is the same on your headset.. then you could swap over that too.  Hopefully the headset will use the default pin mapping for control buttons and LED's. If its a different foot print, looks like you'll either have to bodge it, or.. buy a new EEPROM.. clone the old to new, then solder that.

Sounds like mission, but it could all work out!
 
The following users thanked this post: densmith123, mehdikh15

Offline densmith123

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #81 on: September 13, 2017, 12:30:16 am »
Buriedcode, Lipton5001, all interested:

Thanks for your help up to this point.  I have started a new thread to dive into the troubleshooting/repair/programming of the CSR8670 module located in the BlueParrott B350-XT bluetooth headset.  I've migrated quotes from this thread to that one, and will post PCB pictures, datasheets, my repair notes, etc.  My latest response to buriedcode is also on that thread, so I will not be disturbing these kind CSR8635 programmers here any more.  ;D

https://www.eevblog.com/forum/projects/blueparrott-b350-xt-headset-with-csr8670-bluetooth-module-revival-attempt/msg1300677/#msg1300677

-Denny
« Last Edit: September 13, 2017, 04:27:08 am by densmith123 »
 

Offline JSnowden

  • Newbie
  • Posts: 3
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #82 on: October 03, 2017, 03:48:26 am »
Hi everyone,

I've read through this whole thread and I'm glad to see it's still active. I registered so I could hopefully get some help with my own programming.

I can change all the settings I like on the CSR8635, but there's one thing I can't figure out - can I use it as an audio transmitter? Someone else asked this and didn't get a response. It has stereo line input, so I don't see why not, but the datsheet is so vague on that matter.

Another question, which might be beyond the scope of this thread; what tools should I use to program the CSR57E6 module? It works as a transmitter by default, which is why I'm interested in it. It works with PSTools, but obviously not with the CSR86XX ROM Config Tool. I've read about a "BlueTunes Configuration Tool 2.1.6" which seems to be what I need, but I can't find it anywhere. All I want to change is the function of the buttons and LEDs.
 

Offline lipton5001

  • Newbie
  • Posts: 5
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #83 on: October 03, 2017, 08:45:22 am »
All the software I have linked was found on

http://www.52bluetooth.com/

It's a huge pain in the ass the browse but with patience you'll find a lot of useful software : just download all the versions you can find of each program you can find, run them under some old windows 7 32b installation, and you may just get to what you want :D

As a pro tip: register each time you're asked with a 10 minute email address, those worked perfectly for me WHEREAS my actual yahoo/google addresses were somehow flagged/blocked immediately
 

Offline JSnowden

  • Newbie
  • Posts: 3
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #84 on: October 03, 2017, 07:06:24 pm »
Thanks for the tip! I was able to download BlueTunes Configuration Tool 2.1.6 and BlueLab xIDE 4.1. The BlueTunes Configuration Tool seems to not correctly modify the PS keys when you output to a file, so I won't even try using it to write to my device.

There are still some files I need that seemed to be blocked. How do I get past the "Sorry, this item is available to download for certain users only" when trying to download attachments from posts? The website says I should be able to download anything I want, so I don't understand what's stopping me.

One more thing - is there a list anywhere describing which PSkeys do what for which devices? The ones with names are fairly obvious, but the ones that I'm concerned about are the "PSKEY_USR" entries. Datasheets for respective devices don't reveal much about PSkeys, and the only other mention I can find is in specific applications like this which don't apply to all modules: https://www.manualslib.com/manual/920969/Csr-Bluecore-Adk-3-0.html?page=11.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #85 on: October 04, 2017, 05:18:17 pm »
As far as I am aware, the 8635, 8645 and 8670 are slaves only, not hosts.

AptX capability depends on the ROM mask, it could be that all capable devices support AptX but require specific PSkeys based on encryption to enable it - either way, it is easier and cheaper just to get a device with AptX enabled, the CSR8645 seems to be the most common.  The only device I've found that supports AptX-low latency, is the CSRA64215.

Given how cheap bluetooth transmitters are, and as one probably doesn't need many (one or two) I would just buy up a decent branded one, like avantree, or iClever (I got one of those, AptX-LL for £11).

 
The following users thanked this post: mehdikh15

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #86 on: October 06, 2017, 06:19:03 am »
Hello can enybody help?
I got CSR8645 chip and make my own equalizer setting with csr8600 rom everythink worked but only with device I got paired via bluetooth.If I pair another device like  PC or tablet the equalaizer is again FLAT in it's original.Can I make it that my equalaizer settings works with every device I pair?
 

Offline lipton5001

  • Newbie
  • Posts: 5
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #87 on: October 06, 2017, 08:08:01 am »
I've had some tips on setting equalizers for BOTH 44.1 and 48 Khz

(I could only access the 44.1 as iPhones apparently downconvert everything to this rate, even 48 Khz mp3s)

I suspect your PC is using the higher sampling rate (48), so, you need to go in and set the equalizer again (whilst having the computer playing over it)
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #88 on: October 06, 2017, 08:19:39 am »
Yes my phone goes 44.1Khz and PC 48 Khz but when I pair onother phone the settings is flat
Have you tried pair with some other phone?Have you the same equalaizer settings?

And have somebody CSR8645 firmware
I need flash module...because it' seems dead,it's conect over SPI but no LED lights goes on and I cant pair it
« Last Edit: October 06, 2017, 08:29:29 am by Chilmars »
 

Offline lipton5001

  • Newbie
  • Posts: 5
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #89 on: October 06, 2017, 08:39:22 am »
Check my videos above in this thread - I have dumps in the descriptions
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #90 on: October 06, 2017, 01:42:28 pm »
And have somebody CSR8645 firmware
I need flash module...because it' seems dead,it's conect over SPI but no LED lights goes on and I cant pair it

These are ROM devices, there is no flashable firmware.  Sounds like the config in EEPROM has been corrupted (keys lost, bricking it) in which case you can use PSTool with a fresh dump from another module to 'revive it'.
 
The following users thanked this post: mehdikh15

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #91 on: October 07, 2017, 07:43:26 am »
Yes I have dump and when I upload to board and reset it.Then it lights up and work,but when I switch off power it never power up. I can only conect via PSTool and it shows me name of BH07
I got dump file and also eeprom hex file...how I can upload the last one
« Last Edit: October 07, 2017, 07:45:23 am by Chilmars »
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #92 on: October 07, 2017, 05:51:07 pm »
Yes I have dump and when I upload to board and reset it.Then it lights up and work,but when I switch off power it never power up. I can only conect via PSTool and it shows me name of BH07
I got dump file and also eeprom hex file...how I can upload the last one

Generally you shouldn't need to manually program the EEPROM with a hex file, the bluetooth SOC will write to it for you when you 'merge' with a dump file from PSTools.  If it doesn't 'wake up' on power up after a power cycle, that could be any number of things.  There is quite a lot of possible configs for the 'multifunction button' and power_enable line. I'll have to look at the config to see whats happening.
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #93 on: October 08, 2017, 06:40:50 am »
This is the psr file that I can dump from chip.
http://www106.zippyshare.com/v/EbgVfBme/file.html
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #94 on: October 09, 2017, 05:09:21 pm »
I got it back :clap:
uplouded eeprom and it's alive
If someone need I got tools from here
https://translate.google.com/translate?hl=lv&sl=auto&tl=en&u=http%3A%2F%2Fwww.cisdo.cn%2Fpost%2F43.html

the page is in chaines use google translate
« Last Edit: October 09, 2017, 07:22:09 pm by Chilmars »
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #95 on: October 11, 2017, 03:04:41 pm »
Instal in your phone CSR GAIA Control https://translate.google.com/translate?hl=lv&sl=auto&tl=en&u=http%3A%2F%2Fwww.cisdo.cn%2Fpost%2F43.html

It's a app for Android and there Can be upgraded online (CSR8670 / CSRA8675 only)
 

Offline noctali

  • Newbie
  • Posts: 1
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #96 on: October 16, 2017, 05:07:07 pm »
Hi everyone,

I tried to download from 52bluetooth.com but without success.
I need CSR867x ADK 4.2. Is someone can help me to get it please?

thank you
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #97 on: October 26, 2017, 09:11:51 am »
I got this chip BTA-RX-A/CSRA64215 Can somewone help me to know the order of pinout for CSR SPI programming?
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #98 on: October 26, 2017, 11:42:21 am »
Found it CSB/CLK/MOSI/MISO/GND/VDD  :clap:
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #99 on: October 30, 2017, 11:20:30 am »
Can somewone give me  CSR64xxx ROM Series A11 Release
download link or the zip file?
 

Offline brainwash

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
Re: Programming off the shelf CSR8635 module
« Reply #100 on: November 10, 2017, 05:13:10 pm »
Ok, I don't know where to write this and I don't want to create a new account on another forum.

I bought a Sanwu Bluetooth amplifier from Amazon, it looks exactly like this one:https://www.sanwulasers.org/product/sw-hf71
Initially it looked the same as those other TPA3116 + CSR8635 modules, except this one does not use the standard CSR part. The BT + decoder chip has had its marking lasered and I couldn't really determine what it is, the lasering was too deep. However, I found another low-res picture online that shows a part of the chip:


Does anyone know what that chip is? Doesn't seem to be a CSR part (from the logo). I would like to at least be able to remove the startup and pairing chimes.

If I cannot find any solution to this I will probably return it for a different model. Which is a shame, as it sounds really good and has zero background noise.



Edit: found a product that looks very similar: https://www.banggood.com/Bluetooth-Audio-Receiver-Module-Support-U-Disk-USB-TF-Card-Play-MP3-Decoder-Board-FM-Radio-p-1101686.html
« Last Edit: November 10, 2017, 05:23:47 pm by brainwash »
 

Offline brainwash

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
Re: Programming off the shelf CSR8635 module
« Reply #101 on: November 11, 2017, 01:33:24 pm »
Replying to my own post in case someone stumbles upon this in the future.

Boards like this have used until now two different ICs, JieLi AC4603 and RDA5856TE. My chip is recognized as JieLi when plugged into USB but it has the pinout similar to an RDE. However, no pinouts match with any of the chip from those two manufacturers. What's more annoying is that the startup chime is not tied to the main volume, it always plays at ~60%.

A positive thing is that you can leave the board always on, together with the PSU it draws about 1W and has no background noise. But you still get the pairing chime.

Anyway, the board is going back and being replaced with a CSR+TDA one.
 

Offline Pandora

  • Newbie
  • Posts: 1
  • Country: ee
Re: Programming off the shelf CSR8635 module
« Reply #102 on: December 05, 2017, 10:11:58 am »
Hello,

I'm working on a project and I need a little help.
I have CSR8635 Bluetooth Chip and USB SPI TOOL for programming. I use CSR8600 ROM Series Configuration Tool to make changes in Chip. I want to separate A2DP and AVRCP protocols. Basically all i want is only bluetooth remote to control phone audio (Play/pause/next.. etc). If i remove A2DP (Streaming protocol) then only Play/pause/next/previous button works. But volume change doesnt work. And with Android nothing works without A2DP. I only need to control music with buttons. Can someone please tell me what i'm doing wrong? :-//

 

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
« Last Edit: December 13, 2017, 10:39:34 pm by gavron04 »
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #104 on: December 14, 2017, 05:14:42 am »
Yes, I too noticed the programmer requires the 3.3V line to be powering it (via vbat) I am not entirely sure why this should be as the interface is indeed 1.8V TTL.  But don't forget GND as well! 

As for finding the dongle after a reset, have you turned on discovery on your phone?
 
The following users thanked this post: mehdikh15

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #105 on: December 14, 2017, 04:11:00 pm »
Yes, of course GND must be connected :)

In this link is information "This tutorial only for common BT modules. You CAN'T add a password to APTX module!"

My CSR have APTX (csr64215) so if this toturial is not for me ( https://www.tinyosshop.com/index.php?route=information/news&news_id=55 )

How can I add password?


After added password from this link https://www.tinyosshop.com/index.php?route=information/news&news_id=55 my CSR has stopped transmit signal by bluetooth. (LED is not blinking). After this I must write original software without my changes.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #106 on: December 14, 2017, 08:47:26 pm »
It well be that your module isn't booting properly after adding the password.  Or perhaps it requires a pulse on the 'PWR_EN' line to wake it up again - this happens when you first power the module, as many carrier boards have an RC reset circuit, but doesn't happen after a software reset, so must be done manually.

What version of bluecore PStool are you using?  I noticed the date code on the firmware for the CSRA64215 modules I have are 2016, which is pretty new.  The latest PStool version was from 2015.
 
The following users thanked this post: mehdikh15

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #107 on: December 14, 2017, 10:29:51 pm »
What it meas "requires a pulse on the "PWR_EN"?

About circuit - orginal I have on board 1k between SPI_PCM and GND. I have desoldered this 1k resistor to solder new 10k between 1v8 and SPI_PCM to have communication by SPI. But I think that without this 1k to gnd<>spi_pcm I should have connection after added password pin.

I have 2.6.2.632 release. But I dont know where I can find new version.


I have some question:
- how much devices can I connect to CSR64215?
- it is possible to add some button to start pairing? Now if Im not connected to my CSR it is always blinking that is ready for pairing so.. now when I cant add password/pin my neighbor can connect to my csr and play :D
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #108 on: December 15, 2017, 02:05:29 am »
What it meas "requires a pulse on the "PWR_EN"?


I mean, on the bluetooth module itself there is a pin labelled as PWR_EN on CSR8645s, but its called MFB (multi function button) on the CSRA64215. 

Bottom right:  http://p.globalsources.com/IMAGES/PDT/B0746242423/Bluetooth-audio-module.jpg

For devices that use this chip that is often the 'pairing/play/pause/on/off' button.  The function changes depending on the context... press and hold to turn off, press to turn on, press and hold for a second to go into pairing mode etc..  I have found that on most boards, this pin is pulled high shortly after reset (power on reset).

I'm unsure if the audio device you bought that uses it provides buttons for play/pause/FF/RW volume up/down etc..  I couldn't see any buttons on the board or headers.

I don't think this is your problem though, I would have thought that if PStool resets it and you can still connect to it without adding a password, then adding a password wouldn't suddenly stop it working.  So I'm out of ideas  :-//
 
The following users thanked this post: mehdikh15

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #109 on: December 15, 2017, 06:20:02 am »
In "Local supported features block" I have:

"
The order in 1.2 of the specification is:

First word, low to high (X => turned on in default config;
(X) => turned on if supported by hardware;)
  On   Bit   Feature
   X   0     3-slot packets
   X   1     5-slot packets
   X   2     Encryption
   X   3     Slot offset
   X   4     Timing accuracy
   X   5     Master/slave switch
   X   6     Hold mode
   X   7     Sniff mode
   X   8     Park mode
   X   9     Power control requests
   X  10     Data rate driven by channel quality
   X  11     SCO link
   X  12     HV2 packets
   X  13     HV3 packets
   X  14     mu-law voice encoding
   X  15     A-law voice encoding

Second word
   X   0     CVSD
   X   1     Paging scheme
   X   2     Power control
   X   3     Transparent SCO data
       4     }
       5     } L2CAP flow control lag (our default = 0)
       6     }
          [1.2 features from this point]
   X   7     Broadcast encryption
       8     Reserved (Scatter mode)
  (X)  9     Enhanced Data Rate ACL 2 Mbps mode
  (X) 10     Enhanced Data Rate ACL 3 Mbps mode
   X  11     Enhanced inquiry scan
   X  12     Interlaced inquiry scan
   X  13     Interlaced page scan
   X  14     RSSI with inquiry results
  (X) 15     Extended SCO link --- EV3 packets

Third word
  (X)  0     Extended SCO link --- EV4 packets
  (X)  1     Extended SCO link --- EV5 packets
       2     Reserved (Absence masks)
   X   3     AFH capable slave
   X   4     AFH classification slave
       5     BR/EDR not supported
       6     LE supported (Controller)
  (X)  7     3-slot Enhanced Data Rate ACL packets
  (X)  8     5-slot Enhanced Data Rate ACL packets
   X   9     Sniff Subrating
   X  10     Pause Encryption
   X  11     AFH capable master
   X  12     AFH classification master
  (X) 13     Enhanced Data Rate eSCO 2 Mbps mode
  (X) 14     Enhanced Data Rate eSCO 3 Mbps mode
  (X) 15     3-slot Enhanced Data Rate eSCO packets

Fourth word
   X   0     Extended Inquiry Response
       1     Simultaneous LE and BR/EDR to same device capable
             (Controller)
       2     Reserved
   X   3     Secure Simple Pairing
   X   4     Encapsulated PDU
       5     Erroneous Data Reporting
   X   6     Non-flushable Packet Boundary Flag
       7     Reserved
   X   8     Link Supervision Timeout Changed Event
   X   9     Inquiry Response TX Power Level
   X  10     Enhanced Power Control
      11-14  Reserved     
   X  15     Extended features [i.e. highest bit in feature mask]"


the same have CSR8635?


About MFB - where I can turn on this function in PSTool?
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #110 on: December 15, 2017, 03:15:20 pm »
Just noticed this.
About circuit - orginal I have on board 1k between SPI_PCM and GND. I have desoldered this 1k resistor to solder new 10k between 1v8 and SPI_PCM to have communication by SPI. But I think that without this 1k to gnd<>spi_pcm I should have connection after added password pin.

Yes, the SPI/PCM pin is used to select the serial port to either I2S - for your DAC, or SPI - for configuration, so yes if you want normal operation you should connect this to ground once you've finished config.  However, I don't see how this will stop you 'connecting' to it.  It simply controls the I2S output, so it eh SPI_PCM pin is pulled high - you won't get any audio from your DAC,. but you should still be able to connect to it.

Clearly something else is going on.   If you "reset & close" in PStools, without changing any of the settings, is it still discoverable?  Or is the problem only when you set a password?  As there are so many config settings, changing any other field, or even any hex value within the same field can cause it to not boot - these devices are very sensitive to config changes.

As to the CSR8635 - I don't know, I have never used that device.  I know the CSRA64215 is one generation newer than the CSR8645, and has more features (like an I2S port enabled by default) also the config maps are of course different - you can't use the config from a 8645/8635 to use with a 64215.

I don't think you can easily change the MFB setting in PStools - that is generally configured using the 'headset configuration utility' that's floating around the web somewhere.  As I said, if the boar4d you have doesn't have any buttons, then don't worry about this setting, because clearly it is configured to not use buttons for control, so you shouldn't need to change anything.

Edit: The link: https://www.tinyosshop.com/index.php?route=information/news&news_id=55  mentions:  "This tutorial only for common BT modules. You CAN'T add a password to APTX module! "   and it appears what they call 'APTX module' is the CSRA64215, whereas the 'common BT module' is based on the CSR8645.  So it appears this tutorial is not for adding a password to the CSRA64215
« Last Edit: December 15, 2017, 03:17:58 pm by Buriedcode »
 
The following users thanked this post: mehdikh15

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #111 on: December 15, 2017, 04:00:28 pm »
About toturial for adding pin NOT for aptx I  wrote this in  post 109.

Som how can I add password for my module?

Its only problem when I set password. When I change BT name all works ok.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #112 on: December 15, 2017, 05:18:58 pm »
About toturial for adding pin NOT for aptx I  wrote this in  post 109.

Som how can I add password for my module?

Its only problem when I set password. When I change BT name all works ok.

I don't know.  Messing around with PStools isn't wise because although it can give a description of what the fields mean - often it does not, and I cannot find the datasheet that explains all the bitfields for config for the CSRA64215.  Perhaps that website will release another tutorial specifically for the CSRA64215, until then, I guess we're left to google.
 
The following users thanked this post: mehdikh15

Offline Vatssalya

  • Newbie
  • Posts: 1
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #113 on: December 28, 2017, 06:19:57 pm »
I have recently worked with CSR8635 and it was a huge learning curve...

q) how much devices can I connect to CSR64215?
A) I cannot answer for CSR6415... but with CSR8635, at a time two devices can be connected to it. Audio will stream through the device which plays the audio first.

I was able to pair close to 23 devices... and then I ran out of devices... so I think there is no max number of devices.

True, how is it possible to pair infinite number of devices? Based on my observation, after pairing 11 devices, there have been instances where the previously paired devices do not get connected at the first instance or it just takes more than one try to connect a previously paired device.

Q) it is possible to add some button to start pairing?
A) Yes, you can. In our design, we connected (+ve side of the switch)SPI_PCM to 1.8V pin and then to PIO18 (-ve side)  + RC filter to GND

I hope this answer is useful...

V

 

Offline ultranalog

  • Contributor
  • Posts: 34
  • Country: pl
  • Audio Nerd - not an audiophool
    • It's only audio
Re: Programming off the shelf CSR8635 module
« Reply #114 on: December 29, 2017, 09:28:55 pm »
I can't be the first one to notice the similarity between the CSR USB-SPI programmer and the cheap Saleae clones. They must be hardware identical.

Since I have one of those clones, is there any way I can use it as an SPI programmer?
playing around with near DC (20 kHz) for fun and profit
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #115 on: December 30, 2017, 01:02:46 am »
I'm not sure what "Sal@e clone" you have but mine is completely different from the CSR-SPI tool.  Sure, same enclosure, with a 10-way shrouded pin header and USB mini B, but.. the S@lae clones AFAIK is based off a cypress USB chip, where-as the CSR-SPI is based off a bluetooth SOC - where the actual bluetooth part isn't used.  Open them up and see, there are no screws.

You might be able to use the S@lae clone as a programming but it would take a hell of a lot of work (custom dll driver). My original clone was based off of the FT232R dongle here: https://github.com/lorf/csr-spi-ftdi the guy who guy who created that is pretty smart, it's easy to bit bang USB devices (like the FT232 or the cypress ones) but getting host software to recognize it (changing VID and PID) as well as it actually working with host software is a challenge.  Certainly not worth the ~$20 an official CSR-SPI dongle will cost you. 

A cheap chinese "CSI-SPI" tool works with all versions of PStools, as well as all tools (including the CSRA64xxx tool) so is well worth the money if you plan on doing changing more than one bluetooth module, or if you want to do much more than just change the name. 
 
The following users thanked this post: ultranalog, mehdikh15

Offline ultranalog

  • Contributor
  • Posts: 34
  • Country: pl
  • Audio Nerd - not an audiophool
    • It's only audio
Re: Programming off the shelf CSR8635 module
« Reply #116 on: December 30, 2017, 10:04:33 pm »
Thanks.

It wasn't so much about saving $20 but I have that one lying a foot away on my desk while the other one takes 6 weeks to ship from China ;)
playing around with near DC (20 kHz) for fun and profit
 

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #117 on: January 16, 2018, 05:33:39 pm »
I have recently worked with CSR8635 and it was a huge learning curve...

q) how much devices can I connect to CSR64215?
A) I cannot answer for CSR6415... but with CSR8635, at a time two devices can be connected to it. Audio will stream through the device which plays the audio first.

I was able to pair close to 23 devices... and then I ran out of devices... so I think there is no max number of devices.

True, how is it possible to pair infinite number of devices? Based on my observation, after pairing 11 devices, there have been instances where the previously paired devices do not get connected at the first instance or it just takes more than one try to connect a previously paired device.

Q) it is possible to add some button to start pairing?
A) Yes, you can. In our design, we connected (+ve side of the switch)SPI_PCM to 1.8V pin and then to PIO18 (-ve side)  + RC filter to GND

I hope this answer is useful...

V

Hi :) Thanks for reply.

I think that CSR64215 have similar number of devices.

What it means "in our design", You are writing about this board >https://www.aliexpress.com/item/CSR64215-Bluetooth-Decoding-Board-ES9023-Independent-DAC-Assembly-Board-AD823-Buffer-Output/32829708438.html?ws_ab_test=searchweb0_0,searchweb201602_5_10152_10151_10065_10344_10068_10342_10343_10059_10340_10314_10341_10534_100031_10084_10604_10083_10103_10304_10307_10615_10301_10142,searchweb201603_36,ppcSwitch_5&algo_expid=9645a650-d9c8-40ae-af01-71acc37fba89-13&algo_pvid=9645a650-d9c8-40ae-af01-71acc37fba89&priceBeautifyAB=4 or about Your own pcb?

About adding button I have some question:

1) RC filter > R - 10k, C - 100n?

2) And how about software? I need to change something?


And last question:

Have You tried add password for pairing?

Regards
« Last Edit: January 16, 2018, 05:37:18 pm by gavron04 »
 

Offline sirtet

  • Contributor
  • Posts: 19
  • Country: ch
Re: Programming off the shelf CSR8635 module
« Reply #118 on: January 19, 2018, 11:56:04 am »
Me trying to rename a CSR8635...
@buriedcode mentioned, that direct programming of the external eeprom is normally not needed.
Well, i went this route because i do not have a CSR USB-SPI programmer, and i did not want to wait, and the task is most probably a one-off thing anyways.
And after reading the whole thread here, the described process using a selfmade programmer was not clear to me, and going for the eeprom seemed easyer.

I had no success with this, so my questions are around that...

I quickly made a parallel adaptor for ponyprog,
http://www.lancos.com/e2p/easyI2Cbus_mini.gif
and was able to read the 24c64 chip using VCC of 3.3 instead of 5V.
Found the name-string, changed it, flashed back, powered off (programmer's voltage to chip), read again, saw my new string, SUCCESS! ... RIGHT? ... NO!
power up the module, aand... old name shows up!
After researching into possible caching things in android's bluetooth stuff, i read the eeprom again, and there was the old string again.

So, why's that?
Is there a checksum in the eeprom, and upon failure the 8635 goes back to the settings in his ROM, or what?
Could i hard-wire the write-protect pin on the eeprom? Most probably would need to disconnect it from the CSR chip i guess, but this would maybe still not help...
Any ideas?

If i would go for a self-made programmer, this still needs this FTTI chip, right?
Or are there options with some simple bitbanging things, similar to what i did with the ponyprog?
The TRANSPORT dialogue in PStools seems to suggest so...
But i did not fully grep the steps needed with the CSR software, and what programmer-hardware options are there.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #119 on: January 20, 2018, 06:00:23 am »
And after reading the whole thread here, the described process using a selfmade programmer was not clear to me, and going for the eeprom seemed easyer.
What made you think it was easier?  yes, arguably it can be easier to write to en EEPROM than specific hardware like the CSR devices, but in terms of modifying the parameters?  Far easier to go down the ftdi_CSR-SPI route.


I quickly made a parallel adaptor for ponyprog,
http://www.lancos.com/e2p/easyI2Cbus_mini.gif
and was able to read the 24c64 chip using VCC of 3.3 instead of 5V.
Found the name-string, changed it, flashed back, powered off (programmer's voltage to chip), read again, saw my new string, SUCCESS! ... RIGHT? ... NO!
power up the module, aand... old name shows up!
That's a lot further than I thought you would get.  Seemed logical.

After researching into possible caching things in android's bluetooth stuff, i read the eeprom again, and there was the old string again.
So, why's that?
Is there a checksum in the eeprom, and upon failure the 8635 goes back to the settings in his ROM, or what?
Possible, I really have no idea.  I have never modified things based purely off the EEPROM.  As features require licensing I suspect much of the eeprom is based on specific values - that is also why it can be so easy to brick the modules, some software only writes back certain areas to the eeprom, leaving others blank, meaning the chip gets stuck in a boot loop.

If i would go for a self-made programmer, this still needs this FTTI chip, right?

yes, but that is.. what $4? for a ready-made FT232R board.  Which can be used for other projects.

Or are there options with some simple bitbanging things, similar to what i did with the ponyprog?
The TRANSPORT dialogue in PStools seems to suggest so...
But i did not fully grep the steps needed with the CSR software, and what programmer-hardware options are there.

You have to remember, CSR never intended people to be tinkering with their settings at home. Thus the ROM-centric nature of the devices, and the specific configuration hardware.  They were meant to allow manufacturers to enable/disable features and it is only thanks to some hard work, and leaks from china that means we can get hold of hardware that allow us to modify things - really rather cheaply I might add.  For $20 I got 4 BT modules with apt-X, and a CSR-SPI programmer that allows me to change almost every setting.

I understand its just a one-time thing, but you end up spending much more time fiddling around in the unknown, to save what.. $4?  If you cannot wait for shipping from china, then I'm sure you can get a FT232R from where-ever you are based much sooner, just for more money.  I would stick a logic analyzer on the I2C pins of the eeprom to see what it reads and writes, but thats a lot of work just to map out the contents of the eeprom for no real reason.
 
The following users thanked this post: mehdikh15

Offline sirtet

  • Contributor
  • Posts: 19
  • Country: ch
Re: Programming off the shelf CSR8635 module
« Reply #120 on: January 20, 2018, 07:20:19 pm »
Thanks...
Quote
What made you think it was easier?
Yes, as u say, the fact that flashing an eeprom is nothing proprietary. There were a lot of warnings about how easy it is to brick these SOC's by wrong steps.
This post: https://oyvindnilsen.com/change-device-name-of-a-spk-b-bluetooth-audio-module/
also inspired me. Looked like it would be straight forward.
[EDIT]argh, the comments there already tell about the name being reverted on my module (KRC-86B V4.0)[/EDIT]
And then there was(IS!) the fact that i don't have the pinout of the SOC (Actually an 8630, not 35...)
There are five connector pins on the board marked NC, which are actually wired to the SOC, so i guess these might be the serial and SPI pins, but which is which...

Now i actually DID find a usb-serial board with the FTDI chip, so if i can get the 8630 pinout i will try this route.
And also found out that there seems to exist an easy LPT interface, linked on the csr-spi-ftdi page:
http://byron76.blogspot.ch/2011/09/upgrade-your-bluetooth-module.html
either way, the SOC pinout is my showstopper for now.
No success so far in googling for these datasheets...

[EDIT]I did find a 8635 datasheet, and according to that, the NC pins make total sense, seems like (that part of) the pinout is identical on the 8630, so i will try the BlueSuite stuff...[/EDIT]

[EDIT2]That FTDI chip is too tiny to solder directly, so i think i will try the LPT programmer. Will need to adopt it to 1.8V i guess, did not measure voltages yet, and have no datasheet...[/EDIT2]
« Last Edit: January 21, 2018, 12:05:09 am by sirtet »
 

Offline sirtet

  • Contributor
  • Posts: 19
  • Country: ch
Re: Programming off the shelf CSR8635 module
« Reply #121 on: January 22, 2018, 12:37:50 am »
OK, my module announces itself as Beomaster 1900 now...
(as i will place it inside a Vintage Bang&Olufson Receiver   :))
 I did it with PStools and the DIY LPT programmer, hooked up according to my pinout-image above.
After a first fail, i had to modify the programmer a bit, as i found out the LPT on my Laptop Outputs only 3.3v  ^-^
So I used 6k8 and 5k6 resistors in the voltage dividers and 3.3v as vcc.
For MISO i made a level shifter with 2 transistors, as seen here:
https://forum.arduino.cc/index.php?topic=160716.msg1210677#msg1210677
Pin 29 I pulled directly to a 1.8V supply.

Thanks to all who provided all the different bits here and there...
 

Offline Chilmars

  • Contributor
  • Posts: 10
  • Country: gw
Re: Programming off the shelf CSR8635 module
« Reply #122 on: March 07, 2018, 03:51:37 pm »
Hello
Can somewone send give download link CSR64210 eeprom or dump file?
I bricked my..meed to get back
 

Offline konsgn

  • Newbie
  • Posts: 4
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #123 on: April 13, 2018, 01:52:34 pm »
Hey All,

I had a stellaris board kicking around for a long time programmed to
GitHub - Frans-Willem/CsrUsbSpiDeviceRE: Reverse engineered reimplementation of the CSR USB<>SPI converter device on a Stellaris Launchpad. Will work with the original CSR driver and should allow all CSR BlueSuite tools to work on BlueCore chips, with the notable exception of the ones requiring JTAG.

Of course it broke and I was out of a programmer and had a new csr8645 module to play with/ need of reprogramming my hacked HD201 headphones.

Not willing to pay the 15$ for a programmer, and looking to get more comfortable with the family of processors, I ported the code to the bluepill/black magic probe. If anyone wants their own csr programmer, they can purchase a "blue pill" and program it with any uart programmer to the CSR-SPI functionality.

The code also works if you have a black magic probe already, as it bitbangs the same pins that the probe does.

Here's a link:
BlueMagic

Also note, after playing with it for a bit, I realized I broke the csr8630 chip by yelling at it in 3.3v... don't do that. The Blue Pill can only talk in 3.3V but I updated the code so that when programmed to a black magic probe it checks target power voltage on power up. If the code sees a voltage greater than 1V it leaves it's 3.3v power supply off. If you connect the black magic's vcc to spi_en and a 1.8V target point, you will be powering the translator chip at that voltage and it should talk properly(at 1.8V).
 

Offline Magnets

  • Contributor
  • Posts: 12
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #124 on: April 14, 2018, 11:38:18 pm »
Also note, after playing with it for a bit, I realized I broke the csr8630 chip by yelling at it in 3.3v... don't do that. The Blue Pill can only talk in 3.3V but I updated the code so that when programmed to a black magic probe it checks target power voltage on power up. If the code sees a voltage greater than 1V it leaves it's 3.3v power supply off. If you connect the black magic's vcc to spi_en and a 1.8V target point, you will be powering the translator chip at that voltage and it should talk properly(at 1.8V).

Sorry if I'm being dense, but does this mean you can program CSR chips using just a $2 board or do I need something else (black magic probe?) to make it work with 1.8v?
 

Offline konsgn

  • Newbie
  • Posts: 4
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #125 on: April 15, 2018, 03:50:17 am »
For the CSR chips that work at 3.3V(e.g. BC417, the one in HC-05), the Blue Pill dev board will be all you need.

For talking to 1.8V devices you will want a voltage translator to bring down the 3.3V to 1.8V. (Resistors to make sure not too much current flows may be enough, No promises though).

If you have an official black magic probe(which has a built in translator), you can just reprogram it to act as an official CSR programmer.
 

Offline mehdikh15

  • Newbie
  • Posts: 3
  • Country: jp
Re: Programming off the shelf CSR8635 module
« Reply #126 on: May 13, 2018, 09:06:36 am »
hello dears

i read shtokYd question about creating an audio transmitter with csr productions. i relized too that he mentioned usable chips are csr8670 and 8645 because of their available app-tx feature. i want to ask that  could anyone acheive any success in that ? could u create an audio transmitter  ?

actually i have two csr8645 modules, and i want  to create a complete audio tranceiver . first of all i should ask , how can i make two these modules paired with each other (in fact one receiver one transmitter) ? then how can i  active aptx feature in this chip ? i should mention that i could  setup bluesuits and csr configuration tools with one spi programmer setup.


i will appreciate your response .
best regards
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #127 on: May 13, 2018, 11:26:56 am »
As far as I am aware, only the CSR8670/8675 are capable of being a host/transmitter.  Often these are ROM based with external EEPROM for config settings - so they are pretty much "hard coded" as receivers or transmitters, you cannot "reprogram" a receiver to be a transmitter.
An alternative would be to purchase a cheap bluetooth audio transmitter - often these have a tx/rx switch, support apt-x, and are modular - small sub modules on a PCB with a few external passives.

It is actually quite a cheap way of getting the modules, since Ebay and Amazon have plenty of csr8670-based transmitters.

I have a a couple of these as clones: https://www.amazon.co.uk/Bluetooth-Transmitter-Receiver-TaoTronics-Wireless-Black/dp/B06WD8Z21S  which cost about $12. 
« Last Edit: May 13, 2018, 10:45:36 pm by Buriedcode »
 
The following users thanked this post: mehdikh15

Offline mehdikh15

  • Newbie
  • Posts: 3
  • Country: jp
Re: Programming off the shelf CSR8635 module
« Reply #128 on: May 14, 2018, 07:00:25 am »
thanks for your attention :-+ . so you are saying we don't have any access to modify their ROMs ? do you know about the software that shtokYd was telling about that I guess was called ADK.. ? (he was trying to download it from Chinese website 52bluetooth.com)
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #129 on: May 14, 2018, 05:11:37 pm »
thanks for your attention :-+ . so you are saying we don't have any access to modify their ROMs ? do you know about the software that shtokYd was telling about that I guess was called ADK.. ? (he was trying to download it from Chinese website 52bluetooth.com)

Well, by definition you cannot modify a ROM - its an acronym for "read only memory".  It is either OTP - one time programmable, or actually hard coded.

Most bluetooth modules based on CSR/Qualcomm devices are either ROM-based, with external EEPROM, or.. they load in firmware from external flash.  The latter would require the SDK for CSR/Qualcomm and some example firmware.  Long story short is, it would be much cheaper and easier for you to purchase a ready-made product, and modify it or reverse engineer it to suit your needs.  A quick search for "bluetooth audio tx/rx" yields lots of results.
 
The following users thanked this post: mehdikh15

Offline mehdikh15

  • Newbie
  • Posts: 3
  • Country: jp
Re: Programming off the shelf CSR8635 module
« Reply #130 on: May 15, 2018, 09:57:47 am »
 My persistence to modify default settings is that I have some specific configurations like sample rate of adc or stereo/ mono etc. by the way I cannot thank you enough for your suggestions and informations   :-+
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #131 on: May 15, 2018, 07:10:28 pm »
My persistence to modify default settings is that I have some specific configurations like sample rate of adc or stereo/ mono etc. by the way I cannot thank you enough for your suggestions and informations   :-+

Changing the sample rate and channels should be possible with almost any csr bluetooth module, as those appear to be parameters stored in the external EEPROM.  You would need a suitable hardware dongle (either ft232R based, or a chinese clone of a "CSR SPI" device - I have that and it works well).  Also, you can use PSTools to change some parameters, or the "headset configuration utility".  There are different versions for CSR86XX devices (csr8635/45/70/75) and CSRA64xxx (csra64215).

As you have probabyl read in the thread, it is quite easy to "brick" these modules as the software doesn't always write back all the config data.  But you can use PSTools to back up the config before you do anything.
 
The following users thanked this post: mehdikh15

Offline RAZZITEAK

  • Contributor
  • Posts: 13
  • Country: se
Re: Programming off the shelf CSR8635 module
« Reply #132 on: July 05, 2018, 07:52:30 pm »
So I've recently wanting to program the CSR 8600 series with one off those Chinese USB SPI copies. But I had no sucess. I uninstalled the program (Bluesuite). However, in my haste i forgot to check if i had the original installation file saved. Of course i didn't! And now can't seem to get the stupid software anyware. I have tried registering at CSR support but unlike everybody states I didn't receive an Email with a password. Might be qualcomm "fixing" the registration process..  >:(

Is there anybody else who has succeeded in registering or downloading the software suite? Or perhaps are willing of share the it :)

And yes I know there exists old version of the software on Github and the like, but this is likely what I had erlier. I really want a more recent version supporting Windows 10.
 

Offline RAZZITEAK

  • Contributor
  • Posts: 13
  • Country: se
Re: Programming off the shelf CSR8635 module
« Reply #133 on: July 05, 2018, 08:09:27 pm »
To kinda reply on my own post.
I found a Github post from a couple of days ago and it had a link to the software (don't know how long it will stay there). :-+
2.6.6 64 bit worked beautifully on windows

But it would still be nice to know how one could get the software directly from qualcomm, in case of any future realeses...
 

Offline DeVolf

  • Newbie
  • Posts: 1
  • Country: ua
Re: Programming off the shelf CSR8635 module
« Reply #134 on: July 12, 2018, 06:08:02 am »
Can you provide link, please?
 

Offline kile

  • Contributor
  • Posts: 18
  • Country: hu
Re: Programming off the shelf CSR8635 module
« Reply #135 on: July 31, 2018, 08:15:37 am »
I've built a bluetooth speaker based on CSR8635, and I need some help. The circuit has two mono PAM8304 amplifiers which are powered from a 18650 Li-ion battery boosted to 5V by an LT1308. There is also a quad opamp powered by LT1308 which works as 4 comparators giving me a 4-level battery gauge. The CSR8635 module is powered directly from the battery, and it will shut itself off at around 3.2V as it should. But the voltage regulator and the things it powers will not. And this is my problem: I have already over-discharged a few batteries by forgetting to shut the damn thing off.  |O

A solution to this problem would be to have the CSR8635 turn on the power section when it wakes up, and shut it down when it goes to sleep. LT1308 has an enable pin (active high), and I would like to be able to use one of the general purpose PIO pins of the CSR8635 to drive this enable pin. The module would drive the pin high as long as it is awake, and a pull-down resistor would shut the LT1308 off when the module goes to sleep. But I can't find any setting in the config program which would do this. I could sacrifice one of the three indicator LEDs that the module is driving, and have that signal control the LT1308, but I will do that only if I can't use one of the other PIOs.

So the question boils down to this: is there a way to drive a PIO pin high for as long as CSR8635 is awake?

Thank you for help!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #136 on: July 31, 2018, 10:14:03 pm »
You could try using the on-board 1.8V regulator, I believe that is enabled on power up, and disabled when off as it powers the SOC core - its just a 1.8V signal, so enough to drive NPN's (which can then drive TTL inputs, or P channel MOSFETs etc..).
 

Offline kile

  • Contributor
  • Posts: 18
  • Country: hu
Re: Programming off the shelf CSR8635 module
« Reply #137 on: August 01, 2018, 03:45:37 pm »
Yes, that is a good idea. I remember using the 1.8V in one of the previous iterations of the circuit as a reference for the 4 battery gauge opamps, and that it was quite noisy. But a low-pass filter would take care of that.

Thanks again!
 

Offline eugene28

  • Newbie
  • Posts: 1
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #138 on: August 07, 2018, 11:39:20 am »
Hi, guys. I have CSRA64215 board with PCM5102 onboard. I tried to re-program the module with ftdi chip. I have stuck with board in program mode or similar. When I connected spi pins it went to weird mode when 2 leds flash slowly. When I disconnected the ftdi board its leds still flash the same. How do I reset it back to normal mode when leds blink fast in turns? Is firmware needs to be updated?
Here is how it looks like:https://youtu.be/sRbPtlobDl8
 

Offline gamelaster

  • Newbie
  • Posts: 1
  • Country: sk
Re: Programming off the shelf CSR8635 module
« Reply #139 on: September 03, 2018, 09:22:44 am »
Hi guys, I'm trying to make charging working on my CSR8635, I supplying a 5V to CHG pin, the USB works, but it doesn't want to charge. Any ideas?

Thanks
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #140 on: September 03, 2018, 11:15:34 pm »
Hi, guys. I have CSRA64215 board with PCM5102 onboard. I tried to re-program the module with ftdi chip. I have stuck with board in program mode or similar. When I connected spi pins it went to weird mode when 2 leds flash slowly. When I disconnected the ftdi board its leds still flash the same. How do I reset it back to normal mode when leds blink fast in turns? Is firmware needs to be updated?
Here is how it looks like:https://youtu.be/sRbPtlobDl8

It is possible you have got the module stuck a "boot loop".  Did you make a backup of the config with PStools first?  These devices are often ROM-based, so there is no firmware.  However for some of the later CSRA64215 modules, these actually have flash on board which *does* store the firmware.  I would have thought you have either got it stuck in config mode, or corrupted the EEPROM config (very easily done since everything except PSTools only writes back certain areas).

As to what the LED flashes mean, there are many possible configurations for the LED patterns, which are customized by each distributor of these modules, so I don't know what state the module is in.

You could hook up your FTDI board again - assuming you have configured that for use with the CSR software - and try to access it via PStools.  If you go to file->dump you can store the entire config as a *.psr file which is handy for a backup, and use this to write back to it should it get corrupted.  From my experience, even if the config is corrupted or erased it is still accessible by an FTDI adapter and PSTools.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #141 on: September 03, 2018, 11:20:19 pm »
Hi guys, I'm trying to make charging working on my CSR8635, I supplying a 5V to CHG pin, the USB works, but it doesn't want to charge. Any ideas?

Thanks

What exactly is your set up?  What battery do you have hooked to VBAT? - it will only work with lithium polymer-type cells.  Also, whether or not the charging is enabled, and how it works depends on its config.  The "Config Tool CSR8600 series" software has *lots* of options with regard to charging, from charging currents to thresholds.  The USB side has several endpoints, from USB headset, to HID remote control, and charger - often not all of these are enabled.

So a link to the board you have, or a photo of it, the battery you're using, and your set up would be helpful to diagnose the problem.
 

Offline kile

  • Contributor
  • Posts: 18
  • Country: hu
Re: Programming off the shelf CSR8635 module
« Reply #142 on: January 19, 2019, 10:31:55 pm »
I bought a few CSR8635 modules that the Configuration tool recognizes as CSR8633. It came with A2DP MP3 codec enable turned off, and I can't turn it on. Whenever I write a config to the module with MP3 turned on, it will not boot. I can still read the config or write a known good one without problems, as long as it doesn't have MP3.

Is CSR8633 a less capable version of CSR8635? I couldn't find any datasheet on this version.

Thanks!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #143 on: January 19, 2019, 11:18:00 pm »
I bought a few CSR8635 modules that the Configuration tool recognizes as CSR8633. It came with A2DP MP3 codec enable turned off, and I can't turn it on. Whenever I write a config to the module with MP3 turned on, it will not boot. I can still read the config or write a known good one without problems, as long as it doesn't have MP3.

Is CSR8633 a less capable version of CSR8635? I couldn't find any datasheet on this version.

Thanks!

I have never heard of a CSR8633, there isn't that much publicly available in terms of versions and part numbering.  My guess would be the chip series is call CSR86XX and the 35 and 45 are major ROM versions.  It could well be the 8633 has a different ROM without MP3 capability, so the config is of a different format, and therefore cannot be used with configs from 8635 or 8645.  The 35 doesn't have Apt-X enabled, but appears to have the same spec hardware as the 8645 - so it would appear they just have different ROMs.

Sadly as its ROM there is not way to enable a feature that it has no code for.
 

Offline fantom3l

  • Newbie
  • Posts: 1
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #144 on: February 03, 2019, 06:21:38 pm »
For those in need, that like me have searched for BlueSuite, i have uploaded a few versions that i found around , even the latest at this point BlueSuite 2.6.11 build 1937
here: https://yadi.sk/d/QAdQ7zuP-X62Xg
 
The following users thanked this post: jopereira

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #145 on: April 20, 2019, 08:08:22 pm »
Hi,

So I have CSR8645, and sucesfully made diy "csr-spi" board with FT232RL chip. It works with PSTool and also Headset config tool without any problems apparently (except it is slower than original, and I am occasionally getting some errors, but that is fine...). Now, I have sucesfully configured BT name, PIN and other sorts of things, except:
1. When connected to my Windows (10) PC, every freaking time I change volume just a 1% module generates a beep. Also when I mute/unmute sound, different sound gets played. And to top it off, when I am changing volume, and I am in about 95-100% volume range, a slightly different sound gets played it is higher pitch, and that sound - for me at least - is annoying as hell...  When i connect my Android phone howewer, no sound is played during volume changes... ever... And I even tried to remove ALL audio tones in headset config tool, and also set "Play all feedback tones at the fixed volume" 1 or 0. At this point, all sounds were muted... Well all except the ones I just described here, occuring during volume changes.

2. Every time I power on the module, some bootup sounds gets played, that is okay, but in my case two times i a row. It is like if every time I powered the module, the modure rebooted itself after 1 second. Howewer, this is not as annoying as prevoius issue. I can live with that.


Please I am pretty much desperate at this point, |O please someone tell me how to disable that useless annoying beeping, every time I do anything with volume.

Thanks!
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #146 on: April 20, 2019, 08:44:45 pm »
Yeah the tones are pretty annoying, I'll have to play around with the modules I have (shelved the project for now!) to see if I can get rid of them altogether.  The problem really is that these modules cannot have their firmware changed, so if the firmware doesn't allow the boot up/down tones to be changed/disabled, then there isn't much one can do, aside from some clever "delayed unmuting" using an external headphone amp.

As for volume changing tones, I believe those are fixed, after all, if you change the volume, the user has no idea of what value the volume is at, so it must play a tone at that volume.  When connected to your phone, the user has feedback - the screen shows a bar and sometimes a volume value. 

What are you using to connect to your PC?  I have a cheapo "CSR 4.0" dongle, that may behave differently.  Another option is - set the volume to something you are comfortable with, and use an external headphone amp with a volume control - either passive or active.  For my DIY headphones, I have the bluetooth volume set at half max, with a headphone amp (gain 2) and a passive, 400ohm dual pot for volume. That way I don't have to touch the volume controls on the bluetooth module itself.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #147 on: April 22, 2019, 02:40:03 pm »
Yeah the tones are pretty annoying, I'll have to play around with the modules I have (shelved the project for now!) to see if I can get rid of them altogether.  The problem really is that these modules cannot have their firmware changed, so if the firmware doesn't allow the boot up/down tones to be changed/disabled, then there isn't much one can do, aside from some clever "delayed unmuting" using an external headphone amp.

As for volume changing tones, I believe those are fixed, after all, if you change the volume, the user has no idea of what value the volume is at, so it must play a tone at that volume.  When connected to your phone, the user has feedback - the screen shows a bar and sometimes a volume value. 

What are you using to connect to your PC?  I have a cheapo "CSR 4.0" dongle, that may behave differently.  Another option is - set the volume to something you are comfortable with, and use an external headphone amp with a volume control - either passive or active.  For my DIY headphones, I have the bluetooth volume set at half max, with a headphone amp (gain 2) and a passive, 400ohm dual pot for volume. That way I don't have to touch the volume controls on the bluetooth module itself.

I think you misunderstood me a bit. Whenever I talk about changing volume/muting whatever, I mean by that manipulating the vol only on device like smartphone or computer. Not by knob on amplifier, nor by pressing a vol up/down buttons on the BT reciever board. Also, it looks like those beeps can be heard, only if A2DP streaming is currently active, I mean, when I just connect my PC to the receiever (yes, via bluetooth,) and start changing/turning volume up/down muting, no beeps, but as soon, as I start playing some music/video/anything with sound, and change volume during the playback, then I hear the beeps mixing with the sound. The reason why is this so much annoying for me, maybe more than you, might be the way I am changing the volume on pc. I have programmable mouse, and while I hold the button on the side, turning mouse wheel causes no scrolling, but volume changing. One step=2% of vol up/down. And pressing the whell toogles mute. So when I want to turn vol up by 20%, so I hold the button on the side, start "scrolling" and at that moment, I am in a beeping hell for a few seconds...

I know that It has to be possible, to disable this bullshit, even though maybe it is really hardcoded in the TROM (TROM=True ROM not like these "ROMs" wich are actually RW), I had the same chip before, which did not make these beeping sounds, but I have shorted on it someting accidentaly, so... :/ yeah... I bought a new one, which does beeps.

So, if you did not figured it out yet, and it appears to be TROM, so no flashing, even there is some "BlueFlash" tool, do you think, that the "ROM" (I mean "OS") could be stored on the P24C128 IC? It is "I2C-Compatible Serial E2PROM" ? Do you think if I would swap these it could behave like the old one I shorted?
 

Offline mckey128

  • Newbie
  • Posts: 3
  • Country: it
Re: Programming off the shelf CSR8635 module
« Reply #148 on: April 23, 2019, 09:43:06 pm »
Does any of you ever tried to connect two devices to CSR8645 by any chance?
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #149 on: April 24, 2019, 07:54:20 pm »
Does any of you ever tried to connect two devices to CSR8645 by any chance?
Well yes, I actually kinda did, so what would you like to know?
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #150 on: April 25, 2019, 05:21:57 pm »
I keep having to say this - most versions of the chip have a ROM specifically for its application.  Some device s- namely those on dev boards require external flash for the firmware, which can of course be changed.  The external EEPROM is just for settings that the ROM uses for configuration.  This allows certain parameters to be changed, but the inherent device functionality to be fixed.  This works out well for manufacturers who all make essentially the same product, but with slight differences.  Unless your module has >4M external flash, its a ROM chip.

As for the "beeps".. so the "beep" is coming from the host?  Are these actual sounds that are played, or do they sound like glitches?  The reason I ask is that, even with a totally digital stream (using a CSR64215 with S/DIF out) there is some audio sent from the host (be it phone or PC) that sounds to me like a glitch when changing certain parameters, including volume.  This isn't intentional, it isn't a specific wav that is played, nor is it interference, as the entire chain is digital (save the end which is my own DAC).  I haven't been able to get rid of it, although apparently disabling "low power codec" can reduce how often this occurs because it doesn't constantly turn off the output amp of the bluetooth SOC between songs or long periods of silence.

From what you describe it sounds like its coming from the PC.  So this sounds isn't played when using PC speakers/wired headphones?
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #151 on: April 26, 2019, 08:38:16 pm »
SOLUTION!

I knew it will not be hard-coded. I did manage to remove these beeps. You just:
1. Open "Headset Config Tool"
2. Read settings (from device/file)
3. Go to tab "Audio Gains"
4. You should see "Play Tone" column, there you can change sound (beep) to some other, or even better, set to "No Tone"
5. Repeat for every HFP Level you want to remove "beep" from (for me - all)
6. Write changes (to device/file)
7. Reset BlueCore
8. ENJOY!


Uff, why do I figure something out only after I ask about it on some forum. Why does this keep happening...

Anyways, thank you for willing to help!





I keep having to say this - most versions of the chip have a ROM specifically for its application.  Some device s- namely those on dev boards require external flash for the firmware, which can of course be changed.  The external EEPROM is just for settings that the ROM uses for configuration.  This allows certain parameters to be changed, but the inherent device functionality to be fixed.  This works out well for manufacturers who all make essentially the same product, but with slight differences.  Unless your module has >4M external flash, its a ROM chip.

As for the "beeps".. so the "beep" is coming from the host?  Are these actual sounds that are played, or do they sound like glitches?  The reason I ask is that, even with a totally digital stream (using a CSR64215 with S/DIF out) there is some audio sent from the host (be it phone or PC) that sounds to me like a glitch when changing certain parameters, including volume.  This isn't intentional, it isn't a specific wav that is played, nor is it interference, as the entire chain is digital (save the end which is my own DAC).  I haven't been able to get rid of it, although apparently disabling "low power codec" can reduce how often this occurs because it doesn't constantly turn off the output amp of the bluetooth SOC between songs or long periods of silence.

From what you describe it sounds like its coming from the PC.  So this sounds isn't played when using PC speakers/wired headphones?

So... no, they were not glitches, and the sounds were not generated by PC. And of course the beeps were not playing when using PC speakers/wired headphones, nor my other BT headphones. It is for me safe to say, that these beeps were never generated by the PC, but then of course, is there the Windows update, with new buggy drivers, so yeah, that could have happened.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #152 on: April 26, 2019, 10:56:11 pm »
Thanks for the update.

I was planning on leaving some tones in my headset, as with headphones - you can't have any visual indication of anything, but most of them I'll get rid of.
 

Offline LennyT

  • Newbie
  • Posts: 2
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #153 on: May 24, 2019, 02:38:25 pm »
i am new with the theme csr bt chips.
I want to change the name of the module and i want to set the equalizer presets banks with my settings and select them in the CSR GAIA Control App.
can i do this with the ftdi programmer lorf/csr-spi-ftdi ? or are there other possibilities? or do I necessarily need the programmer?

thanks for help...
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #154 on: May 24, 2019, 03:18:43 pm »
i am new with the theme csr bt chips.
I want to change the name of the module and i want to set the equalizer presets banks with my settings and select them in the CSR GAIA Control App.
can i do this with the ftdi programmer lorf/csr-spi-ftdi ? or are there other possibilities? or do I necessarily need the programmer?

thanks for help...

I have been unable to use the lorf programmer with anything other than PSTools and the "headset configuration tool".  That means you can change the name, but not the equalizer settings. I ended up buying a csr spi clone like this: https://www.ebay.co.uk/i/161738104218?chn=ps

Which seems to work with every app I have (including the one to change EQ settings).  The csr-spi-ftdi device is great if you have a spare FT232R laying around (I have loads used for various things) but if you have to buy one specifically for changing the CSR settings, I'd buy a clone programmer.
 

Offline LennyT

  • Newbie
  • Posts: 2
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #155 on: May 25, 2019, 01:01:36 pm »
thanks for the info.
 

Offline tolegs

  • Newbie
  • Posts: 1
  • Country: ru
Re: Programming off the shelf CSR8635 module
« Reply #156 on: June 02, 2019, 03:56:39 pm »
Does any of you ever tried to connect two devices to CSR8645 by any chance?
Well yes, I actually kinda did, so what would you like to know?
There are no problems with the receiver. how to make a transmitter? tell us please
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #157 on: June 26, 2019, 01:56:02 pm »
Does any of you ever tried to connect two devices to CSR8645 by any chance?
Well yes, I actually kinda did, so what would you like to know?
There are no problems with the receiver. how to make a transmitter? tell us please
Well I thought that you are asking "how to connect two devices to csr8645 at the same time" which you basically asked. So I thought you mean two GP devices (phone + phone / phone + PC or some other combo) You just pair and connect with these two, but how to make a transmitter out of csr8645? Well I do not know that, and I do not think someting like this is with these devices possible, because they were not designed to transmit A2DP streams, only receieving them :/

If you need some sort of BT audio transmitter, consider using Raspberry pi 0W (or Pi 0 with usb BT)
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #158 on: June 26, 2019, 02:10:13 pm »
Okay, these modules just does not stop surprising me. Because now, any time I connect my phone to the CSR8645, phone starts dialing the last dialed number :/ every time I connect the phone is like:
"guess I have to call *insert last called number* again"  :wtf: Of course I do not know how to fix this :/ but how is it even possible!? It is like somebody just pressed "dial last called number" button every time I connect. And yes, I tried different phones, every one started dialing last called number as soon as it did connect...

So did to anybody by aaany chance happened this? Even better does anyone know how to fix this?

Yes, and I got a (bad?) idea, if someone reading this has some CSR8645 perfectly functioning module, and has some time and effort, please, do a full dump of pskeys, or even dump of EEPROM, and upload it here! well assuming that it should not break my module...

Thank you all!
 

Offline clemcoste

  • Newbie
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #159 on: July 02, 2019, 11:43:00 am »
Hi everybody,

First of all thank you for all the information provided !

I have a question concerning the picture posted in the post #74 (end of page 3) concerning the pinout to connect the BT module to the FTDI module.
Can someone tell me if the schematic is good ? I would like to use this method and not buy a CSR module to reprogram the CSR8635  ::)
 

Offline LumpyLouis

  • Newbie
  • Posts: 2
Re: Programming off the shelf CSR8635 module
« Reply #160 on: July 03, 2019, 04:47:59 pm »
HI All,

I am attempting to interface with a board I have which based on the CSR57E6 chip. The board itself is a "BM150". I have a USB-SPI adapter and am familiar with the software and process but I cannot determine where to connect the 3.3v (or 1.8v) lead from the adapter and where to place the 10k resistor (if needed). I located a PDF for the board and have attached a couple images below. Thank you!

A little context in case it is helpful: This board is mounted to the amp in my Harman/Kardon Onyx Studio 2. I was able to interface with it in PSTool via micro USB by putting the speaker in DFU mode. PSTool read it successfully and all I did was create a dump of the .psr. The problem is that when I closed PSTool I (probably) should have hit "Reset BC" instead of just closing/unplugging because the whole thing is now seemingly stuck in DFU mode. It will no longer power on and no button combinations seem to do anything. From what I've learned reading through other JBL product discussions, I have to interface with the board via SPI to bring it back. Please help, thanks!
« Last Edit: July 03, 2019, 04:51:15 pm by LumpyLouis »
 

Offline brainwash

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
Re: Programming off the shelf CSR8635 module
« Reply #161 on: July 05, 2019, 03:31:02 am »
just throwing a shot, but look at http://jernej87.blogspot.com/2012/10/usb-programmer-for-csr-bluetooth-chips.html

Code: [Select]
PIO0 -> CSB
PIO1 -> MISO
PIO2 -> MOSI
PIO3 -> CLK
GND -> GND (in case you forgot)

A generic DFU procedure is described in more detail here: http://www.52bluetooth.com/csr/adk4.0/adkdocs/support/CS-331713-UG.pdf but I think each vendor can customize that experience. It might be that a larger "PS Keys" table has overwritten the start of the firmware causing the loader to go into failsafe (DFU) mode.
I've had a similar experience while trying to upgrade some Creative BT headphones using their official tool: the headphones got into DFU mode and no attempt was able to bring them back. Fortunately I was able to RMA them.
 
The following users thanked this post: Buriedcode

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #162 on: July 05, 2019, 06:06:30 pm »
As has been mentioned, it can be very easy to "brick" these without a backup of the PS keys - they get stuck in bootloop.  Also as the key table is locked to specific firmware, unless it really is a generic module, using PSkeys from one device won't work in another that is vendor specific.  If you already have a valid dump (*.psr file) then you might be able to still connect to it with your SPI/FTDI device and write back the PS keys even when its in bootloop - I've found it just takes a while for it to connect.

The good new is all you need a cheap FTDI board for FT232R and the instructions from the ftdi-spi-csr github project.  The bad news is you have to find where to connect the SPI connections on your device, that may or may not have test pads for it (or even better an actual pin header footprint).

That particular module in your pic shows on board flash, which means it isn't a ROM but rather custom firmware for the device, and therefore will have custom PSkey tables.  It also means there is a possibility of screwing up the firmware (on ROM devices you can't by definition).

 

Offline LumpyLouis

  • Newbie
  • Posts: 2
Re: Programming off the shelf CSR8635 module
« Reply #163 on: July 24, 2019, 06:10:17 pm »
Success! thanks brainwash and Buriedcode! I was thinking I had to power the chip with the 3.3V lead (plus a separate resistor lead) on my SPI adapter. That has been my experience with other bluetooth modules I have tinkered with. But I just had to power the board via USB and match up the 4 data pins and ground with my adapter. Was able to get right into the chip with PSTools and re-flash the original .psr. Booted right up and is fully functional again!

I think I understand what you mean regarding the PS keys/firmware. The problem that started this was I tried to rename the speaker's "user friendly" name. It sure didn't like that. My understanding is that, in doing so, it changed other unseen parameters and basically put the whole thing in a coma. Thank God I made that backup before I messed with anything!
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #164 on: September 14, 2019, 09:52:47 pm »
Does anyone know how to customize the feed back tones like they have on the Jawbone Jambox speakers.  I have a CSR8645, CSR8675, and CSRA64215 chip and, cant figure it out without bricking it.  I don't want to get rid of the tones just change them. For example, Power up plays a neat startup sound like a computer or game system does.

The second thing is, how do I set the play/Pause button to power on or off the chip.  These off the shelf DIY project boards from Ebay only have play/pause/Pairing.   I already have the PStool and CSR config tools.(the programs are very confusing to me) :-//

Last and hopefully final question. not sure what is causing this, but if I get the volume past 50% the CSR chip reboots. Does this on the 3.7v battery or bench PSU. The chip is on a 3.3v regulator(3.3v to 5v input) and the audio amp is direct to battery. the CSR chip and amp are connected with differential audio and On/Off enable wire to put the amp in standby. The amp is 8w per channel. Its draw is just over an amp at high volume.(according to the bench PSU) I'm using a 3000mAh battery at 3.7v.

If anyone has some guidance, Much appreciated. I'm just a novice and like to dabble in this stuff.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #165 on: September 15, 2019, 01:13:46 pm »
You should be able to change tones by "Headset Config Tool".
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #166 on: September 15, 2019, 11:27:27 pm »
Quote
You should be able to change tones by "Headset Config Tool".

Thanks Msprg for giving me a starting point! Is this the same as the "CSR8600 ROM Series configuration tool". If so, I ended up bricking the CSR8645 chip with it. |O  Spent several hours scouring the internet for a link to the "Headset config tool" installer and couldn't find it. I only found documentation.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #167 on: September 16, 2019, 05:27:59 am »
Oh that is unfortunate :-\, I should have told you, that you need one special version of the SW because all the others bricks the module as you "write to device"  |O I wrongly assumed you at least know about not hitting write to device.

Ok, so assuming you had PSTools before, did you made a "dump" of the chip at least once?
« Last Edit: September 16, 2019, 05:32:19 am by Msprg »
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #168 on: September 17, 2019, 01:33:57 am »
I made a dump but it will not restore back to being functional. I made it before the changes though.  Good thing I bought multiples of the CSR8645 and CSR64215 chips just for that reason. I can restore from one of them assuming it will let me. So I'm not dead in the water yet.  What version is the good one. I found the "Mono headset config tool" with a little more deep hunting.  Will this work? Should i use the merge option in the PStool? I can at least change the name of the device without bricking it.....
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #169 on: September 17, 2019, 07:52:16 am »
Yes, you should use Merge option in the PStool it should restore your dump. If the PStool does not recognize your bricked CSR, you can try restoring your dump from command line. You should not use dump from other chip, because you can break the APTx. You can try however if eevrything fails.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #170 on: September 17, 2019, 11:21:58 am »
I was able to successfully restore it with PStool from another identical chip. Now I need to fiddle with the sounds part and figure out the headset config tool.  Thanks!
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #171 on: September 17, 2019, 03:50:28 pm »
Okay this version: https://www.dropbox.com/s/vtvg8g7qnk08pju/CSR86XX%20ConfigurationTool-3.0.70.zip?dl=0
Should be safe to use with "write to device". Although I have tested that personally, you should still be cautious.
Good luck!
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #172 on: September 21, 2019, 03:04:57 am »
Msprg, Seems I'm having trouble getting the program to run on any machine.  I've tried win 10, win 7, and Win XP several different hardware and virtual machine with the same result of crashing. What settings did you use in Windows? I can get other versions working fine. It will install fine.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #173 on: September 21, 2019, 03:41:42 am »
Of course it starts working after I post a question about it.  Looks like I had to install a newer version after installing 3.0.70 to get it working.  For anyone else with this issue, I installed versions 3.12.5 and 4.0.6 of the headset config tool.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #174 on: September 21, 2019, 11:01:14 am »
Of course it starts working after I post a question about it.  Looks like I had to install a newer version after installing 3.0.70 to get it working.  For anyone else with this issue, I installed versions 3.12.5 and 4.0.6 of the headset config tool.

Can you please post here a download links to these? I would like to try the newer versions, but I have not found any of them.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #175 on: September 21, 2019, 11:14:22 pm »
Sure! These were from 52bluetooth. https://www.dropbox.com/sh/zh0ojy6pbt6jbs3/AADFPfVhYzSyh-Hwa1A3pYfMa?dl=0

Do you know what I should put for eprom size to program the different sounds to the chip. I want to replace the beeps.

This is want I'm trying to do with my CSR chips. 
I used the Jambox's own upgrade tool that had the DFU files already made for these speakers.
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #176 on: September 25, 2019, 11:51:24 am »
Hi everyone,

I am new here and have a question regarding the reprogramming of the CSR8635 on an SANWU Class D amp. I use the FTDI converter and did everything according to the github project. I was able to change the name of the module so the SPI connection seems to be working. In the next step I want to get rid of the annoying audio prompts and maybe add a password. I have to use the configuration tool, but as you can see in my attached image I get in error if I try to read out the module with ReadFromDevice. I also attached an picture of my connection. I referred to this pinout.

http://yo3hjv.blogspot.com/2018/02/csr8635-bluetooth-audio-module.html

The module is connected as follows:

MISO --> RSD
CSB --> DTR
CLK --> RTS
MISO --> RI
GND --> GND
SPI_PCM is pulled up to 1V8 and 1V8 is also connected to VCCIO of the FTDI converter.

Any ideas why i cannot read the module? I am working on Windows 10 64 bit.

Thanks a lot

Frank
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #177 on: September 25, 2019, 12:39:17 pm »
Is your FTDI breakout board working on 1.8 or 3.3 voltage level? You have to use only 1.8V logic voltage, because you may break your chip by applying voltage higher than that.
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #178 on: September 25, 2019, 01:09:15 pm »
Thank you for your reply.

According to the datasheet the maximum voltage on the SPI pads of the CSR8635 is 3V6 (Page 71). So should be okay. The module is working and I also changed the name. So there shouldn't be any level issues?!

https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf

edit:

I tested the levels just to be sure. The image shows the MOSI line while reading out the module through PSTool. Levels are 1V8. So all fine.
« Last Edit: September 25, 2019, 01:46:44 pm by Franky »
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #179 on: September 25, 2019, 01:46:56 pm »
Thank you for your reply.

According to the datasheet the maximum voltage on the SPI pads of the CSR8635 is 3V6 (Page 71). So should be okay. The module is working and I also changed the name. So there shouldn't be any level issues?!

https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf

Okay just be cautious.

Now, if you already got PStools working with your SPI adapter, you had to copy and replace some file called something like SPI.INF or something similiar (I does not really remember) from the github page. Now you just have to replace the same file in the Headset Config tool installation directory with the file found on the github.
Of course, close the related programs before proceeding. No reboot should be necessary, but I recomend you rebooting the CSR.

Good luck.
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #180 on: September 25, 2019, 04:56:04 pm »
I couldn't find any file like this..Here is the link to the github page. Maybe you remember the file if you read the name :)

https://github.com/lorf/csr-spi-ftdi

Thanks a lot
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #181 on: September 25, 2019, 05:14:48 pm »
Franky, Make sure your config tool is set the correct device and port number under properties. Sometimes it resets back the settings to default when you restart the program. Happened to me several times.  I would recommend using the psflash tool to stop and restart the device.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #182 on: September 25, 2019, 08:38:56 pm »
I couldn't find any file like this..Here is the link to the github page. Maybe you remember the file if you read the name :)

https://github.com/lorf/csr-spi-ftdi

Thanks a lot

Here, https://github.com/lorf/csr-spi-ftdi/releases/download/0.5.3/csr-spi-ftdi-0.5.3.zip

In this archive in folder lib-win32 is file usbspi.dll.

Replace usbspi.dll in the installation directory of the headset config tool by the usbspi.dll file within the archive.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #183 on: September 26, 2019, 02:26:58 am »
Does anyone have a link to the ADK Sink config tool for the CSR8675/CSR8670 chip they are willing to share? The headphones config tool does't work with this chip. 
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #184 on: September 26, 2019, 03:11:30 pm »
I finally managed to get it running. There was no wrong wiring or mistake in the configuration. As always it's something obvious.

I had to power up the bluetooth module before connecting the FTDI converter to the computer. This ways it works just perfect and I was able to get rid of the audio tones.

I couldn't find any parameter to set a password or pin for the bluetooth connection. Is it even possible on this modules?

Thanks a lot for all your help.

Franky
 

Offline johnywhy

  • Contributor
  • Posts: 13
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #185 on: October 07, 2019, 08:05:04 pm »
hi, shouldn't it be possible to program the equalizer using PS Tool?
 

Offline gavron04

  • Contributor
  • Posts: 16
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #186 on: November 27, 2019, 08:28:11 am »
Hello. I have CSR8675 with ADK4.2 and PSTool. I have some question about setup.

1) How many users can be connected to CSR8675? (not at same time) - where I can find this limit?
2) Its possible to connect LCD to SPI and print connected device name?


Regards


EDIT: Bluetooth > pairing > PDL size
« Last Edit: November 27, 2019, 09:25:31 am by gavron04 »
 

Offline clemcoste

  • Newbie
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #187 on: December 01, 2019, 01:56:42 am »
Hi,
First of all, thank you for all your advices, this topic is very interesting
I'm trying to change the configuration of my CSR8635 module (soldered on a SANWU CSR8635 + TDA7492 board), by using a CSR USB-SPI module.
Nevertheless, nothing happens when I connect the module to my PC. Moreover, no FTDI chip is detected in the PSTool software.

Can you tell me if my pinout attached is OK please ? I don't know if my problem is linked to my BT module, my pinout or my CSR USB-SPI module ...

EDIT : Just to notice, the CSR USB-SPI pinout in my image attached is not the same as the CSR module I bought. But I checked and my links are OK

EDIT2 : I tried also to connect the pulled up resistance from VBAT (3V3)  and SPI_EN, but nothing happens. As my CSR8635 BT module is soldered on the Sanwu board, should I put the power ON to supply my CSR, or use the CSR programming module and its 3V3 pin ? Thanks for all

EDIT3 : Please find attached the good pinout for programming the CSR8635 ;)
« Last Edit: December 16, 2019, 08:07:44 am by clemcoste »
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #188 on: December 07, 2019, 10:47:31 pm »
My USB to SPI adapter died after a day or so. (same one as in photo) I purchased the one from DigiKey to replace it. Its been working since. Make sure your computer has the drivers. Some converters don't work out of the box. Make sure your wires are making good contact. I ran into issues with poor contacts and the CSR chip just lights up but, the software complains it can't see the device. The DigiKey adapter has the resistor on board. It helps when working with both older chips (csr 8635/45 and new ones(CSR 8670/75) since the new ones don't need the resistor.

 https://www.digikey.com/product-detail/en/qualcomm/DK-USB-SPI-10225-1A/DK-USB-SPI-10225-1A-ND/5269739
 
The following users thanked this post: clemcoste

Offline clemcoste

  • Newbie
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #189 on: January 20, 2020, 03:56:11 pm »
Thanks for your advice, I attached a mapping to my previous message. It works for me, and I am now able to flash the CSR8635 BT module !  :-+

Nevertheless, I still have a problem. I would like to control the input (bluetooth or Aux input) thanks to a manual switch.
I saw that I could be able to manage it by affecting a value to a in/out pin of the CSR8635. For example, I think I can affect the Wired Input pin to PIO17, and apply a value with an Arduino Uno and a manual switch to this input, in order to select the source (see https://www.tinyosshop.com/index.php?route=information/news&news_id=82)

Do you think it is possible ? Or is there a different way to do it ?

Thank you !
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #190 on: January 22, 2020, 09:48:57 pm »
If you are trying to achieve what is in that link (tinyosshop, had that bookmarked, good site!) then I think it is possible.  However, it seems like you are trying to program the SOC rather than configure the existing firmware.  This isn't possible as its ROM based, so you are limited by what the firmware allows.

If I understand you correctly, you wish to be able to connect an external audio source, to the "aux input" of the CSR8635, and have another IO that can switch between bluetooth and this AUX analogue input?

I'm unsure if the link you provided is doing what you think it is. These devices do indeed have a wired input - that appears to allow for analogue audio in, and it seems you can configure this using the utilities in the link (setting it to a GPIO) but it seems you can only do this with the config tool, and not select between bluetooth/aux in at run time.

I could well be that the input detects an audio signal, and automatically switches to that, but I really don't know.   

If you wish to have a switch, to manually select between bluetooth audio and an aux input, then you may be able to modify the board you have.  The output of the CSR86XX are differential - so four lines for two channels.  For some reason people who made these boards convert those to single ended using an opamp, which then feeds to the inputs of the power amp chip.  This tends to add noise because unless the differential circuit has matched resistors, its CMRR isn't great, and these no need for this anyway as the input to the power amp is differential.  See here:
https://www.360customs.de/en/2017/01/sanwu-tda7492p-csr8635-bluetooth-4-0/

For your mod, you could remove some resistors to gain access to the output of the opamp (which comes form the bluetooth audio) and the input of the power amp, and either have a mechanical switch, or a mux chip to select between that and an external input.  You would have to check the input specs of the power amp chip, but if your external input is line level I dont' see why it wouldn't work.

Edit: just skimmed over the csr8635 datasheet, "wired mode" is when it routes the Line inputs (either lineA or line B) to the outputs when powered down.  If you can find this setting in configuration, it means you can switch between bluetooth and its AUX input by powering the device down.  I would follow this instructions in your link and see what happens, it really does look like it can switch the source using the IO, which is very handy.  But the only way to know is to test.  Find a pin on the bluetooth module that you don't use (isn't soldered to the main amp board) and use that for testing.
« Last Edit: January 22, 2020, 09:58:52 pm by Buriedcode »
 
The following users thanked this post: clemcoste

Offline clemcoste

  • Newbie
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #191 on: January 22, 2020, 11:26:38 pm »
Firstly, thank you for your helpful answer !

If I understand you correctly, you wish to be able to connect an external audio source, to the "aux input" of the CSR8635, and have another IO that can switch between bluetooth and this AUX analogue input?

You're right, I want to use both Bluetooth and Aux Input. It means that I want to keep the Aux input plugged all the time, and select my source thanks to a manual switch.

Edit: just skimmed over the csr8635 datasheet, "wired mode" is when it routes the Line inputs (either lineA or line B) to the outputs when powered down.  If you can find this setting in configuration, it means you can switch between bluetooth and its AUX input by powering the device down.  I would follow this instructions in your link and see what happens, it really does look like it can switch the source using the IO, which is very handy.  But the only way to know is to test.  Find a pin on the bluetooth module that you don't use (isn't soldered to the main amp board) and use that for testing.

Exactly, I would like to try it. If you read the datasheet here (https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf) at the page 68, you will find an "Example Application Schematic".
On the top left corner, you can see the signal named "JACK_DET_PIO" which will change if an aux input is plugged.
It is linked to the pin "PIO[14] / UART_RX".
In that case, I assume that I can use the ROM Configuration Tools to configure the PIO[14] in the Input PIO's menu (see the link I sent in my previous post), and affect this PIO to the "Wired Input".
So, in my opinion the PIO[14] will be able to manage the switch between the Bluetooth and the Aux Input by simulating the Jack Detection in this PIO[14] input.
The PIO are defined as "programmable bidirectional I/O" by the datasheet.

In my opinion : According to this example application schematic, I think I need to link the manual switch directly to the PIO[14].
If the PIO is linked to the ground, so the aux input is considered as mated/plugged.
If the PIO is linked to nothing (open-circuit), so the aux input is considered as unmated/unplugged.

Do you think that my reasoning is right ? Thank you very much

Note : Sorry for my english, but I translated unmated as unplugged and mated as plugged, but I don't know if I'm right.
Note 2 : I will also mod my board as you recommended by removing some resistors in order to delete the noise
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #192 on: January 23, 2020, 01:55:14 am »
Exactly, I would like to try it. If you read the datasheet here (https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf) at the page 68, you will find an "Example Application Schematic".
On the top left corner, you can see the signal named "JACK_DET_PIO" which will change if an aux input is plugged.
It is linked to the pin "PIO[14] / UART_RX".
In that case, I assume that I can use the ROM Configuration Tools to configure the PIO[14] in the Input PIO's menu (see the link I sent in my previous post), and affect this PIO to the "Wired Input".
So, in my opinion the PIO[14] will be able to manage the switch between the Bluetooth and the Aux Input by simulating the Jack Detection in this PIO[14] input.
The PIO are defined as "programmable bidirectional I/O" by the datasheet.

In my opinion : According to this example application schematic, I think I need to link the manual switch directly to the PIO[14].
If the PIO is linked to the ground, so the aux input is considered as mated/plugged.
If the PIO is linked to nothing (open-circuit), so the aux input is considered as unmated/unplugged.

Do you think that my reasoning is right ? Thank you very much

Your reasoning is sound, and the more I dig into the datasheet, the more I believe thats how it works.  I didn't see the "jack detection" mentioned, but thats of course exactly what its for.  I think I'll test this on my CSR8645 modules and report back.  They're pretty similar to the 8635, the hardware (chip) is the same, but they have different ROM masks.

What confused me and what is often a trap with these things is, the datasheet mostly deals with the hardware systems and the possible configurations, but the ROM mask determines the limits to what can be done. For example, the datasheet mentions the UART, but on all the modules I have, the UART is disabled, or not used by the firmware, and can never be enabled from the config settings. 

Note : Sorry for my english, but I translated unmated as unplugged and mated as plugged, but I don't know if I'm right.
Note 2 : I will also mod my board as you recommended by removing some resistors in order to delete the noise

Your English is fine, unmated and unplugged (and of course mated/plugged) are pretty interchangable in this context, as most audio sources come from plugs :)

The board mod was only a suggestion, I have read a few posts about "noise" coming from the bluetooth module into the amp, but when I have used earphones/headphones driven directly from the CSR bluetooth module I haven't heard any noise at all.  The reason is this noise exists on both outputs, and so when differential driving speakers, is cancelled out.  The Opamp circuit they use to convert to to single ended uses imprecise resistors, so the noise isn't always completely cancelled.  I have no idea if that mod works, as I do not have that board, but the TDA7492 has differential inputs - so might as well use them.
 
The following users thanked this post: clemcoste

Offline clemcoste

  • Newbie
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #193 on: January 23, 2020, 09:03:55 am »
Hi Buriedcode,

OK I understand what you mean concerning the firmware limitation. I hope it will be OK in my case, because it can be very helpful.

I didn't know that the CSR8645 is the same hardware, very interesting. I will try the method I explained yesterday on my CSR8635 tomorrow. Indeed, it can be very interesting to compare our results, to compare the CSR8635 and the CSR8645 modules.

Please find attached the example application schematic I mentionned in my last post. You will find the JACK DETECTION pin.

 

Offline Thiete

  • Newbie
  • Posts: 1
  • Country: be
Re: Programming off the shelf CSR8635 module
« Reply #194 on: February 04, 2020, 08:08:25 pm »
Hey! I saw this discussion and thought maybe somebody could give me a quick bit of advice before I go ordering a programmer board just for this.

I got a CSR8670 BT transmitter/receiver (a TaoTronics TT-BA09). Acting as a receiver it goes to sleep after several minutes if not connected to a device. I would like it to stay on permanently. Or, if this is not possible, I would like a re-connect of the USB charger to wake it from sleep.

Do any of you know if this is possible to configure via PSTool? I can't look through the options available without actually connecting to the chip.
 

Offline Decee1

  • Regular Contributor
  • *
  • Posts: 51
  • Country: dk
Re: Programming off the shelf CSR8635 module
« Reply #195 on: March 09, 2020, 09:52:17 pm »
Hello.

Im also bothering with programming these CSR IC's
Tho mine is a QCC3003.
Bought a good handful modules for a project and already destroyed 2 by just programming them..
Mine doesn't program when applying 1.8V on the PCM pin (No voltage drop with 1K resistor)
But if i remove the resistor and connect it directly to 3V3 it programs. Tho this has destroyed 2 modules as it draws pretty much 200mA...
And datasheet also specify maximum of 1.95V on PCM pin.

Anyone having experience with the QCC3003? I got a schematic from a seller on Aliexpress and i designed from circuit. Attached in the comment
I do not have a schematic of the module which i am pushing the seller to send me a schematic of the module. But he told me that they program it with a programmer they made themself therefor he won't show me the programmer schematic

Hopefully somebody can help me. Been spending TOO much time trying to program this
« Last Edit: March 10, 2020, 11:18:32 am by Decee1 »
Stefan
 

Offline Decee1

  • Regular Contributor
  • *
  • Posts: 51
  • Country: dk
Re: Programming off the shelf CSR8635 module
« Reply #196 on: March 10, 2020, 07:55:39 pm »
Figured it out.. Logic levels..
QCC3003 uses 1V8 logic and the programmer is 3.3V.
Using a level shifter i got them down to 1V8 and now it works like a charm!
Stefan
 
The following users thanked this post: Papperskatt

Offline XBrav

  • Newbie
  • Posts: 1
  • Country: ca
Re: Programming off the shelf CSR8635 module
« Reply #197 on: May 13, 2020, 07:40:19 pm »
Hey all,

I bought some off-the-shelf motorcycle intercoms which use the CSR57E6 modules. I've found the below document which gives the chip pinouts:

http://ecksteinimg.de/Datasheet/CP12009/BTA-TX-A%20CSR57E6.pdf

Does anybody know if the CSR86XX software tools work with this particular chip? I'm just looking at removing the beep codes. Thanks!
 

Offline alpher

  • Frequent Contributor
  • **
  • Posts: 347
  • Country: ca
Re: Programming off the shelf CSR8635 module
« Reply #198 on: May 29, 2020, 02:53:11 pm »
Hi, sorry for this little thread derailment, I have a MCM 50-16620 audio module that uses CSR8635 BT module, unfortunately it requires pin to pair, i've forgot what the pin supposed to be  |O . None of the usual suspect work (ie. 0000, 1234 etc.).
Is there a way to readout what it is, out of csr8635 module? Or maybe somebody has one and care to share the pin? Bought it some years ago from newark/element14 and unfortunately they don't carry it anymore .
Appreciate any help here.

 

Offline alpher

  • Frequent Contributor
  • **
  • Posts: 347
  • Country: ca
Re: Programming off the shelf CSR8635 module
« Reply #199 on: May 29, 2020, 05:40:01 pm »
LOL, I found the answer on Slovak farnells site in the comments section:
https://sk.farnell.com/mcm-custom-audio/50-16620/silicon-manufacturer/dp/2802004

If anyone needs the pin, it's : 500500

Case closed.
 

Offline Greenstratocaster

  • Newbie
  • Posts: 1
  • Country: ru
Re: Programming off the shelf CSR8635 module
« Reply #200 on: June 09, 2020, 06:28:52 am »
Hi! I have some soft for QCC chip. Anyone need?
 

Offline larryqiann

  • Newbie
  • Posts: 7
  • Country: ca
Re: Programming off the shelf CSR8635 module
« Reply #201 on: August 25, 2020, 06:46:41 am »
Does anyone know what software tools and hardware are necessary to program a QCC3008 chip? I have one that comes with software that appears misconfigured causing it to be unable to reconnect if the device disconnects until the chip is restarted. Is it true that these need actual code programming to function? If so, is there reference code/anything like a default configuration for them?

Thanks!
 

Offline lutkeveld

  • Regular Contributor
  • *
  • Posts: 126
  • Country: nl
Re: Programming off the shelf CSR8635 module
« Reply #202 on: August 25, 2020, 07:37:00 am »
Hi! I have some soft for QCC chip. Anyone need?

Please share everything you have!
 

Offline kdumonteiro

  • Newbie
  • Posts: 1
  • Country: br
Re: Programming off the shelf CSR8635 module
« Reply #203 on: September 24, 2020, 06:16:17 am »
same problem here...
 

Offline jmibk

  • Regular Contributor
  • *
  • Posts: 68
  • Country: at
Re: Programming off the shelf CSR8635 module
« Reply #204 on: January 04, 2021, 12:30:52 pm »
Question to the CSRA64215 (maybe also other models):

I have the problem, that the CSRA64215 module (tried some of them, every one has the same issue) goes to a kind of sleep mode if no device is paired with it.
It stays in connectable mode for a few minutes and switches off after that time period. Cycling power is the only way to get it back running.

Is there a setting in the software configuration or a pin to wake up by hardware?
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #205 on: January 04, 2021, 09:58:58 pm »
Question to the CSRA64215 (maybe also other models):

I have the problem, that the CSRA64215 module (tried some of them, every one has the same issue) goes to a kind of sleep mode if no device is paired with it.
It stays in connectable mode for a few minutes and switches off after that time period. Cycling power is the only way to get it back running.

Is there a setting in the software configuration or a pin to wake up by hardware?

I believe by default the MFB - multifunction button (usually the play button) - will wake it up or power it on again.  I'll have to check the config on mine and get back to you.
 

Offline jmibk

  • Regular Contributor
  • *
  • Posts: 68
  • Country: at
Re: Programming off the shelf CSR8635 module
« Reply #206 on: January 08, 2021, 08:39:29 am »
Quote
I believe by default the MFB - multifunction button (usually the play button) - will wake it up or power it on again.

Ok, thats a hint. Which GPIO is that?

Quote
I'll have to check the config on mine and get back to you.
That would be great!
 

Offline johnywhy

  • Contributor
  • Posts: 13
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #207 on: March 05, 2021, 03:20:40 am »
Which seems to work with every app I have (including the one to change EQ settings).
Um... what other apps are there? :)
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #208 on: March 07, 2021, 09:55:24 pm »
Quote
I believe by default the MFB - multifunction button (usually the play button) - will wake it up or power it on again.

Ok, thats a hint. Which GPIO is that?

This depends on your module, as differetn modules have different ROMs (that enable features) with different configs (in EEPROM). Often its labelled as the one used for Play/Pause, as the most common configs are 3 button (MFB/pair/play/pause, FF/skip/volup, RW/back/voldown) and 5 button (volume and FF/RW on different GPIO).
 

Offline shianne

  • Contributor
  • Posts: 12
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #209 on: August 30, 2021, 08:16:13 am »
Hello,

I managed to work with an CSR8645.
As mentioned here https://www.eevblog.com/forum/projects/programming-off-the-shelf-csr8635-module/msg968548/#msg968548 the CSR8600 ROM Series Configuraton Tool will brick the CSR chip.

I got a working result (= did not brick the chip) with CSR8600 ROM Series Configuraton Tool version 3.0.70 (Installer file name: CSR86XX ConfigurationTool-3.0.70.exe)
I am using the CSR-USB-SPI-Programmer clone - FT232 did never work for me.


What I do not understand at the moment is the high "standby" current consumtion which is about 1.5mA.
Maybe this has something to do with the design around the chip - there seems to be the option for linear regulator and SMPS.
All the headsets I have seen used the SMPS. My module seems to use the linear regulators.
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #210 on: August 30, 2021, 07:19:19 pm »
All linear regulators have quiescent current, so I think you're right.  The chip is a SOC, so has full control of all its regulators, and can power things down selectively meaning it can have the minimum power consuption. External regulators can't be controlled by the SOC.

I suppose you could relgace the regulators with ones with shutdown.
 

Offline dremeier

  • Newbie
  • Posts: 2
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #211 on: December 09, 2023, 01:07:57 am »
does someone know the pins on a BTM525 to connect the csr-spi? I mean, where the MISO MOSI CS CLK Pins?



 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1610
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #212 on: December 09, 2023, 07:17:40 pm »
The older modules shared teh SPI port with the I2S - same clock and Data IO, but with a pin that selected between the two.  So if you can find a pin name "SPI/PCM" that'll be it.

Seems the BTM525 uses a newer chipset that isn't supported by any currently available software to modify the user settings, so even if you did have access to the config port - how would you change any of the settings?
 

Offline dremeier

  • Newbie
  • Posts: 2
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #213 on: December 10, 2023, 12:48:45 pm »
On the BTM525 module is the qcc5125 chip. So there is no ADK or Bluesuite available to program it? :-[
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf