-
Notifications
You must be signed in to change notification settings - Fork 167
OnlineHelp: GPS
Two GPS protocols are supported. NMEA text and UBLOX binary.
- Enable the GPS accessory from the hardware tab and reboot Flight Controller
- Connect GPS to one UART port of the flight controllet. For navigation purposes, only the GPS Tx port should be conected to the Rx port of the flight controller. If you plan on modifying GPS firmware or settings, you should also connect GPS-Rx to the Tx port of the Flight Controller (see
wiring diagram
). - Set-up GPS from the Module Tab (see
GPS Configuration
) - Save and Reboot
- Look at the health gadget, if the GPS is Red/Grey, then the flight controller cannot connect to the GPS. If it is "just" red, that's good news: it is receiving data, but no position fix, which is normal if your inside a building.
Wiring diagram:
FlightController | GPS |
---|---|
TX | RX |
RX | TX |
GND | GND |
5v/3.3v | 5v/3.3v |
Be cautious about the voltage. Using 5v to power 3.3v GPS could cause damage. Do not try to feed GPS with the 3.3v output of the flight controller: most controller are only designed to feed a satellite, some GPS can max out the voltage converter of the flight controller.
Set the gps protocol
appropriately: MNEA (text based) or UBLOX (binary data)
Refer to the seller of the GPS for supported Serial baudrate
. Note that GPS packet loss has been observed at 115200, try using 57600 if you experience this. If it all fails just use the GPS "default" baudrate (usually 9600)
When using UBLOX it is a good idea to use GPS auto configure u-blox
so your FC gets the GPS messages it needs. As a bonus dRonin will scan the UART at all baudrates in order to access the GPS and will then configure the GPS so as to work at the speed you've specified in the drop-down list.
If you are not using GPS auto configuration then ensure your GPS receiver sends out the correct messages at the right frequency. See below for manual UBlox settings.
Constellations
: GPS is the US based network of satellites, GLONASS is the Russian competitor. If you select both, depending on your GPS hardware it will either use both simultaneously or pick-up the best one. If you want to use other networks such as Gallileo or Beidu see below for manual UBlox settings.
When using a UBLOX GPS the SBAS
mode can be configured, the default is AUTO. If you use a regional specific setting you may achieve a faster GPS lock than using AUTO.
Meaning | Region |
---|---|
AUTO | Global |
EGNOS | Europe |
WAAS | North America |
MSAS | Asia |
GAGAN | India |
As mentioned previously: all the following steps are performed automatically if the autoconfig option is selected. If you attempt to perform a custom setup you are better off letting dRonin autoconfigure the GPS and modify the default setup in a subsequent attempt. Please note that the auto-config is not written in the GPS ROM memory, so in order to keep these settings, do not power off the GPS (i.e do not power off your flight controller), instead use the reboot button from the GCS hardware tab.
You can connect to your GPS using an FTDI adapter (see tutorials on the net...), or use your FlightController as a pass-through.
- Open the hardware tab in dRonin.
- On the port that holds the GPS, select
ComBridge
instead ofGPS
. - On the USBVCP port select
ComBridge
. - Now a new comport will appear on your computer, this virtual port will forward all serial I/O to your u-blox GPS.
- Reboot the flight controller.
- Go to module tab, miscelaneous tab and select the Combridge baudrate. If the GPS was previously connected with ublox auto-config you should specify the same speed as the one used for autoconfig. If it does not work specify here the
GPS default baudrate
(see GPS manufacturer doc, usually 9600bps) - Use UBox U-Center (there is an evaluation licence) and connect to the GPS (through the FC combridge).
in U-center, Select the appropriate comport (Receiver
Menu > Port
SubMenu)
Select the baudrate (Receiver
Menu > Baudrate
SubMenu)
Display the Packet Console (Press F6), so you can see what messages your receiver is sending to your computer.
Display the View/Configation-View menu (Press Ctrl+F9).
Navigate to CFG
, Select Revert to default configuration
, Click Send
.
At this point you might need to disconnect and reconnect at the default baudrate - probably 9600 baud (do not forget to update the Combridge baudrate in the module tab of the GCS)
Navigate to PRT
(Ports)
Set Target
to 1 - Uart 1
Set Protocol In
to 0+1+2
Set Protocol Out
to 0+1
Set Buadrate
to 38400
, 57600
, 115200
Press Send
This will immediatly "break" communication to the GPS. So Disconnect
from u-center, update the GCS Combridge baudrate, reboot flight controller, get back to u-center Change baud rate to match, then Connect
.
Navigate again to PRT
and inspect the packet console to make sure messages are being sent and acknowledged.
Navigate to MSG
. In order to ensure the FC doesn't waste time processing unneeded messages, enable the following on UART1 alone with a rate of 1. When changing message target and rates remember to click Send
after changing each message:
NAV-POSLLH (coordinates)
NAV-VELNED (velocity)
NAV-DOP (dilution of precision)
NAV-SOL
Enable the following on UART1 with a rate of 1 (or 5/10 to reduce bandwidth) and load on the FC.
NAV-SVINFO (Satellite list: this is a big message, so no need to update at 10hz!)
NAV-TIMEUTC (time)
NAV-STATUS (Receiver Navigation Status: Fixtype, etc...)
As previously mentioned if you're using a 10hz GPS, updating the satellite lists at 10hz is big hit on the bandwith (above all if your baudrate is below 56k). In this case it is a good approach to update satellites, time and status 5 or 10 time less than the coordinates of the GPS.
All other message types should be disabled.
Navigate to Rate (Rates)
and change the global update rate: slow (old) GPS are 1000ms (1Hz), while (current) faster GPS are 100ms (10Hz). Set Measurement period
to 100
ms, Set Navigation rate
to 1
, Click Send
.
This will cause the GPS receive to send the require messages out 10 times a second. If your (Chinese) GPS receiver cannot be set to use 100
ms try 200
ms (5hz) - this is less precise.
Navigate to NAV5 (Navigation 5)
and Set the Dynamic Model
to Portable
or Airbone1G
and click Send
.
Navigate to SBAS (SBAS Settings)
Set `Subsystem` to `Enabled`.
Set `PRN Codes` to `Auto-Scan` (on the screen shot we force the SBAS to the European network instead of autoscan).
Click `Send`.
Finally save the configuration.
Click `CFG` (Configuration) in the Configuration View.
Select `Save current configuration` and click `Send`.
Assuming you've previously connected the ublox GPS with the auto-configure option, just disable this option or it will ovveride your custom settings on next connect. Bear in mind that the autoconnect option has also configured the GPS baudrate, so use this baudrate for the combridge speed and also in u-center.
If your devices comes with 3.01 firmware, you can assign some channels for Galileo; typically steal from some channels from a GNSS that you are unlikely to use (maybe QZSS, BeiDou in Western Europe). Save this in the default configuration. BN-880 & BN-180 can use upto 3 GNSS (plus SBAS) simultaneously. In u-center
Click GNSS
GNSS | Cfg | Enable | Min | Max | Signal |
---|---|---|---|---|---|
GPS | X | X | 8 | 16 | L1CA |
SBAS | X | X | 1 | 3 | L1CA |
Gali | X | X | 4 | 8 | E1 |
Beid | X | 8 | 16 | B1 | |
IMES[ X | 0 | 8 | L1CA | ||
QZSS | X | 0 | 3 | L1CA | |
GLON | X | X | 8 | 14 | L10F |
Click SBAS
, select EGNOS (for europe) in the PRNCode list
Note that recommended maximum navigation rate supported is 5 Hz for standard multi-GNSS operation (GPS + SBAS + GLONASS + QZSS) and 10 Hz for single GNSS operation.
From the UBlox documentation:
- Pedestrian - Applications with low acceleration and speed, e.g. how a pedestrian would move. Low acceleration assumed. MAX Altitude [m]: 9000, MAX Velocity [m/s]: 30, MAX Vertical, Velocity [m/s]: 20, Sanity check type: Altitude and Velocity, Max Position Deviation: Small.
- Portable - Applications with low acceleration, e.g. portable devices. Suitable for most situations. MAX Altitude [m]: 12000, MAX Velocity [m/s]: 310, MAX Vertical Velocity [m/s]: 50, Sanity check type: Altitude and Velocity, Max Position Deviation: Medium.
- Airborne < 1G - Used for applications with a higher dynamic range and vertical acceleration than a passenger car. No 2D position fixes supported. MAX Altitude [m]: 50000, MAX Velocity [m/s]: 100, MAX Vertical Velocity [m/s]: 100, Sanity check type: Altitude, Max Position Deviation: Large
There are many GPS receivers available on the market, people have reported success with the following receivers:
Ublox Neo-7M GPS with Compass and Pedestal Mount http://www.hobbyking.com/hobbyking/store/__55558__Ublox_Neo_7M_GPS_with_Compass_and_Pedestal_Mount.html
RY825AI 18Hz UART USB interface GPS Glonass BeiDou QZSS antenna module flash http://www.ebay.com/itm/RY825AI-18Hz-UART-USB-interface-GPS-Glonass-BeiDou-QZSS-antenna-module-flash/181566850426
Beitian BN-180 : good enough for home arrow but limited navigation capabilities given the small antenna.
Note : this documentation is derived from the Taulabs, CleanFlight and Inav help.