Forums - Programming Bluetooth Device Address (BDADDR)

5 posts / 0 new
Last post
Programming Bluetooth Device Address (BDADDR)
Join Date: 6 Jan 17
Posts: 3
Posted: Wed, 2018-01-17 15:08

I'd like to change the Bluetooth device address using e2cmd or similar command line tool.  How do I do this?  It seems like I should be able to issue e2cmd -norun -trans "SPITRANS=USB SPIPORT=0" write <addr> <value>, but I'm not sure what addresses to use.

The relative section of my .keyr file is as follows:



// (0001) - Bluetooth device address

&BDADDR = 0002 cc00 24d2


// (0002) - Crystal frequency trim



// (0022) - Battery low threshold voltage


  • Up0
  • Down0
Dr. Nissim Zur
Profile picture
Join Date: 6 Jun 16
Location: Skype: nissim.test CSR1010 External design house
Posts: 235
Posted: Wed, 2018-01-17 21:00


You supposed to buy a group/rang of BT address from

  • Up0
  • Down0
Join Date: 6 Jan 17
Posts: 3
Posted: Tue, 2018-01-23 13:47

Sorry, I phrased my question ambiguously.  What I meant to ask is what is the proper address in the EEPROM to write to when I want to change the BDADDR address?  I believe I need to issue 'e2cmd -norun -trans "SPITRANS=USB SPIPORT=0" write <addr> <value>' , so I need to know what <addr> should be.  I tried reading from 0x0001, but it did not return part of the default BDADDR (0002 cc00 24d2), so I'm guessing the BDADDR is stored at some other offset.

For example, if I want to set the BDADDR to 1111 2222 3333, I would assume I should issue these 3 commands:

  1. e2cmd -norun -trans "SPITRANS=USB SPIPORT=0" write <addr> 1111
  2. e2cmd -norun -trans "SPITRANS=USB SPIPORT=0" write <addr + 1> 2222
  3. e2cmd -norun -trans "SPITRANS=USB SPIPORT=0" write <addr + 2> 3333

Is there an address map for the EEPROM somewhere? 

Are there utilities built into the SDK for this?


  • Up0
  • Down0
Join Date: 13 Jun 16
Posts: 79
Posted: Tue, 2018-01-23 14:56

Have a look at CsConfig. There is a GUI and command line tool with the SDK. For help please look at C:\CSR_uEnergy_SDK-\tools\bin\help\csconfig.chm.

  • Up0
  • Down0
Join Date: 27 Aug 18
Posts: 29
Posted: Sun, 2020-05-31 03:13


You can do this using e2cmd. The brute force way to do it will to be to take a memory dump and see which locations have the Address (sometimes its more than one location) and change them using e2cmd.

Another method would be to update your keyr file and use "csconfigcmd merge" to merge the keyr with the img file and then program the new img file.

But the better approch is to using the Production Programming Command Line tool (uEnergyProdTest.exe). Using the -b argument allows your to change the Address and -f allows you to point to to binary to be programmed. -e 1 will erase the eeprom before programming. 

> uEnergyProdTest.exe -b 0x111122223333 -f CSR1010.img -e 1

This can be found in  CSRmesh_Node_Tools.WIN.2.1 Installer (


Abhishek Ghosh

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.