Oh! Another thing. If you have an I2C aux mag there is a very common problem such that some GPS/mag brands have weak I2C signals. To get it to work correctly you may need to add a pair of say 2.7k (2k to 5k is all right) pull up resistors from 3.3v to the SDA and SCL lines and shorten your I2C cable as much as possible. Adding pullups is probably best done inside the GPS/mag shell. Most of the GPS/mag units I got for testing have this issue to some extent. What happens is short "lock ups" when the I2C driver can't read the data. Sometimes the FC even reboots.
You can test for reboots by connecting your quad to a 12vdc power supply that is powered by AC and let it run for a long time or over night. Make a note of the time you powered it up. When you look at it later with GCS, look at Firmware -> FlightTime. It is the number of seconds since it was powered up. If it was started up 8 hours and 10 minutes ago the FlightTime should say something close to 29400 ((8hours*60*60) + (10minutes*60)).
While you are at it, go into Scopes, enable Window->EditGadgetsMode and change one of the scopes (not the Uptimes scope because it gets reset to zero each time the FC reboots and that is good information to have, you may want to increase the DataSize for it as well, see below) to Alarms and disable every scope alarm except CPUOverload, Sensors, Mag, and I2C. Then do Tools -> Options -> Scope -> Alarms and set DataSize to however long you expect to run the test (3600 seconds per hour
). Press OK. Now you have that available and running when you do the above test and it will show you if you had any lockups that were not reboots.
Be aware that INS13 (if you are using it, like for GPS flight) goes crazy (the EKF diverges) if it is left for a long time perfectly motionless. Your attitude and PFD may be crazy when you come back. That is normal.