Table of Contents

  1. Introduction
  2. Requirements
  3. Usage
  4. Channel Sounding Demo
  5. Connection Handover Demo
  6. Notes
  7. Example Code

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:

  1. Import projects: Import the car_node and key_node projects from SDK/examples/rtos/CC2745R10_Q1/ble5stack/ into CCS.

  2. Build and flash: Build and flash the key_node_LP_EM_CC2745R10_Q1_freertos_ticlang project 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 carNodeName variable in app_key_node.c to automatically connect to your Car Node.
  3. Install Python environment: Go to SDK/tools/ble/ble_agent and follow the README file to install Python and the environment that controls the Car Node application.

  4. 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.
  5. 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.

Notes

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,
}