Code Monkey home page Code Monkey logo

osnmapython's Introduction

Image property of EUSPA

OSNMA for Galileo Mass-Market GNSS Receivers1

Status

License

Python


OSNMA is one of Europe's Galileo coolest features: the authentication of GNSS Data. Devices such as Drones rely on having accurate not spoofed data, and as rapid as its market grows, as rapid grows the need of having anti-spoofing mechanisms. You can find that there are already spoofing detection mechanisms, but there is still no mechanism that can ensure GNSS data has not been altered for cheap mass-market standalone GNSS Receivers that does not rely on on-line authentication. OSNMA is the unique Galieo GNSS feature that allows any receiver to make sure the data it is receiving has not been altered. OSNMA is expected to be one extra layer of security that can work together with other anti-spoofing/anti-jamming techniques.

This library provides any user the means to implement OSNMA in mass market receivers that can be bought for really cheap -e.g., this NEO-M9N. Specifically, this library has been developed based on Ublox Receivers, altough its core can work for any GNSS receivers that can get Galileo I/NAV Pages.

Note: the work in this library is not related to ublox as a company, we only use their products as they are well-documented and cost-effective. UBLOX is a trademark of u-blox Holding AG.

๐Ÿ“š Applicable Documentation

The following documents have been used to prepare this library, although you can find related info in our /docs/ section.

For GALILEO's documentation, please find last issues on GSC site.

For UBLOX documentation, please find updated documents on their webpage

[RD-1] The European GNSS (Galileo) Open Service Navigation Message Authentication (OSNMA) User Interface Control Document for the Test Phase 
Short title: OSNMA User ICD for the Test Phase
Issue: 1.0
[RD-2]The European GNSS (Galileo) Open Service Signal-In-Space Interface Control Document
Short Title: OS SIS ICD
Issue: 2.0
[RD-3] NEO-M9N - Standard precision GNSS module - Integration manual
Short Title: NEO-M9N Integration Manual
Reference: UBX-19014286
Issue: R06
[RD-4]	The European GNSS (Galileo) Open Service Navigation Message Authentication
(OSNMA) Receiver Guidelines for the Test Phase
Short Title: OSNMA Receiver Guidelines for the Test Phase
Reference: N/A
Issue: 1.0
[RD-5]	The European GNSS (Galileo) Open Service Signal-In-Space Interface Control Document
Short title: OS SIS ICD
Reference: N/A
Issue: 2.0
[RD-6]	GNSS Data Processing Volume I: Fundamentals and Algorithms
Short title: OS SIS ICD
Reference: ESA TM-23
Available online on https://gssc.esa.int/navipedia/GNSS_Book/ESA_GNSS-Book_TM-23_Vol_I.pdf

๐Ÿ Getting Started

Make sure to download the word/pdf document in our ./docs folder and follow the Software Operations Manual Section!

Prerequisites

This could should work at for any python3. It has been tested for python 3.10.

The library uses several in-build librarys but the following external are needed:

  1. pyserial:
pip install pySerial  
  1. pyubx2:
pip install pyubx2 
  1. ecdsa:
pip install ecdsa 
  1. bitarray:
pip install bitarray 
  1. rich:
pip install rich 

Configuring the uBlox Receiver

Make sure to configure the uBlox receiver to ONLY output the SFBRX and Galileo from Ublox! See our Sofware Manual in /docs

Configuration

From mainHMI_Laptop.py, configure the parameters as indicated in the code, editing it with your favorite editor. This includes if you want to save the Received Data as well as the naming for the logs generated.

Launch

Execute the python script "mainHMI.py" and enjoy! You should be seeing logs and updates as per the following image:

โœ๏ธ Authors


1Cover image is property of EUSPA

osnmapython's People

Contributors

astromarc avatar

Stargazers

 avatar Philippe Kehl avatar Alex Lopez avatar  avatar  avatar  avatar

Watchers

James Cloos avatar Joan Ametller avatar  avatar  avatar  avatar

Forkers

phkehl

osnmapython's Issues

the time synchronization of OSNMA

This is an excellent project, and my confusion is that the prerequisite for OSNMA startup is time synchronization. Do you have a corresponding time reference in this project? Internal clock or external time?

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.