Spilling the Beans on RTK

posted in: GLONASS, GNSS, GPS | 11

If you’re unfamiliar with GNSS technology terms, you’ll want to read Tuesday’s post to bring you up to speed for today’s discussion. A key goal at the outset of this blog was to cut through sales jargon and technical jargon and give the ambitious roboticist the knowledge needed to build high quality autopilot systems.

Let’s jump right into the details and begin drawing some lines in the sand. Line in the sand #1:


There are 2 kinds of RTK GNSS Systems1:

  2. Everything else


Question: if you’re a farmer/surveyor, do you agree with the above statement? If you’re not a farmer or surveyor, or if you haven’t devoted hundreds of hours to RTK GNSS experimentation, you likely didn’t know it was that simple.

How Many Satellites Can You See?

Now, you likely know that the number of GNSS satellites varies wildly primarily on your longitude/latitude and secondarily on time.

Consider these screenshots (taken from this slick site) of the satellites (with an elevation mask of 10°) visible on April 19, 2017 at 8 representative cities across our planet:

GNSS Satellite Coverage Beijing China
GNSS Satellite Coverage Beijing China
GNSS Satellite Coverage Melbourne Australia
GNSS Satellite Coverage Melbourne Australia
GNSS Satellite Coverage Madrid Spain
GNSS Satellite Coverage Madrid Spain
GNSS Satellite Coverage Berlin Germany
GNSS Satellite Coverage Berlin Germany
GNSS Satellite Coverage Natal Brazil
GNSS Satellite Coverage Natal Brazil
GNSS Satellite Coverage Surgut Russia
GNSS Satellite Coverage Surgut Russia
GNSS Satellite Coverage Wales Alaska
GNSS Satellite Coverage Wales Alaska
GNSS Satellite Coverage Robertsdale Alabama
GNSS Satellite Coverage Robertsdale Alabama

If you don’t care to click on all 8 of the pictures above, here’s a chart summarizing the results:

Everyone gets GPS & GLONASS love: BDS is nice in the East.
Everyone gets GPS & GLONASS love: BeiDou is nice in the East.


The numbers above are fairly typical of what I’ve observed historically. While the number of satellites visible is the single best vector available to give you an idea of your chances of achieving a robust RTK solution, you have to know there are other significant caveats. Let’s illustrate with a couple of highly technical graphs:


GPS GLONASS Satellites Not Equal
GPS and GLONASS satellites do not perform identically
GPS Satellites Not Equal
Individual satellites within a constellation do not perform identically

If you doubt the graphs above, just review the wikipedia list of GPS satellites and compare the specs of the oldest operational GPS satellite (USA-132 launched 1997) with the most recent GPS satellite (USA-266 launched 2016).

Some satellites are more reliable than others, sometimes a satellite gives an invalid reading. A good GPS receiver makes it’s money by quietly taking care of all this (and a lot more) and kindly giving you ultra-precise location readings several times a second.

For 20 years the big boys (Trimble, Novatel, Leica, etc) have been shooting fish in a barrel
For 20 years the big boys (Trimble, Novatel, Leica, etc) have been shooting fish in a barrel

Please Get To The Point

We’ve barely scratched the surface of an introduction to RTK GPS technology. It’s wonderfully fascinating stuff that’s quite complicated. It turns out that over the past 20 or so years, a handful of manufacturers (Trimble, Novatel and Leica are the big ones) have figured out RTK L1/L2 and have managed to keep prices of the components (primarily the receiver boards and the antennas) incredibly high for the small quantity customer. When I say “incredibly high”, common prices I’ve heard for an L1/L2 GPS/GLONASS board are ~$3000 and L1/L2 antenna prices are typically ~$1000. Yeah, you read that right, and consider this: for an RTK setup, you’ll need 2 receivers and 2 antennas. Good luck building that setup with components from the big boys for much less than $10k.

Here’s another frustrating part: it’s like pulling teeth to get one of these guys to give you a price for their stuff — it’s almost like they’re uninterested in doing business with anyone who is not an S&P 500 manufacturer. Do you think I’m overstating this odd lack of price information? Here’s a challenge: find 1 URL where either Trimble or Novatel or Leica lists the price ANY L1/L2 GPS/GLONASS receiver or antenna and allows you to purchase said component for said price. Go ahead, find their prices and post them to the comment section.

Eventually it becomes apparent who graduated magnu cum lade from the De Beers School of Diamond Pricing. Fortunately, in the last few years, with the robotics revolution taking off and taking over, increased demand for high-precision & robust RTK has wrought wonders in the market. Let us now cover the important players since I’ve never seen one article covering hardly any of the information we’re now disclosing:

Swift Navigation

Swift Navigation

My Swift Piksi: Great Expectations, Poor Performance
My Piksi set: for sale, make offer (don’t do it!)

If you google “rtk gps” and you don’t have AdBlock (does anyone actually not use Chrome with AdBlock?), you’ll likely see Swift Navigation sponsored near the top of results. Of course, what you’ve likely never seen is any kind of independent analysis of their RTK performance compared to a reputable system.

Back in 2015 I knew very little about GPS and made a huge blunder by purchasing their Piksi system. I should have heeded the warnings from users in their official forum, but I was itching for really accurate GPS, and no-one had written this guide we’re now presenting. Back then Swift employees would occasionally respond to complaints in the forum with some notion of wonderfully robust GPS upcoming in a software update. Of course, this was before I realized the near gospel truth that all future GNSS technological promises are maddeningly fickle.

For a long time I was bitter about wasting $1000 on a totally inept RTK system. But I have to give the Swift guys credit: they were one of the first companies trying to bring high precision GPS to individuals. I assume they employ smart people who were tasked with re-inventing the wheel. Trying to make L1 GPS RTK robust (on really limited hardware, at that) is probably a fool’s errand. Recently they’ve released a new L1/L2 GPS-only receiver that they market as “Hardware-ready for GLONASS…” Interpretation: GPS-only.

RTKLIB / Emlid



RTKLIB is a set of several open-source applications written by Tomoji Takasu that perform several RTK functions including generating an RTK position from 2 sets of raw GNSS observations (rover and base/corrections).

Emlid is a impressive Russian startup with really smart, focused people who have a history of delivering. Emlid, not having millions of VC funding to burn like Swift Navigation, realized that they could take a strong cheap processor (Intel Edison), couple it with a proven L1 GPS/GLONASS receiver capable of omitting raw data (uBlox M8T) and run RTKLIB to provide reasonable RTK results (I haven’t personally tested their product, but their community seems pleased) at a previously unheard-for-RTK price ($570 base/rover kit with antennas).



u-blox is a super-solid big Swiss company that makes the de facto standard L1 non-RTK GNSS receiver for drones. For ~$20USD you get an absurdly robust GPS with accuracy around 2 meters. When I say robust, I mean this: I can take a u-blox M8N receiver with a cheap antenna/ground plane inside my house (single story asphalt shingle roof) and if you overlay the results with google maps, it will generally approximate your location WITHIN THE HOUSE! If you guys are inclined to doubt this (I would be if I hadn’t tried it), I may have to recreate this test in a future write-up.

Recently, as u-blox saw an RTK market spring up using their M8T/M8N products with RTKLIB, they decided to jump in on the action. So, u-blox has rolled out their version of an L1 RTK receiver called the M8P. I have not yet used an M8P, but considering u-blox’s history of delivering unquestionably robust products, I assume the M8P is the most solid L1 RTK receiver selling in the hundred-dollar range.

If you think about u-blox and EMLID next to each-other, it’s hard to escape this idea: u-blox should acquire EMLID and dominate the L1 RTK market. u-blox is a reliable company with tons of cred and EMLID is a rags-to-riches startup with a quickly-increasing resume of accomplishments. When the average drone builder thinks of u-blox, they think of a great faceless product. EMLID is similar, but with a twist: in the drone community, EMLID has a face and they have serious goodwill. If the big guys at u-blox can iron out the geo-political nuances, an acquisition seems like a wonderful idea.

BDStar / Harxon / Unicorecomm

bdstar unicore harxon

If you’re heavily involved with RTK GNSS, you likely know about BDStar; otherwise, you’ve never heard of them. BDStar is a Chinese technology conglomerate that owns several companies that make proven products. Their two companies that matter for this discussion are Harxon (L1/L2 antennas) and Unicore (L1/L2 receivers).

Let’s start with what I haven’t personally used: Unicore L1/L2 receivers. A little story may be in order: back in my early days of RTK GNSS, I had trouble getting quotes for L1/L2 GNSS receivers from Unicore — considering that this mirrored my experience with the North American guys, I shelved communication with them and moved on. In the last few months, however, they’ve been more up front and I’ve got actual quotes for L1/L2 receivers. Specifically, the price I’ve seen for their UB352 (GPS/GLONASS L1/L2 RTK) board is between $450 and $600, depending on order quantity. All anecdotal evidence leads me to believe that Unicore makes a solid board on the level of Comnav/Novatel/Trimble. If you’re new to RTK, that price may seem expensive. If you’ve been on the RTK market for a few years, you realize that this price is an order of magnitude below where it was just a few years ago. The times they are a-changin.

Moving back to products I’ve personally used: Harxon antennas. Harxon has a well-earned solid reputation in the L1/L2 GNSS antenna community. They make a great antenna and they stand behind their product. You should be able to pick up a L1/L2 GPS/GLONASS antenna for around $200 — bump up the order quantity and you’ll get that price lower, of course.

Perhaps you’ll spare me the time to tell you a personal story about Harxon. I use one of their antennas (specifically the HX-GS481A) on one of our GNSS RTK base stations. At one point the antenna quit working: I’m inclined to believe it was a lightning strike because we get a lot of lightning hits, and the location of the antenna wasn’t shielded from a strike. I contacted Tilen, a sales rep at Harxon, and was really up front — explained the antenna quit working and that it was likely my fault. I really just hoped they would offer to do an inspection on the antenna and give me feedback so I could make future improvements. He promptly replied to my email, said to ship the antenna back to them, and they’d take a look. I shipped the antenna to China, and within 2 weeks they had delivered a brand new replacement to my front door. To wrap up the story, I haven’t heard if they’ve confirmed that it was a lightning strike, but the fact that they, at considerable expense, quickly shipped a replacement to me on an issue that was likely my fault was eye opening. I have never heard anyone have any other problem with a Harxon antenna, and I’ve only heard good reviews about doing business with them. If you’re looking to source proven L1/L2 GPS/GLONASS antennas from a company who’ll stand behind their products, you should seriously consider contacting Tilen at Harxon (sales@harxon.com).

ComNav Technology a la SinoGNSS

In our little foray into bringing that which is hidden into the light, we’ve saved the best for last: ComNav Technology / SinoGNSS. ComNav is a proven Chinese L1/L2 GNSS receiver manufacturer that operates under the SinoGNSS brand in the North American market. I’ll start by giving you the Cliffs Notes: ComNav’s K501g receiver is an absurdly good board at a market-changing price ($600-$900 last year in small quantity, unsure of current prices) that effectively solves RTK GNSS for off-road precision navigation applications.

Another personal story is in order. Regular readers know that I spent a decade writing software at NASA before venturing back home to the deep south and starting up a robotics and software shop. When I began working with outdoor navigation (you know, in the real world where trees, buildings, and powerlines exist), it quickly became clear that the L1 RTK systems marketed at that time were a joke. So, in a quest to get a reliable system, I started with the North American guys, with limited success mentioned above. Upon hearing about ComNav, I contacted their sales department and a guy named Andy quickly responded and without much wrangling, gave me a quote on L1/L2 GPS/GLONASS sample base/rover system for development (K501g receivers, antennas, wires, dev boards, USB adapters, etc). We’re talking about over $2k worth of components.  With much trepidation I wired the money to China, and to my great relief, within a few days the system showed up at my front door. Not long after that, I had configured the base & rover feeding into a Pixhawk autopilot, and the RTK results were seriously solid and reliable. If you’ve never seen one of these systems in action, it’s precision and resilience, even in tough conditions (trees, obstructions, etc), is something to behold. ComNav/SinoGNSS backed up every promise they made. You don’t have to be a S&P 500 company to get a fair quote from them — and they won’t harass you or pressure you to buy their products. If you’re looking to build the kind of system we’re building, you should consider dropping a line to Andy at ComNav (sales@comnavtech.com).

Wrapping Up

I knew when I started this blog that I’d have to write this article. I don’t like criticizing anyone and would have preferred to write without mentioning any companies in anything less than a flattering light. But here’s the rub with that approach: if this blog motivates you to get really involved in path-following outdoor robotics, you’ll soon want a strong performing RTK GPS. For whatever reason, I have not found ONE ARTICLE ANYWHERE ON THE ENTIRE INTERNET explaining what is presented above. Without this knowledge, you’re at the mercy of advertisers and salesmen — of course this is not the position you want to be in.

Our goal in this humble blog is to shine light on every important piece of knowledge you need to build a high quality, large-scale navigation robot. Today we took an important step: we began pulling back the veil of pricing secrecy and marketing jargon that has kept individual roboticists and small robotics companies from using world-class GPS technology.

Next time let’s get back to the Rover 2 build.

Sincerely yours,




1. Roby can’t overemphasize that he has no personal experience testing RTK systems outside the southeast USA — BDS looks very promising, Galileo may be good. The future of Galileo, as a European Union project, feels like a proxy bet on the future of the European Union — considering the events of the last few years (Greece/Brexit), it’s success may not be a foregone conclusion.

Follow Roby:

Latest posts from

11 Responses

  1. IMO a large part of robotics fans can avoid to spent 2k $ for a L1/L2 RTK system , as far as I know in 10km range from base the precision of a L1 RTK system like UBLOX M8P is very similar .
    The real difference is that with M8P you do not have raw gps datas .

    I bought the Drotek M8P and with 600 $ you have a light and fully Pixhawk integrated system with a 2 – 3 cm precision .

    I did not trust small companies but I trusted Ublox .

    • Thanks lucmaxi. I’ve loosely followed the Drotek guys and they seem to have a good reputation. Can you speak to the resilience of the M8P in difficult environments (tree canopy, buildings, etc)? Also, how about the RTK fix times and re-acquisition time after RTK loss?

  2. Hi Roby,
    Thank you so much for this fantastic article. I really enjoined reading it and found it most helpful.
    I was very nearly on the Trimble road, almost ready to place an order to them.

    I just must try the ComNav. May I ask, do you have any blogs or guides on using the K501g reviver with Ardupilot?

    Unfortunately whilst there is some documentation for other solutions, I see nothing for the ComNav.

    Best Regards

    • Hi Anthony!

      You’re in luck with Ardupilot because it rolls ComNav support (via Novatel commands) via the NOVA GPS driver (https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_GPS/AP_GPS_NOVA.cpp) That driver works great — big props to Michael Oborne from Australia (https://github.com/meee1).

      The way it works is this: ComNav was smart and their boards support the Novatel standard commands out of the box. Hardware-wise the k501g uses the standard 20pin 2.0mm connector (https://goo.gl/tCsglw) for serial input/output and the antenna connector is standard MCX — you’d use something like https://goo.gl/DBc5cD to connect it to a standard L1/L2 TNC antenna.

      Be advised: there is some configuration to get a board working as either a rover or a base. If enough people are interested, I may need to do a write-up on setting up the k501g start to finish. We’ve used Pixhawk/Ardupilot pretty extensively with the k501g (in difficult enviroment with highly obstructed views of the sky) I can tell you it’s a wonderfully robust and precise solution.

      If you go read the precision ag farmers and surveyors, they all rave about L1/L2 GPS/GLONASS RTK — there’s a reason for that — it’s absurdly awesome stuff.

      Here’s hoping you’re able to score a good board and report back the results!


  3. Thank you for posting very interesting info out there. It helps a lot.
    I have a question (and a doubt) about the real advantage of using two frequencies L1/L2 instead of the much cheaper systems using just L1 in terms of effective end results. Yes you might have a faster acquisition time, but does that really matter in most real applications to wait a couple of minutes before launching your drone or starting your automated tractor to mow grass during a few hours, or to make your ground durvey ? I’m being provocative here but I’d like to hear opposite arguments ?

    • Hi Hugues!

      If you’re flying a drone with an unobstructed view of the sky, you may get really good performance from the L1 RTK systems.

      On the other hand, we build outdoor precision navigation robots that have to contend with tall trees, buildings, powerlines, airplanes and flying squirrels. I’ve never seen any independent party post a review of an L1 RTK system reliably holding a fix in these kinds of conditions.

      Hey, regardless of whether the L1-only guys can make a robust solution, they’ve undoubtably made our life as roboticists better by disrupting the frothy market that the L1/L2 Big Boys had enjoyed for decades.

  4. Android’s gnssmeasurement class gives RTK on your phone alone [with connection to CORS]. Been waiting six months but still nothing developed yet! – nett cost to be $0 if you have a phone already.

    • Hi Glenn!

      I’d be impressed if a smart phone could approach u-blox M8N NON-RTK performance.

  5. Why? It is a radio wave. After 1500 waves the wave inverts if the PRN bit changes. At a particular epoch all we are identifying is
    1) – the millisecond interval a 1,000 bit PRN sequence is sent to give 1 millisecond accuracy (300 km)
    2) – the PRN bit that is current to give 1 microsecond accuracy (300 metre)
    3) – the particular wave in the 1,500 that represent the particular bit (ie the number of waves after the bit started) to give 1/15th of a nanosecond or 67 picosecond (20 cm accuracy)
    4) – alignment of the waveforms to give the point in the wave cycle which takes it down to 1 picosecond (3 mm).
    Then it is a matter of how good your errors have been identified and fixed in your calculation!
    Rather than 1 bit every 1500 waves wireless devices are utilizing phase changes 4 or 8 times in one single wave. Once a method is devised (say using 2 channels for one frequency, one 180° phase shifted) that id’s the actual wave when a bit changes we have cm accuracy.

  6. whoops maths is wrong, is 1/1.5th of a nanosecond or 666 picoseconds, giving 10 picoseconds for 3mm

Leave a Reply