Commit Graph

98 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 729d97c73c Add support for AX.25 frame tagging on the IQ stream 2019-09-30 19:32:21 +03: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 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 67ea02a248 Improve CW decoding
* Introduce the hysteresis option, in order the CW demodulator to adjust
properly the plateau length based on the WPM and any filtering that can
be used before

* Instead for a frame per word, now the CW decoder waits for 10 long
spaces before it commits a frame. With this way many words are placed on
the same frame telemetry decoding is easier
2019-09-30 18:47:46 +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 4bcd9c8aaa Start the implementation of a generic frame synchronizer
The generic frame synchronizer will be able to adapt in a variety of
common framing schemes used by popular modems.
2018-12-02 00:48:14 +02:00
Manolis Surligas 63218b157b Add LRPT decoding flowgraph 2018-11-24 00:25:32 +02:00
Manolis Surligas 854becb15d Add LRPT decoder
Currently it performs only convolutional decoding
2018-11-24 00:25:32 +02:00
Manolis Surligas dcadfe9ab1 Add convolutional deinterleaver 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
Thanos Gkiolias 699acdf53e Complete 8b10b decoder
*Export data bytes and erasures in message port
2018-03-24 21:43:18 +02:00
Nikos Karamolegkos c2d20fbead Introduce 8b10b Decoder 2018-03-24 21:43:18 +02:00
Manolis Surligas 0b7fed15e8 Fix parameter name 2018-03-24 21:43:18 +02:00
Manolis Surligas c1677c8104 Change the quadrature demod filter to sync block
Seems that there is a probleb with general blocks and the history, so
the filter cannot act as valve. However, it produces zeros, in the
presence of noise.
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 2fb1bfadfc Fix AX.25 encoder/decoder
* Force the left over scrambled bits into the LFSR to be transmitted
* Refactor the decoding process
2018-03-20 20:40:13 +02:00
Manolis Surligas 14ad8ad879 Fix NOAA issue caused by bad GRC regeneration 2018-02-24 00:19:40 +02:00
Manolis Surligas 0287bc6657 Remove obsolete match filtering block 2018-02-02 22:39:49 +02:00
Nikos Karamolegkos 909ae9da78 Fix bug with the frame sink blocks
* Change clear text format to binary
* Add binary and hex annotated
2018-02-02 22:16:20 +02:00
George Vardakis eabd2c89f2 Remove split option and increase height size in APT sink block 2018-02-02 18:07:21 +02:00
Nikos Karamolegkos 12a2aa0090 Add minimum frame length on the morse decoder 2018-02-01 21:59:45 +02:00
Manolis Surligas 5d7af423a8 Window number to dot duration should be sufficient enough 2017-11-01 22:04:56 +02:00
Manolis Surligas 52efa4c8bd Finish the CW encoder
The CW encoder is a debug block that can be used to check the
performance of the CW decoder of gr-satnogs module under different RF
conditions. It can also serve as a perfect debug tool for sattelite
missions.
2017-11-01 22:04:56 +02:00
Manolis Surligas 9b9f8c92ad Simpify CW decoder 2017-11-01 22:04:56 +02:00
Manolis Surligas 5d9fc19e3b Simplify CW decoding 2017-11-01 22:04:56 +02:00
Manolis Surligas ca1b8b1242 Output messages in text files
* Add support for saving the messages on a text file
* Add timestamp support for each message in ISO 8601 format
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
Manolis Surligas 62cdbf7e51 NOAA sink fix
* Remove completely the .png extension. satnogs-client will handle the
rest.
* Fix enumeration on the NOAA sink xml
2017-09-20 17:18:59 +03:00
Kostis Triantayllakis cce9f3d981 Introduce IQ sink block 2017-08-08 17:00:12 +03:00
Kostis Triantafyllakis cd3f914616 Fix category typo 2017-08-08 16:37:29 +03:00
George Vardakis 549e158221 Fix NOAA APT Sink block parameters 2017-08-02 19:39:39 +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
Manolis Surligas f1ff356193 Support fixed packet length frames on the FSK decoder 2017-04-15 02:41:47 +03:00
Manolis Surligas a8d0eae736 Add support for arbitraty descrambling polynomials on the FSK receiver 2017-04-15 01:23:47 +03:00
George Vardakis bb2401356a Add option for rotating image 2017-04-10 18:03:00 +03:00
George Vardakis d4fbd62c03 Remove output of byte file 2017-04-10 15:23:19 +03:00
George Vardakis 401e8f5248 Add documentation and synchronization option 2017-04-10 00:19:57 +03:00
George Vardakis 3b30b6b78e Add split image functionality 2017-04-09 17:20:02 +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