Spilling the Beans on RTK

posted in: GLONASS, GNSS, GPS | 40

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 visible 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 laude 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!)

Please see Swift Navigation update below (May 3, 2017)

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).

May 24, 2017 update: Check out the new post describing K501G configuration

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.


Swift Navigation Update (May 3, 2017)

Swift Navigation contacted me the day this article was published and offered a complete refund for the Piksi purchase. Additionally they apologized for my experience with the Piksi. This was a super classy move, especially considering that we were really tough on them in this article. I want to state again: the engineers at Swift are attempting to solve a huge problem (of course, precision positioning is already solved by Novatel, Trimble, etc — but Swift seems unique in acknowledging that small-time robot builders exist). If Swift is able to build a product that can hang with ComNav or Novatel, I will likely write so many articles extolling their praises that you guys will get sick of reading about them.

Follow Roby:

Latest posts from

40 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?

      • lucmaxi

        I do not have anymore the Drotek RTk since I deliver the multirotor to my customer.
        Anyway since I have started a project for an autonomous mower I will have to deal with trees canopy .

        The solution for difficult environments IMO would be to adopt a second GPS with dead reckoning features.
        Ublox recently introduce M8U with UDR , untethered dead reckoning

  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!


      • Stephen Gloor

        Hi Roby – I have been trying to integrate a K708 from CommNav without much success. What was the config string you used for the K501 and which comm port did you use? Any assistance would be appreciated.

        • Hi Stephen!

          I’m really excited that a man with a K708 has found this blog — I’ve been wanting an independent review of the higher-end boards.

          OK, first things first — how far have you made it configuring the K708? Do you have a dev kit for easily hooking it up to a computer? Have you had success with the “Compass Receiver Utility” software?

          The K501 has 3 ports — I believe that any of them can be used for configuring — but you have to instruct the board to put the respective port in “configuration” mode (as opposed to “receive corrections” mode or “output PVT” mode) — Hey, these 3 modes are just what I’m calling them — don’t have the docs in front of me. Of course, to be able to send commands to the board, you have to successfully establish connection on one of the ports (this involved getting the baud rate right: TIP — commit to a baud rate, ANY BAUD RATE (perhaps 115200), and set THAT SAME BAUD RATE for all ports on the board — this will save you much headache unless you just magically remember all 3 ports and their respective baud rates).

          Let’s follow up and get the K708 running — I think with a little troubleshooting we’ll get it.

          • Stephen Gloor

            I have the dev board and we have it working with compass however cannot get it to talk to the pixhawk with Novotel. I got it working out of the dev board with an rs232 level shifter however nothing straight from board to the controller.

            I used the config string from the driver code.

            Think we have a signal conditioning problem or the board is fried.

  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

  7. Have you looked into the Tersus GNSS start-up?

    They are triple constellation and may be worth checking out.


    • Matt,

      You’re going to get me in more trouble. When writing up this article, I thought about sharing my experience with Tersus, but barely vetoed it and decided to let it go unless someone asked.

      Since you asked (and since they advertise targeting hobbyists), here’s my not-great experience:

      Short Answer: Tersus Ghosted Roby

      Long Answer:
      Placed order for their “Precis-BX305” system on May 30, 2016. Tersus sent an email saying they would ship my order June 10, 2016. Roby doesn’t hear from Tersus for 4+ weeks, so he sends multiple emails asking what’s up, and asking to cancel order — silence from Tersus. July 11, Roby disputes charge on Credit Card and cancels order — Tersus folks quickly call and ask me to reconsider, but at this point trust was gone. Roby loses no money, just a little headache.


      Here are some largely unsubstantiated thoughts about Tersus:

      It appears that Tersus is using the Unicore board. Actually, I’m quite sure of that, everything hereafter is increasing levels of speculation. So Tersus (a tiny startup — I’d be shocked if they’ve got more than a few folks) saw the same thing Emlid and Drotek saw back in 2015/2016 and they decided to try to be Emlid for the L1/L2 market. So somehow they thought they had a deal with Unicore to buy boards outputting raw L1/L2 measurements (Unicore agreed to sell the boards for fairly cheap with raw measurements but WITHOUT Unicore’s proprietary RTK algorithm — Unicore knows how hard it is to get a stable RTK algorithm, and they knew Tersus wouldn’t be actual competition for a long time). So, Tersus thought they had Unicore’s boards and they thought that they’d make a few tweaks to RTKLib and have something they could claim as L1/L2 RTK. But…somewhere in that whole string of events something went wrong for Tersus, and they couldn’t deliver what they’d marketed.


      I had decided to hold off on mentioning them (unless asked) because I feel for those guys. They probably make 1/10 $$ what you and I do and they probably are working 80 hours a week. I respect anyone who’s actually trying to innovate — on that level I respect the Swift guys too. If either Tersus or Swift ever deliver a board that will hang with ComNav, I will shout their praises from the rooftops.

      One more thing: if any Tersus folks are reading this and would like to dispute/clarify anything I’ve said, just reply in the comments and I will publish your reply VERBATIM. I respect what you guys are trying to do and hope you can accomplish it.


      • Interesting indeed, a little communication goes along way. I have self-teaching OEM board integration in spare time utilizing the Hemisphere boards, I really like their Athena engine but the product is not at the lowest price point nor designed (entirely) in China.

      • Hi Roby, this is Nick Zhu from Tersus GNSS Inc. I found this article on DIY Drones.

        We’re very sorry about your case. Tersus did face the some problem at that time, which cased the delay for your order. We are always in a responsible manner to our clients and must delivery the qualified products, which can pass all our tests.

        I fell sorry for the unacceptable manner that our sales department couldn’t reply your email in time. Please accept my apologize.

        We are trying to innovate. Facing a lot of technical issues and solving problems is our daily work. Our mission is to share our achievement in GNSS technology with more users. It is a long and a tough way, but we chose to go and we must go.

        I have some knowledge about GNSS. If you don’t mind, please drop me an email or add me on Linkedin. Hope we can share experience with each other.


  8. Hey Roby,

    Great intro to commercial RTK systems for the beginner! Anyone wanting to learn this stuff would burn hours upon hours of internet research and still not get good answers. Bravo!

    I can comment on my experience with Emlid Reach RTK. I decided to go with them because the price is reasonable, Intel Edison running RTKLIB is impressive, on board IMU, built-in Wifi/BT. I have been very pleased with the online forum community and the support from Emlid developers answering questions.

    Am currently testing a Reach rover unit receiving TCP corrections from a CORS ~ 15 km away. I was able to get fixed solution with 6 – 8 sats last night in my yard which is not an open field. With no additional hardware, it can pull the TCP corrections down from home wifi or a mobile hotspot. I haven’t tried this yet, but they claim that the included USB OTG can power a cellular modem for portable applications. I really like being able to connect into the Reach with its own Wifi network so any phone, tablet, etc can see it.

    I have one negative thing to say about Emlid’s Reach so far. They promote the on-board IMU on the website and one would assume this would work out of the box. But it does not, or at least not easily. They are planning to develop output of the IMU data in the App in the future. But right now, it requires a hack to get to that data. They really need to do better on that if they are going to advertise it.

    For just under $300 and a public CORS correction, its a pretty good option IMO.

    • Thanks Golfman! Hey, I hope you’ll keep us posted on the Reach evaluation — impressed you got a fix at 15km baseline with L1.

    • One problem with the Reach approach is the Edison is export restricted. So wherever you want to take/ship your system you need permission from the ITAR folks in the US.

    • Tom — Great info!

  9. stylusc84

    Hello! Very nice post, thanks for all the precious information’s. I’m at the point where I need to choose an RTK system for my USV. I like K501g option from ComNav ’cause it has L1/L2 frequencies. But I don’t know all the details to build a complete system. For sure I need a K501g and AT330 antenna to install on my USV which will be a rover. In RTK measurement I also need to have a corrections sent from a base to a rover. And here is my question: how? I see two options:
    1. I need second K501g with AT300 which will be base, connect that base to NTRIP system (in my country there is paid system ASG-EUPOS who send corrections via internet in RTCM 3.1 format) and then the base will exactly know where it is to subcentimeter precision. Then it could send corrections to the rover.
    2. I don’t need my own base station and I’m connecting my rover directly to NTRIP system and it receives corrections from NTRIP all the time.

    Are these two option possible? Which one are you using? I would like to know the details I mean how can I connect two K501g with each other (radio?) or how can i connect K501g with NTRIP system which requires internet.


    • Hi Tom! Thanks for stopping by & letting us know about your project! Let me fire off some quick thoughts that may help out:

      1. Are you using ArudPilot/Pixhawk for the autopilot? If so, everything just got a lot easier (at least for me to help ya’).

      2. If you tell Andy @ ComNav you need a dev board, cables, USB adapters, antenna, etc — he’ll make sure you get all the hardware you need.

      2.1 All you technically *need* is:
      A. K501g card
      B. L1/L2 GPS/GLONASS antenna
      C. a connection from the antenna to the card,
      D. A connection from the card’s 20 pin bank to your computer.

      3. Now, if you’re not familiar with this equipment, I just made you more frustrated by not giving pictures and human-friendly explanations. My commitement to you is to do a write-up on using the k501g within 10 days. Andy will advise you to buy a “dev board” for the K501g — you’re advised to pick this up as you’ll likely find this makes using the K501g easier for the beginner.

      4. I have no idea how reliable ASG-EUPOS corrections are. You may do fine using those. If you can afford it, I HIGHLY recommend picking up a second K501G (and a second antenna/dev board/etc) to use for corrections. MONEY SAVING TIP: tell Andy you want to buy a second K501G WITHOUT RTK — just outputting raw L1/L2 GPS/GLONASS observations @ 1HZ. I think you’ll find that he’ll make you a slick deal on that card.

      5. If you want to get really confused, just Google NTRIP and RTCM corrections formats and try to abstractly visualize what’s going on. Here’s an ACRONYMLESS explanation for how sending corrections from a “base” to a “rover” actually works:
      A. Read data from (that’s a RTCM 3 stream from Foley, Alabama, USA @ 1Hz (curious fact: the only web browser I’ve seen that’ll display that stream is IE — gracious, who woulda thought that?))
      B. Write data (from A) to your K501G’s corrections port

      Sorry if you wanted it to be more complicated than that, it’s just relaying a stream of data. Oh, ComNav gives you a Windows app (called “Compass Receiver Utility”) so that you just specfiy the URL from A and it routes the corrections to your card. Similar functionality exists in Mission Planner.

      6. I’ve used both public corrections and our own — I like using my own — no baseline and, well, I just seem to have great success with it.

      Ok, did that help out? This post has generated a good bit of discussion — I will be following up shortly with a “NO Experience with RTK – to – RTK Fix” tutorial for using the ComNav k501g.

      Keep us posted on your progress!


      • stylusc84

        Hello! Thanks for the detailed answer.
        1. Yes, I will be using pixhawk
        2. Now I see that there’s no support or any community for k501g board on the entire internet, for emild there is nice community. I’m thinking now of choosing emild reach kit, or reach rs + reach, but it is only L1. Will it be enough for me to use it on boat on lakes? Can you advice me if it is better to me: to choose commnav l1/l2 and spend a lot of time figuring it out and having l1/l2 or to buy cheaper emild which is plug&play but only has L1? What L1/L2 gives me comparing to only L1?
        2. Andy from CommNav suggests me to use two T300’s for rover and base, have you ever used them? I guess it will be much much more expensive solution.

        • Hi Tom!

          I hope you get that boat running and send us a link 🙂 A few more thoughts:

          1. I have *NO EXPERIENCE* on lakes. Signal “multipath” is the big enemy fighting GNSS. For land rovers, signal multipath usually comes from obstacles BETWEEN the antenna and the satellites in the sky. In contrast, for your application, the big source of signal mutlipath will likely be REFLECTION OFF THE WATER. So, the easiest solution for signal multipath for a water-bound rover is a BIG GROUND PLANE. Come to think of it, when you see GPS antennas on boats, they look like they’re 1 meter wide — I’m guessing that’s b/c they need a big ground plane (and the super expensive antennas use some version of a Choke Ring — “Choke Ring” sounds like a signature American Wrestling move, but it’s not).

          2. Unless you know that you need L1/L2 GNSS (for the reasons described above) — you may not need it. If I had to bet, I’d think that L1 GNSS RTK out on the water with a good antenna (antennas are very important) would likely be a good solution. Potential problem is distance from corrections source: L1/L2 systems often can go 50km from corrections source (this is called the “baseline”) — L1 systems may get 10km or 15km. AFAIK, the ComNav antennas are just rebranded Harxon antennas — as such, they are awesome.

          3. If I were you, I’d look into the M8P in addition to the Emlid (M8T) solution. The PixHawk community has a somewhat standard implementation of the M8P called Here+ (http://ardupilot.org/copter/docs/common-here-plus-gps.html).

          Out of curiosity, what kind of project are you doing that requires RTK out on the water?


          • stylusc84

            Thanks for your reply! I will do some research with local field surveyor’s if L1 will be enough for my purpose. One more important question to you: Is it possible to easily integrate a 3rd party RTK equipment for example Trimble RTK GNSS with pixhawk? Emild’s for it’s reach provides a library to do that, Here+ with M8P is already integrated with pixhawk but will it be hard to integrate trimble rtk receiver with pixhawk?
            Im doing an usv boat for lake’s surveying.


          • Tom,
            No idea about Trimble and Pixhawk. If you have access to a Trimble, of course, you’re a lucky man.

  10. Hi Roby,

    great article, really helping to open my eyes on this and more importantly show me how much i dont know!! 😉

    i’ve got a few questions and hoping you (or one of the lovelly readers here could help with).

    i have a 3dr Solo that i have updated with the M8P RTK GPS unit from Drotek, i havent got a base GPS yet because i’ve been trying to get one thats useable with another UAV i’m going to build, My original idea was to get the HERE+ RTK systems as i could use the base station from that with my solo or my second UAV using RTK injection with Mission Planner.

    If I was to go for two K501g boards, one set as rover on the second UAV, and one as the base station, would it (the base station) work with the M8P GPS on the 3dr Solo? either by sendding correction data for realtime correction or using it as a dataset for PPK?

    hope that make sense and thanks! :-/

    • Hi Alan!

      If I were you, and I had an M8P, I’d be looking to buy another M8P as a base station for testing RTK before making the jump up to L1/L2. If you’re up in the air, you may get a reliable RTK fix with a L1 multi-constellation system like the M8P.

      I hope to be able to test an M8P soon, but I have not yet tested them. Anecdotally, the M8P seems to be the best regarded L1 system.

      Looking at the M8P docs, they accept the standard “RTCM” correction messages — so, if you live close (say, within 10 km) to a public base station (in the USA there are many public stations: http://gpsworld.com/finally-a-list-of-public-rtk-base-stations-in-the-u-s/), and if you have a way to stream those corrections to your M8P, you might have success going that route.

      Does that help? Whichever way you go, I’d like to know if you have success with the M8P.


  11. Awesome post! Seriously, the best single source I have seen comparing “mass market” RTK. Your conclusions are right in line with my own year-long information quest (but for the grace of GOD, I too would have a pair of Piksi boards gathering dust).

    Thanks so much for introducing me to ComNav and BDStar family — those are intriguing solutions and new to me.

    We are now working on our first RTK real world app with the uBlox M8P. The module looks good but the C94-M8P eval board is turning out to be frustrating to integrate.

    Question for you, Roby: while the M8P used as a base station won’t “do” L1/L2, when used as a rover the firmware (as of version 3.01) does seem to support L1/L2 “RTK Observables” for both GPS and GLONASS in the RTCM input message. Does that seem plausible to you? REF: https://www.u-blox.com/sites/default/files/Addendum-HPG130_ProtocolSpec_%28UBX-16004304%29.pdf

    If M8P can “consume” L1/L2 resolution data — do you think it might be possible to construct a system with (say) a ComNav L1/L2 base board and antenna, providing L1/L2 correction to an M8P rover, and thereby deliver L1/L2 performance at a lower cost? Even when the rover’s hardware doesn’t “implement” L1/L2 itself? I realize I may be showing my ignorance here.

    Thanks again for sharing your hard work for our benefit!


    • Jeff,

      Thanks for stopping by! Hey, you should consider reaching out to Swift Navigation and asking for a refund. I think you may find that you’ll be $1000 richer without much headache 🙂

      Just briefly scanned those docs, and here’s my NON-RTCM-EXPERT interpretation of what that means: you can feed the M8P the standard L1/L2 RTCM3 stream and the M8P will take the information it needs from it (specifically, the L1 satellite information). In other words, u-blox is making your life easier — just give them the standard stream you can get from thousands of public base stations (see link in comment above for list public USA stations), and they’ll parse it and take the data they need.

      Now, if you find out that, in fact, the M8P somehow uses the L2 information to it’s advantage, by all means let us know! I’m really excited to try the M8P — bummed that you’re having headaches with the dev kit.

      Don’t feel bad, basically the only community of people who really know this stuff are Surveyors. We’re all just figuring out stuff those guys knew 10 years ago.

      Such is the life of a robot builder!


  12. Hi Roby,

    Thanks for the wonderful article, it’s really useful. I want to install an RTK GPS on a car for 3D mapping purposes and i need it to be as accurate as possible. I have budget of $2000- $2500 for two rovers. I want to use the public CORS network in my state using NTRIP protocol to save money and the headache of transferring correction over the Internet. The closest CORS station is 17 Km away, is that close or I shroud consider build my own station?. I have talked with SwiftNavi and they are still working on supporting RTCM on their Piksi Multi and as you said it only supports GPS for now. I contacted Tersus-GNSS too but after reading your experience, I do not want to do any business with them. U-blox seems very solid company but they only have L1 GPS receivers. Any recommendations?

    Many thanks


    • Hi Al!

      It all depends on how solid you want your RTK solution to be. If you’re in an open area, and if you don’t mind waiting a few extra minutes for RTK to initialize, then you may do fine with the M8P. Since writing this article, I’ve heard from several folks who have used the M8P and are very pleased with it (every day I fight an ENORMOUS TEMPTATION to buy the M8P eval kit: https://www.u-blox.com/en/product/c94-m8p).

      I’ve also recently had a chance to test the Emlid Reach, and it is far superior to the previous L1 RTK consumer solutions. As expected, both u-blox and Emlid continue to deliver.

      But keep in mind that no current L1 solution is anywhere near as robust as an L1/L2 solution. Specifically, just a few minutes ago I fired up the ComNav k501g IN MY HOUSE (asphalt shingle roof), and it held an RTK fix with +- 1cm variance for several minutes — overlaid the results with Google Maps and it was precisely showing the rover rolling around the house. I was so blown away that I had to get Mrs. Roby to come see the RTK results — she acted impressed but I don’t think she really cares.

      My point is this: you’ve got to figure out how robust of a RTK solution you want. You can build a legit L1/L2 GPS/GLONASS system for $2k or a legit L1 system for $500. Both of those options are massively cheaper than just a few years ago.

      As far as accuracy/precision: if you have a RTK fix, I think L1 solutions are just as precise as L1/L2 solutions. In other words, if you’re going to be in open areas where you’ll always have a fix, a L1-only solution would theoretically give you data just as precise as a L1/L2 solution.

      To your question about baseline: for L1/L2 17km is easy. For L1, that’s stretching the recommended limit.

      Best wishes with your project — once you get a good RTK system running, I think you’re going to hooked.

      Accuracy is addictive.


      • Hothaifa

        Hi Roby,
        Thanks for the information. I’m planning to test it in university campus, so, L1 is not very reliable solution for me. I’m planning to Integrate it with ROS too. I managed to secure $5000 for my GPS project for one GPS unit. Do you recommend any product that is not Chinese?


        • AFAIK most GNSS products are manufactured in China/Taiwan. I’m looking at a Garmin GA38 antenna as I write this and it’s made in Taiwan. Are you sure you only want 1 unit? I think you’ll find that having your own base station is a huge advantage. I don’t know what any of the North American distributors would quote presently for a L1/L2 GPS/GLONASS 10hz system (assuming 10hz is enough — you may want more if you’re driving in a car). If you do get quotes from these guys, I’d like to know what numbers you hear.

  13. Al Jones

    Another thank you for writing this. I have sent emails to Harxon and Comnavtech requesting quotes. I own Pixhawk 2, 3DR radios and Emlid Reach equipment, but have struggled to translate the available documentation into a working solution. Just using the web interface with Reach the performance seems to be 1 meter stability on a partially cloudy day so I’m hoping the K501G will do better. The rover is a 50 hp farm tractor.

    I noticed at http://deepsouthrobotics.com/2017/05/02/rover-2-photo-essay/ it appears you have 2 3DR radios. Can you explain where they are connected on the rover, base and GCS? (e.g. Do you have 2 on the rover, 1 on the GCS and 1 on the RTK base station?)

    • Hi Al!

      I’ve got good news and bad news:

      The bad news is that the k501g doesn’t have near the hobbyist community of the Emlid Reach. Actually, I think this single page is presently ComNav’s entire hobbyist community. However, I suspect that more folks will be relaying raving reviews like mine in the near future. The pearl that is ComNav will only stay hidden so long.

      The good news is that the k501g is not a hobbyist card. It’s a professional, robust L1/L2 GNSS card that will put tremendous pressure on Novatel/Trimble/Javad for the near-future L1/L2 RTK robotics market.

      ComNav does publish thorough documentation for the card (http://www.comnavtech.com/download.asp?bigclassid=27). If you’re not very familiar with RTK systems and terminology, you likely won’t find that documentation as approachable as you’d like. But, if you can spend the time to understand the documentation & the card, I think you’re going to be really impressed with the RTK results you’ll receive.

      I do use the 3DR radios for sending corrections from my base station to the rover. Basically, I’ve got one radio that’s dedicated just to receiving corrections from the base station, and then it relays the data along to the rover’s k501g card.

      I’m working on some really basic documentation for using the k501g in an autonomous rover application. Hope to publish soon. Included will be my base station setup — spoiler — it’s just a python script that reads data from a local k501g card and relays across the 3DR radios to the rover.

      Again, if you don’t have a lot of experience with RTK systems, there’s a lot of terminology (base stations, corrections, RTCM formats, etc) that can be cleared up with a good tutorial (with pictures) of setting up a base station & rover system. Hopefully we’ll get this tutorial published soon.


      • Andy at ComNav replied. $3,300 for 2 antennae, 2 K501G OEM boards and 2 interface boards.

Leave a Reply