I want to configure my device with resolvable private address (using KW36).
I managed to do that using gAppUsePrivacy_d define (alongside gAppUsePairing_d and gAppUseBonding_d).
I connect to my device using an Android smartphone. As soon as I am connected, the smartphone bonds to the device.
My question : in the device, I have configured a public address in gBD_ADDR. Is there a way to access this public address once I get connected ?
My assumption that this is possible comes from the following lines from the BLE specification 4.2 :
If a device is using Resolvable Private Addresses, it shall also have an Identity
Address that is either a Public Device Address or Random Static Device
Address type
Regards
Solved! Go to Solution.
Hi,
You can create a new ble service. This service is used for public address. When your device connected, you device get his own public address and send it to another device. I have checked the api, there is no function to read other device's public address.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 days after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi,
Ok I will rephrase my question and add some context.
We already have bought the IEEE public MAC addresses and we plan to have one public MAC address asigned to each of the device we produce.
We do however want to use resolvable private addresses in the advertisement packets. When I connect and bond to a device using RPA, the MAC address that is displayed is the resolvable address that was used at the time of the bonding.
I am wondering if there is any way, once the private address has been resolved by a bonded device, to recover from the resolvable address (or maybe through a device information characteristic?) the corresponding public address that I have setup in my device (or that I have asigned to it).
We already have a current version of the product in production. This version uses the public MAC address in its advertisement. The public MAC address is used in the factory and throughout logistics to track the manufactured devices. If we use resolvable private addresses in the advertisement, the we loose the capability of the device to be tracked during those manufacturing phases. How do people usually handle device identification during production when using RPA ?
Hi,
You can create a new ble service. This service is used for public address. When your device connected, you device get his own public address and send it to another device. I have checked the api, there is no function to read other device's public address.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 days after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Thanks.
I have seen that the System ID characteristic in the device information service can be used to contain a public MAC address. I'll probably use that.
Before going through this I have one additional (related question) :
Is it possible to switch at runtime between using public MAC address and RPA ? If I could switch at runtime, I would be able to start in production with public MAC address, then once the device is out of the manufacturing process, I would switch its MAC address to use RPA before going on sale. Is there an API for that ?
Hi,
It is impossible to switch at running time.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 days after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
I have found the following functions : BleConnManager_EnablePrivacy() and BleConnManager_DisablePrivacy()
Could I use these to switch between public MAC address and resolvable private addresses ?
The privacy is controlled by macro 'gAppUsePrivacy_d'. This will influence the code compiling. You can't just enable or disable to control the privacy.
So what is the purpose of the two functions I quoted earlier (BleConnManager_EnablePrivacy) ?
The compiling code will be influenced by 'gAppUsePrivacy_d'. It is not just using this two function to control the privacy. If you insist on doing this, the code modification will be very large and may cause many other problems. No one else has done this task.
Ok I see. Is this something that is currently being worked on for a future release of the SDK (I am currently on SDK 2.2.9).
And if not, would it be possible to work with NXP's FAEs to allow this to work ?
You can visit the NXP website and use live chat to ask the information about your fae requirements.
Hi,
The public address is assigned by IEEE. If you want to use this address, you have to buy it from IEEE.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 days after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------