Post Go back to editing

iSensor-FX3-EVAL Software for the EVAL-ADIS-FX3 evaluation board shows unlikely measurements

Category: Software
Product Number: ADIS16465
Software Version: iSensor-FX3-EVAL

Dear EngineerZone-forum,

in my thesis I need to precisely measure small rotation rates and hence decided to buy the ADIS16465-1 IMU, which can be operated using the EVAL-ADIS-FX3 evaluation board and the corresponding software. However I encounter two major problems while trying to operate the sensor.

1. The recorded rotation rates of the in-build gyroscope seem to be random. Without rotating the sensor at all, rotation rates of -600°/h are measured (see attached "Rotation Rates averaged over 100s)

I sadly do not understand how this is possible or if any calibration needs to be performed in order to fix this issue.

2. The noise level of the gyroscope is in the order of 0.2°/s, which is larger than any signal I want to record. Judging from the specified accuracy in the data sheet, such a high noise level should not be expected (see image "ADIS16465-1 Time Domain Plot)

Hence my question is , if anybody has encountered similar problems using the sensor and perhaps knows a fix or workaround to either reduce the noise level or to get reasonable rotation rates. I noticed that one can set the bias to shift the rotation rate, however if I choose the bias in such a way that I record my expected rates, I can not distinguish between my true signal and random noise/rotation rates recorded by the sensor. Therefore a separate approach / calibration would be needed.

I am grateful for any help or ideas to fix the issue !

Thanks a lot.

Cheers,

Thomas

  • Thank you for reaching out to us. 

    Regarding the questions about improving the measurement results of the IMU, here are a few recommendations:

    • Stable Mounting: Ensure that the IMU is securely mounted in a fixed position and remains stationary during the measurement. Any vibrations, experimental disturbances, or temperature fluctuations can significantly affect the Allan variance results.
    • Warm-Up Drift: The ADIS1646x series IMUs can exhibit a turn-on drift for approximately 20–30 minutes after power-up (refer to Figure 18 in the datasheet). Discarding the data collected during this warm-up period can help improve the accuracy of your measurements.
    • Sampling Frequency: Insufficient sampling frequency can increase the apparent sensor noise. From the second plot, it looks like the data was collected using the “Data Plotting/Time Domain” feature in the FX3 GUI, which provides real-time plotting but at a limited sample and update rate. Instead, I recommend using the Data Logging/Register Logging options to capture data at higher sampling rates. The default internal sampling rate is 2000 SPS, and you can reduce the output data rate using the decimation filter, which allows for lower output data rate without increasing noise.

    One commonly used method for evaluating sensor noise and bias stability is the Allan variance technique. After applying the steps above, you can analyze the collected data using an Allan variance plot and compare the results with the values provided in the datasheet.

    Best regards,

    Hasan

  • Thank you  !!!

    Hi Thomas,

    I want to repeat our gratitude for your interest in the ADIS16465.  In addition to what my colleague has offered, here are some additional points of consideration, which I will put into separate responses.  

    First, with a full-bandwidth nose of 0.05 dps (rms), peak noise of 0.2 dps would represent a crest factor of ~4x.  For a Gaussian noise distribution, this is pretty close to the "standard" expectation of 3.3x.  Assuming I am understanding your assessment correctly, this seem to be within what we might expect.  Is this an appropriate point of reconciling your observations with our expectations?  

  • The ADIS16465 signal chain includes 2 digital filters, which provide you with a simple way to optimize the trade space of noise and bandwidth: Bartlett Window FIR and Decimating Filter.

       

    For example, you can set FILT_CTRL = 0x0004 to reduce the cut-off frequency to ~52Hz

    You can also set DEC_RATE = 0x0013 to reduce the output data rate to 100SPS and provide additional rejection for spectral motion content that is beyond 50Hz. 

    Using this example, we can start the assumption that this will offer a roll-off response, which is close to a 2nd order, Butterworth filter, with respect to the noise bandwidth.  We can also estimate the cut-off frequency to be 50Hz. 

    Noise bandwidth = ~1.2 x cut-off frequency

    Noise bandwidth = 1.2 x 50Hz  = 60Hz

    Using the rate noise density of 0.002dps/sqrt(Hz) and noise bandwidth of 60Hz, we can estimate the total noise: 

    Total noise = 0.002 x sqrt(60) = 0.015. 

    This improves the noise by greater than 3x. 

    For lower bandwidths, we can also look at a tool that   mentioned: Allan Variance.... 

  • With respect to the Allan Variance method, see Figure 8 in the product datasheet. 

    In simplistic terms, you can map "observability" of motion to integration time, which we can equate to "averaging time." 

    For example, if you take 100ms of gyroscope data, the resolution is 20 to 30 deg/hour, depending on the axis.  

  • Hello everybody,

    first of all I want to thank you all for the explanations, input and suggestions on how to fix the issues. Since you mentioned the Allan Deviation technique for a better comparison with the data sheet, I recorded a 48h measurement of the gyroscope data in a stable position, after waiting for the warm up drift to be done, as suggested by Hasan. The result can be seen below:

    Comparing with the Allan Deviation from the data sheet ( or posted by NevadaMark), this seems to agree in the respective order of magnitude.

    Thanks a lot for pointing out the internal sensor signal chain, which helps to reduce the noise level to the values listed in the table and thanks for the clarification and example calculation that the unfiltered noise level does agree with the expectation. 

    With all your answers this explains the issue I had with the noise level.

    However I still fail to understand why the X-axis-Gyro measures such different rotation rates compared to the other 2 axes, which can be seen in the original post in the first plot, as Y,Z seem to record more or less the same rotation "noise" in a stable position, while this is not the case for the X-Axis. I admit that the second plot I posted is irritating, since there the X axis seems to agree with the other axes, however in this case I used the XG_BIAS_HIGH register to manually tune the data to agree with the other axes. If this register is not set at all, the same plot would look like this:

    So the X-Axis seems to measure completely different rotation rates. So is there any other way to calibrate the x-axis for instance other than setting the bias value ? 

    As pointed out by Hasan, the stable mounting is not an issue, since the sensor is mounted in a fixed position on a board, which is located in a box, that is screwed to an optical table.

    Sorry if I ask stupid questions or if you answered that question already, but I failed to understood it.

    To the point mentioned by NevadaMark concerning the Allan Deviation of reaching a resolution of 20 to 30°/h when taking 100 ms of gyro data. This is what I meant in the first plot of the original post with "rotation rates averaged over 100s", which would then achieve a resolution of approx 2°/h judging the Allan Deviation. Since e.g earth rotation is approx 15°/h, the sensor would be sensitive enough to record this, but the resulting gyroscope rates are -600°/h (X), 40-70°/h (Y), 70°/h (Z), which seems random or maybe indicate a false sensor calibration (at least this is what makes me think I may be operating the sensor wrongly).

    I am very grateful for your help and patience and for already solving the noise issue that fast !

    Cheers,

    Thomas

  • Hello Thomas,

    I'm glad to hear that you’ve resolved the noise issue, and thank you for your thoughtful questions. I'd like to provide some clarification regarding gyroscope parameters to help avoid any potential misunderstandings.

    • Gyroscope Bias (Absolute Offset):
      This refers to a constant offset in the gyroscope output even when there is no rotation. It is a fixed measurement error and varies between axes and individual sensors, even after factory calibration.
    • Bias Instability (or Bias In-run Stability):
      This is a slowly varying component of the bias, caused by internal mechanisms such as temperature drift and electronic noise. It is best observed as the minimum point in the Allan Deviation plot and represents how stable the bias is over time.
    • Angle Random Walk (ARW):
      ARW quantifies the short-term, high-frequency noise in the gyroscope signal that leads to a random drift in the integrated angle over time. It is derived from the Allan Deviation at a 1-second averaging time.

    The ability to detect slow movements, such as Earth's rotation (~15°/h), depends on both bias instability and ARW. The sensor must exhibit low bias instability and low noise levels to measure such small rates accurately.

    In your initial plot (before manually adjusting the XG_BIAS_HIGH register), the X-axis shows a significant offset compared to the Y and Z axes. This is a clear example of gyroscope bias, which is a static offset and should not be confused with noise or instability.

    Even after factory calibration, residual bias is normal and varies between axes and units. The absolute offset does not impact the Allan Deviation or noise performance; instead, it simply represents a consistent shift in the output that can be corrected either manually or through software calibration.

    According to the ADIS16465 datasheet, the specified bias error over temperature is ±0.2°/s (see Table 1 in datasheet). Your observed X-axis bias appears to fall within this range, so it is likely within expected behaviour.

    Fortunately, the ADIS16465 provides individual bias registers (XG_BIAS_HIGH, etc.) to correct for this offset. Adjusting these registers allows you to null the bias for each axis independently. This manual tuning does not impact the sensor’s noise characteristics or bias instability, as those are time-dependent properties rather than static values.

    I hope this clarifies the situation. Please don’t hesitate to reach out with further questions—none of them are stupid, and it’s great to see your thoughtful approach to analyzing the sensor behavior!

    Best,
    Hasan

     

  • Hey Hasan,

    thanks a lot for the fast reply ! 

    So the different recorded rotation rates in the x-axis are caused by the gyroscope bias, which depends also on temperature. Depending on e.g the ambient temperature this may cause offsets that need to be calibrated using the XG_BIAS_HIGH register for instance. That explain the different rotation rates,thank you very much for the clarification. 

    Regarding the earth rotation sensitivity , when the bias instability can be observed in the minimal point of the allan deviation ( which happens to be around 1.5 °/h in the data sheet) and the angle random walk can be observed in the allan deviation at an averaging time of 1 s (which is around 10 °/h in the data sheet), the sensor would be good enough to record such slow rotation rates, or am I missing something ?

    Thanks a lot for your patience,

    Cheers,

    Thomas