GPS setup
CC3D GPS Navigation
CC3D and Atom boards do not support GPS navigation features like RTH, PosHold, waypoints... Only Revolution, Revolution Nano and Sparky2 can use GPS for navigation. |
Introduction
GPS sensor is needed for every autonomous features, this sensor provides:
- position with Lat/Lon coordinates and altitude,
- velocity
- time
Preferred protocol is UBX, more efficient than NMEA and should provide a most accurate velocity state.
Another thing to consider when GPS features are wanted: refresh rate, at least 5Hz.
A GPS without a compass/magnetometer has some value when flying FPV with an on screen display (OSD) or returning data to the LibrePilot Ground Control Station (GCS). Telemetry, such as altitude or ground speed and distance may be available. Recording latitude and longitude could be available and would be useful attempting to locate a lost craft.
Capabilities NOT available without a properly functioning compass/magnetometer are all GPS Flight modes like GPS Assist, PositionHold, CourseLock, VelocityRoam, HomeLeash, AbsolutePosition, ReturnToBase, Land, PathPlanner and AutoTakeOff.
Although the Revolution flight controller has an on-board magnetometer it cannot provide dependable data for smaller craft (250mm).
GPS wiring
GPS can be connected to the Main Port Flexi Port or FlexiIO (Revolution), optional I2C mag can be connected to FlexiPort. (16.09 release)
Be sure the Tx/Rx lines are crossed and external power source (+5v) is connected or board cannot talk with GPS.
MainPort / FlexiPort pinOut
Color | Pin | Electrical limits | Serial function | I2C function | |
---|---|---|---|---|---|
Black | 1 | GND | GND | GND | |
Red | 2 | limits 4.8V - 10V recommended 4.8 - 5.5V, check GPS voltage. | PWR Out (VCC Unregulated) | PWR Out (VCC Unregulated) | |
Blue | 3 | 3.3V | TX | SCL | |
Orange | 4 | 3.3V (5V Tolerant) | RX | SDA |
Naza GPS
This GPS own a magnetometer, the position and magnetometer data are send to the board using DJI protocol.
Can be connected to the FlexiPort, MainPort or FlexiIO (Revolution). Others ports left can be used for telemetry.
Hardware tab
Magnetometer config
Mag type to DJI
GPS+I2C
I2C magnetometer is connected to the FlexiPort and ublox gps to the MainPort or FlexiIO (Revolution)
Hardware tab
Magnetometer config
Mag type to Flexi (can be I2C using extra I2C port on Sparky2)
OPv9 GPS
This genuine OpenPilot GPS (discontinued) does the same as the DJI Naza GPS, position and mag data are send to the board using extended UBX format.
Can be connected to the FlexiPort, MainPort or FlexiIO (Revolution)
Hardware tab
Magnetometer config
Mag type to GPSV9.
Ublox GPS
This is a simple ublox based GPS type, position data is send to the board using UBX format.
Can be connected to the FlexiPort, MainPort. or FlexiIO (Revolution)
Hardware tab
Configure GPS
Except CC3D or Atom board that need a manual GPS configuration, the other boards like Revolution, Sparky2 or Revo Nano uses autoconfig feature.
The autoconfig is only done using Ublox type modules connected, (Naza GPS do not support autoconfig)
Hardware tab
If you changed manually a port to GPS use in Hardware tab you may need to reboot board to apply changes first time.
(See configuration examples above)
Next if you change baudrate reboot is no more needed and changes applied automatically after click the Save button
Extended GPS options
Some GPS (with UBX protocol) options can be changed:
- UBX: protocol used same as protocol set in Hardware tab,
- MaxPDOP: max error admitted for GPS use,
- MinSatellites: Minimal number of satellites needed.
For UBX GPS only:
- UbxAutoConfig: AutoBaudAndConfigure, keep like that but a "Store" option can be added.
- UbxRate: Default 5Hz, can be set to 10Hz or more using recent Ublox Neo8 modules
Next options should be fine per default, if you want to learn more read Ublox documentation.
Every change in UAVOBrowser can be saved using the button.
Troubleshooting
Check SystemHealth panel for alarms
Autoconfigure status can be monitored, go into System tab > UAVOBrowser > Data > GPSPositionSensor.
- look at AutoconfigStatus and Baudrate