Generic device sample streaming using Data Ready trigger

Browse source code on GitHub

Overview

This sample application demonstrates how to stream accel data using the RTIO framework based Read and Decode method.

The streaming is started using the sensor_stream() API and it is self-sustained by the SENSOR_TRIG_DATA_READY trigger.

Currently the sample gets/prints data only for the accel sensor channel:

  • SENSOR_CHAN_ACCEL_XYZ

Building and Running

This sample supports up to 10 streaming devices. Each device needs to be aliased as streamN where N goes from 0 to 9. For example:

/ {
    aliases {
                 stream0 = &lsm6dsv16x_6b_x_nucleo_iks4a1;
            };
    };

Example devicetree overlays and configurations are already available for sensortile_box_pro, nucleo_f401re and nucleo_h503rb in the boards directory:

For example, build and run sample for sensortile_box_pro with:

west build -b sensortile_box_pro samples/sensor/stream_drdy
west flash

Sample Output

The following example output is for a lsm6dsv16x IMU device with accelerometer sensor. The board used is a sensortile_box_pro.


XL data for lsm6dsv16x@0 7320515312ns (-0.387584, 0.224894, 9.766184) XL data for lsm6dsv16x@0 7321538600ns (-0.363659, 0.282314, 9.948014) XL data for lsm6dsv16x@0 7322561362ns (-0.301454, 0.172259, 9.775754) XL data for lsm6dsv16x@0 7323584881ns (-0.210539, 0.153119, 9.857099) XL data for lsm6dsv16x@0 7324608368ns (-0.287099, 0.167474, 9.852314) XL data for lsm6dsv16x@0 7325631281ns (-0.306239, 0.181829, 9.847529) XL data for lsm6dsv16x@0 7326654425ns (-0.272744, 0.167474, 9.842744) XL data for lsm6dsv16x@0 7327677993ns (-0.296669, 0.224894, 9.981509) XL data for lsm6dsv16x@0 7328701506ns (-0.282314, 0.210539, 9.828389) XL data for lsm6dsv16x@0 7329724306ns (-0.244034, 0.153119, 9.866669) XL data for lsm6dsv16x@0 7330747556ns (-0.234464, 0.119624, 9.780539) XL data for lsm6dsv16x@0 7331771000ns (-0.239249, 0.148334, 9.933659) XL data for lsm6dsv16x@0 7332794575ns (-0.220109, 0.119624, 9.833174) XL data for lsm6dsv16x@0 7333817437ns (-0.205754, 0.119624, 9.823604) XL data for lsm6dsv16x@0 7334840643ns (-0.205754, 0.148334, 9.866669) XL data for lsm6dsv16x@0 7335864162ns (-0.186614, 0.129194, 9.861884) XL data for lsm6dsv16x@0 7336887593ns (-0.196184, 0.110054, 9.804464) XL data for lsm6dsv16x@0 7337910356ns (-0.181829, 0.133979, 9.938444) XL data for lsm6dsv16x@0 7338933650ns (-0.215324, 0.081344, 9.536504) XL data for lsm6dsv16x@0 7339957075ns (-0.157904, 0.119624, 9.995864) XL data for lsm6dsv16x@0 7340980675ns (-0.205754, 0.110054, 9.809249) XL data for lsm6dsv16x@0 7342003487ns (-0.177044, 0.143549, 9.971939) XL data for lsm6dsv16x@0 7343026593ns (-0.172259, 0.100484, 9.794894) XL data for lsm6dsv16x@0 7344050168ns (-0.177044, 0.124409, 9.881024) XL data for lsm6dsv16x@0 7345073643ns (-0.191399, 0.124409, 9.986294) XL data for lsm6dsv16x@0 7346096587ns (-0.191399, 0.105269, 9.790109)

References

See also

Sensor Interface