Real-time GPS signal simulator for LimeSDR
Switch branches/tags
Nothing to show
Clone or download
Latest commit 5e90bcc Sep 8, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
libgamepad Update Jan 24, 2018
.gitattributes Initial commit Jan 9, 2018
LICENSE Initial commit Jan 9, 2018 Update Feb 10, 2018
brdc0350.18n Sample ephemeris file Feb 7, 2018
getopt.c Initial commit Jan 9, 2018
getopt.h Initial commit Jan 9, 2018
gpssim.c Add Linux support Feb 4, 2018
gpssim.h Initial commit Jan 9, 2018
limegps.c LimeSDR mini support Sep 8, 2018
limegps.h Add Linux support Feb 4, 2018
makefile Add Linux support Feb 4, 2018


Yet another crude experimental implimentation of gps-sdr-sim for real-time signal generation. The code works with LimeSDR and has been tested on Windows 10 and Ubuntu 17.10. The default TX antenna port is TX1_1.

Usage: limegps [options]
  -e <gps_nav>     RINEX navigation file for GPS ephemerides (required)
  -u <user_motion> User motion file (dynamic mode)
  -g <nmea_gga>    NMEA GGA stream (dynamic mode)
  -l <location>    Lat,Lon,Hgt (static mode) e.g. 35.274,137.014,100
  -t <date,time>   Scenario start time YYYY/MM/DD,hh:mm:ss
  -T <date,time>   Overwrite TOC and TOE to scenario start time
  -d <duration>    Duration [sec] (max: 86400)
  -a <rf_gain>     Normalized RF gain in [0.0 ... 1.0] (default: 0.1)
  -i               Interactive mode: North='w', South='s', East='d', West='a'
  -I               Disable ionospheric delay for spacecraft scenario

Build on Windows with Visual Studio

Follow the instructions at Lime Suite wiki page and install the Pothos SDR development environment.

  1. Start Visual Studio.
  2. Create an empty project for a console application.
  3. On the Solution Explorer at right, add the following files to the project:
  • limegps.c and limegps.h
  • gpssim.c and gpssim.h
  • getopt.c and getopt.h
  1. Add the path to the following folder in Configuration Properties -> C/C++ -> General -> Additional Include Directories:
  • PothosSDR/include for pthread.h and lime/LimeSuite.h
  1. Add the path to the following folder in Configuration Properties -> Linker -> General -> Additional Library Directories:
  • PothosSDR/lib for pthreadVC2.lib and LimeSuite.lib
  1. Specify the name of the additional libraries in Configuration Properties -> Linker -> Input -> Additional Dependencies:
  • pthreadVC2.lib
  • LimeSuite.lib
  1. Select Release in the Solution Configurations drop-down list.
  2. Select X64 in the Sofution Platforms drop-down list.
  3. Run Build -> Build Solution

After a successful build, you can find the executable in the x64/Release folder.

Build on Linux (Ubuntu 17.10)

  1. Install LimeSuite and all the MyriadRF drivers.
$ sudo add-apt-repository -y ppa:myriadrf/drivers
$ sudo apt-get update
$ sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
$ sudo apt-get install soapysdr soapysdr-module-lms7
  1. Clone and build LimeGPS.
$ git clone
$ cd LimeGPS
$ make
  1. Test the simulator.
$ ./LimeGPS -e brdc0350.18n


Copyright © 2018 Takuji Ebinuma
Distributed under the MIT License.