Commit Graph

65 Commits

Author SHA1 Message Date
Manolis Surligas 073df24112 Convert all blocks from XML to YAML 2019-12-04 19:42:01 +02:00
Manolis Surligas cd5dfc69c9 Updated library and Swig files to GNU Radio 3.8 2019-12-02 21:53:26 +02:00
Manolis Surligas ab45da4ad3 Implement a decoder covering COMMS from GOMSpace 2019-09-30 19:32:21 +03:00
Manolis Surligas c40b83211f Add a IEEE 802.15.4 compatible decoder
Add a IEEE 802.15.4 like decoder, which supports
the IEEE 802.15.4 standard but also a large variety
of ICs based on this framing scheme. Such framings
are quite common in many Cubesat missions.

The decoder has been tested an works well with at least
the Reaktor Hello World satellite
2019-09-30 19:32:21 +03:00
Manolis Surligas 7b7fb82adc Continue with the transition to the new decoder API
* Removed obsolete blocks
* Created a new CRC class with static methods. This will make easier the
integration of new CRC schemes. The old way was rather too C-styled
2019-09-30 19:32:21 +03:00
Manolis Surligas 14382ddc4f Remove obsolete blocks
* Blocks removed are now covered from decoders available supporting the
new decoder architecture
* The quadrature demodulation filter block, had as primary goal to
reduce the false alarms and the performance of the DUV decoder. Now the
new DUV decoder, uses a shift register approach, likewise the AX.25
decoder, therefore it is not needed anymore.
2019-09-30 19:32:21 +03:00
Manolis Surligas c9f685d1c1 Use the shift register approach for the DUV decoder 2019-09-30 19:32:21 +03:00
Manolis Surligas c5f376929c Convert AMSAT FOX DUV decoder to the new architecture
TODO:
* Use the shift register likewise the AX.25 to get rid off the
quadrature demodulation filter. This will significantly increase the
number of decoded frames
2019-09-30 19:32:21 +03:00
Manolis Surligas 110ab30d26 Add JSON converter block for the decoders
The decoders produce a PMT message containing several information about
the decoded frame. While this is very convenient for handling data
inside the flowgraph, it is not for third party applications. The JSON
converter block is responsible to serialize all the information
contained in a PMT originating from a decoded frame.

For simple demonstration some metadata were added on the AX.25 decoder.
These metadata are still a WIP and they subjected to changes.
2019-09-30 19:32:21 +03:00
Manolis Surligas 19c68f825d Port AX.25 decoder to the new architecture 2019-09-30 19:32:21 +03:00
Manolis Surligas ad590174e0 Implement the generic decoder API
To simplify the logic and allow an easy and more efficient way to add
new decoders, the new architecture uses only one decoder block.

This block takes as input a void* stream and produces PDUs with their
metadata. To do so, the block accepts a decoder object. Every decoder
should implement the virtual class decoder(). This class provides the
necessary API and an arbitrary number of decoders can be supported. The
decoding status is reported to the frame_decoder block through the
decoder_status_t structure.
2019-09-30 19:32:21 +03:00
Manolis Surligas 4ec333f5e6 Improve the generic frame acquisition
* Add CRC-16-IBM supported by CC11xx products
* Check CRC for frame validity
* Extract variable frame length
* Tested with Reaktor-Hello-World in-orbit frame
2018-12-03 01:42:14 +02:00
Manolis Surligas 40aaeece1c Implement a shift register with dynamic size
std::bitset can be used only with compile time known size. Most of the flowgraphs take the shift register size as a parameter through the GRC so it cannot be used. This commit implements a shift register using the std::deque that supports arbitrary number of memory stages
2018-11-29 02:41:36 +02:00
Manolis Surligas 8fbca87084 Remove left over flowgraphs and files 2018-11-24 02:11:51 +02:00
Manolis Surligas 854becb15d Add LRPT decoder
Currently it performs only convolutional decoding
2018-11-24 00:25:32 +02:00
Manolis Surligas a344bc498b Start the LRPT sync block 2018-11-24 00:25:32 +02:00
Manolis Surligas 5aae0a1b49 Add block for parsing the FOX slow speed telemetry frames 2018-03-24 21:43:19 +02:00
Manolis Surligas 02801c9a3f Improve 8b10b decoder performance and add the CCSDS RS decoder 2018-03-24 21:43:18 +02:00
Nikos Karamolegkos c2d20fbead Introduce 8b10b Decoder 2018-03-24 21:43:18 +02:00
Manolis Surligas 0d5b295969 Add a quadrature demod filter
This is an attempt to cut the signal free period after the quadrature
demodulation block. The idea seems that works, but there still an issue
with the samples not passing correctly from the valve.
2018-03-24 21:43:18 +02:00
Manolis Surligas 0287bc6657 Remove obsolete match filtering block 2018-02-02 22:39:49 +02:00
Manolis Surligas 4f45abaf08 Fix Swig issue with the debug blocks 2018-02-02 14:33:00 +02:00
Manolis Surligas f8df9c2824 Fix SWIG issue with the debug blocks 2018-01-19 22:10:23 +02:00
Manolis Surligas 9b9f8c92ad Simpify CW decoder 2017-11-01 22:04:56 +02:00
Manolis Surligas e114eb0cd0 Remove CW matched filter block
CW decoding using match filtering is pretty much useless in LEO.
The information about the tone frequency is very rare and carrier
oscillations during the satellite pass reduce significantly the
performance.

The new next CW decoder is based on the autocorrelation of the received
signal.
2017-11-01 22:04:56 +02:00
Kostis Triantayllakis cce9f3d981 Introduce IQ sink block 2017-08-08 17:00:12 +03:00
Nikos Karamolegkos bca58383b7 Add sink block for saving the frame to file
Supported file types txt, bin, hex
2017-07-30 13:25:55 +03:00
George Vardakis 401e8f5248 Add documentation and synchronization option 2017-04-10 00:19:57 +03:00
George Vardakis d76264adeb Implement NOAA sink block 2017-04-08 21:56:44 +03:00
Manolis Surligas 165423d64c Ogg source (#70)
* Start Ogg source block

* Add OGG audio source block

The number of output streams for this block should match the number of
audio streams contained inside the ogg file. If there is a mismatch an
appropriate exception is thrown.
2017-04-01 16:21:15 +03:00
Manolis Surligas 11063b61f2 Fix OGG encoder issues 2017-02-03 01:24:10 +02:00
George Vardakis 639c372a22 Implement ogg encoder block 2017-02-02 21:05:02 +02:00
Manolis Surligas 50098ee879 Dev (#53)
* UDP Message source can handle multiple data types

* Add a waterfall sink block

* Fix dependency issues with VOLK

* Add mean and max hold mode to the waterfall sink

* Add mean and max hold mode to the waterfall sink

* Install satnogs_waterfall.gp gnuplot script at
<install_prefix>/share/satnogs/scripts

* Automatically retrieve x and y axis ranges at the satnogs_waterfall.gp
2017-01-22 19:33:36 +02:00
Manolis Surligas f320d841ab Add supoort to the rigctl message source to work as client
Start also the LEO channelizer. It is not yet functional.
2016-10-22 19:34:09 +03:00
Manolis Surligas 33a27566c8 Improve build system and installation documentation (#33)
The build systen now allows to enable/disable the blocks of the OOT
module that are used for development and debugging purposes.
2016-10-12 02:45:21 +03:00
Manolis Surligas 6e3d8f9c10 Remove unnecessary block 2016-08-26 19:50:20 +03:00
Manolis Surligas a92eb283ff Add the QB50 deframer block
The block is able to separate WOD AX.25 frames from normal ones.
2016-07-27 17:38:49 +03:00
Manolis Surligas 1c30dfe145 Add AX.25 decoder with legacy support for the hardware radios 2016-07-02 00:18:44 +03:00
Manolis Surligas 92843c43c9 Add AX.25 encoder that supports the legacy hardware radios
The new encoder now supports NRZI and G3RUH scrambling that makes it
compatible with most of the FSK9600 modems.

Remove also some unneeded blocks.
2016-06-30 23:39:16 +03:00
Manolis Surligas 6ed86dbae5 Add new debug message source that can accept raw bytes 2016-06-02 17:06:40 +03:00
George Vardakis 455e19e466 Added hex and binary output sink 2016-05-13 15:57:33 +03:00
Manolis Surligas c28c82c873 Add coarse doppler shift correction block 2016-05-11 21:17:58 +03:00
Manolis Surligas 652c257b01 Add UDP PMT message sink block 2016-04-29 02:21:00 +03:00
Manolis Surligas 10d4519bcb Implement the whitening and de-whitening process for the UPSAT
The data whitening and de-whitening mechanism is implemented using
lookup tables for fast processing times. The implementation is quite
generic and modular supporting user defined polynomial masks and seeds.
The lookup table is created during the initialization without any
runtime overhead.
2016-04-11 21:26:57 +03:00
Manolis Surligas 228fd37014 Implement the UPSAT FSK encoder block.
Fix also a small bug at the UPSAT FSK decoder block.
2016-04-06 21:27:46 +03:00
Manolis Surligas 6ae7614af2 Start the FSK frame acquisition block of the UPSAT.
After managing to successfully receive raw bytes from the TI devboard
with the CC1120, its now time to pack them into a frame by searching for
the preamble and synchronizing with the known byte sync word.
2016-04-02 23:02:38 +03:00
George Vardakis 1e4d1e1846 Changed license, removed .orig files and changed free method in udp_msg_source 2016-04-02 17:25:40 +03:00
George Vardakis 138a00b2b2 Merge branch 'next' of https://github.com/satnogs/gr-satnogs into next 2016-04-01 19:48:24 +03:00
George Vardakis 7321707c61 Finished adding block json_to_ecss_src 2016-04-01 19:44:40 +03:00
Manolis Surligas 5ac7fa4759 Merge branch 'next' of https://github.com/satnogs/gr-satnogs into next
# Conflicts:
#	grc/CMakeLists.txt
#	include/satnogs/CMakeLists.txt
#	lib/CMakeLists.txt
#	swig/satnogs_swig.i
2016-03-29 22:59:36 +03:00