If your Sky Viper does not perform as expected, there are a few things to try.
Fast GPS Lock
The fastest GPS Lock is achieved by having up to date MGA UBLOX assistance data. This is data is updated once a week. It is automatically pulled down to the Sky Viper Video Viewer app when connecting to the internet and will update once connected to the drone if the current data is out of date.
The GPS tab in the status page is useful to show you progress towards GPS lock as well as information regarding the MGA data cache.
Diagnosing Poor GPS Performance
If you have poor GPS performance then please follow the guide below to help diagnose the cause.
Start off by opening the web interface, and looking at the GPS tab of the status page:
The above image shows what happens when the SkyViper is searching for GPS lock. The key elements are:
- FixType 1: that means it has found a GPS (there is a GPS attached), but it doesn’t yet have GPS lock
- NumSats: the number of satellites found
- EKF Status: “bad” means the GPS is not yet able to be used
- Latitude/Longitude: the current lat/lon where it is searching
- MGA Cache Size: the MGA cache is the downloaded file that gives the satellite orbits. The size of this cache should match the current file at http://fly.sky-viper.com/firmware/data/OFFLINE.UBX
- Pos Source: this is where the GPS got its estimate of position from (2 means from the web browser)
- Time Source: this is where the GPS got its estimate of the time from (2 means from the web browser)
If the MGA Cache Size is zero then please check if you can download the above OFFLINE.UBX file. That file is needed to allow for faster GPS lock.
If you are seeing a zero MGA Cache Size then check it is downloading correctly to the microSD. It should look like this in http://192.168.99.1/filesystem.html
As shown in the image, the filename for the MGA data on the microSD card is UBLOX\OFFLINE.UBX
You can manually copy the file from http://fly.sky-viper.com/firmware/data/OFFLINE.UBX to the UBLOX directory on your microSD. The app will do this for you in a future version, or the web interface will do it on the status page.
Second stage
Once the GPS gets 3D lock then you will get status like this:
The key differences are:
- FixType is 3 or larger, meaning it has 3D lock (it may be 4 if the GPS can see a SBAS satellite)
- NumSats is non-zero, in this case 4
- EKF status is still bad. This means the GPS is still not good enough
- The Speed Accuracy is now much lower, but not yet below the critical threshold of 1.0
- The Fix time shows how long it took to get 3D lock. In the above case the drone was in a position with poor view of the sky (it was on a verandah, with many trees above it). It took 147 seconds to get GPS lock
While the above shows 3D lock, it is not yet good enough for ArduPilot to use the GPS to fly in a GPS flight mode. For GPS to be good enough for flight it needs to meet the following conditions continuously for 10 seconds:
- Speed accuracy below 1.0
- number of satellites at least 6
- Position Accuracy below 5.0
- Height Accuracy below 7.5
The above shows an example where it has 8 satellites but is not yet good enough for GPS flight. The Speed Accuracy is good enough (it is below 1.0), but the position accuracy is too high (it is over 9 meters) and the height accuracy is also bad (at over 8 meters).
Note that while the Speed Accuracy is below 1.0, it is still not good. A really good speed accuracy is 0.3 or less.
The above image shows what you get when the GPS is finally good enough. Note that at the time this image was captured the speed accuracy was above 1.0, but it had been below 1.0 for 10 seconds, so the EKF was able to start tracking position and velocity. The “EKF Status” has changed to “good”, meaning the vehicle is ready to fly in GPS modes.