Generic device sample streaming using Data Ready trigger
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:
samples/sensor/stream_drdy/boards/sensortile_box_pro.overlay
DT overlay file for the sensortile_box_pro board.
samples/sensor/stream_drdy/boards/sensortile_box_pro.conf
Configuration file for the sensortile_box_pro board.
samples/sensor/stream_drdy/boards/nucleo_f401re.overlay
DT overlay file for the nucleo_f401re board.
samples/sensor/stream_drdy/boards/nucleo_f401re.conf
Configuration file for the nucleo_f401re board.
samples/sensor/stream_drdy/boards/nucleo_h503rb.overlay
DT overlay file for the nucleo_h503rb board.
samples/sensor/stream_drdy/boards/nucleo_h503rb.conf
Configuration file for the nucleo_h503rb board.
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)