Closed fivitti closed 2 years ago
APT decoder may be implemented using GNU Radio blocks: link. But it is primitive and doesn't include advanced processing as Doppler correction or NOAA telemetry decoding.
I think that re-implement existing, specialized, decoding tools isn't good way. It requires a lot of time and knowledge, but doesn't increase the value of project. As our team is small we need a solution which allow us easily integrate different solutions as noaa-apt, meteor-demod, GNU Radio and other.
Now, the reception recipes are shell scripts. It allow us to easily run standalone programs (as sox
or noaa-apt
), but call Python modules (as GNU Radio) is harder. This way doesn't support re-use the code or follow good practices well. Shell scripts cannot return complex data.
We should analyze the possibility to organize the recipes as Python scripts.
Now, our recipes realize schema:
The output is print on standard output in format:
!! <TYPE>: "<PATH>"
where <PATH> is absolute path to file. Recipe IS NOT responsible for clean up this file. <TYPE> specify how product was saved. Now we used these types:
Type | Description |
---|---|
Signal | WAV file with recorded signal after normalization |
Product | PNG file with decoded imagery |
All our recipes realize similar algorithm.
rtl_fm
for itsox
Advantages:
Disadvantages
I propose to use sh library to call external programs. It allow to execute process as call standard Python object methods. For example:
from sh import ifconfig
print(ifconfig("eth0"))
We can use it to support rtl_fm
, sox
, noaa-apt
, metor-decode
or meteor_demod
without write additional code.
It is so much fancy, but it should allow to simplify recipes.
GNU Radio developers prepare PyBOMBS utility. It allow to install dependencies from different package managers.
PyBOMBS is good at building GNU Radio, UHD, and various Out of Tree (OOT) modules from source and then installing into a specified user directory rather than in the system files. PyBOMBS detects the user's Operating System and loads all of the prerequisites in the first stage of the build.
It is dedicated for install GNU Radio, but may be used to install another software too.
We can use it for install noaa-apt
, meteor-demod
, meteor-decode
, rtl_fm
(?) in setup.py
file. Now installing dependencies for our station is complicated.
A lot of recipes are stored in this repository.
I've started looking at GNU Radio. Here are my notes.
GNU Radio has a lot of built-in, awesome tools for work with SDR. Also exists gr-satellites with ready GNU Radio blocks to reception data from satellites. We should be able use this power. We need a possibility to use GNU Radio pipelines in our station.