The RTKLIB software package has an enormous amount of capability and flexibility. Between all of the different applications, the configuration parameters and input options, it is very powerful, but it can also be a little difficult to navigate at times. I get a lot of questions on how to do various tasks in RTKLIB so I thought it would be worth going over the available documentation as well as mentioning a couple of tips and tricks for finding information on some of the less documented features.
The first place to look is the official RTKLIB manual . It is well written and fairly thorough, at least in many parts. If you are using RTKLIB and have not been through the manual recently (or have never read it), it is well worth going back and taking another look. Almost every time I go back to it, I find some detail I have missed in the past, not because it is difficult to find, but just because there is so much information in there. Especially when using the GUI apps there is a tendency to think the manual is not necessary since everything should be intuitive, but in this case there are many features that are not so obvious. For example, at least to me, it is not overly intuitive that the tiny little unlabeled square (the RTK Monitor Window) above the Start/Stop button in the image below is one of the most important buttons in RTKNAVI and will give you access to up to 35 different windows of useful information.
Here is an image of a few of the various monitor windows I frequently find useful.
Click on a few more of the small inconspicuous triangles, squares and rectangles on the RTKNAVI, and you can change the solution coordinates to pitch/yaw, open up sky views for the base and rover, open up a baseline compass heading plot, and many other things. If you haven’t read the manual, it’s easy to miss some of these options.
Unfortunately, although the manual has lots of useful information, both for the command line and GUI apps, it has not been updated in six years, so some of the newer features are not included.
This is especially true for the linux command line apps like STR2STR and RTKRCV. One tip for getting more up to date information for any of the command line apps is to use the embedded help messages, since, for the most part, these have been kept up to date. For example, let’s first look in the manual at the stream options and command line options for the STR2STR app. We find that there are 6 stream options and 13 command line options listed.
Now let’s bring up the embedded help message in STR2STR by typing “str2str -h” and we get the following:
Notice that the number of stream options has increased from 6 to 8 and the number of command line options from 13 to 24. This is a significant number of additional options to work with!
Another thing to be aware of is that all of the RTKLIB apps are using a common core code, and for the most part it is only the user interfaces that are different. This means that if a feature is available in one app, say for example RTKNAVI, then it is very likely also available in another app, say RTKRCV. It may just be harder to find information on how to enable it there. However, if you know what you are looking for, and you know that it’s most likely there somewhere, then this usually makes it easier to find.
Another resource that can be helpful is this post I wrote a while back which includes description of most of the additional features I have added to the demo5 version of RTKLIB to optimize it for low cost receivers, as well as additional information on all of the previously existing config parameters that I typically find useful to modify. This post is not guaranteed to be fully up to date but I do try and update it with new information as I add new features to the demo5 code.
The above resources will be enough to answer many questions but sometimes they will not be enough and you will need to dig a little deeper. The next step is to look at the source code which is available on Github, both for the official and the demo5 versions of RTKLIB. The first place to look is the “options.c” file as it lists all of the supported input configuration parameters as well as their valid input values in a format that is easy to read. Here is the beginning of the tables of valid option values and parameters.
Going through these tables, I found about a dozen parameters in the official code that are not mentioned in the manual and a few more in the demo5 code that are not mentioned in my documentation.
If you still need more information, the next level is to look at the top-level source file for each app. For example in the “rnx2rtkp.c” file you will find the help menu listed at the top and then in the main() function lower down you will see where the options are actually parsed. This should answer most questions. You can go even deeper into the code if you have to, but I will warn you, things do get a bit more challenging once you get to the next layer.
The last tip that I can offer is that I have written about a number of RTKLIB features in my posts over the last few years, so using the search window at the top right corner of this page will occasionally bring up some useful information.
Anyway, hope at least some of this is helpful to those of you trying to learn a little bit more about some of RTKLIB’s less well documented features.