This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BOOSTXL-CC2650MA: How to Use Proximity Profile in Two MCU Solution (AP + SNP)?

Part Number: BOOSTXL-CC2650MA
Other Parts Discussed in Thread: CC2650, CC2640

Hello,

I am new to this BLE world so pardon me if this question has been asked or I was missing the question on another thread.

I am in the middle of developing a BLE product that needs proximity detection, motor and sensor control.

I know about dual MCU solution from EDX Course on Real Time Bluetooth Network here:

www.edx.org/.../real-time-bluetooth-networks-shape-world-utaustinx-ut-rtbn-12-01x-0

My development platform are Tiva TM4C123G Launchpad with CC2650 Boosterpack.

Since I am using baremetal implementation for my prototyping, I use the NPI implementation from EDX course which is created by the professor. I already can advertise, connect, create custom service UUID and characteristics to exchange data between my phone and my BLE device.

My questions are:

  1. It seems that the default SNP firmware on CC2650 boosterpack implements the Device Information service, GATT Service as well as GAP based on what I read in CC2640 SNP API Guide.
    Does CC2650 boosterpack firmware can be modified to add Bluetooth SIG Proximity Profile and with services such as Link Loss, Alert, and Tx Power or do I need to create this services and characteristic by myself?


  2. If I need to implement it by myself by creating a custom service and characteristic, does this means I can use the HCI_ReadRssiCmd via SNP Encapsulated HCI Command?

Thank you for your time

  • Hi Pranata,

    Sounds like you have a good grasp of SNP! Nice!

    1.) Yes you'll have to make these services and it's characteristics yourself. Using the GATT API that you're probably already familiar with:
    software-dl.ti.com/.../_s_n_p__g_a_t_t__a_p_i.html

    2.) If you need RSSI data, then yes, you'll have to use the encapsulated HCI command. software-dl.ti.com/.../_s_n_p__d_e_v__a_p_i.html

    Let us know if you run into any issues implementing!

    Regards,
    Rebel
  • Rebel, thank you for encouragement and your suggestions!

    I have read the Bluetooth Proximity Profile Specs and Bluetooth Link Loss Service Specs.
    Additionally I also observe TI Simplelink BLE SDK example for KeyFob which implements the Proximity Profile.

    My implementation would be an Android smartphone (central device) which control a BLE peripheral device(AP+SNP).
    I want to implement Proximity Profile on my BLE peripheral device so it would act as a proximity reporter.

    As far as I have observed from KeyFob example, seems to me that the Link Lost Service has Alert Level Characteristic which control how BLE peripheral device behaves when link to master (smartphone) is lost.
    From Proximity Profile Specs it is said that the alert action is implementation specific which means I can do for example turning on the buzzer.
    However from my understanding, this turning on the buzzer action is executed after the link is lost (disconnected between central and peripheral).
    It means that no matter what the reason is, whether the user intentionally disconnect his smartphone or move away until connection to BLE peripheral is lost, the Link Lost Service is the one which determines the alert.

    The other characteristic that I read is Immediate Alert Service and from what I understand from specification, proximity monitor (smartphone) will issue write into Alert Level Characteristic of this Immediate Alert Service to cause proximity reporter (peripheral) to alert. I think this is different from the Link Lost Service because it means the connection is still there and from Bluetooth specification it is said that the proximity monitor is the one who will subtract read RSSI from transmit power of proximity reporter then issue write into Immediate Alert so proximity reporter (BLE peripheral) will do action.

    It left some questions on me:
    1). CMIIW, but from what I read on the internet, many people ask if Android BLE SDK can monitor RSSI from connected peripheral device or not because RSSI seems reported when scanning for advertising peripheral. Do you know if it is possible right now? Maybe from specific Android version forward?

    2). From simplelink BLE SDK, I am still not quite fully understand about HCI_ReadRssiCmd. Does the HCI_ReadRssiCmd can be used to read RSSI from connected central/master (after connection established)?
    If it is possible I think the implementation is a little bit deviate from Bluetooth specification since the BLE peripheral (proximity reporter) is the one who constantly monitor RSSI of connected central/master and determine alert action.

    Pardon me for this long post, I am so grateful for your initial response and your time.

    Kind regards,
    Pranata