Closed greymfm closed 8 months ago
Further tests (with different hardware, different OS etc.) show:
MPU 6050 working properly (without FIFO corruption message):
raspberry 3 Linux 4.14.79-v7+ armv7l gcc 6.3.0 YES
raspberry 4 Linux 4.19.97-v7l+ armv7l gcc 8.3.0 YES
raspberry 3 Linux 6.1.21-v8+ aarch64 gcc 10.2.1 YES ??
raspberry 4 Linux 6.1.21-v8+ aarch64 gcc 10.2.1 NO
raspberry 5 Linux 6.1.0-rp7 aarch64 gcc 12.2.0 NO
raspberry 4 Linux 6.1.0-rp7-v8 aarch64 gcc 12.2.0 NO
bugfixed in commit ( https://github.com/Ardumower/Sunray/commit/6afe8502d9281efa0e8c05e36e277ab9feecad45 )
When compiling and running Sunray firmware on a Raspberry PI, the MPU FIFO gets corrupted.
Steps to reproduce:
The MPU will be found but will not return any data. The reason is that the FIFO corruption check (in src/mpu/inv_mpu_dmp_motion_driver.c) fails:
https://github.com/Ardumower/Sunray/blob/f64c6f5493343587f5f41e7c2befb9bfb10d72ba/sunray/src/mpu/inv_mpu_dmp_motion_driver.c#L1276
Any ideas? :-)
To simply testing, I have made a 'IMU hello world project', just to test the MPU IMU:
arduino_pi_imu_test.zip
cd arduino_pi_imu_test/build cmake .. make
The FIFO will be corrupted:
Playback of recorded I2C data can be activated (to test MPU-library without hardware) in ' src/mpu/arduino_mpu9250_i2c.cpp' (play=true) - If MPU library is compiled correctly, output should be like this: