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

0 Members and 2 Guests are viewing this topic.

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #150 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 #151 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 #152 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 #153 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: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #154 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 #155 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: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #156 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 #157 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: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #158 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 #159 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 #160 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 #161 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 #162 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

  • Contributor
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #163 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 #164 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: 447
  • Country: de
    • Hack Correlation
Re: Programming off the shelf CSR8635 module
« Reply #165 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: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #166 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 #167 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 #168 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 #169 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 #170 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 #171 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 #172 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 #173 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 #174 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!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf