README

TIDA-010997 Multi-Sensor Data Capture

Overview

This example demonstrates multi-sensor data capture for TIDA-010997 Edge AI sensor BoosterPack™ reference design using CCStudio™ Edge AI Studio.Data is streamed to a host PC over the Device Agent Protocol (DAP) via UART for data acquisition, model training, verification, or analysis.

Every channel is streamed as raw sensor codes in big-endian byte order and no scaling to engineering units happens on the device.

Supported Sensors

Idx Sensor Part Bus Wire format Rate
0 PIR IRA-S210ST01 ADC UINT8 1024 Hz
1 Temperature HDC3020 I2C UINT16 10 Hz
2 Humidity HDC3020 I2C UINT16 10 Hz
3 Pressure BMP384 I2C UINT32 50 Hz
4 Ambient light OPT4001 I2C UINT16 10 Hz
5 Accelerometer BMI270 SPI INT16 x3 100 Hz
6 Gyroscope BMI270 SPI INT16 x3 100 Hz
7 Magnetometer TMAG5170 SPI INT16 x3 1 kHz

NOTE: Sensor availability and data capture support varies by device. Open the Documentation Overview and follow the release notes link for details.

Supported Devices

Family SysConfig overlay
CC1312, CC1352 CC1312/, CC1352/
CC1314, CC1354 CC1314/, CC1354/
CC2745, CC2755 CC2745/, CC2755/
CC35X1 CC35X1/

NOTE: LP_EM_CC2755R10_BG is not supported as the BoosterPack header is shifted one pin relative to the other CC27xx LaunchPads, putting SWDIO on BP.35.

Hardware Requirements

Software Requirements

BoosterPack Pin Mapping

Pins the TIDA-010997 drives:

TIDA-010997 signal BP pin Used for
I2C SDA BP.10 HDC3020, BMP384, OPT4001
I2C SCL BP.9
SPI SCLK BP.7 Three-pin mode; each driver drives its own CS
SPI POCI BP.14
SPI PICO BP.15
SPI_CS_1 BP.18 BMI270 chip select
SPI_CS_2 BP.19 TMAG5170 chip select; unused on CC35X1
Magnet_INTR BP.36 TMAG5170 ALERT; unused on CC35X1
INERT_INTR1 BP.35 BMI270 INT1, falling edge, pull-up
PIR1 analog BP.2 or BP.23 ADC input; pin selected by jumper J2

BMI270 INT1 and PIR analog land differently per family:

Family BMI270 INT1 PIR analog
CC13xx BP.5 (DIO22), strap J2 on BP.2, direct
CC27xx BP.35 (DIO15), direct J2 on BP.2, direct
CC35X1 BP.37 (GPIO16), strap J2 on BP.23, then strap to BP.25

Required board modifications

CC27xx LaunchPads: none. BP.35 is DIO15, so BMI270 INT1 connects straight through.

CC13xx LaunchPads: BP.35 is BPRST, the MCU hardware reset, so INT1 pulses would reset the chip. Lift or clip the TIDA-010997 BP.35 header pin so it does not seat into BPRST, then jumper the lifted pin to BP.5. BP.5 is DIO22 on every CC13xx LaunchPad, so the same strap applies to CC1312, CC1314, CC1352 and CC1354.

CC35X1 LaunchPad: BP.35 and BP.2 are both NC on this header, so two strap wires are needed. No trace cutting is required.

  1. PIR analog: set jumper J2 to BP.23, then strap BP.23 to BP.25.
  2. BMI270 INT1: strap BP.35 to BP.37.

Per-board detail is in the header comment of each SysConfig overlay.

Architecture

                     Edge AI Studio (host)
                              |
                          UART / DAP 
                              |
              tida_010997_data_capture.c (mainThread)
                              |
        sensor/sensor_app.c (dispatch, batching, byte order)
                              |
  +--------------+--------------+--------------+--------------+--------------+
  |              |              |              |              |              |
 PIR             humidity_      pressure/      ambient_       imu/           hall_effect/
 IRA-S210ST01**  temperature/   BMP384         light/         BMI270         TMAG5170* 
                 HDC3020                       OPT4001
  |              |              |              |              |              |
  |              +------ comm/i2c_comm.c ------+              +- comm/spi_comm.c -+
  |                             |                                      |
 TI Drivers ADC            TI Drivers I2C                     TI Drivers SPI + GPIO
 + hw Timer

* Not built on CC35X1.

** PIR capture is handled inline in sensor/sensor_app.c (no separate directory for PIR sensor).

DAP is a lightweight serial command protocol used over UART to configure sensors, trigger capture, and stream sample data from the device to the host.

Three-axis sensors are batched into 32-sample, 192-byte DAP frames (SAMPLES_PER_CHUNK x SENSOR_AXES x int16), just under the 200-byte DAP frame cap. Scalar sensors send one frame per sample.

Sensor order must stay in sync between sensor/sensor_app.h (SensorIndex) and dap/DAP_interface.c (sensorInformation[]). That array is what Edge AI Studio decodes against, and both files carry the same DeviceFamily_CC35XX guards so the two orderings cannot drift apart.

Directory Structure

tida_010997_data_capture/
├── tida_010997_data_capture.c       Main application (FreeRTOS thread)
├── main_freertos.c                  FreeRTOS entry point
├── README.md / README.html          This document
├── CC1312/ CC1314/ CC1352/ CC1354/  CC13xx SysConfig overlays
├── CC2745/ CC2755/                  CC27xx SysConfig overlays
├── CC35X1/                          CC35X1 SysConfig overlay
├── comm/
│   ├── i2c_comm.h/c                 TI Drivers I2C abstraction
│   └── spi_comm.h/c                 TI Drivers SPI + GPIO chip-select
├── dap/
│   └── DAP_interface.c              DAP capability / sensor metadata
├── sensor/
│   ├── sensor_app.h                 Sensor indices, batching constants
│   └── sensor_app.c                 Per-sensor capture and DAP streaming
└── sensors/
    ├── humidity_temperature/        HDC3020  (I2C, UINT16 raw)
    ├── pressure/                    BMP384   (I2C, 24-bit raw)
    ├── ambient_light/               OPT4001  (I2C, UINT16 adcCode)
    ├── imu/                         BMI270   (SPI, INT16 x3)
    └── hall_effect/                 TMAG5170 (SPI, INT16 x3)

sensors/imu/bmi270_config_file.c holds the 8192-byte Bosch factory configuration image, which bmi270_init() uploads in 32-byte chunks before the sensor will produce data.

Usage

  1. Apply the board modifications for your LaunchPad, listed above.
  2. Connect the TIDA-010997 BoosterPack to the LaunchPad.
  3. Build and flash with CCS.
  4. Open TI Edge AI Studio and connect to the XDS110 serial port at 115200 baud. The device enumerates its sensor catalog automatically upon connection.
  5. Select a sensor, configure the desired properties, and start a capture. Captured data streams in real-time to the Studio waveform viewer.

NOTE: The PIR rate is the samplingFrequency DAP property and is configurable. The other rates are the hardware ODR configured in each sensor driver.

DAP properties that are exposed: