Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 131 commits ahead of illarionov:master.


Failed to load latest commit information.
Latest commit message
Commit time


RTKLIB rtknavi port on android.


rtklib features:

  • Version pre 2.4.3b29d
  • GPS, GLONASS, Galileo, QZSS, BeiDou and SBAS Navigation systems
  • Single, DGPS/DGNSS, Kinematic, Static, Moving-Baseline, Fixed, PPP-Kinematic, PPP-Static and PPP-Fixed positioning modes.
  • RTK and PPP integer ambiguities resolution (PPP AR is experimental)
  • GNSS formats: RINEX 2.10,2.11,2.12 OBS/NAV/GNAV/HNAV/LNAV/QNAV, RINEX 3.00,3.01,3.02 OBS/NAV,RINEX 3.02 CLK,RTCM ver.2.3,RTCM ver.3.1 (with amendment 1-5), RTCM ver.3.2, BINEX, NTRIP 1.0, NMEA 0183, SP3-c, ANTEX 1.4, IONEX 1.0, NGS PCV and EMS 2.0.
  • Proprietary protocotols: NovAtel: OEM4/V/6,OEM3,OEMStar,Superstar II, Hemisphere: Eclipse,Crescent, u-blox: LEA-4T/5T/6T, SkyTraq: S1315F, JAVAD GRIL/GREIS, Furuno GW-10-II/III, NVS NV08C BINR, SiRF III/IV, and Trimble RT17.
  • TCP/IP, NTRIP, local log file
  • Support for multiple geoids (see explanation)

Android features:

  • Test mode for obtaining positions from internal GPS (without any RTKLIB function)
  • Bluetooth communication
  • Support for internal Trimble / Spectra Precision MobileMapper 50 internal receiver (U-Blox M8N)
  • USB OTG communication with speed/parity/stop configuration (ACM, PL2303 chips and alpha for FTDI chips)
  • SiRF IV protocol (experimental)
  • Show altitude in status view if Height/Geodetic is choosen
  • Send mock location to other applications if the checkbox is ticked in the solution option screen. (Not working yet with apps using Google Maps api)
  • Upload Log/Solution to Dropbox if Sync to Dropbox is ticked in the FileSettings screen. (the sync occurs after the stop of the server)
  • Ability to zip files before uploading to Dropbox for reducing the data volume.
  • Generate a GPX track (Output view/GPX Track tab)
  • Show UTM coordinates in solution view
  • Support for french Geoportail maps (cadastral parcels, roads and satellite) - needs api license key see src/gpsplus/rtkgps/geoportail/


  • Due to multiple issues (error in projection and lacks of features) Proj4J was removed and C lib proj4 was added
  • All conversion are done with proj4 5.1.0
  • French projections are done with IGN certified method, Lambert II extended is computed with IGN certified grid ntf_r93.gsb
  • One custom proj4 specification string can be specified (take care of exact syntax).
  • all standard proj4 formats and grids are included, all grids from are also included. In other words you have access to this external files: alaska, chenyx06etrs.gsb, conus, epsg,esri, esri.extra, FL, GL27, hawaii, IGNF, MD, nad27, nad83, ntf_r93.gsb, ntv1_can.dat, null, nzgd2kgrid0005.gsb, other.extra, proj_def.dat, prvi, stgeorge, strlnc, stpaul, TN, WI, WO, world, BETA2007.gsb, egm96_15.gtx
  • If you need another specific "free" or freely distributable grid or definition file, do not hesitate to drop me an email.


  • you can select different geoid model in "Solution Option"/Geoid model but except for embedded model (EGM96 1°x1°)

    After receiving some emails for asking me how to install the geoid model, I added a new menu "Tools" in this menu you can automatically download and install some geoid models. Take attention to the size! I think you may prefer to download this models via a Wifi connection rather than with your data plan!

    you will need to place the corresponding model in the RtkGps storage (probably /storage/sdcard0/RtkGps)
    the model format is RTKLIB dependent, check jni/RTKLIB/src/geoid.c
    the model file MUST be one of:


    for example if you want to use EGM2008 2.5'x2.5' model you need:

      1.  download from National Geospatial Intelligence Agency the model  
    			  on august 2014 file can be found   
      2.  extract the Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree_SE file and rename it EGM2008_M25.geoid (149Mo)   
      3.  place this model in RtkGps storage path (where all the trace and log go), on my tools it is /storage/sdcard0/RtkGps/

    for example if you want to use IGN RAF09 1.5'x2.5' model you need:

      1.  download from IGN wich is the french national geographical institute the model  
    			  on august 2014 file can be found   
      2.  rename it RAF09_M15x20.geoid    
      3.  place this model in RtkGps storage path (where all the trace and log go), on my tools it is /storage/sdcard0/RtkGps/

    if you do not have the correct model or if model is inconsistent it will not show an error, rather than it will use the EGM96 1°x1° embedded model or it use ellipsoidal height.

Precise ephemeris

If you need precise ephemeris you have 2 ways for using them:

  • Manualy: In the correction tab you select "File" and type SP3 , in the filename you put the filename of the file you provide in RtkGps directory (ending with .SP3)
  • Automatically: When the server is running, hit the "Tools" menu, here you have an option to download and inject automatically the latest ultra-rapid ephemeris from IGS or simply inject them if you already have the good file.

NTRIP Caster

This is highly experimental, but I embedded NTRIP Caster 0.1.5. It works but I'm not satisfied of the implementation. Because it cannot shutdown cleanly.

  • 1- because closing connections does not work at 100% (even in original soft), so thread do not end at 100%
  • 2- because by conception of the original Caster the end is not clean, it waits for Control-C for ending and ends with exit(1)!!!
  • 3- because Android lacks some pthread functions (ie: real pthread_cancel...)

So I locked the ability to stop the NTRIP Caster without closing RTKGPS+.
But if you want to test it works, on the first launch 2 files are created in RtkGps/ntripcaster/ ,you can edit them, But as is it works and can provide 3 streams:

(all three sources have rtkgps as password)

for using with the log streams you need to set them:

mountpoint: GNSSx
password: rtkgps (please change it)  

On your wifi network you can use your stream on:

(please change the login and the password) 

Building on Windows

Android is Unix so it is easier to build under an Unix system. Personnaly I use MacOSX but it can be done under Windows (tested under 8.1 x86_64).
You need a correctly installed ndk (under windows I use ndk-r9d), a correctly Installed ADT (I use x86_64-20140702).
Also you will need a working Cygwin installation with make, gcc-core gcc-c++ bash at least.
Define ANDOID_NDK and ANDROID_SDK variable to their correct paths, also add ANDROID_NDK path in PATH

copy RtkGps\jni\simonlynen_android_libs\lapack\jni\clapack\INCLUDE\*.h to:  

This is a workaround for the symlinks.
You also need to deactivate the use of lapack since it cannot be build under windows.
For that please modify RtkGps/jni/ and for removing LAPACK flag and clapck module import (with performance issues).
now under a cygwin terminal move to your RtkGps directory and build with ndk-build command.
Under Eclipse be sure that you do not set to build the native library since it fails.


Contributors are welcomed for translating RTKGPS+, the translation can be easily managed on Crowdin.
You can freely create a translator account and with it you will be able request for a new translation.
Today target languages are English, French, Spanish, Polish, German and Russian
Current translation to this target languages Crowdin
If you want this in your native language or if you want to contribute to one of the current translation, you are welcome.
I already made this translations:

  • English (source language)
  • French
  • Chinese (fully translated by Yong Zhang)
  • Spanish (I and Enoc Sanz Ablanedo)
  • Polish (fully translated by Tomasz Robak)
  • German (translated by Hagen Felix)


  • android > 4.0
  • Bluetooth or USB OTG GPS receiver supported by rtklib
  • Allow mock locations in your device developer settings (optional but required for sending mock locations)
  • A Dropbox account for uploading log/solution. (you will be asked for authorizing this app by Dropbox)
Download original version from Alexey Illarionov.

original version

Download alpha version (1.0apha23) from Google Play.


Google play

Binary distribution
  • the latest apk with Mobile Mapper 50 and proj4 5.1.0 wich is maybe very instable can be found in bin directory, but prefer the Google Play version
Beta distribution
  • the build 18 / 08 / 2018 (1.0alpha26) has been deployed as "BETA" on Google Play Store it is an open beta… If you want try it, but don't blame if it does not work. Ronan


Playing with rtklib on android







No releases published


No packages published


  • C++ 52.7%
  • C 22.7%
  • Java 17.3%
  • Shell 3.3%
  • Makefile 2.6%
  • CMake 0.6%
  • Other 0.8%