On Sat, Feb 2, 2013 at 6:08 AM, "Rolf Nöllenburg"
<address@hidden> wrote:
Hi
I just discovered a severe problem (luckily on the desk) with the module baro_ms5611_i2c: the communication via i2c can get faulty which leeds to estimator_z = nan and it DOES NOT RECOVER!!!
This happens not very often, approx. once in 20 min.
I think that the problem is starts with a zero in D2. This leads to messages in the log-file like the following:
2174.155 11 ESTIMATOR 1.195065 0.513844
2174.174 11 BARO_MS5611 7803588 8440836 1001.38 38.9
2174.269 11 BARO_MS5611 7803430 0 -2230.73 -242.71
2174.369 11 BARO_MS5611 7803606 8440764 1001.38 38.89
2174.397 11 ESTIMATOR nan nan
2174.465 11 BARO_MS5611 7803424 8440874 1001.34 38.9
2174.566 11 BARO_MS5611 7803488 8440640 1001.34 38.89
2174.684 11 ESTIMATOR nan nan
A pressure of -2230.73 is obviously too much (or little) for the hight calculation...
My system:
- Paparazzi version v4.2.0_stable-5-gc3a1496-dirty
- YAPA 2
- Drotek IMU (mpu6050, hms5883, ms5611) on i2c1
- PERIODIC_FREQUENCY=AHRS_PROPAGATE_FREQUENCY=AHRS_CORRECT_FREQUENCY=60Hz
- baro_ms5611_periodic=baro_ms5611_d1=baro_ms5611_d2=10Hz
I am working on a fix via something like this starting in line 211 of baro_ms5611_i2c.c:
/* avoid glitches in d2
if (ms5611_d2 < 1000000) {
ms5611_d2 = ms5611_d2_prev;
} else {
ms5611_d2_prev = ms5611_d2;
}
I tried this with a fixed replacement-value of 7000000 instead of ms5611_d2_prev and it looks promising (estimator_z jumps to about 200m and recovers within 1 second). I just need some testing ...
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel