Low cost precision GPS

I am using this blog to document my work with RTKLIB and in the hope it may prove useful to anyone else trying to get started with this excellent open source program.

There is a mix of information here, some of which is intended for those just getting started with RTKLIB and other posts that might be of interest for more advanced users.  For those just getting started, I suggest clicking on “Getting Started” listed in the categories section part way down the right hand side on the main page.  This will bring up all the posts I have geared towards a new user.  Unfortunately the most recent posts appear at the top, so you will need to scroll to the bottom and work your way up.

I would be very interested in hearing about other similar work, so please leave a comment or send me an email at rtklibexplorer@gmail.com if you are working in this area or if you have anything to add to any of the posts.  My goal is also to document as completely as possible the work I have done, so if there is something I have skipped over that would be of interest to others, please let me know, and I will try to add a post.

All of the code changes and configuration files described in my posts are available in my Github repository.  The most recent executables are  available here and most of the data sets I reference in the blog are here.


I am happy to take a quick look at raw data at no charge if you are having trouble getting decent solutions or do my best to answer questions you have about RTKLIB or any of the material covered here. I interact with quite a few of my readers and enjoy being able to help out when I can.

If you are looking for help with a project involving a larger commitment of time I am also available on a consulting basis. My rates are reasonable as my primary goal is to find interesting projects to work on and continue to improve my understanding of precision GPS and RTKLIB.  I can help with data analysis, configuration optimization,  code customization, feature enhancements, tool development, training, or any other RTKLIB or low cost RTK related task and normally work on an hourly basis with a minimum of 10 hours.

You can contact me at rtklibexplorer@gmail.com

You can find more information about me at my linkedin page.


32 thoughts on “About”

  1. Hi, i am writing to thank you for all the guidance you have rendered to the RTKLib community. Unfortunately, i have a problem. I am trying to process PPPStatic and PPPFixed solution for a 12 hr static dataset collected with Ublox ZED-F9P, and EVK-M8T receivers. I haven’t been able to do so. I have tried everything i know. Still no solution. The loaction of the experiment is in the Northern europe latitudes.


    1. Hi Dalbert. The demo5 RTKLIB code should give you reasonable PPP solutions for both these receivers. I would suggest starting with the “f9p_ppp_kin.conf” config file available with the RTKLIB demo5_b34 executables and downloading one of my sample datasets from rtkexplorer.com first to practice with. Be aware that if you are trying to get a PPPFixed solution you will need to specify the rover location in the options menu since this solution mode is intended only to analyze the residuals, not to generate a position solution.


    2. Thanks. The problem as we later discovered was that PPPstatic was not really enabled in RTKlib version 2.4.3. It works pretty well in version 2.4.2. The Version 2.4.3 is unstable. Thanks for explaining that PPPFixed does output a *.pos solution except residuals (.stat). I will examine your demo codes.


  2. Hi Tim,

    Thank you very much for the nice work on GNSS!
    I am a graduate student working on GNSS, and I am interested in using the data for my research (e.g., publication) that you kindly shared on this website. Just wondering if there are any restrictions or requirements on the use of your data?

    Thank again!



  3. Hello

    I find this homepage great.
    I want to have a “receiver-antenna-raspberry” unit, wich deliver correct nmea data.
    On the raspberry should run rtkrcv. The raspberry connect via internet to an correction service
    Is there any possibility to show the status of the rtklib with an led on the outside of this unit? (eg fix or float)

    Liked by 1 person

    1. Hi Alejandro. It is easier for me to respond to an email rather than a phone call as it allows me to respond when I have the time. My email address is listed on the “About” page.


  4. I wrote a step by step intruction for RTKLIB with the neo-M8N.
    Maybe its helpful for someone:

    Did also quite extensive tests with an RTK & IMU system for measuring athletes velocities during short distance runs. Therefore i got some quite challenging Basestation and Rover rawdata, collected with the neo-M8N and two Tallysman antennas (3430 and 27xx). So if you are interested….

    Sadly i am very busy atm so cant follow your work in detail, but hope that i can catch up with it later this year.
    What i red so far is great work, keep on going!


    1. Thanks Runner. Your tutorial looks very good, especially since it includes instructions for real-time positioning which I have not done yet. I’ve added it to the list on my Resources page.

      I’d like to take a look at your data to if you can send it to me at rtklibexplorer@gmail.com. Let me know if it’s OK to share it in my data library.


    2. Would you please recheck the dropbox link. It seems to be broken.
      It is appreciated if you could re-upload the document as I am working on real-time positioning with RTKlib and currently struggling to get it work.
      Thanks in advance


  5. Hi,

    Thank you for reply.
    Yesterday after posting query I went through your previous posts. Got idea of settings but haven’t tried it out. I’ll try out and let you know the results. Coming to real time processing, my application is basically to capture the position in real time while vehicle is in move, that’s why I am using real time processing. Do you think it will work?

    – Bipin


  6. Hi,

    I am new to RTKLIB and facing some issue while using it. I am using ublox 7P modules for base station and for rover. I have configured modules only for RAW data & SFRBX data, all NMEA messages are disabled (assuming we dont need them for RTKLIB). Please refer the screen shots for RTKNAVI settings.
    The satellite visibility is good but still I am not getting accurate position. Please let me know if I am missing any settings or how can I improve the accuracy and stability.

    Screen shots—- https://drive.google.com/open?id=0B-qSVxcGlbkKbjJKSlN2bFoweWs

    Thanking you in advance.

    Bipin Aadaki


    1. Hi Bipin. From a quick look at your screen shots it looks like you are using PPP mode. Everything I have done is in differential mode (Static or Kinematic) so I can’t help you much. I’ve detailed my setup in my first few posts, you might see if you can duplicate those as a starting point. I’d also suggest starting out with post-processing rather than real-time solutions to simplify the process and make it easier to analyze.


  7. Hi,

    Thanks a lot. I have ordered two cgs kits and lets see how it fares. BTW would you mind being in touch. I can share my results with you perhaps for the broader understanding. If you would like just drom me a hello mail at ashish_2083(@)yahoo(dot)com



  8. Hi,

    Thanks a lot for reply. I got it now after reading your blog again. The results look really promising !! Thanks again

    Just one last opinion from you. Ublox has two variant M8N that you used and M8T. Both have the capability to throw raw gps data. Then what is the main difference between them in terms of Kinematics. Is it so that M8T is more accurate due to better Radio/Crystal ?

    Or is it just the marketing trick to brand same chip under precision brand (M8T)



    1. Hi Ashish. Since M8N does not officially support raw GPS data, there is nothing available from Ublox describing the differences between M8N and M8T. I did just come across some comments on the Emlib forum from Tomoji Takasu with his observations on the differences between the two. The biggest difference appears to be that GLONASS ambiguity resolution works on M8T but not on M8N.


  9. Hi,

    Actually, I dont wish to use Cors base stations data as you did to RTK with Ublox data.

    I think what you did as this estimate relative position of one ublox relative to cors base and same for other ublox. And then you subtracted
    Both the estimated position to get the circle. And you got perfect circle !

    However, my scenario is this: I dont wish to use any CORs type base station. The reason being I dont have any near to my place.

    So I want to capture raw data from one ublox and use to do RTK with raw data from second ublox using nav file from the first.

    I guess, this is a bit different from the demo 1. I am yet to receive eval kits from ublox. Before that I wanted to have an good opinion if this setup will work or not not worried about accuracy thought at the moment.

    And I consider you an exepert now after reading you blog. BTW its very very informative and help me to understand RTK Lib better


    1. Hi Ashsih. I did use CORS base data in one of my posts just to confirm I could get good results with the more traditional base/rover configuration. In that case I am using one of my recievers as rover and a CORS station as base. In all my other posts and analysis, I am using one of the moving receivers as base and the other as rover and not using a CORS station at all.

      I’m glad you find the blog useful. But, please don’t consider me an expert! I’m learning this as I go, and just sharing what I find. I’m sure I am making many mistakes … I’m just hoping the real experts will help out if they see any serious blunders.


  10. Hi,

    Very quick reply ! Thanks . However, my application is little different. What you have is a base station some where far away from the two rovers. However, I wish to make one of the neo block as base station and other neo block as rover keeping the distance between then at 30 to 50 cm. Using correction from one neo to to differential with other neo with out using any other central base as you have done in you demo. Do you this setup will yeild ?

    Thanks man !



    1. Hi Ashish. In my data, both receivers are fixed about 35 cm apart on top of a car that is moving. One of the receivers is used as base and the other as a rover … there is no stationary base. As the car moves, the distance between the two receivers stays constant but the orientation changes. This causes the solution to be a circle with a radius equal to the distance between the receivers. I believe this is exactly what you are looking for. The compass heading would just be the angle of the position.


  11. Thanks for this sites !
    The “how-to” spirit is what was missing to RTKLIB…
    I’m currently doing my first tests with an M8T under Linux (Ubuntu), so CLI only for me 😉

    So far I got very good results, with a base station nearby (2.5km). I’ll publish some data, but here is at least a tweet about my first test: https://twitter.com/cq94/status/714867234762584064
    Red = uncorrected track, Green = post-processed track… squares are 5x5cm
    The “fix” is on the right middle on the picture…


      1. Hi,

        I am new to RTK LIB or RTK for that matter. I need a very valuable insight from you. I don’t know if you have already addressed it in your blog (Pardon me for being a dummy)

        What I have is a rover and base separated by 30-40 odd cm and I wish to figure out the direction this setup is pointing to. Like a compass. Do you think this configuration might work ? Or this too short of a baseline to work with.


        1. Hi Ashish. Take a look at my demo1 results. The distance between the two receivers is about 35 cm (both are attached to the rover). I get very accurate results that could be used to generate quite precise compass headings.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: