Can you help me to check output data from gyrosope L3GD20

hi, you guys, I am using gyroscope L3GD20 to building navigation system. But I find a wired phenomenon in the process of collecting data from this device and analysing zero-rate level of it. There are some data section extracted from log file followed as below. By the way, those data are recording in real world when vehicle keep stationary may be happened to red light but not stopping.

timestamp temperature counts X Y Z
583372 4 19 3618 542 -493 
583473 4 19 3598 612 -358 
583575 4 19 3376 739 -395 
583676 4 19 3274 692 -1084
583783 4 19 3596 869 -429 
583885 4 19 3443 763 -596 
583986 4 19 3066 730 -294 
584088 4 19 3479 587 -602 
584189 4 19 3505 633 -979 
584291 4 19 3744 375 -685 
584393 4 19 3384 626 -785 
584494 4 19 2661 678 -847 
584596 4 19 3278 948 -1018
584697 4 19 3093 570 -1003
584799 4 19 3376 454 -856 
584900 4 19 3326 623 -410 
585002 4 19 3189 890 -446 
585104 4 19 3362 651 -438 
585205 4 19 3362 625 -807 
585307 4 19 3848 756 -860 
585408 4 19 3767 640 -493 
585510 4 19 3592 299 -568 
585611 4 19 3407 988 -373 
585713 4 19 2902 518 -449 
585814 5 19 3589 608 -520 
585916 5 19 3523 815 -389 
586018 5 19 3581 879 -414 
586119 5 19 3291 506 -702 
586221 5 19 3080 570 -458

Every rows from left to right with the meaning of time stamp, current inner temperature(not real temperature of outside), sample counts and three axis output data. so you can find that zero-rate level on three axis makes big volatility, It’s normal for this gyroscope?
I think that are some unnormal results due to car’s engineer trembling, do you think so?
And another question, how to calibrate zero-rate level?

Hello.

The variation of the zero-rate level depends on the measurement range (FS) you are using. You can refer to Table 4 of the L3GD20 datasheet to see what variation you can expect at certain measurement ranges.

To obtain the zero-rate level for your system, you will want to calculate the average value of the sensor when it is at rest. You will then want to subtract it from subsequent readings. However, I am not sure how well this would work if your car is on. I suspect that the vibration from the engine can affect the calibration process. If you continue to get a large variation from your readings, you might consider implementing a software filter to smooth out the readings.

- Jeremy

Hi, JeremyT. Thanks. The data listed above is collected when I select the full scale of 250dps. From datasheet description I know that zero-rate level is +/-10dps, and sensitivity is 0.00875, so the corresponding digit value of raw output yield to +/-(10/0.00875), which equals to +/-1142.85. what do you think about this?

you said that implementing a software filter to smooth out the readings is helpful, how to do it? Can you give me some advise.

Your calculations look correct. It seems like the readings from the x-axis are beyond what is expected. You might try obtaining some readings with your engine off and see how much the vibrations from the engine are affecting the readings.

One simple way to filter the readings might be to compute a running average. You might try searching the web for other examples of software low pass filters.

- Jeremy

There are some data collected in lab environment, also keep device stationary.

1 7 19 2814 500 -360
2 7 19 2470 446 -337
3 7 19 2854 533 -693
4  7 19 2580 486 -590
5 7 19 2772 626 -1165
6 7 19 2553 504 -828
7 7 19 2473 468 -971
8 7 19 2708 459 -761
9 7 19 3001 362 -1017
10 7 19 3005 563 -784
11 7 19 2668 545 -994
12 7 19 2806 518 -984
13 7 19 2568 555 -661

value from X axis is similar to that mentioned above. It seems to be normal but out of expected. what’s wrong do you think about this?

Those values seem high but consistent, so you will probably be able to compensate for the offset via software. If you are using an Arduino or have one, you might try running the demo program from our Arduino library for Pololu L3G boards and see if you get a similar offset.

- Jeremy