Giter VIP home page Giter VIP logo

schielb-gps-sdr-sim's Introduction

schielb-gps-sdr-sim

Credit where it's due, all work in the osqzss-gps-sdr-sim folder is located at https://github.com/osqzss/gps-sdr-sim

This is just a repository that subtree's osqsss's work and adds scripting to it.

MAJOR SECURITY REQUIREMENT!!! READ THIS BEFORE COMMITTING/PUSHING ANYTHING!

In order to access the information on NASA's website, an account will need to be made. If you don't have an account, you can start the process very easily by clicking here.

Once you have a login and password, you need to create a new file in the main repository; this should be called '.netrc'. Copy the following line into it:

machine urs.earthdata.nasa.gov login <login> password <password>

And then replace <login> and <password> with your credentials. Once you have made it and saved it, make sure that this .netrc file is not going to be committed or pushed when you try to update the repository on your end. There is a line in the .gitignore that should accomplish this.

I'd highly recommend making a randomly-generated password and storing that in this .netrc file. Security on this password cannot be guaranteed (someone could always delete the line in the .gitignore file and hope you pull/push without realizing). The bad that can be done with this password is very limited (all data is publicly available, the government just keeps track of who is accessing what), but that doesn't mean that it's nothing.

BUILDING

You need to build the osqzss code. To do that, simply run the following from the main folder:

$ gcc osqzss-gps-sdr-sim/gpssim.c -lm -O3 -o osqzss-gps-sdr-sim/gps-sdr-sim

USAGE

Once you have created and filled in your .netrc file and built the osqzss code, you are ready to run the program. Here is the help dialog:

Usage: genAndRun [options]
Options:
  --help            Print this menu.

  --date <day year> Enter the day [1, 366] and year [1992, 2022] of
                    the data you want; keep in mind that the day '366' will
                    only work on a leap year. Typically this option is not
                    needed, as the default is the current date.

  --ll   <lat lon>  Enter the latitude [-90.0, 90.0] and longitude
                    [-180.0, 180.0] that you wish to simulate from. The
                    default location is at the BYU football stadium.

  --sdr  <radio>    Enter the type of software-defined radio hardware you
                    are using; currently only supports 'hackrf' (default)
                    and 'usrp'.

  --just <step>     If 'just' one step is desired, enter it here. Steps are:
                    'gen': gather a brdc file and generate the .bin
                    'run': run the current .bin on the desired sdr

This program can run both the generation of the sdr radio data and the application of the actual sdr. A look behind the scenes and all the different commands (if you would like to modify the script) can be found in the README in the osqzss-gpr-sdr-sim folder.

HARDWARE

Something like a smartphone might be too smart to get fooled by a spoofed GPS signal, so I had to get some dumber hardware.

Specifically I looked for a simple USB GPS antenna, a good and inexpensive one being the VK-162 G-Mouse here on Amazon. This will just plug into a computer and start uploading NMEA messages based on any GPS transmissions it receives. While these can simply be read on a terminal using something like sudo cat /dev/<usb port>, I used an open source python GPS gui, found at https://github.com/semuconsulting/PyGPSClient The instructions for installing and using this repository are on its readme. If you are using Windows, you can just use the u-center app here. Each of these should be able to automatically detect the G-mouse module, and you can start reading its NMEA messages and get a visual image of where you "are" in the world.

schielb-gps-sdr-sim's People

Contributors

schielb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.