Re: st_lsm6dsx : first two values of ism330dlc_gyro are wrong

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Feb 05, 2023 at 02:13:42PM +0000, Jonathan Cameron wrote:
> 
> On Sun, 5 Feb 2023 11:12:23 +0100
> Philippe De Muyter <phdm@xxxxxxx> wrote:
> 
> > I use the imu/st_lsm6dsx (i2c) driver to drive a ism330dlc imu.
> >
> > Every time I start a new acquisition of gyro values, the first two
> > values read are wrong, as can be see here :
> >
> 
> So, some random thoughts on what might be going on...
> 1) Stale data in the fifo.  Could you run this experiment twice whilst being
>    careful not to move the device between the runs.  If we still see the wrong
>    values at the start then it's not that...

Here are the results (I have enabled by hand the three in_anglvel channels)
 # while true; do  sudo iio/iio_generic_buffer -n ism330dlc_gyro -g -c 6 -a; sleep 2; done
 iio device number being used is 1
 trigger-less mode selected
 Auto-channels selected but some channels are already activated in sysfs
 Proceeding without activating any channels
 -0.133416 -0.916011 0.466650
 -0.014382 -0.360774 0.140454
 -0.000612 -0.076653 0.035190
 -0.000459 -0.076347 0.035496
 -0.000306 -0.076347 0.035037
 -0.000612 -0.076347 0.035037
 iio device number being used is 1
 trigger-less mode selected
 Auto-channels selected but some channels are already activated in sysfs
 Proceeding without activating any channels
 -0.134640 -0.911880 0.467415
 -0.013923 -0.361233 0.142443
 -0.000765 -0.076041 0.035496
 -0.000459 -0.076041 0.035190
 -0.000306 -0.076347 0.035343
 -0.000612 -0.076347 0.035343
 iio device number being used is 1
 trigger-less mode selected
 Auto-channels selected but some channels are already activated in sysfs
 Proceeding without activating any channels
 -0.137853 -0.912645 0.468792
 -0.013770 -0.361233 0.142443
 -0.000153 -0.076500 0.035190
 -0.000306 -0.076347 0.035190
 -0.000306 -0.076194 0.035190
 -0.000153 -0.076194 0.035343
 iio device number being used is 1
 trigger-less mode selected
 Auto-channels selected but some channels are already activated in sysfs
 Proceeding without activating any channels
 -0.136017 -0.914787 0.467874
 -0.014229 -0.361080 0.142290
 -0.000153 -0.076500 0.035649
 0.000918 -0.076347 0.039933
 0.000306 -0.076500 0.038556
 0.000459 -0.076194 0.036414
 iio device number being used is 1
 trigger-less mode selected
 Auto-channels selected but some channels are already activated in sysfs
 Proceeding without activating any channels
 -0.133722 -0.914787 0.469710
 -0.013617 -0.361386 0.142290
 -0.000459 -0.076347 0.035037
 -0.000459 -0.076194 0.035190
 -0.000459 -0.075888 0.035037
 -0.000612 -0.076347 0.035649
 iio device number being used is 1
 trigger-less mode selected
 Auto-channels selected but some channels are already activated in sysfs
 Proceeding without activating any channels
 -0.135711 -0.915399 0.468792
 -0.013923 -0.360927 0.142137
 -0.000459 -0.076347 0.035343
 -0.000459 -0.076194 0.035190
 -0.000306 -0.076041 0.035496
 -0.000459 -0.075888 0.035190
 ^C

> 
> 2) Device takes a little whilst to stabilize. Possibly this is down to the
>    low pass filters requiring a few samples before they deliver stable output.
>    From a quick glance I don't think we provide any userspace control of those
>    filters and I think LPR1 is left in default state of disabled.
> 
> You could try messing with the sampling frequency as that may affect the number
> of bad samples you see and give us more of a clue (it affects lpf2 directly).

Above is with default sampling frequency : 12.5

with 26, I get also two bad values, but different from the previous ones :

 Proceeding without activating any channels
 -0.242811 -1.215279 0.709155
 -0.055539 -1.216197 0.466650
 0.002142 -0.075582 0.034578
 0.002142 -0.075123 0.035955
 0.002295 -0.075582 0.036261
 0.002142 -0.075429 0.035955
 
with 52, I now get more bad values :
 
 Proceeding without activating any channels
 -0.267750 -0.745569 0.558909
 -0.486999 -3.376863 1.719567
 0.130815 -0.705942 0.054315
 0.001989 -0.075582 0.036414
 0.001224 -0.075123 0.035955
 0.001836 -0.075888 0.036108
 0.002448 -0.075582 0.036261
 0.002295 -0.075888 0.035190
 0.002295 -0.075888 0.036261
 0.002907 -0.075888 0.036261
 
with 106, I get evenmore bad values
 
 Proceeding without activating any channels
 -0.024174 -0.082773 -0.154377
 -0.412335 -0.387702 0.665856
 -0.450432 -2.840751 1.692486
 -1.784439 -4.931190 4.186539
 -1.090125 -4.231215 2.580345
 0.674730 -3.370896 0.127908
 0.562275 -2.838456 0.115209
 0.085680 -0.486846 0.045900
 0.003825 -0.081702 0.040392
 0.004437 -0.078030 0.037179
 0.004284 -0.076806 0.036261
 0.003213 -0.075735 0.035343
 0.003672 -0.075735 0.035343
 0.002295 -0.074970 0.036567
 0.002448 -0.076041 0.037179
 0.002448 -0.076347 0.037179
 0.002142 -0.076347 0.037332
 0.001989 -0.076194 0.036108
 0.001989 -0.076194 0.035955
 0.002142 -0.075276 0.036106

Philippe



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux