Git Product home page Git Product logo

gr-aprs's Introduction

gr-APRS - A GNU Radio Block for Receiving APRS

GNU Radio Hierarchial Block(s) to Test and Receive APRS Packet (with examples). Tested on GNU Radio v3.7.10 / Linux Ubuntu.

Dependency

Installations

This OOT Module is built upon GNU Radio hierarchial block scheme. The hierarchial block itself is "transparently" built graphically / visually using GRC. The hier blocks are provided in the gr-APRS/HierBlock folder. Installation steps :

  • git clone https://github.com/handiko/gr-APRS.git
  • cd gr-APRS/HierBlock/
  • gnuradio-companion AFSK_Demod.grc AFSK_Demod.grc should be installed first.
  • Click RUN (F6) button on GNU Radio companion (It will do nothing on the foreground, since it will just build and install the Hier Block silently). Then Close.
  • gnuradio-companion APRS_Rx.grc APRS_Rx.grc should be installed after AFSK_Demod.grc.
  • Again, Click RUN (F6) button and then Close.
  • Open the GNU Radio. The new Hier Block will be listed under APRS module.

And then very important steps :

  • cd
  • sudo cp gr-APRS/Module/packet.py /usr/lib/python2.7/ This will copy packet.py files from gr-APRS/Module/ into /usr/lib/python2.7/ directory. Without this, the HDLC to AX.25 block will not run.

Finish, and now you can open grc files on gr-APRS/Examples/ or gr-APRS/TestScripts/ and run it.

About The HDLC to AX.25 block

This block which functions to convert HDLC data into TNC2 APRS formats is constructed from the "Python Block" which native to the GNU Radio Companion. To build one yourself:

  • From GNU Radio Core module, under Misc, add Python Block into your flowgraph.
  • Double Click that block to open the properties and then click Open in Editor. If then you asked about which editor to choose, just select default or any editor you prefer.
  • In the editor, copy and paste python code from gr-APRS/Module/epb.py, save, close, and hit OK.
  • Now your Python Block should be turned into HDLC to AX.25 Block, have message i/o ports which labelled as "hdlc in" and "ax25 out".

Hier Blocks

All the hier blocks are constructed graphically using GNU Radio Companion. AFSK Demod hier block is required by the APRS Rx hier block (hier block which contains another hier block within), so it should be installed first.

AFSK Demod

APRS Rx

Examples

There are some grc examples included in gr-APRS/Examples and gr-APRS/TestScripts folder. WAV files are also included in the gr-APRS/WAV for testing purposes.

A Few notes:

  • AFSK Demod hier block (Filterbank AFSK Demodulator) is recommended to run with input samples per symbol (integer) of at least 20 and must be a value of input sample rate divided by baudrate (integer). For example, at baudrate of 1200baud, if you run at minimum recommended samples per symbol of 20, then the input sample rate must be 24kHz (24kHz / 1200baud = 20 sps).
  • The output of the APRS decoder (HDLC to AX25 block) is sent to the Socket PDU Block. To examine this output, you can open terminal and run telnet localhost 52001. Image below shows the output using terminal, which the transmitted messages are some random strings under experimental data type (, data type) for testing purposes.

APRS RX RTL

From gr-APRS/Examples/APRS_RX_RTL.grc. This examples utilizes the low cost RTL SDR dongle for receiving APRS signal on 144.390 Mhz (for usage on another frequency, please change the frequency in the grc).

APRS SCARD

From gr-APRS/Examples/APRS_SCARD.grc. This examples utilizes the onboard sound card for the usage with a VHF Radio receiver. Audio from the Radio SPK output should be fed into the MIC input of your soundcard.

APRS AFSK Complete WAV

From gr-APRS/TestScripts/APRS_AFSK_Complete_WAV.grc. This examples will decode AFSK audio files which included in gr-APRS/WAV. This example is mainly for testing purposes (for example, to find the best values of Mu and Gain Mu).

TODO

  • Bundle up all the codes using gr_modtool
  • Optimizing AFSK Demodulation and Clock Sync process
  • Tidy up this README file a bit :)

Acknwoledgement

  • WB2OSZ for which the AFSK Demod scheme is pretty much based on their excellent works.
  • Bob Bruninga and
  • Dani Estevez for the clock synchronization method.

Contributing

  1. Fork it https://github.com/handiko/gr-APRS/fork
  2. Create new branch (git checkout -b add-blah-blah)
  3. Do some editing / create new feature
  4. Commit your works (git commit -m "Adding some blah blah blah..")
  5. Push to the branch (git push -u origin add-blah-blah)
  6. Create a new Pull Request

.

gr-aprs's People

Contributors

handiko 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  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gr-aprs's Issues

python 2.7 is obsolete

The instructions on copying Module/packet.py are obsolete. My system (an up-to-date installation of Manjaro) doesn't have /usr/lib/python2.7. (Maybe I can install it? Not sure, as I think python2.7 may be unsupported and obsolete by now.)

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.