Skip to main content
Visitor II
June 11, 2026
Solved

LSM6DSV16X MLC — tag 0x1B (IIR filter) never reaches FIFO despite MLC_FILTER_FEATURE_FIFO_EN=1

  • June 11, 2026
  • 1 reply
  • 41 views

I am using LSM6DSV16X with MLC configured in MEMS Studio v2.3.1. 

The MLC has an IIR2 high-pass filter on accelerometer XYZ with "store in FIFO" enabled. The UCF was generated by the MLC Tool (internal version 2.4.4 as reported in the output JSON).

 

Expected: IIR filter output values appear in FIFO as tag 0x1B frames, as declared in the mlc_identifiers section of the generated JSON.

 

Observed: Tag 0x1B frames never appear in the FIFO. Firmware drains the FIFO after each 60-sample window and observes exactly 3 MLC words per window — 2x tag 0x1C (features) and 1x tag 0x1A (result). No tag 0x1B words arrive.

 

Verified:

- EMB_FUNC_FIFO_EN_B (0x45) = 0x02, MLC_FILTER_FEATURE_FIFO_EN bit is set (confirmed against DS13510 Section 13.18)

- mlc.json correctly lists fifo_tag 0x1B identifiers (FILTER_HP_ACC_X/Y/Z) in the metadata

- mlc_settings.json has "input": "Acc_XYZ + store in FIFO" for the filter

- Firmware FIFO drain handles tag 0x1B explicitly — not dropped in software

- No unknown FIFO tag warnings in serial log

 

Question: Is tag 0x1B FIFO output for IIR filter data functional for LSM6DSV16X in the current MLC Tool? If so, what additional configuration or register setting is required beyond MLC_FILTER_FEATURE_FIFO_EN=1 to make the compiled MLC binary emit filter values to the FIFO?

Best answer by Federica Bossi

Hi ​@NullPointerMaybe ,

You are right tag 0x1B is intended for MLC filter FIFO output on LSM6DSV16X. Please consider that enabling only MLC_FILTER_FEATURE_FIFO_EN is not sufficient for filter outputs. In addition to the global FIFO enable bits, each individual filter must also be enabled at configuration-generation level by adding:

-MLC_enable_filters_in_FIFO

 

in the custom options under “Config generation” using the “...” button into MLC page.
Also note that MLC result entries are written to FIFO only when the class changes.

1 reply

Federica Bossi
Federica BossiBest answer
ST Technical Moderator
June 12, 2026

Hi ​@NullPointerMaybe ,

You are right tag 0x1B is intended for MLC filter FIFO output on LSM6DSV16X. Please consider that enabling only MLC_FILTER_FEATURE_FIFO_EN is not sufficient for filter outputs. In addition to the global FIFO enable bits, each individual filter must also be enabled at configuration-generation level by adding:

-MLC_enable_filters_in_FIFO

 

in the custom options under “Config generation” using the “...” button into MLC page.
Also note that MLC result entries are written to FIFO only when the class changes.

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.