Table of Contents
Introduction
The Key Node and Car Node applications support the following features: * Channel Sounding * BLE Handover (CS Handover, GATT Handover, and Connection Handover) * Connection Monitor Role
Requirements
The requirements for this project include: * 2 x CC2745 LaunchPads (more can be used if additional Car Nodes are needed)
Usage
To use the Key Node and Car Node applications, follow these steps:
Import projects: Import the
car_nodeandkey_nodeprojects fromSDK/examples/rtos/CC2745R10_Q1/ble5stack/into CCS.Build and flash: Build and flash the
key_node_LP_EM_CC2745R10_Q1_freertos_ticlangproject to one of your devices.- The Key Node can be configured as either Central or Peripheral via SysCfg.
- If the Key Node is configured as Central, use the
carNodeNamevariable inapp_key_node.cto automatically connect to your Car Node.
Install Python environment: Go to
SDK/tools/ble/ble_agentand follow the README file to install Python and the environment that controls the Car Node application.Channel Sounding Demo: The Channel Sounding Demo is used to measure the distance between the Key Node and the Car Node. To run the demo, follow these steps:
- Open and update the device comports in
SDK/tools/ble/ble_agent/examples/ble_device_car_node_with_distance.py. - Run the script from your
.venv:python ble_device_car_node_with_distance.py.
- Open and update the device comports in
Connection Handover Demo: The Connection Handover Demo is used to demonstrate the connection handover feature between the Car Node and multiple Key Nodes. To run the demo, follow these steps:
- Use
SDK/tools/ble/ble_agent/examples/ble_device_connection_handover.py. - Update comports to match the Car Node devices.
- Execute the Python script from your
.venv:python ble_device_connection_handover.py. - The demo will simulate a connection handover between the Car Node and multiple Key Nodes.
- Use
Notes
- Reset the Car Node and then the Key Node after each run.
To enable more antennas, follow these steps:
Sysconfig -> BLE -> BLE Features -> Channel Sounding Configuration -> Number of Antennas.
Sysconfig -> RCL -> Additional RF GPIO Signals -> Check PBEGPO2 and PBEGPO3.
Modify the
acivariable inble_device_car_node_with_distance.pyto choose the desired antenna configuration.
Example Code
cs_set_procedure_params = {
"conn_handle": 0,
"config_id": 0,
"max_procedure_duration": 0xFFFF,
"min_procedure_interval": 0,
"max_procedure_interval": 0,
"max_procedure_count": 1,
"min_sub_event_length": 0xD6D8,
"max_sub_event_length": 0xD6D8,
"aci": 0, # Change to 7 for 2x2 antenna configuration
"phy": 1,
"tx_power_delta": 0x80,
"preferred_peer_antenna": 0b0001, # Bitmap. Set number of bits on as the peer's number of antennas (not more)
"snr_ctrl_i": 0xFF,
"snr_ctrl_r": 0xFF,
"enable": 0,
}