Skip to content

Day42 - IIO Timestamp, FIFO, and Scan Mask

🎯 Goal

  • verify timestamp integration
  • validate FIFO buffered read
  • test scan mask behavior
  • understand buffer alignment

🧪 Step 1 - Enable buffer

sudo ./enable_iio_buffer.sh

🧪 Step 2 - Full channel test

echo 1 | sudo tee scan_elements/in_voltage0_en
echo 1 | sudo tee scan_elements/in_voltage1_en
echo 1 | sudo tee scan_elements/in_voltage2_en
echo 1 | sudo tee scan_elements/in_voltage3_en
echo 1 | sudo tee scan_elements/in_timestamp_en
bash read_iio_buffer.sh

Expected:

  • correct sequential data
  • stable timestamp

🧪 Step 3 - Single channel test

echo 1 | sudo tee scan_elements/in_voltage0_en
echo 0 | sudo tee scan_elements/in_voltage1_en
echo 0 | sudo tee scan_elements/in_voltage2_en
echo 0 | sudo tee scan_elements/in_voltage3_en
echo 1 | sudo tee scan_elements/in_timestamp_en
bash read_iio_buffer.sh raw

Expected layout:

[ch0][padding][timestamp]

🧪 Step 4 - Multi-channel partial mask

echo 1 | sudo tee scan_elements/in_voltage0_en
echo 0 | sudo tee scan_elements/in_voltage1_en
echo 1 | sudo tee scan_elements/in_voltage2_en
echo 0 | sudo tee scan_elements/in_voltage3_en
echo 1 | sudo tee scan_elements/in_timestamp_en

Expected:

  • only ch0, ch2 visible in decode
  • raw still 16 bytes (alignment)

🧪 Step 5 - FIFO validation

bash switch_fifo_mode.sh

Check:

  • burst read works
  • no corrupted frames

🧪 Step 6 - Regression test

  • continuous mode
  • one-shot mode
  • FIFO mode

All must produce correct data


✅ Result

  • timestamp working
  • FIFO stable
  • scan mask correctly applied
  • alignment behavior understood