Giter Club home page Giter Club logo

gr-opssat's Introduction

gr-opssat

Authors: Fischer Benjamin ([email protected]), Tom Mladenov ([email protected])

This repository contains documentation, and applications for receiving, demodulating, and decoding the UHF signal transmitted by the ESA OPS-SAT mission. It also contains a full graphical application for viewing and parsing the beacon frames transmitted by OPS-SAT.

https://opssat1.esoc.esa.int/ https://opssat1.esoc.esa.int/projects/amateur-radio-information-bulletin

https://www.esa.int/Our_Activities/Operations/OPS-SAT

Overview

UHF specifications

Can be found in docs/os-uhf-specs.pdf

Applications

  1. UHF receiver application (apps/os_uhf_rx.grc)
    1. Offset sampling
    2. Doppler compensation (with GPredict)
    3. Frequency shifting to baseband and downsampling
    4. Noise suppressor (Squelch)
    5. ZMQ sink
  2. OPS-SAT demodulator and decoder (apps/os_demod_decode.grc)
    1. ZMQ source
    2. GMSK demodulator
    3. Decoder
    4. Output: Payload frame
  3. OPS-SAT UHF Desktop (apps/desktop/main.py)
    1. Written in Python 3
    2. Uses a ZMQ subscriber to get data from GR flowgraph (apps/os-demod-decode.py)
    3. Parses, and views beacon content fields in engineering values

Dependencies

  1. UHF receiver application (os_uhf_rx.grc)
    1. https://github.com/wnagele/gr-gpredict-doppler
  2. OPS-SAT demodulator and decoder (os_demod_decode.grc)
    1. https://github.com/daniestevez/gr-satellites
  3. OPS-SAT UHF Desktop (apps/desktop/main.py)
    1. Python 3
    2. https://pypi.org/project/PyQt5/
    3. https://pypi.org/project/pyzmq/
    4. https://pypi.org/project/crccheck/
    5. https://pypi.org/project/numpy/

Recordings

Two recordings are included in the repository in the /recordings directory:

  • A strong beacon recording at 200ksps
  • A realistic beacon recording at 250ksps

Getting started

Install all dependencies for the grc flowgraphs and the GUI Desktop application. For initial testing purposes, you can unzip the beacon recordings in the folder 'recordings' and make the file source block in os_uhf_rx.grc point to the unzipped .cf32 file. The samplerate of the strong and weak beacon recordings are 200 ksps and 250ksps respectively so make sure in os_uhf_rx.grc this is the set samp_rate if using the recordings to feed the flowgraph. Regenerate the python code from gnuradio-companion.

Open the flowgraphs apps/os_uhf_rx.grc and apps/os_demod_decode.grc and run them from GNURadio Companion. You should now see PDU's being printed in the terminal of the demodulator application every 10 seconds.

To parse and view the beacon contents, the OPS-SAT desktop application can be started with:

python3 apps/desktop/main.py

It receives the RS decoded CSP packet + 4 byte CRC32-C over a ZMQ socket on localhost port 38211 to which it is subscribed. You should now see beacon frames being parsed and displayed:

screenshot

The raw packet history shows the received packets, CRC check status and CSP header information.

This application writes to 3 logfiles in apps/desktop/log:

  • One log contains the raw received hex data (raw.log)
  • The second log contains the parsed beacon telemetry (parsed_beacon.log)
  • The third log contains timestamped events generated by the application (gui_event.log)

The GUI desktop application does not need to be running for the system to operate, i.e. the receiver application and demodulator application can operatate standalone. The GUI desktop is merely meant for parsing and viewing AX100 beacon contents.

Operational usage with live reception

For operational usage, the device source blocks should be used instead of a file source block.

For usage with an RTL-SDR for example the following adaptions must be performed:

os_uhf_rx.grc:

  • disable the file source block
  • enable the RTL-SDR source block
  • bypass the throttle block
  • set samp_rate to 250k (resulted in best performance)

With higher samplerates/other SDRs it might be necessary to decrease the lowpass filter taps (increase the transition width) to avoid flowgraph congestion.

Make sure the ppm offset of your SDR are set correctly and that your system UTC time is correct.

Next configure the doppler correction in Gpredict:

  • Gpredict preferences -> interfaces -> add a 'Radio' interface with RX only settings and localhost port 4532.

When using the drop-down arrow in the main gpredict tracking interface and selecting 'Radio Control' you should see the following interface:

screenshot

Upon starting the GNURadio flowgraphs:

  • Set Downlink frequency to 437200000
  • Under 'Target' select OPSSAT and click 'Track'
  • Under 'Settings' select Device no 1 as the configured RX interface and click 'Engage'

screenshot

Once it is known which of the pre-assigned NORAD IDs of Arianespace launch VS23 belongs to OPS-SAT, the currently disabled telemetry forwarder block in os-demod-decode.grc can be used to forward telemetry to various servers such as SatnogsDB.

gr-opssat's People

Contributors

arcticspace avatar tommladenov avatar

Watchers

James Cloos 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.