Public adress (Company ID - Company assigned) Duplicated

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

   

   I have an issue with the Device Address of my Sensors

   

   I have configured the Public address (Company ID - Company assigned): with [3bytes]-XXXXXX and Silicon generated "Company assigned" part of device address Checked.

   

   I thought that this identifier was unique, but now i have some duplicated Device Address in my Data Base.

   

   How is possible?? 

   

   How can solve this problem??

   

 

   

Thanks,

   

 

   

   Sergio

0 Likes
1 Solution
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Check out this thread.

   

 

   

Bob

View solution in original post

0 Likes
12 Replies
Anonymous
Not applicable

The silicon id should be unique.

   

Are you sure it is a different device? Are you sure that both of them have the same device ID programmed into the silicon?

0 Likes
Anonymous
Not applicable

Hi,

   

 

   

I read in BLE_v3_30.pdf "Bluetooth Low Energy (BLE) 3.30"

   

<<

   

Public device address (Company ID – Company assigned)
This is a unique 48-bit Bluetooth public address that is used to identify the device. It is divided
into the following two parts:
- “Company ID” part is contained in the 24 most significant bits. It is a 24-bit Organization
Unique Identifier (OUI) address assigned by IEEE.
- “Company assigned” part is contained in the 24 least significant bits.

   

...

   

Silicon generated “Company assigned” part of device address
When checked, the “Company assigned” part of the device address is generated using the
factory programmed die X/Y location, wafer ID and lot ID of the silicon.

   

>>

   

 

   

It may be possible that there are duplicated from one production to another...

   

 

   

Best Regards,

   

   Sergio

0 Likes
Anonymous
Not applicable

Sergio, 

   

Since the X/Y location, wafer ID, and lot ID should all be uniquely programmed into the chip at the factory, either you should open a case with them to verify that you have duplicate IDs on your devices, or your application/code is merely reading/accessing this value incorrectly leading to multiple device sensors returning the same value.

   

I would double-check that your method for reading and checking the device address, and putting it into your "database" is correct and working.

0 Likes
Anonymous
Not applicable

Hi,

   

I do not read the Public device address (Company ID – Company assigned) in the code, the device sends this address in the Advertising, and that is the one I find duplicate.

   

Best Regards,

   

   Sergio

0 Likes
Anonymous
Not applicable

It could be that you are seeing multiples of the Advertisement packets that the device sends out when advertising. (Normally suppressed with "Filter Duplicates" setting on the CySmart USB dongle)

   

If you are able, I would double check using a debugger (like the Miniprog3) plugged into the device to verify that the chips indeed have the same silicon generated values.

   

"BLE_eventHandler.c" contains code that checks for the preprocessor define "SILICON_GENERATED_DEVICE_ADDRESS" before reading three bytes from the cortex M0 into RAM memory for use as the unique BD address. If you can debug and check that the values for these three bytes are the same on both devices, then that will confirm that the two devices are indeed messed up in some way.

   

Once you confirm that, I would suggest opening a support case with Cypress' technical support to get a resolution for programming a new silicon generated ID into the duplicate chip and how to prevent/fix the issue that caused it in the first place.

0 Likes
Anonymous
Not applicable

Hi,

   


That is not the case. The previous addresses were stored in the database a year ago, and there are the new devices that are coinciding with some of the old
 

   

Best Regards,

   

    Sergio

0 Likes
Anonymous
Not applicable

Is there an address you could manually program into the unit that you know will be unique compared to the old address?

   

(Rather than using the auto-generated value?)

   

Could it be the same device returned from the field from before?

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Check out this thread.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Hi Bob,

   

   Thanks, this thread explain why I have duplicated address... the Auto-Generated is only 24bits, and the Unique ID have 64bits

   

   How Cypress create de autogenerated???

   

   Some technique to minimize the duplicate addresses, instead of using the auto generated, using one that was created from part of the unique 64-bit ID
 

   

Best Regards,

   

   Sergio

0 Likes
Anonymous
Not applicable

Hi e.pratt_1639216,

   

   It can not be the same device, because none has returned.

   

   I use the auto-generated to have only one binary.

   

Best Regards,

   

   Sergio

   


 

0 Likes
Anonymous
Not applicable

Hi Sergio,

   

Yeah, reading the link Bob posted it looks like the auto-generated number is only unique within some restrictions 😞

   

Since the BD address is essentially a MAC address, you could implement unique MAC number generation and apply it to the setup you have.

   

But, with the current dilemma you have now, I'm not sure there is any good advice I can give you to mitigate UUID crossover. You could always try to increment the auto-generated part from 0 upwards, but you will double up on numbers you already have. Ideally, you would program the numbers to be unique values that are not already logged in your DB. Then, you can guarantee any from now on will not be duplicated.

0 Likes
Anonymous
Not applicable

Hi,

   


For now what I am going to do is have another binary with a different Company ID for cases where the Company Assigned matches
 

   

Best Regards,

   

    Sergio

0 Likes