How to Setup GPS in Betaflight

by Oscar

In this tutorial I will show you why and how to setup GPS in Betaflight, and explain what GPS module you should get. With GPS enabled you can display coordinates and home arrow on OSD, or have GPS rescue mode available.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

Why Use GPS on FPV Drone?

You can display useful info on your OSD, including the location of the quad (latitude and longitude), distance to home, speed, altitude and arrow pointing home. The last known GPS coordinates can help you find the quad after you crash.

Gps Osd Elements Betaflight Home Arror Direction Distance Speed Coordinates

You can even enable Betaflight Rescue mode – similar to “return to home” feature that’s commonly found in DJI camera drones. When working correctly, the drone can fly back to you on its own when signal is lost! I don’t know how many times Rescue mode has saved me from crashing/losing my drones, it’s the main reason why I always have GPS setup in my drones whenever possible. Once you have setup GPS following this guide, you can check out my other tutorial on how to setup GPS Rescue Mode in Betaflight.

For flight controller firmware that supports features like “Return to Home” or “Position Hold”, requires GPS module to work.

What’s the Best GPS Module for Betaflight?

In Betaflight, compass is not required for Rescue mode to work, so it’s not necessary to use a GPS receiver with built-in compass, which is heavier and more expensive. A small GPS module would be preferable for FPV drones, because every gram counts! Most GPS modules for FPV drones use either M8 or M10 chip. Both work fine for drones, but M10 are newer and perform better, get M10 if you can.

The benefits of M10:

  1. M10 GPS receiver can simultaneously connect to four Global GNSS (GPS, Galileo, Glonass, and Beidou), providing better coverage and reliability.
  2. With the M10 chip, GPS lock-on is faster and it can connect to more satellites compared to M8-based units.
  3. Improved performance in areas with interference or limited view of the sky.
  4. Despite its superior performance, the price difference between M8 and M10 units is not substantial, making M10 a cost-effective choice.
  5. Comes in different models (Nano, Mini, Pro) to suit different needs, with options like larger antennas and built-in compass.

There are a lot of options when it comes to GPS modules. I recommend getting one of these which I’ve personally tested with great results:

Top Performer – HGLRC M100 Mini

Smallest Worth Having GPS – GOKU GM10 Nano V3

Before M10 came around, BN-220 was the most popular choice with decent performance (on average it gave me over 20 satellites within a couple of minutes). However they have the older M8 chip with lower performance than M10, which means they generally take longer to get a lock and see fewer satellites. If you are struggling to get decent performance with this GPS, you can try optimizing the settings as shown here.

You can still get the BN-220 here:

If you want a M8 GPS with onboard compass, then check out the BN-880. It’s the big brother of the BN220 with a built-in compass which is useful for firmware like iNav but not necessary for Betaflight Rescue mode to work.

Get the BN880 here:

If you see some scratches on the metallic patch of the GPS antenna, it is not necessary defect or damage, it could just be the result of antenna tuning during final testing in the factory. These types of antenna have a nominal tuned frequency, but are often impacted by construction, components location and soldering. Placing small nicks in the centre of the long edges, or corners, can fine tune its frequency.

LED Indicators

On BN220, BN180 and BN880, there are two LED indicators, labelled “TX” (usually blue) and “PPS” (usually red).

Flashing blue (TX) indicates UART usage. If it is off, then the GPS is not sending data out. This is also an indicator of the refresh rate, in 1Hz it should flash once per second, while in 5Hz it will flash 5 times a second.

Flashing red indicates the 2D/3D fix status of the GPS. If “PPS” is off then you don’t have a fix yet.

Connecting GPS to Flight Controller

Wiring the GPS module to a flight controller is straightforward, just connect it directly to any free UART on the FC (TX to RX, RX to TX), and power it with 5V.

On some FC (such as the Speedybee F405 V3), there are 4V5 pads, this is the same as 5V pad, but these pads can get power from USB port too. This allows you to power your GPS by simply connecting the USB cable, no need to plug in the LiPo battery to power the GPS. As we know GPS can take a while to get a satellite lock, if you connect the LiPo while waiting for GPS on the ground, your VTX can overheat. If you just plug in the USB cable, your VTX isn’t powered. It also speeds up satellite lock because the VTX isn’t interfering with the GPS. Your FC might have 5V pads that can be powered by USB, but labelled differently, check with a multimeter if not sure.

Gps Flight Controller Fc Connection Wiring Fpv Drone Betaflight Bn220 Bn180 Avoid using Softserial for GPS, as it only supports up to 19200 baud rate, and with 9600 baudrate the GPS is simply not reliable enough for GPS operations. It’s best to use a hardware serial port (any TX and RX pins on the FC), and set baudrate to 57600.

How to Setup GPS in Betaflight

In the Ports tab in Betaflight, select GPS under “Sensor Input” for the UART that is connected to the GPS receiver. In this example, UART6. If you are not sure about the baud rate of your GPS, simply select Auto and let Betaflight choose for you.

Betaflight supports the following speeds: 9600, 19200, 38400, 57600, 115200. If your GPS is set to a non-supported speed, then AUTO mode will not work.

Gps Setup Betaflight Ports Uart Auto Baud

In the Configuration tab:

  • Enable GPS (for navigation and telemetry)
  • Select Protocol, it’s either UBLOX or NMEA. Usually it’s UBLOX for BN180/BN220, but try the other if it’s not working
  • Enable Auto Config
  • Enable Auto Baud if you set Baud Rate to Auto in the Ports tab, otherwise disable it
  • Save and Reboot

Gps Setup Betaflight Configuration Enable Feature Config Baud Protocol

Once you have wired and set it up correctly, you should see the GPS indicator light up at the top of the configurator (that means the GPS is talking to the FC). If GPS module is not powered, you try to plug in the LiPo battery.

Pro Tip: How to check if my GPS is working at all?

How do I know if my GPS module is talking to the flight controller at all? Is the UART connection correct?

Well one way to find out is to run the ‘gpspassthrough‘ command in the CLI. It will let you see if there is any data communication going on between the FC and GPS module.

If the GPS module is talking to the FC, you should see a load of hieroglyphic binary data characters. If you see nothing, then the GPS is either dead/unpowered, or the UART connection is incorrect, or there’s something wrong with your setup.

If the GPS icon doesn’t light up, you can’t proceed to the next step. Check again your wiring and configuration (e.g. try a different protocol, different baud rate etc). Try a different GPS module if you have a spare one.

Now you need to wait for the GPS unit to get a”3D fix” (aka “satellite lock”), it happens when it sees locks on to 4 or more satellites. It might take a few minutes depends on your location.

When it gets a 3D fix, the red LED on the BN-220 module should blink (together with the blue LED). You will see information under GPS in the Setup page, where it says “3D Fix” is True, and shows your coordinates.

When you power up the GPS module for the first time in a new location, it always takes longer to find satellites. This is referred to as a “cold start”. Once you’ve got a 3D fix the first time, it will get a lock much faster after that when you restart the GPS module (e.g. when you change battery), because your GPS remembers the location of the satellites.

You are more likely to get a lock outdoor. If you have to test this inside the house, try to get close to the windows with the antenna pointing to the sky, but it’s much harder than being out in the open.

You can display GPS info in the OSD. Check out this tutorial about Betaflight OSD if you are not familiar with it. You can display GPS coordinates, distance and direction to home and more.

Gps Osd Elements Betaflight Home Arror Direction Distance Speed Coordinates

Once you have GPS setup and got a lock, go to the radio’s telemetry page, select “Discover new sensors”. Some GPS related new sensors should appear including GPS coordinates. This only works if you have Telemetry enabled in your radio system. This allows you to log GPS coordinates in your radio. so you know the last known position of your aircraft. This helps to search for the lost quadcopter if you can’t see the coordinates in your DVR.

Testing GPS in Betaflight

You want to test the GPS thoroughly before relying on it for long range flying.

First of all, place the gps sats element in your OSD, so you know how many GPS satellites have been acquired without going into Betaflight Configurator. 6-8 is the minimum for rescue mode to work, the more the better. Your GPS coordinates will also get more accurate when you acquire more satellites.

Gps Sats Satellites Lock Osd Element Betaflight

Then you want to check if the GPS coordinates you are getting are correct. Enter those coordinates in Google Maps, and see if it points to where you are. Don’t get latitude and longitude mixed up, and watch out for the minus sign!

If it all checks out, you are good to go!

Mounting GPS Module

One common mistake is mounting the GPS upside down. The GPS receiver antenna should be facing up, it’s a flat square with small metal circular part in the middle. There should be no components at all on this side. As an example, this is the ceramic antenna in a GPS receiver, it should be facing up.

Holybro Nano Ublox M8 5883 Gps Module

Make sure there’s nothing blocking or interfering with the GPS unit at anytime. Mount it on top of your quad, as far away from the VTX /  RX antennas as possible (many radio receivers can actually transmit signal as well due to their two-way communication nature when telemetry is enabled). Also beware some HD cameras might produce radiation that can affect your GPS signal as well if they don’t have the appropriate shielding.

Here are some ideas where/how to mount the GPS module in an FPV drone.

Hglrc Sector X5 Bnf Fpv Drone Rx Vtx Antenna Gps 3d Print

Stp Hobby Armor 5 Fpv Drone Rushfpv Rx Vtx Antenna Gps Mount

On top of your GoPro/HD camera.

On top of your frame if you have an under-slung battery.

Using a mast to keep the GPS as far away from the quad as possible. But probably a bad idea to have it so close to the VTX antenna in this example…

The rule of thumb is that the GPS must see the sky at all times (except when you are doing a roll or inverted yaw spin).

Before your flight, it can take a while to get a GPS lock. You might want to power on your quad and GPS beforehand to “warm up” first, e.g. on the way to the flying field.

Setup Rescue Mode

If your GPS is working, you should now setup Rescue Mode in Betaflight, so when you lose signal, or when you get lost, you can just flip a switch and the drone will find its way home!

Additional Sensors for GPS

Additional sensors are not required for GPS in Betaflight. But by combining measurements from other sensors can give you a better picture of what the drone is doing. I will add more info here later.


A barometer is a pressure sensor that measures altitude. It’s more accurate than solely using GPS’s estimation. Many flight controllers come with a Barometer (BMP280) onboard, you can find out in the FC specs.


The compass is for measuring which direction the quadcopter is facing. This component is essential for determining directions (north and east) while controlling the position during stationary or low-velocity movements. Some GPS modules has built-in compass, or you can get external magnetometer and connect it to the FC via the i2c port. However, be aware that magnetometers are sensitive to magnetic fields and require calibration. Betaflight doesn’t require a compass to work, it works out its direction by constantly comparing GPS coordinates.

How to Get a GPS Lock Faster

Most GPS modules have a small battery, which is used to store satellite information and time for a faster lock.

After the GPS module gets a satellite lock, it remembers all the satellite locations, so after you change the drone’s battery (the GPS module is powered off briefly), the GPS lock usually can resume almost immediately. But when the GPS doesn’t have satellite information stored in memory, or the satellites it remembers are no longer in view, it will take much longer to get a lock.

This is why some people powered on their quad (or just the GPS module) prior to their flight just to get a lock, so they don’t have to wait around before taking off.

If your GPS always takes a long time to get a lock, it’s worth checking if the battery is dead (with a multimeter). Also make sure there is as little interference to the GPS as possible, for example if you are using1.3GHz FPV setup, try moving powerful VTX away from the GPS. Cloudy day can also have an effect on GPS signal quality.

Also check out my post about optimizing GPS settings to get more satellite locks.

Not Getting GPS Lock

Interference from other electronics such as your VTX, radio receiver if you have telemetry, or even nearby wires that carry a lot of current can prevent the GPS from getting a lock. If you have trouble getting a GPS lock, try the following:

  • Try to power your FC from USB and see if that powers up your GPS module. If not, try to move your GPS module power to another pad on the FC that gets power from the USB port
  • Powering only the FC without the VTX should make it easier for the GPS to get a lock, once you get a lock, it should stay locked normally even when the VTX is powered on. But it’s still a good idea to mount your GPS as far away from VTX antenna and RX antenna as possible
  • Shielding nearby wires can also help sometimes. Wires carrying current are like antennas, they could also potentially mess with GPS

GPS satellites transmit data on two frequencies, L1 1575.42MHz and 1227.60MHz, hence 1.3GHz FPV can cause interference to your GPS. Most people run 5.8GHz so this shouldn’t be an issue. But since GPS signal is so weak (it’s all the way from space after all), any powerful signal nearby can cause interference, therefore you should mount the GPS module as far away from any transmitting sources as possible.

When you run your GPS wires to the FC under the VTX, it can also cause issues as certain VTX’s don’t have proper RF shielding and the RF noise is enough to mess up your GPS. For example the Avatar VTX is known to cause GPS issue when running wires under it. Solutions could be properly grounding the VTX shielding, but you could also try to shield the wires between the GPS and FC, and make sure to ground it.

Gps Wire Cable Ground Shielding Foil Betaflight Fc

I tried shielding the wires with some foil in one of my quads, then connect the foil to a ground pad on the FC (to ground it). Finally wrap it with some cloth tape so it doesn’t short the frame. Some people reported good result with this modification, for me the improvement is little, but it’s worth a shot if there’s no other easy solution.

Can’t enable GPS after flashing Betaflight

It’s possible that GPS was excluded from the compiled firmware due to the new Cloud Build system in Betaflight 4.4.

To confirm this is the case, enter this command in CLI:

feature gps

If CLI returns “gps not available”, then it means the GPS feature isn’t part of the betaflight firmware in your FC. In this case you will have to reflash your FC, this time you should make sure GPS included in the Cloud build system option when compiling it.

GPS Coordinates Decimals

To display GPS coordinates in the OSD you have the options to select how many decimals to display (currently only 4 and 7 decimals are available). It affects how precise the position is when you search for the coordinates on a map.

On Wikipedia page “Decimal Degrees” there’s a table on Degree Precision vs. Length.

places   degrees          distance
-------  -------          --------
0        1                111  km
1        0.1              11.1 km
2        0.01             1.11 km
3        0.001            111  m
4        0.0001           11.1 m
5        0.00001          1.11 m
6        0.000001         11.1 cm
7        0.0000001        1.11 cm
8        0.00000001       1.11 mm

Beware of the difference between accuracy and precision. Your GPS may report any number of digits (its precision) but many of the decimal places might be just erroneous (accuracy)1.

Edit History

  • Aug 2018 – Tutorial created
  • Jan 2023 – Updated

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


Marco 19th November 2023 - 5:45 pm

First thing, thank you!! Great guide, it would have taken ages to do it on my own :D
Now my problem:
The GPS module seems to work fine except for the fact that it gives the wrong coordinates…
Even with 8+ satellites, the home position keeps changing (200/300m). I tried to turn the drone on, wait the GPS to lock, then arm the drone and walk around. When I got back to the original position the OSD was showing something like 90m distance and 20m altitude form home.
Do you know what it could be?

Alexander Wampel 14th September 2023 - 6:19 pm

hallo Oscar ,kannst du mir weiter helfen
ich habe einen FC F722-minise controller
dann ein GPS Modul Tbs m8-2
was ich suche sind die richtigen Anschlusslöt Pins ( stellen oder Nummern)
ich habe den INAV-Configurator version 6.0.0
das Board Gefläscht auf Wing funktion ,es läuft alles und das Board reagiert echt toll
vielleicht gibt es noch eine beschreibung oder ein Video wo ich alles finden könnte .
ich habe einen Multiplex Twinstar und möchte damit FPV fliegen können ,es wäre mein Traum das das System endlich mal funktioniert .lg,aus Österreich ,,,alex

Krotow 1st September 2023 - 11:20 am

By tinkering with BN220 module found that better position for it to fix on satellites as fast as possible is at least 20 cm from Walksnail HD Pro VTX antenna. Unfortunately not possible to mount module on 5″ frame at such distance. Seems I need taller VTX antenna stalk. Will try again when I’ll get new 15 cm long VTX antenna.

Chad 16th August 2023 - 7:54 am

I have the Talon Fusion. 2 questions:

On this board you can free UART3 for use with 12C and Compass. I freed the Serial RX and then set the resources:

resource I2C_SCL 1 B10
resource I2C_SDA 1 B11

However, my compass is not recognized in betaflight. Any ideas? Also, I have an external barometer board and understand you can connect I2C devices in parallel such the compass and barometer onI2C connection. Is that true?

Oscar 16th August 2023 - 2:01 pm

Try this?
resource I2C_SCL 2 B10
resource I2C_SDA 2 B11

drepou 31st July 2023 - 3:10 pm

that you save my life in found my issue Betaflight / NAZE (AFNA) 3.2.5 Feb 11 2018 / 00:40:11 (6e69ff00c) MSP API: 1.36 GPS feature is not available !!!! i have no idea how to get that such old FW for my flip32+ with GPS enable……

Carlos 15th July 2023 - 9:59 pm

Oscar, my betaflight show I2C = 5 erros. My gps is Flywoo m10 pro

Austin 6th July 2023 - 11:16 pm

Hello Oscar,
This tutorial was a big help to me, thank you!

I have a Mateksys SAM-M8Q GPS connected to a Tmotor F7 FC. It connected at 57600 when I selected autobaud, and I get a 3D Fix about 20 seconds after power-up indoors. Happy flying!

william 30th May 2023 - 6:28 pm

Hello, in my case I use a vifly gps mate and tbs m2 for gps. it’s working fine in gps tab in bf and also on my dji google but my radio don’t find the gps I tried to discover new sensor but nothing append

Oscar 30th May 2023 - 9:56 pm

What radio link are you using? Did you enable Telemetry in Betaflight Receiver tab? Also try to delete sensors before discover new sensors.

Steve 27th May 2023 - 9:41 am

I know the Cetus X (F4) has 3 UARTs, 1 is used for the USB, one is used for the VTX, is the 3rd port open to use with a GPS?

Oscar 27th May 2023 - 1:16 pm

The Cetus X has the F4 1S 12A AIO FC I believe? This FC only has 2 UART’s, and the Cetus X does not have a GPS by the way. And the USB connection for this FC does not require a UART to work.

Renaud 22nd April 2023 - 6:33 pm

My gps is working again ^^

Johnny 20th February 2023 - 2:50 pm

Hi Oscar,

Is the GPS hold mode in betaflight? or is it only possible in INAV?


Oscar 20th February 2023 - 3:46 pm

Don’t think it’s possible (yet) in Betaflight.

M 19th January 2023 - 12:12 pm

Is there a way to change the battery on an bn220? If yes is there a good tutorial how to do that, I think it’s not only soldered it’s more welded and what Batterie is it?

Oscar 19th January 2023 - 12:35 pm

Based on what I have heard, those battery can last 5-10 years, so it would be rare we run in to battery related problems with them. I have personally used at least a couple of dozens different GPS modules and have not had a single issue related to battery (yet). I can look into changing the battery when I have time. But for now I think I’d probably just get a new GPS module if something goes wrong, they are only $10 anyway.

Krotow 31st August 2023 - 7:07 pm

BN-180/220 GPS modules use 3.3V XH311HG batteries, soldered on PCB at two sides. Like these

Dylan cate 4th June 2022 - 3:16 am

On the BN 880 what does it mean when a blue light flashes?

Krotow 31st August 2023 - 7:31 pm

Blue light indicate any activity in TX/RX lines. So basically the communication between GPS module and flight controller or other host.

Joshua 9th March 2022 - 7:59 pm

I see you’re connected to the Kakute F4 v2.1…. Can I use UART3 for GPS connection?

Chris Neiner 17th September 2021 - 12:20 am

I get a lock of 14 sats, but I do not get coordinates or homepoint sometimes and the quad will not arm. Crocodile Baby and it’s on soft serial. It does work fine sometimes.

Simon 17th January 2023 - 12:01 pm

14 is the default amount before it picks up any satellites, just wait a bit longer and it’ll change.

Niels 20th July 2021 - 4:28 pm

Many thanks, heloed me a lot
Had to swap rx tx in order to get my bn220 to work. Also reduced to 9600 baut.

Phil 19th May 2021 - 11:48 pm

Oscar, good day. Great articles as always! QQ: In this article you mention to make sure we get the M8N chip. How can I tell which ones have the M8N chip?


Oscar 20th May 2021 - 10:25 am

Check in product page it should mention chipset.

Imamzr 7th May 2021 - 4:21 pm

Hai oscar,
thanks for this great article.

I have an issues, i already follow the tutorial and wiring.
But my beitian just solid blue light without blinking and red led.
And the OSD about GPS are not appear, and in the emuflight aren’t show GPS yellow indicator.
Need some advice, thanks

Dani 4th April 2021 - 5:29 am

Hi there. Quick question, why might the compass be appearing backwards to true compass? Everything else seems to be working. Flywoo g8-588 on diatone mamba

Goraz 3rd April 2021 - 6:25 pm

Hi, I have a question. Do I need a gps with a compass to see Home Direction and Distance from home in iNav OSD?
You wrote that the compass is not needed and I prefer to be sure. Thanks.

Oscar 3rd April 2021 - 11:49 pm

In Betaflight it’s not needed, as home direction can be calculated from coordinate changes, and drone movement. I am not sure how iNav works though I have not used it yet.

Ke 31st January 2021 - 11:06 am

How do you change the GPS refresh rate to 10 HZ in Betaflight? I have Matek SAM-M8Q, default came in 1 HZ and 9600 Baud rate


Matt White 27th January 2021 - 4:27 am

Oscar, thanks for all of the great info.
I recently installed a Kakute F7 FC and BN880 GPS but was stumped for days because I could not get the GPS to hold the quad in place. The BN880 came configured to 9600 baud, NMEA output and 1Hz refresh rate.
The gps functionality to hold the quad in place did not work until I maxed out the bad and refresh rate (dramatic improvement going from 1Hz to 10Hz then big improvement going up to 112500 baud).
I believe this is because the GPS nav solution is looking for many point to create a track of movement. Fewer points causes the FC and in my case INAV solution to only see 1 point and since it cannot generate a track of movement, it does not recognize the movement. Before I had this issue identified, the quad would drift without stopping. As I found, it was important for my setup at least, to maximize the GPS hardware capabilities to that which the flight controller and software could handle.
Really like the Kakute F7, BN880 and the Tekko ESC – bought all because of reviews on your site – thanks again for the content.

Oscar 7th February 2021 - 9:11 pm

That’s good to hear and thank you for the feedback!

Shaun 3rd November 2020 - 3:35 pm

Can I ask please, how do you get the TX power (500Mw) from crossfire to display please in the OSD?

daniel 27th October 2020 - 5:04 am

hi there! great write up. so far i’ve got everything hooked up and in betaflight it shows the gps active. on my osd i get just zeros for LAT and LONG and it say zero satellites…

how long does the first warm up location thing take because i’ve tried going outside, sitting by the window, and for up to 2-4 minutes at a time at which point my quad starts yelling at me and i get worried about my vtx temp. if its just a matter of waiting longer i’ll go and add pit mode for this, but im wondering if ve done something wrong or missed something a long the way?


Arturo Sierra 8th September 2020 - 11:40 pm

Hello Friends

By today I have received 4 Beitian 220 GPS Modules from Banggood and guess what ……..None works properly , after few minutes they start to get REALLY HOT , I mean HOT and after a while they turn off , then I connect again and same thing happens ………alredy checked the voltage and is 5V , any help please ??

Christian 27th September 2022 - 1:52 pm

I also had the same problem. I returned mine and got a BN-180 GPS which works as desired. You could try to hook it up on 3.3V but as your post is 2 years old I figure you found a way.

Marcelo 21st August 2020 - 3:26 am

Hola Oscar
Gracias como siempre por el tutorial y por responder a nuestras preguntas.
Tengo una Taranis x9d y GPS Beitian BN-220.
Las coordenadas de lat y long del GPS en el OSD de las gafas son correctas, pero las coordenadas que me muestra en la pantalla de la radio están erradas.
Hay alguna manera de corregir el error en la Taranis?
Gracias y saludos!!

Fabrizio 21st June 2020 - 9:50 am

Ho Oscar, I have a big issue I can’t manage to solve. Got different bn 180 GPS modules on different rigs and they are consistently giving me very inaccurate positioning. Rth and GPS rescue work as they should, but I can’t trust coordinates.
Yesterday I had 16 satellites at arming point, checked accuracy by putting lat and long in Google Maps… Showed a position which is almost 9 km away from the real one…
Any suggestioni?

sachidanand bogra 10th May 2020 - 2:43 pm

I have a diatone f4 FC and GPS also gets 3d fix will it position hold like DJI m lite

Ryan gania 6th May 2020 - 4:23 pm

Can i just solder the Tx port only of the gps. I only have one uart and 2 rx only

K.C.Leung 16th January 2023 - 6:40 pm

No, you can’t. The FC sends some arguments to GPS modules for configuration at every boot time. Not only receive data.

Kyle 20th February 2020 - 10:48 pm


I have the Matek SAM-M8Q GPS and am hooking it up to the SuccessD 20×20 stack. Its wired correctly and the GPS blue light is indicating a 3D fix but i am unable to see the GPS information in betaflight. I have GPS on the correct uart but dont see the sat fix in betaflight. Any suggestions?


Luck Xrazowy 28th January 2020 - 7:23 pm

Is it possible to use two different GPS sensors located in two different places on the quad frame and connected to 2 different UARTS simultaneously?

Oscar 2nd February 2020 - 4:01 pm

No, only one.

trex450 20th January 2020 - 7:48 pm

hi oscar, thank you very much for your description. it works very well on my son’s eachine wizard x220hv. keep in mind to connect GPS exactly as described from oscar. that means for the eachne x220hv controller:

1.) use UART 3 (disconnect speedybee BT-Modul
2.) you have to exchange the blue and green wire from the original bn-220 connector. New on the side of the controller-connector: black, red, WHITE, GREEN

if you consider that, every thing works very well :-)

Ron Curry 21st October 2019 - 5:58 am

Oscar’s writeup is excellent and hits most everything you need to know. Having used a lot of these small and cheap gps modules over the years I’ll offer a few additional tips. First, don’t buy any gps unit unless it uses a genuine Ublox MN8n, MN8q, or M8030. As usual there are plenty of clones out there and none of them work very well. Second, size matters. Th UBLOX 8 series is amazingly good but the smaller the patch antenna on the gps the more trouble you’ll have locking on to enough satellites and staying locked on in less than optimal installations and conditions so buy he biggest one you have room to mount and make sure it’s a model with an “active” antenna and a SAW filter (filters out things like your vtx) Third, older gps units are no worth the hassle. The Ublox 6 series are terrible with small antenna and the 7 series aren’t much better. I know it’s hard but just throw them away. A new BN-880Q is only $12 on Banggood (it has a clone magnetometer (compass)) chip and the BN-880:is only $20. How much is your time worth? Fourth, the primary reasons a good, fully functional Ublox 8 based gps won’t lock on is , of course, signal blockage. Ideally, the antenna needs to have a clear view the horizon 360 degrees to be completely reliable . The other reason for not working well is being overloaded with RF from your vtx, telemetry, or Wi-Fi. As well, all your other electronics, including your esc, fc, cameras, etc generate an incredible amount of RF noise which can also overwhelm the GPS receiver front-end circuits preventing the very weak gps signals from being received. So, mount the gps as high and as far away from other electronics and wiring as possible.

FINALLY, like the rest of your electronics, the electronics in these gps units are fragile and easily damaged. Making things worse, the patch antenna used on these devices is, by necessity, mounted on ceramic substrate which is even more prone to damage. A crash, or dropping it prior to mounting it can easily create a micro fissure in the substrate that you may not even be able to see rendering it non-functional. As well, even a small scratch on the antenna will detune it and make the gps unreliable or unusable. In short, Unless the antenna is easily replaceable the gps will be useless or nearly so if the antenna is damaged in any way.

I know $12-$25 is more to some people than others but you’re likely putting a gps on your drone for the safe recovery of your drone in case of a failsafe. What good is it if you can’t rely on it? If it’s been dropped or crashed and no longer working well or intermittent then do yourself a favor and toss it in the trash and spend afew bucks and get a good one that works. If you’re not willing to do that then you should seriously consider saving weight and just leaving it off completely.

Good luck!
Ron Curry (Wingspinner)

tttre 22nd June 2019 - 2:03 am

My BN180 and Matek GPS looses satellites from nowhere, the satellites number drops from 18 to 4 in an instant… Has that happened to you?

Alex 18th June 2019 - 1:25 am

Is it possible to rotate the GPS, say if I install it with the arrow pointing to the right, can I shift the North 90° counter clockwise?

Oscar 27th June 2019 - 5:35 pm

rotation does not matter as long as the antenna is facing up

Jonas 17th June 2019 - 10:38 pm

I would like to hook up BN-180 with my Colibri Race controller. I did a custom BF 4.0 build to have RTH with F3 (removed blackbox and some Spektrum modules to have enough memory).

My question: Is the Rx on GPS side really needed to make it work? There is actually no data going from FC to GPS or is there? My UART2 only has Rx and no Tx and I would like to use that port so I wouldn’t have to solder too much.

Thanks for helping

Pelle 7th May 2019 - 9:34 pm

Hi Oscar!

Really awesome guides and tutorials. I was wondering how to connect a BN-880 to a kakute F7 board. (I’m thinking mainly about the compass-wire? It’says in your guide I should hook it up to an ic2 port.. what is that? :)

My guess is to solder the wire that says SCL (from the GPS) to the SCL on the F7 and same for SDA.
Many thanx in advance!

Tim 25th April 2019 - 9:15 am

Replying to York:
“In the begilling you wrote that position hold is possible with Betaflight. Can you tell me how I habe to do it and if it works with the bn-220 and an f4 fc? Any help would be appreciated.”

Yes I’m pretty sure you can’t. Technically Oscar didn’t explicitly say that altitude hold was possible in Betaflight, but it was definitely misleading. From the article: “For flight controller firmware that supports features like “Return to Home” or “Position Hold”, requires GPS module to work.”

iNav would be one solution for altitude hold functionality.

dave 18th April 2019 - 1:11 pm

there may be other options now with the TBS Evo Unify
here is a message from TBS.

“Another combination is Crossfire rx + TBS GPS via BST then Evo. TBS GPS is wired up to the BST port of Crossfire receiver, Crossfire is connected to EVO. ”

my thing is, the tbs gps is too large and weird.

i want to use a bn880 which has sda/scl pads, these would in theory wire up to the crossfire sda/scl pads.

but still waiting on their answer, which will probably be “only tbs gps supported” yarg.

anyone know if this BST-sda/scl would work with my idea? or is it a tbs proprietary protocol?

York 13th April 2019 - 6:24 pm

Hey Oscar,
In the begilling you wrote that position hold is possible with Betaflight. Can you tell me how I habe to do it and if it works with the bn-220 and an f4 fc?
Any help would be appreciated.

Nguyen Huynh Đuc 30th March 2019 - 7:46 am

Hello, I have a GPS M8N compact, can it work well on F7 kakute Fc? Thank you very much

James Wallo 27th March 2019 - 10:21 pm

Hello….I had trouble with my bn-220 always pointing the wrong direction to HOME. Well I understand that Betaflight uses the gyro to calculate home. Make sure that the drone is facing do NORTH when connecting battery. That seems to fix my problem.

Hakan 22nd March 2019 - 5:01 pm

Hi Oscar, I have NZ GPS. I know it is a very old one but I managed to get position with it on Inav. But I wish to use it with Betaflight for only GPS rescue mode.

Can you tell me which exact setting I should do?

I connect it to UART 4 and rx to tx / tx to rx
I chose 57600

Then on the configuration

Auto baud off
Auto Config on
Ground assitance auto
Mag Dec 0


Boris 18th March 2019 - 5:49 pm

Somebody knows know the difference between the BN-180 and the BN-180T?
Thanks to you all

Mauricio Bridge 17th March 2019 - 9:11 pm

Hi Oscar, is this compatible with a Naza v2 GPS module?

Faruk TASAR 15th March 2019 - 9:19 pm

hi, can i use gps rescue mode without an compass hardware on a quad ?)

Oscar 21st March 2019 - 7:19 pm

Yes, you can. Rescue mode works without a compass.

EDUARDO 24th February 2019 - 6:41 pm

works like a charm… using NOXE F4, uart1, ublox, auto all else

Richard 15th February 2019 - 3:56 am

What are your thoughts to mounting at a slight angle off the back?

Oscar 25th February 2019 - 4:20 pm

Should be fine as long as the GPS antenna is pointing upward.

6e0 22nd January 2019 - 12:36 pm

Hi from France Oscar,
how to have speed in Km/H like you ? on my OSD i’ve only “K”.
I can change it with U-center or by the CLI ?

best regards

Oscar 22nd January 2019 - 4:35 pm

try different OSD font :)

tom davis 12th January 2019 - 4:13 pm

I have a bn280 and it seems to be working well. 14-18 sats in my living room. but when i took it out to test gps failsafe my direction to home arrow was pointing in the wrong direction so I didn’t dare to test it. any idea what the issue might be?

Christopher F 12th January 2019 - 9:25 pm

Go back to previous BF firmware. I’m thinking newest version messed something up.

Curtis 1st January 2019 - 6:37 pm

I have followed these directions to the letter and the GPS icon in betaflight remains grayed out and the GPS tab shows that it’s waiting for data with all other information blank. I left it overnight with the GPS adjacent to a window. Both lights are flashing and as I understood it, the flashing blue LED indicated it was communicating with the flight controller (Omnibus F4 Pro V3) along with the red LED which I understood to mean that it had aligned as was tracking satellites. I’ve adjusted baud rate and swapped between UBLOX and NMEA with no luck. Any other ideas to try that might help me narrow the problem?

Oscar 10th January 2019 - 2:55 pm

Try it outdoor, maybe your location just aren’t receiving strong enough signals from the satellites.

Soumil Arora 7th October 2023 - 7:40 pm

I have the same problem (my configuration is a M80 Pro GPS with a Speedybee F4 / F7 FC (none worked as of now)
I have tried UBLOX, NMEA, with auto baud and manual baud of 57600 as well as 115200.
Magnetometer works as expected over I2C, and I get some encrypted data when I use gpspassthrough in CLI tab, which means the communication is happening over that UART as well and my connections are correct
Still I’ve tried reversing the connections on hardware
tried every permutation combination of the above, still no luck
and yes when I power my GPS on, it has a solid green LED, but if I keep it near the window for sometime, or outside in an open field, it starts blinking slowly (probably indicating a GPS fix), but none is visible in betaflight
I use betaflight 4.4

S2K 12th December 2018 - 1:58 pm

Hi Oscar,
My quad has matek F405, receiver is R-XSR. GPS is BN-180.
Telemetry settings was done, and work well.
I use Taranis Qx7,Telemetry data is displayed OK.
But after logging, I checked data, Altitude data(maybe GAlt(m)) value is incorrect.
Over 10,000m displayed!!. Do you have any idea?

Julien G 23rd November 2018 - 8:49 pm

Hi Oscar,
I connect the BN220 to my KakuteF4AIOV2 and try different configuration in Betaflight but the GPS indicator never light up at the top of Betaflight. The only thing happening is the blue LED of the GPS that blinks … Do you know if there is something I could try to make it work ?

Oscar 8th December 2018 - 2:24 pm

If you are following my tutorial exactly, the only suggestion i can give you is to try this in a more open area, with clear sky. I sometimes don’t get any sats either when clouds are thick and I am indoor.
But I am not ruling out a faulty GPS module that you might have.

Stanislovas Stankunas 1st February 2019 - 6:31 pm

The same to me, just FC is omnibus V4. BF 3.5.5
I made soft serial port to 5 and 6 motors.

Stanislovas Stankunas 3rd February 2019 - 10:16 pm

Hi, after some changes:
GPS module connected to uart 3 and smart audio moved to Soft serial 1. Everything works. I don’t know why gps did’t wanted work in soft serial.

Michael Ellicott 19th November 2018 - 10:57 pm

two different BN-220 modules will not acquire any sats, on two different fc’s it is registered in betaflight , tried all baud rates, tried different uarts, each has been configured in ports, its working fine in u center, any ideas, i have since put a big gps unit on board and works fine, any ideas

Mark Pfeifer 3rd November 2018 - 2:26 pm

Hi Oscar

Thanks for the great tutorial, the RTH worked the first time I tried it. So cool! Is there any way you know to synch up the betaglight/crossfire combo to interface with an androud GPS Tracking app like Pilot so you can visually track the quad’s route (and have that data stored if the quad goes down)? I have used Dragonlink in the past and it had a way to do this.

Dustin MacFall 2nd November 2018 - 11:48 pm

Using Betaflight. Gps works great, except altitude reads over 600 meters, standing in my backyard. That might be “above sea level”? I thought it zero out each time it armed. How to zero out gps altitude. Barometer off btw. Same problem with it on tho. Can I use on board Barometer instead of gps altitude? Thanks.

Oscar 6th November 2018 - 1:00 pm

yea use Barometer if you have one. GPS altitude measurement can be off sometimes.

Jeff 3rd February 2019 - 9:24 pm

When GPS gets a lock, the OSD switches to show GPS altitude. Is there a way to just keep barometer altitude?

James 13th October 2018 - 11:11 am

Just installed as you instructed and my bn220 will not pick up and satellites. The red led will not light up and won’t flash after 20 mins of waiting to find satellites on a clear day! And ideas!

Many thanks

Oscar 23rd October 2018 - 4:42 pm

it can sometimes take a long time depends on how many sats your GPS can see, leave it 10 to 20 mins.

Red 12th October 2018 - 11:39 pm

Hi Oscar, got the bn-220, fires up but never sees a single satellite. Instruction say default nmea. If I use that the betaflight doesn’t show any GPS connected. If set back to ublox I get GPS show and no sats. Any ideas what going on?

Oscar 23rd October 2018 - 4:36 pm

were you outdoor when testing? You might need a laptop for that :) You can also run into problem in cloudy/rainy days, so try to do this under a clear sky :)
Or move the board as close to a window as possible if you can’t do it outdoor.
With the BN220 only UBLOX works for me so try that one :)

Steph 22nd September 2018 - 10:27 pm

“Another thing you can do is to use your Taranis to log the real-time coordinates via Telemetry (SmartPort or Crossfire). If you crash, you have the last known position of your aircraft.”

I don’t understand this one ? My GPS is connected to TX3 RX3, Do I need to connect my TX to smartPort ? What if I’m already using smartport ?

Attila Kovacs 10th September 2018 - 10:01 am

Hi Oscar
Have done all of the above and everything is working in betaflight with 12sats sometimes more and with a good fix.The problem i am having is when i enable GPS rescue the quad just drops.
Any ideas??

Zac Johnson 15th September 2018 - 2:11 pm

try this guys setup guide

Michael Ellicott 29th October 2018 - 5:33 pm

in some versions of betaflight set as default, if your craft is closer to you than 100mtrs, the craft will DROP ! not even sure if this setting can be changed in CLi

Steve 25th January 2019 - 2:06 am

Turn sanity checks off they might save you an esc but they will cost you a quad.

Hs293Go 22nd August 2018 - 11:06 pm

Beitian GPS modules are very cost-effective and work well with GPS-based functions in Betaflight. But here’s a word of caution from an Ardupilot user: BE CAREFUL WHEN USING BEITIAN MODULES FOR WAYPOINT NAVIGATION / AUTO MODES.

Beitian modules work perfectly in ideal conditions, but are substantially less fault-tolerant; positioning accuracy quickly drops off if the sky is slightly cloudy.

kev 19th August 2018 - 11:25 am

Hi Oscar
thanks for the review, from what you said is the BN-220 not worth adding to a F3 flight controller at all ?
I know in Betaflight they have removed a lot of things now for F3 but is it just the fail safe GPS features they have removed ? would it still be possible to get the Long and Lat going to the Taranis or is that feature gone too. also all the OSD stuff…
OR for the full features to work on F3 Fc (such as full OSD, all the tarais stuff and fail safe stuff,)what version of betaflight would be needed, you say it’s been removed since betaflight 3.2 so would 3.2 be ok or an even lower version,
Many thanks and keep up these great reviews

Oscar 20th August 2018 - 6:28 pm

GPS feature is removed in F3 in the latest BF firmware. Maybe leave it until you get an F4 or F7 FC.

Arnaud de smedt 18th August 2018 - 9:34 pm

The bn180 is smaller and also works fine

Matthew Earle 16th August 2018 - 6:02 am

I cant seem to get the GPS setup for the life of me. I have 4 different GPS modules and two different quads with different flight controllers and have the same issue. Betaflight will show GPS signal strength and number of Sats but will never get a fix. Just says GPS fix false even though i have 12+ sats listed.

If it Setup Serial Passthough in betaflight it connects to U-center fine (through the flight controller) and has a GPS fix. It does not seem to save any settings though in the configuration. I’m trying to use Beitian BN-180 and the UBLOX Micro M8N.

I only get the Sat strength showing up if i setup Baud to 9600 and NMEA as the protocol. Ublox protocol never seems to work and the auto baud doesn’t work either. I’ve tried every combo i can think of. I’m at my wits end and been working on this for two weeks.
Any help would be appreciated.

Oscar 20th August 2018 - 6:00 pm

As far as i know the BN180 doesn’t have flash memory so it won’t save any changes, that’s why i recommend the BN220 instead which works out of the box for me.

RaKr 15th August 2018 - 8:00 am

Hi Oscar,

is this Tan y Bwich Beach near Aberyswyth?


Artur 17th August 2018 - 7:09 pm

It’s a screenshot from one of my flight (ArtFPV), Balmedie – Scotland