• Home
  • Annotate
  • current directory
Name Date Size #Lines LOC

..22-Aug-2025-

boards/22-Aug-2025-

src/22-Aug-2025-

CMakeLists.txt A D22-Aug-2025279 117

README.rst A D22-Aug-20257.8 KiB153122

prj.conf A D22-Aug-2025181 84

sample.yaml A D22-Aug-2025350 1312

README.rst

1.. zephyr:code-sample:: stream_fifo
2   :name: Generic device FIFO streaming
3   :relevant-api: sensor_interface
4
5   Get accelerometer/gyroscope/temperature FIFO data frames from a sensor using
6   SENSOR_TRIG_FIFO_WATERMARK as a trigger.
7
8Overview
9********
10
11This sample application demonstrates how to stream FIFO data using the
12:ref:`RTIO framework <rtio>` based :ref:`Read and Decode method <sensor-read-and-decode>`.
13
14The streaming is started using the sensor_stream() API and it is self-sustained by the
15SENSOR_TRIG_FIFO_WATERMARK trigger.
16
17Currently the sample gets/prints data for the following sensor channels:
18
19- SENSOR_CHAN_ACCEL_XYZ
20- SENSOR_CHAN_GYRO_XYZ
21- SENSOR_CHAN_DIE_TEMP
22- SENSOR_CHAN_GAME_ROTATION_VECTOR
23- SENSOR_CHAN_GRAVITY_VECTOR
24- SENSOR_CHAN_GBIAS_XYZ
25
26Building and Running
27********************
28
29This sample supports up to 10 FIFO streaming devices. Each device needs
30to be aliased as :samp:`stream{N}` where ``N`` goes from ``0`` to ``9``. For example:
31
32.. code-block:: devicetree
33
34  / {
35      aliases {
36                   stream0 = &lsm6dsv16x_6b_x_nucleo_iks4a1;
37              };
38      };
39
40.. note::
41    Note that NUM_SENSORS defined in main.c must match ``N`` and should be set accordingly.
42
43Example devicetree overlays and configurations are already available for sensortile_box_pro,
44nucleo_f401re and nucleo_h503rb in the boards directory:
45
46- :zephyr_file:`samples/sensor/stream_fifo/boards/sensortile_box_pro.overlay`
47
48  DT overlay file for the sensortile_box_pro board.
49
50- :zephyr_file:`samples/sensor/stream_fifo/boards/sensortile_box_pro.conf`
51
52  Configuration file for the sensortile_box_pro board.
53
54- :zephyr_file:`samples/sensor/stream_fifo/boards/nucleo_f401re.overlay`
55
56  DT overlay file for the nucleo_f401re board.
57
58- :zephyr_file:`samples/sensor/stream_fifo/boards/nucleo_f401re.conf`
59
60  Configuration file for the nucleo_f401re board.
61
62- :zephyr_file:`samples/sensor/stream_fifo/boards/nucleo_h503rb.overlay`
63
64  DT overlay file for the nucleo_h503rb board.
65
66- :zephyr_file:`samples/sensor/stream_fifo/boards/nucleo_h503rb.conf`
67
68  Configuration file for the nucleo_h503rb board.
69
70For example, build and run sample for nucleo_h503rb with:
71
72.. zephyr-app-commands::
73   :zephyr-app: samples/sensor/stream_fifo
74   :board: nucleo_h503rb
75   :goals: build flash
76   :compact:
77
78Sample Output
79=============
80
81The following example output is for lsm6dsv16x IMU device with accelerometer, gyroscope
82and temperature sensor including also the Sensor Fusion Low Power (SFLP) information.
83The FIFO watermark is set to 64. The board used is a nucleo_h503rb
84equipped with a :ref:`x-nucleo-iks4a1` shield.
85
86.. code-block:: console
87
88       FIFO count - 64
89       XL data for lsm6dsv16x@6b 1680572433340ns (0.373229, -0.009569, 9.909734)
90       XL data for lsm6dsv16x@6b 1680639100006ns (0.354089, -0.023924, 9.909734)
91       XL data for lsm6dsv16x@6b 1680705766672ns (0.368444, 0.000000, 9.933659)
92       XL data for lsm6dsv16x@6b 1680772433338ns (0.373229, 0.000000, 9.924089)
93       XL data for lsm6dsv16x@6b 1680839100004ns (0.368444, -0.004784, 9.924089)
94       XL data for lsm6dsv16x@6b 1680905766670ns (0.363659, -0.009569, 9.924089)
95       XL data for lsm6dsv16x@6b 1680972433336ns (0.358874, -0.004784, 9.928874)
96       XL data for lsm6dsv16x@6b 1681039100002ns (0.363659, 0.004784, 9.928874)
97       GY data for lsm6dsv16x@6b 1680572433340ns (0.001524, -0.000609, 0.004269)
98       GY data for lsm6dsv16x@6b 1680639100006ns (-0.001219, 0.002134, 0.004879)
99       GY data for lsm6dsv16x@6b 1680705766672ns (0.001219, -0.001219, 0.004879)
100       GY data for lsm6dsv16x@6b 1680772433338ns (-0.000914, 0.001219, 0.003964)
101       GY data for lsm6dsv16x@6b 1680839100004ns (0.000914, -0.001219, 0.004574)
102       GY data for lsm6dsv16x@6b 1680905766670ns (0.001829, 0.000914, 0.005489)
103       GY data for lsm6dsv16x@6b 1680972433336ns (-0.000609, 0.000304, 0.004574)
104       GY data for lsm6dsv16x@6b 1681039100002ns (0.001829, 0.000304, 0.004879)
105       TP data for lsm6dsv16x@6b 1680572433340ns 24.347656 °C
106       TP data for lsm6dsv16x@6b 1680639100006ns 24.324218 °C
107       TP data for lsm6dsv16x@6b 1680705766672ns 24.316406 °C
108       TP data for lsm6dsv16x@6b 1680772433338ns 24.296875 °C
109       ROT data for lsm6dsv16x@6b 1680639100006ns (-0.000008, -0.018661, 0.021575, 0.999593)
110       ROT data for lsm6dsv16x@6b 1680705766672ns (-0.000139, -0.018524, 0.021606, 0.999594)
111       ROT data for lsm6dsv16x@6b 1680772433338ns (-0.000055, -0.018569, 0.021621, 0.999593)
112       ROT data for lsm6dsv16x@6b 1680839100004ns (-0.000050, -0.018539, 0.021606, 0.999594)
113       ROT data for lsm6dsv16x@6b 1680905766670ns (-0.000003, -0.018569, 0.021621, 0.999593)
114       ROT data for lsm6dsv16x@6b 1680972433336ns (0.000044, -0.018493, 0.021667, 0.999594)
115       ROT data for lsm6dsv16x@6b 1681039100002ns (0.000013, -0.018432, 0.021667, 0.999595)
116       ROT data for lsm6dsv16x@6b 1681105766668ns (0.000113, -0.018402, 0.021682, 0.999595)
117       GV data for lsm6dsv16x@6b 1680639100006ns (37.270999, -0.792999, 998.447998)
118       GV data for lsm6dsv16x@6b 1680705766672ns (36.965999, -1.037000, 998.447998)
119       GV data for lsm6dsv16x@6b 1680772433338ns (37.088001, -0.854000, 998.447998)
120       GV data for lsm6dsv16x@6b 1680839100004ns (37.027000, -0.854000, 998.447998)
121       GV data for lsm6dsv16x@6b 1680905766670ns (37.088001, -0.792999, 998.447998)
122       GV data for lsm6dsv16x@6b 1680972433336ns (36.904998, -0.670999, 998.447998)
123       GV data for lsm6dsv16x@6b 1681039100002ns (36.783000, -0.732000, 998.447998)
124       GV data for lsm6dsv16x@6b 1681105766668ns (36.722000, -0.548999, 998.447998)
125       GY GBIAS data for lsm6dsv16x@6b 1680572433340ns (0.000303, -0.000151, 0.004179)
126       GY GBIAS data for lsm6dsv16x@6b 1680639100006ns (0.000303, 0.000000, 0.004179)
127       GY GBIAS data for lsm6dsv16x@6b 1680705766672ns (0.000303, -0.000075, 0.004179)
128       GY GBIAS data for lsm6dsv16x@6b 1680772433338ns (0.000227, 0.000000, 0.004179)
129       GY GBIAS data for lsm6dsv16x@6b 1680839100004ns (0.000303, -0.000075, 0.004179)
130       GY GBIAS data for lsm6dsv16x@6b 1680905766670ns (0.000303, 0.000000, 0.004255)
131       GY GBIAS data for lsm6dsv16x@6b 1680972433336ns (0.000303, 0.000000, 0.004255)
132       GY GBIAS data for lsm6dsv16x@6b 1681039100002ns (0.000379, 0.000000, 0.004255)
133       XL data for lsm6dsv16x@6b 1681105766668ns (0.358874, -0.019139, 9.928874)
134       XL data for lsm6dsv16x@6b 1681172433334ns (0.382799, -0.004784, 9.962369)
135       XL data for lsm6dsv16x@6b 1681239100000ns (0.354089, 0.000000, 9.914519)
136       GY data for lsm6dsv16x@6b 1681105766668ns (0.000304, 0.002134, 0.004574)
137       GY data for lsm6dsv16x@6b 1681172433334ns (-0.000914, 0.000914, 0.004574)
138       GY data for lsm6dsv16x@6b 1681239100000ns (0.002744, -0.002439, 0.004879)
139       TP data for lsm6dsv16x@6b 1680839100004ns 24.339843 °C
140       TP data for lsm6dsv16x@6b 1680905766670ns 24.339843 °C
141       TP data for lsm6dsv16x@6b 1680972433336ns 24.289062 °C
142       TP data for lsm6dsv16x@6b 1681039100002ns 24.296875 °C
143       ROT data for lsm6dsv16x@6b 1681172433334ns (0.000049, -0.018310, 0.021697, 0.999596)
144       ROT data for lsm6dsv16x@6b 1681239100000ns (0.000020, -0.018371, 0.021697, 0.999595)
145       GV data for lsm6dsv16x@6b 1681172433334ns (36.539001, -0.670999, 998.447998)
146       GV data for lsm6dsv16x@6b 1681239100000ns (36.660999, -0.732000, 998.447998)
147       GY GBIAS data for lsm6dsv16x@6b 1681105766668ns (0.000379, 0.000000, 0.004331)
148       GY GBIAS data for lsm6dsv16x@6b 1681172433334ns (0.000303, 0.000075, 0.004331)
149       GY GBIAS data for lsm6dsv16x@6b 1681239100000ns (0.000379, 0.000000, 0.004331)
150       TP data for lsm6dsv16x@6b 1681105766668ns 24.289062 °C
151       TP data for lsm6dsv16x@6b 1681172433334ns 24.324218 °C
152       TP data for lsm6dsv16x@6b 1681239100000ns 24.281250 °C
153