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.
- PIR: upper 8 bits of the 12-bit ADC result.
- Pressure: 24-bit raw ADC value in a UINT32, top byte zero.
- Ambient light:
mantissa << exponent, truncated to UINT16. - Accelerometer, gyroscope, magnetometer: raw per-axis ADC codes.
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
- A supported LaunchPad enabled within the plug-in. Open the Documentation Overview and follow the release notes link for the full list.
- TIDA-010997 Edge AI sensor BoosterPack™
- XDS110 debug probe (integrated on the LaunchPad)
Software Requirements
- Code Composer Studio 12.8 or newer
- The SimpleLink SDK matching the target device family
- SimpleLink EdgeAI Plugin
- CCStudio™ Edge AI Studio (for capture and visualization)
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.
- PIR analog: set jumper J2 to BP.23, then strap BP.23 to BP.25.
- 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
- Apply the board modifications for your LaunchPad, listed above.
- Connect the TIDA-010997 BoosterPack to the LaunchPad.
- Build and flash with CCS.
- Open TI Edge AI Studio and connect to the XDS110 serial port at 115200 baud. The device enumerates its sensor catalog automatically upon connection.
- 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:
samples: number of samples to capture.samplingFrequency: The sampling rate at which the samples are captured (only for PIR)