Basic (Complementary): is the simpler code that was originally made for the simpler CC3D. It uses only the gyro and accel sensors and so it doesn't have the problems that using mag sensor brings. It can be wrong in some cases.
GPS Navigation (INS13): is much more complex and only works on Revo class board. It uses gyro, accel, and mag sensors. It does not get confused like Basic does. You must carefully twist motor power cables to reduce their mag field and allow mag sensor to see earth mag field.
In LibrePilot version 16.09 you should use GPS Navigation (INS13) if you want to use GPS flight modes.
To use GPS Navigation (INS13) you must:
- carefully twist motor power cables to reduce their mag field and allow mag sensor to see earth mag field
- set Home Location by going to Flight Data page, right clicking where you want to set Home Location and choosing "Set the home location" from the right click menu. Altitude is not critical except for some kinds of waypoint flights, but you should probably look it up and use that number.
- calibrate the mag sensor. This really should be done with OpLink telemetry, but I have done it very carefully with a USB cable. Read Attitude->Help. Do all the calibrations in Attitude -> Calibration.
For mag calibration information go to this page:
https://librepilot.atlassian.net/wiki/spaces/LPDOC/pages/18382863/Aux+Mag+Setup+and+Calibrationand look for the heading:
Mag Calibration (GCS -> Configuration -> Attitude -> Magnetometer Calibration)
You really should use an aux mag (built into GPS) to have mag sensor farther away from power wires. Small drones are hard to get good clean earth mag readings with electromagnet motor wires so close unless you are using an aux mag that is mounted farther away.
If you are using an aux mag, you must configure several things correctly (Attitude -> Magnetometer page):
Mag usage, Mag type, and Auxiliary Magnetometer Orientation