Code Monkey home page Code Monkey logo

gr-gpredict-doppler's Introduction

gr-gpredict-doppler

Python block that updates a GNU Radio variable with the absolute frequency as provided by Gpredict. This allows for Doppler shift corrected reception of satellite signals.

Installation

mkdir build
cd build
cmake ../
make
sudo make install

Note: If you are running MacPorts you might need to change the installation path. Use something like this: cmake -DCMAKE_INSTALL_PREFIX=/opt/local ../

License

Apache License, Version 2.0

Basics

The Gpredict Doppler block updates a variable that you define with the absolute center frequency including the current Doppler shift. This information is provided from Gpredict according to your ground station settings.

Setting up Gpredict

We are not covering the set up of Ground Stations, etc. in Gpredict but only the dummy Radio we use to provide the frequency and doppler data to GNU Radio. For information on setting up Gpredict and general use please read their manual.

  1. Open the Preferences dialog (Edit -> Preferences)
  2. Switch to the Interfaces section
  3. Add a new Radio and enter the following settings:
  4. Finish setting up your satellite and ground station according to the Gpredict manual

Usage

  1. To send Doppler frequency data to your flowgraph open the Radio Control panel
  2. Make sure your target satellite is selected and then enable the Track feature
  3. When you hit the Engage button Gpredict will connect to your flowgraph and send frequency data
  4. To debug the block set it into Verbose mode in GNU Radio Companion

Notes

The provided flowgraph uses a Cosine wave mixed with the signal to correct the Doppler shift in software. You could update the center frequency straight in your hardware source. Depending on your hardware this could cause undesired spurious signals during the re-tuning and acquiring the PLL. It is better to capture the whole bandwidth within which the signal will shift and then mix it in software. This prevents excessive re-tuning of your hardware.

gr-gpredict-doppler's People

Contributors

wnagele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gr-gpredict-doppler's Issues

object has no attribute 'set_freq'

Running on the latest version of kali with Gnu Radio 3.7.10 and opening a new flow graph, when dropping the control on and hitting run I get the following error output with the default block settings. Any suggestions?

Traceback (most recent call last):
File "/home/activeuser/GNURadio/test_doppler.py", line 96, in
main()
File "/home/activeuser/GNURadio/test_doppler.py", line 84, in main
tb = top_block_cls()
File "/home/activeuser/GNURadio/test_doppler.py", line 62, in init
self.gpredict_doppler_0 = gpredict.doppler(self.set_freq, "localhost", 4532, True)
File "/usr/lib/python2.7/dist-packages/gnuradio/gr/hier_block2.py", line 92, in getattr
return getattr(self._impl, name)
AttributeError: 'top_block_sptr' object has no attribute 'set_freq'

Inter-satellite channel

Is there a way to simulate an inter-satellite channel using this project, in other words, I'm wondering if the tracker can be replaced by another satellite?
Thanks
Zak

Block does not stop cleanly.

Because of the "while True"-conditions in the run()-function, there is no clean exit when a python flow graph is stopped using the .stop() method. This leads to not freeing the TCP port and the remaining flow graph, especially when running a flow graph containing gr-gpredict-doppler from a python application and using the .start(), .stop() and .wait() flow graph methods.

It works in GNU Radio Companion because it kills flow graphs instead of stopping them, but this behaviour should be avoided.

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.