• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

boards/18-Mar-2025-139109

src/18-Mar-2025-248176

CMakeLists.txtD18-Mar-2025269 117

README.rstD18-Mar-20257.3 KiB144117

prj.confD18-Mar-2025174 84

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