EEVblog Electronics Community Forum
Electronics => Projects, Designs, and Technical Stuff => Topic started by: densmith123 on September 13, 2017, 12:15:50 am
-
Hello eevblog,
A family member recently gave me a BlueParrott B350-XT bluetooth headset that will no longer charge the battery or power on. I have no experience with bluetooth devices up to this point, but I’ve started a fun little adventure exploring this device and it would be nice to get this thing working again. Even if it ends up in the trash, I have spent many hours studying it and want to share my work in case others out there can benefit.
Troubleshooting thus far:
1) Disassembled the unit and removed PCB (pictures attached)
2) Tested all diodes, transistors, and passive components on the board, finding no failures
3) Reflowed the original CSR8670 chip as a last-ditch effort, to no avail
4) Downloaded datasheet to learn about the CSR8670 - this one is packaged in a 112-pad BGA (see attached)
5) Purchased two replacement CSR8670 chips from digikey
6) Removed original CSR8670 from the board, and spent 4 hours mapping out every BGA pad to its destination while the chip was removed
7) Made a spreadsheet of this reverse engineering work (attached)
8) Installed a new CSR8670 onto the board
9) Using my newly acquired test pad data, confirmed valid linear regulator voltages on all voltage rails
10) Realized that the device still does not work, probably due to the configuration settings not being migrated from the original chip
11) Registered on the eevblog and requested CSR8670 programming assistance on this thread: https://www.eevblog.com/forum/projects/programming-off-the-shelf-csr8635-module/msg1300371/#msg1300371 (https://www.eevblog.com/forum/projects/programming-off-the-shelf-csr8635-module/msg1300371/#msg1300371)
12) Registered with CSR support and downloaded BlueSuite 2.6.8 from www.csrsupport.com/PCSW (http://www.csrsupport.com/PCSW)
13) Purchased a Chinese CSR USB-SPI programmer, which will arrive in 2-4 weeks
Headscratchers:
1) There is a 26 MHz external crystal oscillator that doesn’t seem to be working. I am getting 1.8V into the crystal from the chip, but cannot detect a signal coming out of the crystal back to the chip. I thought the crystal may have been damaged so I ordered a similar crystal from digikey and replaced it (26 MHz, 8pF load capacitance – datasheet attached). There is still no signal coming from the crystal on either the oscilloscope or the frequency counter. I believe an O-scope probe should be able to pick up this clock signal, unless the capacitance of the probe is stopping the crystal from oscillating, I just don’t know.
2) The linear regulators only power up when the 5V is present at micro USB port (charger hooked up), but will not work from the power switch. VBAT measures steadily at 3.7V at all times. A look at the datasheet shows that VREGENABLE is triggered by the power button or when a charger is inserted. I am assuming that the power button will not bring the device on because the PIO config settings from the old chip have not been migrated to the new one. I have confirmed on the oscilloscope at the VREGENABLE test pad, that the power button VREGENABLE to logic high (button works).
3) I am relatively new to BGA rework. As buriedcode pointed out below, there is always a possibility for a no contact condition on a critical pad. So far everything is testing good, but it is certainly possible that VREGENABLE pad E10 is not soldered. We’ll see what happens after I migrate the config settings.
Note: In the pictures you will see that the 2.4 GHz bandpass filter is missing above the 8670. It slid off of its pads during the hot air rework CSR8670 installation (oops), so I will put it back on the board if/when I get the device to work again. I ordered a few spares from digikey just in case the original is destroyed.
Here is the conversation that I started on another thread, copy/pasted here so it’s all in one place. A big thanks to Lipton5001 and buriedcode for bringing me up to speed on the basics of programming these modules.
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!!!
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 (https://youtu.be/7gdZsPkljoo)
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 (http://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 (http://www.csrsupport.com/PCSW). If you need an older version of the software (Windows Vista, XP, 32-bit, etc.), go to www.csrsupport/PCSWArchive (http://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
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.
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
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!
search keywords: B350, B350-XT, schematic, circuit, PCB, trace, disassembly, troubleshooting, repair, CSR8670, programming, BlueParrott, bluetooth, headset, test pads, TP*, CSR8670 datasheet, pinout
-
Pictures of PCB and Headset
-
I removed the BGA chip and mapped out all of the pads to the 34 test points. In the repair notes spreadsheet you will find two sections:
1) A listing of all 112 BGA pads with their function, pin name, and test point or destination
2) A listing of all 38 Test Points with their function, BGA pads associated, and function
3) Pinouts for all of the connectors
4) Functionality of the 4 switches and where to test
Since I have replaced the 26 MHz crystal on my board, attached is a datasheet of the crystal I selected from digikey. If it ends up working, you'll know this is an option.
Enjoy!
-
The CSR8670 datasheet is too large to attach here. Please download it here if you need it:
http://www.datasheet4u.com/datasheet-pdf/CSR/CSR8670/pdf.php?id=785475 (http://www.datasheet4u.com/datasheet-pdf/CSR/CSR8670/pdf.php?id=785475)
-
buriedcode,
It turns out that there is a spot for a header to be soldered onto the board at the J3 location. I have run the traces from J3 and found that they do indeed communicate to the SPI I/O ports, so that will definitely make programming the chip easier. I updated the excel spreadsheet with the J3 information a few posts ago. I'll go ahead and solder a header there while I wait for my programmer to arrive from China.
Attached is the 8670 block diagram excerpt from the datasheet. I don't know what a ROM mask is, but this chip doesn't appear to have one. It looks like it has an onboard eFlash to store its config settings, and there are Serial Quad I/O Flash (SQIF) ports to communicate with an external flash chip, so that must be what the empty footprint is for on the bottom of the board.
It looks like I'm in good shape to program this new chip if I succeed in getting a dump off the old. Am I correct in this assessment, or am I out to lunch? Thanks for your help!
-Denny
-
If you look on 52Bluetooth.com in the "Attachment Center" (translated from Chinese) you can find example firmware for the CSR8670. If you cannot get a dump from the original chip, this might help get it working. I believe you can upload the firmware using BlueFlash, but it might require a UART connection to the chip.