Commit Graph

483 Commits

Author SHA1 Message Date
Manolis Surligas d48e066a66 Improve AX.25 filtering to reduce false positives
The CRC16 of the AX.25 seems that is too weak for the new
decoding approach and we get many false positives.

Now the AX.25 decoder, makes waits for at least two
occurances of the AX.25 SYNC flag.
2019-12-27 23:56:33 +02:00
Manolis Surligas 157e1c163b Use a decimating LPF instead of rational resampler 2019-12-27 13:26:11 +02:00
Vasilis Tsiligiannis 3ab7020bf8 debian: Add runtime dependency to 'gr-soapy'
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-24 01:07:31 +02:00
Manolis Surligas de8ba5b768 Automatically generate flowgraphs with GRCC
This commit adds GRCC into the CMake build system and creates the
executables from the .grc files on demand.

Because there is always the case that the gr-satnogs has not
been installed yet in the system, we still ship the auto-generated
from our side executables. In next releases, during the install
target, the GRCC and the executables generation, will be called
after the gr-satnogs is installed.
2019-12-24 00:29:24 +02:00
Manolis Surligas 8b8e322a5b Fix IQ file sink file creation
The IQ File sink, tried to create the IQ
file even if it was instructed by the user not to
store IQ data. Despite the fact that no data were
written, it could trigger however errors in case
the destination file could not be opened,
eg. due to permissions.

The problem was that the base class tried to
open the file at its contructor. This commit
deals with this issue and the file is created
only if the user specifies that wants the IQ
data to be stored.
2019-12-24 00:29:15 +02:00
Manolis Surligas cb981074b9 Fix faulty generated flowgraphs
* Fix faulty generated flowgraphs using old version of gr-soapy
* Disable by default the IQ storage
2019-12-23 17:48:32 +02:00
Manolis Surligas 74055132af Use the new JSON format for the decoded frames 2019-12-21 17:08:36 +02:00
Vasilis Tsiligiannis c7fa9ffe65 gitlab-ci: Remove GitLab CI 'git describe' bug workaround
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-21 13:41:35 +02:00
Vasilis Tsiligiannis 7f53a873d6 gitlab-ci: Remove trailing whitespaces from GitLab CI configuration
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 18:00:51 +02:00
Vasilis Tsiligiannis ea42787bf2 Add missing 'gr-soapy' dependency, sort and cleanup CI package deps
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 18:00:45 +02:00
Vasilis Tsiligiannis de60d51969 gitlab-ci: Use single liner for style checking
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 17:52:36 +02:00
Vasilis Tsiligiannis 4bdd9148da gitlab-ci: Remove unused 'git' package
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 17:30:15 +02:00
Vasilis Tsiligiannis 6f2159c1e3 gitlab-ci: Drop '&&'; jobs fail on all script commands
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 17:29:29 +02:00
Vasilis Tsiligiannis fa8780288f gitlab-ci: Make 'buster' the default image for the CI pipeline
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 16:49:53 +02:00
Vasilis Tsiligiannis 7d0c5b74f6 debian: Move symlink of FEC library to 'gr-satnogs' package
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 16:33:34 +02:00
Vasilis Tsiligiannis 95a59416b2 debian: Add missing Python build dependencies
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 14:59:39 +02:00
Vasilis Tsiligiannis d6b5f6455c debian: Fix version adjusting patch
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 14:59:39 +02:00
Vasilis Tsiligiannis c7670df0bc debian: Move the FEC library to 'libgnuradio-satnogs' package
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 14:59:39 +02:00
Vasilis Tsiligiannis 105991194a debian: Fix removal of compiled Python scripts
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 14:59:39 +02:00
Vasilis Tsiligiannis 06271fec69 debian: Remove futile specification of all supported Python 3 version
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 14:59:39 +02:00
Vasilis Tsiligiannis 491ee361da debian: Remove futile build dependencies
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 14:59:39 +02:00
Manolis Surligas bd10831489 Adapt NOAA APT flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 12d0483515 Adapt Reaktor flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 2bb2dc29dc Drop Meteor flowgraph as it is WIP 2019-12-20 13:00:59 +02:00
Manolis Surligas 9129ebc14b Adapt AMSAT DUV flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 86c3c3246a Adapt CW flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 357e7a87a6 Add a generic IQ receiver
This commit adds a generic IQ receiver supporting
arbitrary output sampling rate. It also allows the
user to disable or enable the Doppler correction applied.

The commit also drops the outdated fm_demod flowgraph.
2019-12-20 13:00:59 +02:00
Manolis Surligas 6b3fd6c406 Adapt example flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 0ec7b29f93 Adapt AFSK1200 AX.25 flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 977f732b4d Adapt BPSK AX.25 flowgraph to gr-soapy 2019-12-20 13:00:59 +02:00
Manolis Surligas 5501c237cf Adapt FSK AX.25 flowgraph to gr-soapy
* Adapt FSK AX.25 flowgraph to gr-soapy
* Drop the MSK flowgraph. From now on, for both MSK
and FSK the satnogs_fsk_ax25.py should be used
2019-12-20 13:00:58 +02:00
Manolis Surligas d656020bc2 Make doppler correction block compatible with the coarse one 2019-12-20 13:00:58 +02:00
Manolis Surligas 96aaf11a30 Improve doppler correction and decimation
This commit adds a hierarchical block that performs Doppler
compensation and resampling.

Rather than using directly the available Doppler correction blocks,
based on the user parameters of the incoming sampling rate and the
desired target sampling rate, it applies proper decimation on the signal
so the frequency shift to be applied to a smaller sampling rate,
reducing significantly the CPU resources required. At the previous
architecture (gr-satnogs 1.x.x) we used seperate blocks for the doppler
correction and the LO digital shift, operating at the device sampling rate.
These two blocks, performing almost the same operation, contributed to a
30% CPU usage of the overall application. Now the LO is compensated by
the Doppler correction block, taking into account at the same time the
Doppler drift.

After the digital LO shift, the Doppler corrected signal is passed through
an Polyphase Arbitrary Resampler, to match exactly the sampling rate
requested by the user.
2019-12-20 13:00:58 +02:00
Vasilis Tsiligiannis fe3bd06dc1 debian: Fix package building for 'buster'
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 12:24:55 +02:00
Vasilis Tsiligiannis 44f98b11f0 debian: Clean-up compiled Python scripts for any Python 3 version
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:29:57 +02:00
Vasilis Tsiligiannis 181aa6568a debian: Remove Python overrides; only Python 3 is supported
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:28:57 +02:00
Vasilis Tsiligiannis f2a412fcb0 debian: Fix dependency to Python 3
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:23:50 +02:00
Vasilis Tsiligiannis 4f03e74cb2 debian: Require gnuradio version 3.8 or above to build package
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:15:39 +02:00
Vasilis Tsiligiannis d044728964 debian: Bump standards version
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:13:07 +02:00
Vasilis Tsiligiannis f407acf90c debian: Sort build dependencies
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:10:26 +02:00
Vasilis Tsiligiannis 04dd7618f4 debian: Remove extraneous space from build dependencies list
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-12-20 10:09:14 +02:00
Manolis Surligas 8072219a8a Support timestamping in the waterfall intermediate file
The waterfall file has now a constant sized header of 52 bytes,
so that plotting tools can reconstruct properly the spectrum.

The structure of the header is the following:
  - A 32 byte string containing the timestamp in
    ISO-8601 format. This timer has microsecond accuracy.
  - A 4 byte integer containing the sampling rate
  - A 4 byte integer with the FFT size
  - A 4 byte integer containing the number of FFT snapshots for one row
    at the waterfall
  - A 4 byte float with the center frequency of the observation.
  - A 4 byte integer indicating the endianness of the rest of the file. If
    set to 0 the file continues in Big endian. Otherwise, in little endian.
    The change of the endianness is performed to reduce the overhead at the
    station.

 Note that all contents of the header are in Network Byte order! The rest
 of the file is in native byte order, mainly for performance reasons.
 Users can use data of the header to determine if their architecture match
 the architecture of the host generated the waterfall file and act
 accordingly.

 The file continues with information regarding the spectral content of the
 observation.
 Each waterfall line is prepended with a int64_t field indicating the
 absolute time in microseconds with respect to the start of the waterfall
 data (stored in the corresponding header field).
 The spectral content is stored in $FFT$ float values already converted in
 dB scale.
2019-12-17 15:59:43 +02:00
Manolis Surligas 48e421e3f5 Fix wrong parameter at the OGG Encoder 2019-12-17 01:47:33 +02:00
nickoe c3bc8fcc43 Add missing grc input for Doppler Correction (Coarse)
Fixes #157
2019-12-16 23:44:51 +00:00
Manolis Surligas 29081b6207 Update build requirements on the README 2019-12-12 18:17:50 +02:00
takurx 31a6223334 Update README.md that add 'sudo' in Install, Requirement, Debian/Ubuntu Field 2019-12-12 17:55:10 +02:00
Manolis Surligas 3339977b81 Update FindJsonCpp.cmake to solve packaging issue 2019-12-12 01:46:37 +02:00
Manolis Surligas 6f13d72769 Update .gitlab-ci.yml with the new dependencies 2019-12-12 01:46:37 +02:00
Manolis Surligas cbc733c25e Integrate libfec as part of the gr-satnogs 2019-12-12 01:46:37 +02:00
Manolis Surligas 2a03fc66bf Drop boost::chrono in favor of std::chrono
The new GNU Radio linkage system seems that has some
issues. There are linkage dependencies that they should
be private on the GNU Radio target.

In addition, find_package(Boost) is also called on the
gnuradio-runtime target. Calling it again in the OOT
module overwrites the existing list of dependencies,
causing many problems.

We are staring a process of dropping Boost and use
the C++11 variants.
2019-12-11 18:15:49 +02:00