Skip to content

Day41 - IIO Control Plane v3 Integration


๐Ÿงช Lab Objective

Validate end-to-end behavior between:

  • STM32 sensor firmware
  • Linux IIO driver

Focus:

  • Mode control
  • One-shot trigger
  • Data consistency

๐Ÿ”ง Setup

Ensure:

  • Driver loaded
  • Device present:
ls /sys/bus/iio/devices/

Example:

iio:device0

๐Ÿงช Lab 1 โ€“ One-Shot Mode Behavior

Step 1: Set mode

echo one-shot | sudo tee /sys/bus/iio/devices/iio:device0/mode

Step 2: Read data without trigger

cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw

Expected:

101
101

โœ” No automatic sampling โœ” Mode is passive


๐Ÿงช Lab 2 โ€“ Trigger One-Shot

Step 1: Trigger

echo 1 | sudo tee /sys/bus/iio/devices/iio:device0/one_shot

Step 2: Read result

cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw

Expected:

102

Step 3: Read again

cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw

Expected:

102

โœ” Single update โœ” Value remains stable


๐Ÿงช Lab 3 โ€“ Multiple One-Shot Triggers

echo 1 | sudo tee /sys/bus/iio/devices/iio:device0/one_shot
cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw

echo 1 | sudo tee /sys/bus/iio/devices/iio:device0/one_shot
cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw

Expected:

103
104

โœ” Each trigger generates new sample


๐Ÿงช Lab 4 โ€“ Invalid Mode Usage

echo continuous | sudo tee /sys/bus/iio/devices/iio:device0/mode
echo 1 | sudo tee /sys/bus/iio/devices/iio:device0/one_shot

Expected:

  • Operation rejected
  • Error returned

โœ” Driver enforces mode constraint


๐Ÿงช Lab 5 โ€“ Buffer Protection

(If buffer enabled)

echo 1 > buffer/enable
echo 1 > one_shot

Expected:

  • -EBUSY or failure

โœ” Prevents conflicting operations


๐Ÿ“Š Behavior Summary

Action Result
Set mode = one-shot No sampling
Trigger One sample generated
Read raw Latest value
Re-read Same value
Re-trigger New sample

๐Ÿง  Lab Conclusion

The system behaves as:

  • Deterministic
  • Explicitly controlled
  • Fully decoupled

This confirms:

  • Control plane design is correct
  • Linux โ†” firmware integration is stable