60 lines
1.5 KiB
Bash
60 lines
1.5 KiB
Bash
#!/bin/bash
|
|
modprobe industrialio-sw-trigger
|
|
modprobe iio-trig-sysfs
|
|
modprobe iio-trig-hrtimer
|
|
|
|
# hrtimer
|
|
if [ ! -d "/home/config" ]; then
|
|
mkdir -p /home/config
|
|
fi
|
|
|
|
mount -t configfs none /home/config
|
|
mkdir -p /home/config/iio/triggers/hrtimer/rogue
|
|
|
|
# set sampling frequency for rogue
|
|
for i in /sys/bus/iio/devices/* ; do
|
|
if [ -d "$i" ]; then
|
|
if [ -f "$i/name" ]; then
|
|
name=$(cat "$i/name")
|
|
if [ "$name" = "rogue" ]; then
|
|
echo "800" > "$i/sampling_frequency"
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# set the gyroscope
|
|
for i in /sys/bus/iio/devices/* ; do
|
|
if [ -d "$i" ]; then
|
|
if [ -f "$i/name" ]; then
|
|
name=$(cat "$i/name")
|
|
if [ "$name" = "bmi323-imu" ]; then
|
|
|
|
# change chip sampling frequency
|
|
echo "800.000000" > "$i/in_accel_sampling_frequency"
|
|
echo "800.000000" > "$i/in_anglvel_sampling_frequency"
|
|
|
|
# enable accel data acquisition
|
|
echo 1 > "$i/scan_elements/in_accel_x_en"
|
|
echo 1 > "$i/scan_elements/in_accel_y_en"
|
|
echo 1 > "$i/scan_elements/in_accel_z_en"
|
|
|
|
# enable gyroscope data acquisition
|
|
echo 1 > "$i/scan_elements/in_anglvel_x_en"
|
|
echo 1 > "$i/scan_elements/in_anglvel_y_en"
|
|
echo 1 > "$i/scan_elements/in_anglvel_z_en"
|
|
|
|
# enable timestamp reporting
|
|
echo 1 > "$i/scan_elements/in_timestamp_en"
|
|
|
|
# bind rogue hrtimer to to the iio device
|
|
echo "rogue" > "$i/trigger/current_trigger"
|
|
|
|
# enable the buffer
|
|
echo 1 > "$i/buffer0/enable"
|
|
|
|
echo "bmi323-imu buffer started"
|
|
fi
|
|
fi
|
|
fi
|
|
done
|