I've recently completed a new build: GepRC Mark4 7" long-range quad capable of autonomous flight. Flight controller is Revo FC, Oplink for radio-control, BN-200 GPS, I2C external mag, T-motor F55A PROII ESC, BrotherHobby Avenger V2 2507 1500kv motors. Running Next r735.
It is flying beatifully, has much smoother and stable flight compared to my other 5" and 6" builds. Cannot tell what really makes the difference: larger frame (7" vs 6"), BLHeli_32 ESCs (vs older BLHelis, LittleBees 20A), faster and potentially more precise ESC protocol (DSHOT1200 vs OneShot125) or 2507 lower kv motors. Maybe all of these...
However, while initially tuning the quad, I've encountered serious problems with occasional STAB errors / ATTI warnings that were also causing momentary instabilities during flight. These glitches come in irregular intervals but happen quite often, sometimes once in 5-10min, sometimes 2-3 times in a minute, so they are a problem and pose danger in flight!
I've initially suspected a faulty IMU (MPU6000) as I've once had such a problem few years ago. However, symptoms were not exactly the same...
I've carefully inspected telemetry logs and DVR recordings and after lot of testing I concluded these STAB errors are not caused by bad hardware or I2C issues or whatever else hardware-wise. The problem is somehow related to setting ESC protocol in the FC to DSHOT. And, more precisely, when DSHOT speed is set to 600, 300 or 150kHz!
Using DSHOT1200 works, however, absolutely fine, never had even a single glitch with it (many hours of continous indoors observation in GCS and several 10+ minute flights) and the quad is currently setup and flying with DSHOT1200 protocol.
Using older Oneshot125 or Multishot protocols is trouble-free, too.
I've tested with and without peripherals (GPS, Auxmag) connected and setup, also tested with Revo FC powered by USB only or by external +5V power on servo pins. Attitude Estimation Algorithm (Complementary or INS13) doesn't matter, also.
I've performed these tests with three different Revo boards, the one on the GepRC Mark4 quad and two other spare ones (different manifacturers). Same results.
Watching System Health in GCS reveals that every glitch is indicated by black STAB with red X and yellow ATTI alarms. Sometimes (often) this is immediately followed by CPU overload alarm. I've also rarely seen (maybe only twice) I2C alarm and GPS alarm at the same time, immediately following the STAB error.
Let me say again that disabling Main and Flexi ports (no GPS and no I2C) changes nothing with STAB errors emerging occasionally when DSHOT 600 (or 300 or 150) is used.
Seems like FC code sometimes skips / fails to process gyro samples and this causes STAB errors. As this issue happens with DSHOT150, DSHOT300 and DSHOT600 and NOT with DSHOT1200, I guess it is somehow timer related but as I'm absolutely ignorant in this matter I may be entirely wrong.
I hope some of the devs will step in and address the issue.
While I believe DSHOT1200 is fine and I'll continue using it with my build, anyone with older ESCs that support DSHOT600 at max will possible have problems.
-------------
Here are GCS Scopes screenshots of several indoor tests, one and same board, USB-to-PC only connection, no external peripherals connected, identical FC settings except ESC protocol / speed used.
I've also attached .opl logs for these same tests that can be replayed in GCS.
The UAV settings file is also here.
-------------
Edit: Added a short DVR record.
Flight was intended to test autonomous modes. DSHOT600. 11 STAB errors for less than 4 minutes, one NO GPS FIX alarm (at 0:27, 0:48, 1:16, 1:24, 1:31, 1:37, 1:38, 1:48, 1:54, 3:27, 3:41)