diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index b54538f..5b4b8f8 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -20,18 +20,11 @@
include(GrPython)
add_subdirectory(flowgraphs/satellites)
-add_subdirectory(scripts)
GR_PYTHON_INSTALL(
PROGRAMS
flowgraphs/satnogs_fm_demod.py
- flowgraphs/satnogs_generic_iq_receiver.py
- flowgraphs/satnogs_bpsk_demod.py
flowgraphs/satnogs_cw_decoder.py
- flowgraphs/satnogs_bpsk_decoder.py
- flowgraphs/satnogs_apt_demod.py
- flowgraphs/satnogs_fsk9600_ax25.py
- flowgraphs/satnogs_fsk9600_g3ruh_ax25.py
flowgraphs/satnogs_afsk1200_ax25.py
flowgraphs/satnogs_example_flowgraph.py
flowgraphs/satnogs_fsk_ax25.py
diff --git a/apps/flowgraphs/afsk1200_ax25.grc b/apps/flowgraphs/afsk1200_ax25.grc
index dd1dcf9..8432ea1 100644
--- a/apps/flowgraphs/afsk1200_ax25.grc
+++ b/apps/flowgraphs/afsk1200_ax25.grc
@@ -197,6 +197,108 @@
3000
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ True
+
+
+ _coordinate
+ (1619, 953)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ False
+
+
+ _coordinate
+ (1779, 953)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
analog_quadrature_demod_cf
@@ -1304,7 +1406,7 @@
value
- 1000
+ 20
@@ -3570,124 +3672,6 @@ max_modulation_freq = 3000
satnogs.not_set_samp_rate_rx
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- False
-
-
- _coordinate
- (1563, 662)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1563, 785)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
satnogs_coarse_doppler_correction_cc
@@ -3735,6 +3719,100 @@ max_modulation_freq = 3000
rx_freq
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1627, 789)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0_0
+
+
+ _enabled
+ 1
+
+
+ _coordinate
+ (1627, 718)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
satnogs_frame_file_sink
@@ -3884,7 +3962,7 @@ max_modulation_freq = 3000
_coordinate
- (8, 164)
+ (7, 171)
_rotation
@@ -3920,7 +3998,7 @@ max_modulation_freq = 3000
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -4301,13 +4379,13 @@ max_modulation_freq = 3000
digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
+ satnogs_frame_decoder_0_0
0
0
digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0_0
+ satnogs_frame_decoder_0_0_0
0
0
@@ -4365,36 +4443,36 @@ max_modulation_freq = 3000
0
0
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
satnogs_coarse_doppler_correction_cc_0
pfb_arb_resampler_xxx_0
0
0
+
+ satnogs_frame_decoder_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
satnogs_tcp_rigctl_msg_source_0
satnogs_coarse_doppler_correction_cc_0
diff --git a/apps/flowgraphs/apt_demod.grc b/apps/flowgraphs/apt_demod.grc
deleted file mode 100644
index 5ca4a8b..0000000
--- a/apps/flowgraphs/apt_demod.grc
+++ /dev/null
@@ -1,2888 +0,0 @@
-
-
-
- Thu May 5 00:22:45 2016
-
- options
-
- author
- Manolis Surligas (surligas@gmail.com)
-
-
- window_size
- 3000, 3000
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
- A generic APT demodulation block
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- no_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- satnogs_apt_demod
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- run
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
- APT Generic Demodulation
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 52)
-
-
- _rotation
- 0
-
-
- id
- audio_samp_rate
-
-
- value
- 48000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (805, 857)
-
-
- _rotation
- 0
-
-
- id
- deviation
-
-
- value
- 17000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 260)
-
-
- _rotation
- 0
-
-
- id
- filter_rate
-
-
- value
- 250000
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 476)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 100e3
-
-
- _enabled
- 1
-
-
- _coordinate
- (48, 716)
-
-
- _rotation
- 0
-
-
- gain
- 12.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 164)
-
-
- _rotation
- 0
-
-
- id
- xlate_filter_taps
-
-
- value
- firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
-
-
- analog_quadrature_demod_cf
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1224, 564)
-
-
- _rotation
- 180
-
-
- gain
- (2*math.pi*deviation)/96000
-
-
- id
- analog_quadrature_demod_cf_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (382, 937)
-
-
- _rotation
- 0
-
-
- id
- antenna
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_antenna
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (295, 937)
-
-
- _rotation
- 0
-
-
- id
- bb_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_bb_gain
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- 125
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (1112, 268)
-
-
- _rotation
- 0
-
-
- id
- blks2_rational_resampler_xxx_1
-
-
- interp
- 48
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
- []
-
-
- type
- ccc
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (672, 940)
-
-
- _rotation
- 0
-
-
- id
- decoded_data_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/.satnogs/data/data
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (47, 937)
-
-
- _rotation
- 0
-
-
- id
- dev_args
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_dev_args
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (47, 857)
-
-
- _rotation
- 0
-
-
- id
- doppler_correction_per_sec
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 20
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (456, 940)
-
-
- _rotation
- 0
-
-
- id
- enable_iq_dump
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (494, 857)
-
-
- _rotation
- 180
-
-
- id
- file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- test.ogg
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx/filter_rate)
-
-
- _enabled
- 1
-
-
- _coordinate
- (680, 268)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- xlate_filter_taps
-
-
- type
- ccc
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (215, 937)
-
-
- _rotation
- 0
-
-
- id
- if_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_if_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (568, 940)
-
-
- _rotation
- 0
-
-
- id
- iq_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/iq.dat
-
-
-
- parameter
-
- alias
-
-
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 324)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e3
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
- satnogs.handle_rx_antenna(rx_sdr_device, antenna)
-
-
- bb_gain0
- satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 2
-
-
- corr0
- ppm
-
-
- freq0
- rx_freq - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- dc_offset_mode10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- gain_mode10
- False
-
-
- if_gain10
- 20
-
-
- iq_balance_mode10
- 0
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- dc_offset_mode11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- gain_mode11
- False
-
-
- if_gain11
- 20
-
-
- iq_balance_mode11
- 0
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- dc_offset_mode12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- gain_mode12
- False
-
-
- if_gain12
- 20
-
-
- iq_balance_mode12
- 0
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- dc_offset_mode13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- gain_mode13
- False
-
-
- if_gain13
- 20
-
-
- iq_balance_mode13
- 0
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- dc_offset_mode14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- gain_mode14
- False
-
-
- if_gain14
- 20
-
-
- iq_balance_mode14
- 0
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- dc_offset_mode15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- gain_mode15
- False
-
-
- if_gain15
- 20
-
-
- iq_balance_mode15
- 0
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- dc_offset_mode16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- gain_mode16
- False
-
-
- if_gain16
- 20
-
-
- iq_balance_mode16
- 0
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- dc_offset_mode17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- gain_mode17
- False
-
-
- if_gain17
- 20
-
-
- iq_balance_mode17
- 0
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- dc_offset_mode18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- gain_mode18
- False
-
-
- if_gain18
- 20
-
-
- iq_balance_mode18
- 0
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- dc_offset_mode19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- gain_mode19
- False
-
-
- if_gain19
- 20
-
-
- iq_balance_mode19
- 0
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- dc_offset_mode20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- gain_mode20
- False
-
-
- if_gain20
- 20
-
-
- iq_balance_mode20
- 0
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- dc_offset_mode21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- gain_mode21
- False
-
-
- if_gain21
- 20
-
-
- iq_balance_mode21
- 0
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- dc_offset_mode22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- gain_mode22
- False
-
-
- if_gain22
- 20
-
-
- iq_balance_mode22
- 0
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- dc_offset_mode23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- gain_mode23
- False
-
-
- if_gain23
- 20
-
-
- iq_balance_mode23
- 0
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- dc_offset_mode24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- gain_mode24
- False
-
-
- if_gain24
- 20
-
-
- iq_balance_mode24
- 0
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- dc_offset_mode25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- gain_mode25
- False
-
-
- if_gain25
- 20
-
-
- iq_balance_mode25
- 0
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- dc_offset_mode26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- gain_mode26
- False
-
-
- if_gain26
- 20
-
-
- iq_balance_mode26
- 0
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- dc_offset_mode27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- gain_mode27
- False
-
-
- if_gain27
- 20
-
-
- iq_balance_mode27
- 0
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- dc_offset_mode28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- gain_mode28
- False
-
-
- if_gain28
- 20
-
-
- iq_balance_mode28
- 0
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- dc_offset_mode29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- gain_mode29
- False
-
-
- if_gain29
- 20
-
-
- iq_balance_mode29
- 0
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- dc_offset_mode30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- gain_mode30
- False
-
-
- if_gain30
- 20
-
-
- iq_balance_mode30
- 0
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- dc_offset_mode31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- gain_mode31
- False
-
-
- if_gain31
- 20
-
-
- iq_balance_mode31
- 0
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- dc_offset_mode5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- gain_mode5
- False
-
-
- if_gain5
- 20
-
-
- iq_balance_mode5
- 0
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- dc_offset_mode6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- gain_mode6
- False
-
-
- if_gain6
- 20
-
-
- iq_balance_mode6
- 0
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- dc_offset_mode7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- gain_mode7
- False
-
-
- if_gain7
- 20
-
-
- iq_balance_mode7
- 0
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- dc_offset_mode8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- gain_mode8
- False
-
-
- if_gain8
- 20
-
-
- iq_balance_mode8
- 0
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- dc_offset_mode9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- gain_mode9
- False
-
-
- if_gain9
- 20
-
-
- iq_balance_mode9
- 0
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
- satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 311)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
- sync
-
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (734, 857)
-
-
- _rotation
- 0
-
-
- id
- ppm
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- 2
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (1000, 540)
-
-
- _rotation
- 180
-
-
- id
- rational_resampler_xxx_0
-
-
- interp
- 1
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
-
-
-
- type
- fff
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (143, 937)
-
-
- _rotation
- 0
-
-
- id
- rf_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_rf_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (327, 857)
-
-
- _rotation
- 0
-
-
- id
- rigctl_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 4532
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (414, 857)
-
-
- _rotation
- 0
-
-
- id
- rx_freq
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e6
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (215, 857)
-
-
- _rotation
- 0
-
-
- id
- rx_sdr_device
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- usrpb200
-
-
-
- satnogs_coarse_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (352, 276)
-
-
- _rotation
- 0
-
-
- id
- satnogs_coarse_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_iq_sink
-
- append
- False
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- iq_file_path
-
-
- _coordinate
- (1296, 108)
-
-
- _rotation
- 0
-
-
- id
- satnogs_iq_sink_0
-
-
- scale
- 32767
-
-
- status
- enable_iq_dump
-
-
-
- satnogs_ogg_encoder
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- file_path
-
-
- _coordinate
- (792, 548)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ogg_encoder_0
-
-
- quality
- 1.0
-
-
- samp_rate
- audio_samp_rate
-
-
-
- satnogs_tcp_rigctl_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (16, 204)
-
-
- _rotation
- 0
-
-
- id
- satnogs_tcp_rigctl_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mode
- False
-
-
- port
- rigctl_port
-
-
- interval
- 1000/doppler_correction_per_sec
-
-
-
- satnogs_waterfall_sink
-
- alias
-
-
-
- center_freq
- 0.0
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- fft_size
- 1024
-
-
- filename
- waterfall_file_path
-
-
- _coordinate
- (1456, 252)
-
-
- _rotation
- 0
-
-
- id
- satnogs_waterfall_sink_0
-
-
- mode
- 1
-
-
- pps
- 10
-
-
- samp_rate
- audio_samp_rate*2
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (598, 857)
-
-
- _rotation
- 0
-
-
- id
- waterfall_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/waterfall.dat
-
-
-
- analog_quadrature_demod_cf_0
- rational_resampler_xxx_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- analog_quadrature_demod_cf_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_iq_sink_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_waterfall_sink_0
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- blks2_rational_resampler_xxx_1
- 0
- 0
-
-
- osmosdr_source_0
- satnogs_coarse_doppler_correction_cc_0
- 0
- 0
-
-
- rational_resampler_xxx_0
- satnogs_ogg_encoder_0
- 0
- 0
-
-
- satnogs_coarse_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_coarse_doppler_correction_cc_0
- freq
- freq
-
-
diff --git a/apps/flowgraphs/ax25_transceiver_qt.grc b/apps/flowgraphs/ax25_transceiver_qt.grc
deleted file mode 100644
index f7d2129..0000000
--- a/apps/flowgraphs/ax25_transceiver_qt.grc
+++ /dev/null
@@ -1,4470 +0,0 @@
-
-
-
- Fri Jul 1 17:53:00 2016
-
- options
-
- author
-
-
-
- window_size
- 1768,1080
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
-
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- qt_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- fsk9600_ax25_transceiver_qt
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- prompt
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
-
-
-
-
- variable
-
- comment
- FSK baud rate
-
-
- _enabled
- True
-
-
- _coordinate
- (544, 5)
-
-
- _rotation
- 0
-
-
- id
- baud_rate
-
-
- value
- 9600
-
-
-
- variable_qtgui_range
-
- comment
-
-
-
- value
- 0
-
-
- _enabled
- True
-
-
- _coordinate
- (1296, 1)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- id
- bb_gain_rx
-
-
- label
- BB Gain RX
-
-
- min_len
- 200
-
-
- orient
- Qt.Horizontal
-
-
- start
- 0
-
-
- step
- 0.5
-
-
- stop
- 40
-
-
- rangeType
- float
-
-
- widget
- counter_slider
-
-
-
- variable_qtgui_range
-
- comment
-
-
-
- value
- 0
-
-
- _enabled
- True
-
-
- _coordinate
- (1304, 137)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- id
- bb_gain_tx
-
-
- label
- BB Gain TX
-
-
- min_len
- 200
-
-
- orient
- Qt.Horizontal
-
-
- start
- 0
-
-
- step
- 0.5
-
-
- stop
- 40
-
-
- rangeType
- float
-
-
- widget
- counter_slider
-
-
-
- variable
-
- comment
- Decimation factor
-for the RX after the
-SDR received samples
-
-
- _enabled
- True
-
-
- _coordinate
- (664, 109)
-
-
- _rotation
- 0
-
-
- id
- decimation_rx
-
-
- value
- 40
-
-
-
- variable
-
- comment
- The FSK frequency deviation
-
-
- _enabled
- True
-
-
- _coordinate
- (368, 5)
-
-
- _rotation
- 0
-
-
- id
- deviation
-
-
- value
- 3.9973e3
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 325)
-
-
- _rotation
- 0
-
-
- id
- gaussian_taps
-
-
- value
- filter.firdes.gaussian(1.0, samples_per_symbol_tx, 1.0, 4*samples_per_symbol_tx)
-
-
-
- variable_qtgui_range
-
- comment
-
-
-
- value
- 0
-
-
- _enabled
- True
-
-
- _coordinate
- (1192, 1)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- id
- if_gain_rx
-
-
- label
- IF Gain RX
-
-
- min_len
- 200
-
-
- orient
- Qt.Horizontal
-
-
- start
- 0
-
-
- step
- 0.5
-
-
- stop
- 40
-
-
- rangeType
- float
-
-
- widget
- counter_slider
-
-
-
- variable_qtgui_range
-
- comment
-
-
-
- value
- 0
-
-
- _enabled
- True
-
-
- _coordinate
- (1192, 137)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- id
- if_gain_tx
-
-
- label
- IF Gain TX
-
-
- min_len
- 200
-
-
- orient
- Qt.Horizontal
-
-
- start
- 0
-
-
- step
- 0.5
-
-
- stop
- 40
-
-
- rangeType
- float
-
-
- widget
- counter_slider
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (8, 453)
-
-
- _rotation
- 0
-
-
- id
- interp_taps
-
-
- value
- numpy.convolve(numpy.array(gaussian_taps), numpy.array(sq_wave))
-
-
-
- variable
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- 1
-
-
- _coordinate
- (784, 5)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- value
- 100e3
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 253)
-
-
- _rotation
- 0
-
-
- id
- modulation_index
-
-
- value
- deviation / (baud_rate / 2.0)
-
-
-
- variable_qtgui_range
-
- comment
-
-
-
- value
- 0
-
-
- _enabled
- True
-
-
- _coordinate
- (1080, 1)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- id
- rf_gain_rx
-
-
- label
- RF Gain RX
-
-
- min_len
- 200
-
-
- orient
- Qt.Horizontal
-
-
- start
- 0
-
-
- step
- 0.5
-
-
- stop
- 40
-
-
- rangeType
- float
-
-
- widget
- counter_slider
-
-
-
- variable_qtgui_range
-
- comment
-
-
-
- value
- 0
-
-
- _enabled
- True
-
-
- _coordinate
- (1080, 137)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- id
- rf_gain_tx
-
-
- label
- RF Gain TX
-
-
- min_len
- 200
-
-
- orient
- Qt.Horizontal
-
-
- start
- 0
-
-
- step
- 0.5
-
-
- stop
- 70
-
-
- rangeType
- float
-
-
- widget
- counter_slider
-
-
-
- variable
-
- comment
- The RX center frequency
- of the system
-
-
- _enabled
- True
-
-
- _coordinate
- (808, 109)
-
-
- _rotation
- 0
-
-
- id
- rx_frequency
-
-
- value
- 435.8e6
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (528, 109)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- 1e6
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (248, 5)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_tx
-
-
- value
- 2e6
-
-
-
- variable
-
- comment
- Samples per FSK symbol.
-Should be changed only for better
-spectrum mask, or if the resampling
-is too great and becomes a bottlneck.
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 109)
-
-
- _rotation
- 0
-
-
- id
- samples_per_symbol_tx
-
-
- value
- 4*8
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (8, 389)
-
-
- _rotation
- 0
-
-
- id
- sq_wave
-
-
- value
- (1.0, ) * samples_per_symbol_tx
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 20000
-
-
- _enabled
- 1
-
-
- _coordinate
- (16, 762)
-
-
- _rotation
- 0
-
-
- gain
- 1.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- variable
-
- comment
- The TX center frequency
- of the system
-
-
- _enabled
- True
-
-
- _coordinate
- (648, 5)
-
-
- _rotation
- 0
-
-
- id
- tx_frequency
-
-
- value
- 435.8e6
-
-
-
- analog_frequency_modulator_fc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1208, 308)
-
-
- _rotation
- 0
-
-
- id
- analog_frequency_modulator_fc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sensitivity
- (math.pi*modulation_index) / samples_per_symbol_tx
-
-
-
- analog_quadrature_demod_cf
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (528, 644)
-
-
- _rotation
- 0
-
-
- gain
- ((samp_rate_rx/decimation_rx) / baud_rate)/(math.pi*modulation_index)
-
-
- id
- analog_quadrature_demod_cf_0_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- analog_sig_source_x
-
- amp
- 1
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- freq
- lo_offset
-
-
- _coordinate
- (1056, 368)
-
-
- _rotation
- 180
-
-
- id
- analog_sig_source_x_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- offset
- 0
-
-
- type
- complex
-
-
- samp_rate
- samp_rate_tx
-
-
- waveform
- analog.GR_COS_WAVE
-
-
-
- blocks_char_to_float
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (808, 308)
-
-
- _rotation
- 0
-
-
- id
- blocks_char_to_float_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- scale
- 1
-
-
- vlen
- 1
-
-
-
- blocks_multiply_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (896, 448)
-
-
- _rotation
- 180
-
-
- id
- blocks_multiply_xx_0
-
-
- type
- complex
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- num_inputs
- 2
-
-
- vlen
- 1
-
-
-
- digital_binary_slicer_fb
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1024, 648)
-
-
- _rotation
- 0
-
-
- id
- digital_binary_slicer_fb_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- digital_clock_recovery_mm_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (776, 616)
-
-
- _rotation
- 0
-
-
- gain_mu
- 0.175
-
-
- gain_omega
- 0.25*0.175*0.175
-
-
- id
- digital_clock_recovery_mm_xx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mu
- 0.5
-
-
- omega_relative_limit
- 0.005
-
-
- omega
- (samp_rate_rx/decimation_rx)/baud_rate
-
-
- type
- float
-
-
-
- digital_map_bb
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (688, 308)
-
-
- _rotation
- 0
-
-
- id
- digital_map_bb_0
-
-
- map
- [1, -1]
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- decimation_rx
-
-
- _enabled
- 1
-
-
- _coordinate
- (304, 623)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- taps
-
-
- type
- ccc
-
-
-
- import
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1472, 60)
-
-
- _rotation
- 0
-
-
- id
- import_0
-
-
- import
- import numpy
-
-
-
- import
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1480, 4)
-
-
- _rotation
- 0
-
-
- id
- import_0_0
-
-
- import
- import math
-
-
-
- import
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1480, 108)
-
-
- _rotation
- 0
-
-
- id
- import_0_1
-
-
- import
- from gnuradio import filter
-
-
-
- interp_fir_filter_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (984, 301)
-
-
- _rotation
- 0
-
-
- id
- interp_fir_filter_xxx_0
-
-
- interp
- samples_per_symbol_tx
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_delay
- 0
-
-
- taps
- interp_taps
-
-
- type
- fff
-
-
-
- osmosdr_sink
-
- alias
-
-
-
- ant0
-
-
-
- bb_gain0
- bb_gain_tx
-
-
- bw0
- samp_rate_tx
-
-
- corr0
- 0
-
-
- freq0
- tx_frequency - lo_offset
-
-
- if_gain0
- if_gain_tx
-
-
- gain0
- rf_gain_tx
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- if_gain10
- 20
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- if_gain11
- 20
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- if_gain12
- 20
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- if_gain13
- 20
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- if_gain14
- 20
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- if_gain15
- 20
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- if_gain16
- 20
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- if_gain17
- 20
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- if_gain18
- 20
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- if_gain19
- 20
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- if_gain1
- 20
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- if_gain20
- 20
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- if_gain21
- 20
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- if_gain22
- 20
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- if_gain23
- 20
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- if_gain24
- 20
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- if_gain25
- 20
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- if_gain26
- 20
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- if_gain27
- 20
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- if_gain28
- 20
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- if_gain29
- 20
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- if_gain2
- 20
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- if_gain30
- 20
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- if_gain31
- 20
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- if_gain3
- 20
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- if_gain4
- 20
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- if_gain5
- 20
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- if_gain6
- 20
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- if_gain7
- 20
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- if_gain8
- 20
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- if_gain9
- 20
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (640, 418)
-
-
- _rotation
- 180
-
-
- id
- osmosdr_sink_0
-
-
- type
- fc32
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- sample_rate
- samp_rate_tx
-
-
- sync
-
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
-
-
-
- bb_gain0
- bb_gain_rx
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 0
-
-
- corr0
- 0
-
-
- freq0
- rx_frequency - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- if_gain_rx
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- rf_gain_rx
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- dc_offset_mode10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- gain_mode10
- False
-
-
- if_gain10
- 20
-
-
- iq_balance_mode10
- 0
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- dc_offset_mode11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- gain_mode11
- False
-
-
- if_gain11
- 20
-
-
- iq_balance_mode11
- 0
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- dc_offset_mode12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- gain_mode12
- False
-
-
- if_gain12
- 20
-
-
- iq_balance_mode12
- 0
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- dc_offset_mode13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- gain_mode13
- False
-
-
- if_gain13
- 20
-
-
- iq_balance_mode13
- 0
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- dc_offset_mode14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- gain_mode14
- False
-
-
- if_gain14
- 20
-
-
- iq_balance_mode14
- 0
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- dc_offset_mode15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- gain_mode15
- False
-
-
- if_gain15
- 20
-
-
- iq_balance_mode15
- 0
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- dc_offset_mode16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- gain_mode16
- False
-
-
- if_gain16
- 20
-
-
- iq_balance_mode16
- 0
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- dc_offset_mode17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- gain_mode17
- False
-
-
- if_gain17
- 20
-
-
- iq_balance_mode17
- 0
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- dc_offset_mode18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- gain_mode18
- False
-
-
- if_gain18
- 20
-
-
- iq_balance_mode18
- 0
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- dc_offset_mode19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- gain_mode19
- False
-
-
- if_gain19
- 20
-
-
- iq_balance_mode19
- 0
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- dc_offset_mode20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- gain_mode20
- False
-
-
- if_gain20
- 20
-
-
- iq_balance_mode20
- 0
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- dc_offset_mode21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- gain_mode21
- False
-
-
- if_gain21
- 20
-
-
- iq_balance_mode21
- 0
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- dc_offset_mode22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- gain_mode22
- False
-
-
- if_gain22
- 20
-
-
- iq_balance_mode22
- 0
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- dc_offset_mode23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- gain_mode23
- False
-
-
- if_gain23
- 20
-
-
- iq_balance_mode23
- 0
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- dc_offset_mode24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- gain_mode24
- False
-
-
- if_gain24
- 20
-
-
- iq_balance_mode24
- 0
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- dc_offset_mode25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- gain_mode25
- False
-
-
- if_gain25
- 20
-
-
- iq_balance_mode25
- 0
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- dc_offset_mode26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- gain_mode26
- False
-
-
- if_gain26
- 20
-
-
- iq_balance_mode26
- 0
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- dc_offset_mode27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- gain_mode27
- False
-
-
- if_gain27
- 20
-
-
- iq_balance_mode27
- 0
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- dc_offset_mode28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- gain_mode28
- False
-
-
- if_gain28
- 20
-
-
- iq_balance_mode28
- 0
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- dc_offset_mode29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- gain_mode29
- False
-
-
- if_gain29
- 20
-
-
- iq_balance_mode29
- 0
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- dc_offset_mode30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- gain_mode30
- False
-
-
- if_gain30
- 20
-
-
- iq_balance_mode30
- 0
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- dc_offset_mode31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- gain_mode31
- False
-
-
- if_gain31
- 20
-
-
- iq_balance_mode31
- 0
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- dc_offset_mode5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- gain_mode5
- False
-
-
- if_gain5
- 20
-
-
- iq_balance_mode5
- 0
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- dc_offset_mode6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- gain_mode6
- False
-
-
- if_gain6
- 20
-
-
- iq_balance_mode6
- 0
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- dc_offset_mode7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- gain_mode7
- False
-
-
- if_gain7
- 20
-
-
- iq_balance_mode7
- 0
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- dc_offset_mode8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- gain_mode8
- False
-
-
- if_gain8
- 20
-
-
- iq_balance_mode8
- 0
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- dc_offset_mode9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- gain_mode9
- False
-
-
- if_gain9
- 20
-
-
- iq_balance_mode9
- 0
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (32, 572)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
- sync
-
-
-
-
- pfb_arb_resampler_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1224, 455)
-
-
- _rotation
- 180
-
-
- id
- pfb_arb_resampler_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- nfilts
- 32
-
-
- rrate
- samp_rate_tx / (baud_rate * samples_per_symbol_tx)
-
-
- samp_delay
- 0
-
-
- atten
- 60
-
-
- taps
- firdes.low_pass_2(32, 32, 0.8, 0.1, 60)
-
-
- type
- ccf
-
-
-
- satnogs_ax25_decoder_bm
-
- n_sync_flags
- 2
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1272, 760)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 256
-
-
- minoutbuf
- 0
-
-
- promisc
- False
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_ax25_encoder_mb
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- dest_addr
- UPSAT
-
-
- dest_ssid
- 0
-
-
- _enabled
- True
-
-
- scramble
- True
-
-
- _coordinate
- (480, 266)
-
-
- _rotation
- 0
-
-
- id
- satnogs_ax25_encoder_mb_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- postamble_len
- 16
-
-
- preamble_len
- 32
-
-
- src_addr
- GND
-
-
- src_ssid
- 0
-
-
-
- satnogs_debug_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- delay
- 2
-
-
- _enabled
- 1
-
-
- _coordinate
- (232, 190)
-
-
- _rotation
- 0
-
-
- id
- satnogs_debug_msg_source_0
-
-
- maxoutbuf
- 0
-
-
- msg
- 'HELLO UPSAT FROM EARTH' * 2
-
-
- minoutbuf
- 0
-
-
- repeat
- True
-
-
-
- satnogs_multi_format_msg_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- filename
-
-
-
- _coordinate
- (928, 860)
-
-
- _rotation
- 180
-
-
- id
- satnogs_multi_format_msg_sink_0_0
-
-
- outstream
- True
-
-
- timestamp
- False
-
-
- format
- 0
-
-
-
- satnogs_udp_msg_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (928, 766)
-
-
- _rotation
- 180
-
-
- id
- satnogs_udp_msg_sink_0_0
-
-
- addr
- udp_IP
-
-
- mtu
- 1500
-
-
- port
- udp_port
-
-
-
- satnogs_udp_msg_source
-
- alias
-
-
-
- comment
- The transmitter can also receive payloads
-from a UDP source. Use netcat or something
-similar to produce dynamic payloads.
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (240, 294)
-
-
- _rotation
- 0
-
-
- id
- satnogs_udp_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- msg_type
- 0
-
-
- minoutbuf
- 0
-
-
- port
- 16886
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (87, 937)
-
-
- _rotation
- 0
-
-
- id
- udp_IP
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- 127.0.0.1
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (207, 937)
-
-
- _rotation
- 0
-
-
- id
- udp_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 16887
-
-
-
- analog_frequency_modulator_fc_0
- pfb_arb_resampler_xxx_0
- 0
- 0
-
-
- analog_quadrature_demod_cf_0_0
- digital_clock_recovery_mm_xx_0
- 0
- 0
-
-
- analog_sig_source_x_0
- blocks_multiply_xx_0
- 0
- 1
-
-
- blocks_char_to_float_0
- interp_fir_filter_xxx_0
- 0
- 0
-
-
- blocks_multiply_xx_0
- osmosdr_sink_0
- 0
- 0
-
-
- digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
- 0
- 0
-
-
- digital_clock_recovery_mm_xx_0
- digital_binary_slicer_fb_0
- 0
- 0
-
-
- digital_map_bb_0
- blocks_char_to_float_0
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- analog_quadrature_demod_cf_0_0
- 0
- 0
-
-
- interp_fir_filter_xxx_0
- analog_frequency_modulator_fc_0
- 0
- 0
-
-
- osmosdr_source_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- pfb_arb_resampler_xxx_0
- blocks_multiply_xx_0
- 0
- 0
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_multi_format_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_encoder_mb_0
- digital_map_bb_0
- 0
- 0
-
-
- satnogs_debug_msg_source_0
- satnogs_ax25_encoder_mb_0
- msg
- info
-
-
- satnogs_udp_msg_source_0
- satnogs_ax25_encoder_mb_0
- msg
- info
-
-
diff --git a/apps/flowgraphs/bpsk_ax25.grc b/apps/flowgraphs/bpsk_ax25.grc
index 775b8c9..91acedc 100644
--- a/apps/flowgraphs/bpsk_ax25.grc
+++ b/apps/flowgraphs/bpsk_ax25.grc
@@ -248,6 +248,108 @@
4
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ True
+
+
+ _coordinate
+ (1276, 690)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ False
+
+
+ _coordinate
+ (1436, 690)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
analog_agc2_xx
@@ -3298,124 +3400,6 @@ reception performance.
satnogs.not_set_samp_rate_rx
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1182, 491)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- False
-
-
- _coordinate
- (1182, 611)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
satnogs_coarse_doppler_correction_cc
@@ -3463,6 +3447,100 @@ reception performance.
rx_freq
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1332, 598)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0_0
+
+
+ _enabled
+ 1
+
+
+ _coordinate
+ (1332, 510)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
satnogs_frame_file_sink
@@ -3483,7 +3561,7 @@ reception performance.
_coordinate
- (936, 684)
+ (997, 674)
_rotation
@@ -3612,7 +3690,7 @@ reception performance.
_coordinate
- (216, 148)
+ (215, 147)
_rotation
@@ -3648,7 +3726,7 @@ reception performance.
interval
- 1000
+ int(1.0/doppler_correction_per_sec) * 1000 + 1
@@ -3671,7 +3749,7 @@ reception performance.
_coordinate
- (936, 596)
+ (997, 578)
_rotation
@@ -3922,13 +4000,13 @@ reception performance.
digital_constellation_receiver_cb_0
- satnogs_ax25_decoder_bm_0
+ satnogs_frame_decoder_0_0
0
0
digital_constellation_receiver_cb_0
- satnogs_ax25_decoder_bm_0_0
+ satnogs_frame_decoder_0_0_0
0
0
@@ -3986,30 +4064,6 @@ reception performance.
0
0
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
satnogs_coarse_doppler_correction_cc_0
analog_agc2_xx_0
@@ -4022,6 +4076,30 @@ reception performance.
0
0
+
+ satnogs_frame_decoder_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
satnogs_tcp_rigctl_msg_source_0
satnogs_coarse_doppler_correction_cc_0
diff --git a/apps/flowgraphs/bpsk_decoder.grc b/apps/flowgraphs/bpsk_decoder.grc
deleted file mode 100644
index 047dd3e..0000000
--- a/apps/flowgraphs/bpsk_decoder.grc
+++ /dev/null
@@ -1,3055 +0,0 @@
-
-
-
- Thu May 5 00:22:45 2016
-
- options
-
- author
- Patrick Dohmen, DL4PD
-
-
- window_size
- 3000, 3000
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
- A BPSK decoder block for gr-satnogs
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- no_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- satnogs_bpsk_decoder
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- run
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
- BPSK Decoder
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (896, 180)
-
-
- _rotation
- 0
-
-
- id
- alpha
-
-
- value
- 0.1
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 52)
-
-
- _rotation
- 0
-
-
- id
- audio_samp_rate
-
-
- value
- 48000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1152, 20)
-
-
- _rotation
- 0
-
-
- id
- deviation
-
-
- value
- 5000
-
-
-
- variable
-
- comment
- Filtershape:
-
-Use the following values for different filter shapes
-
-Sharp: 0.1
-Normal: 0.2
-Soft: 0.5
-
-
- _enabled
- True
-
-
- _coordinate
- (1032, 180)
-
-
- _rotation
- 0
-
-
- id
- filt_mode
-
-
- value
- 0.1
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 260)
-
-
- _rotation
- 0
-
-
- id
- filter_rate
-
-
- value
- 250000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (200, 772)
-
-
- _rotation
- 0
-
-
- id
- nfilts
-
-
- value
- 16
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (48, 772)
-
-
- _rotation
- 0
-
-
- id
- rrc_taps
-
-
- value
- firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(samp_per_sym), 0.35, 11*samp_per_sym*nfilts)
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (264, 772)
-
-
- _rotation
- 0
-
-
- id
- samp_per_sym
-
-
- value
- 5
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 460)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 100e3
-
-
- _enabled
- 1
-
-
- _coordinate
- (200, 12)
-
-
- _rotation
- 0
-
-
- gain
- 12.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 164)
-
-
- _rotation
- 0
-
-
- id
- xlate_filter_taps
-
-
- value
- firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
-
-
- analog_agc2_xx
-
- attack_rate
- 0.01
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decay_rate
- 0.001
-
-
- _enabled
- True
-
-
- _coordinate
- (280, 652)
-
-
- _rotation
- 0
-
-
- gain
- 1.0
-
-
- id
- analog_agc2_xx_0
-
-
- max_gain
- 65536
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- reference
- 0.5
-
-
- type
- complex
-
-
-
- analog_agc2_xx
-
- attack_rate
- 0.01
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decay_rate
- 0.001
-
-
- _enabled
- 1
-
-
- _coordinate
- (1360, 452)
-
-
- _rotation
- 180
-
-
- gain
- 0.0
-
-
- id
- analog_agc2_xx_0_0
-
-
- max_gain
- 65536
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- reference
- 0.015
-
-
- type
- complex
-
-
-
- analog_sig_source_x
-
- amp
- 1
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- freq
- cw_offset/1200.0*baudrate
-
-
- _coordinate
- (1360, 568)
-
-
- _rotation
- 180
-
-
- id
- analog_sig_source_x_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- offset
- 0
-
-
- type
- complex
-
-
- samp_rate
- audio_samp_rate
-
-
- waveform
- analog.GR_COS_WAVE
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (704, 100)
-
-
- _rotation
- 0
-
-
- id
- antenna
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_antenna
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (304, 500)
-
-
- _rotation
- 0
-
-
- id
- baudrate
-
-
- label
- baudrate
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 1200
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (616, 100)
-
-
- _rotation
- 0
-
-
- id
- bb_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_bb_gain
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
- We get:
- - 250 kHz input sampling rate (samp_rate_rx/filter_rate) from first stage
- - 48 kHz output sampling rate
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx/(samp_rate_rx/filter_rate))
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (864, 268)
-
-
- _rotation
- 0
-
-
- id
- blks2_rational_resampler_xxx_1
-
-
- interp
- audio_samp_rate
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
- []
-
-
- type
- ccc
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
- We get:
- - 48 kHz input sampling rate
- - 12 kHz output sampling rate
-
-
- affinity
-
-
-
- decim
- 48000
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (1344, 60)
-
-
- _rotation
- 0
-
-
- id
- blks2_rational_resampler_xxx_1_0
-
-
- interp
- max(12000, int(3*(1+alpha)*baudrate))
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
- []
-
-
- type
- ccc
-
-
-
- blocks_complex_to_real
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1040, 504)
-
-
- _rotation
- 180
-
-
- id
- blocks_complex_to_real_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- vlen
- 1
-
-
-
- blocks_complex_to_real
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1000, 656)
-
-
- _rotation
- 0
-
-
- id
- blocks_complex_to_real_0_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- vlen
- 1
-
-
-
- blocks_multiply_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1216, 488)
-
-
- _rotation
- 180
-
-
- id
- blocks_multiply_xx_0
-
-
- type
- complex
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- num_inputs
- 2
-
-
- vlen
- 1
-
-
-
- blocks_multiply_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (864, 568)
-
-
- _rotation
- 180
-
-
- id
- blocks_multiply_xx_0_0
-
-
- type
- complex
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- num_inputs
- 2
-
-
- vlen
- 1
-
-
-
- parameter
-
- alias
-
-
-
- comment
- The CW offset shifts the carrier from 0 Hz to a
-frequency that corresponds to the CW audio
-tone. This tone is typically 500-800 Hz.
-
-
- _enabled
- True
-
-
- _coordinate
- (1360, 684)
-
-
- _rotation
- 0
-
-
- id
- cw_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 1500
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1000, 100)
-
-
- _rotation
- 0
-
-
- id
- decoded_data_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/.satnogs/data/data
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (368, 100)
-
-
- _rotation
- 0
-
-
- id
- dev_args
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_dev_args
-
-
-
- digital_binary_slicer_fb
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1176, 656)
-
-
- _rotation
- 0
-
-
- id
- digital_binary_slicer_fb_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- digital_costas_loop_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (816, 656)
-
-
- _rotation
- 0
-
-
- id
- digital_costas_loop_cc_0_0_0_0
-
-
- w
- 0.063
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- order
- 2
-
-
- use_snr
- False
-
-
-
- digital_pfb_clock_sync_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- filter_size
- nfilts
-
-
- _coordinate
- (456, 652)
-
-
- _rotation
- 0
-
-
- id
- digital_pfb_clock_sync_xxx_0
-
-
- init_phase
- nfilts/2
-
-
- loop_bw
- 0.063
-
-
- maxoutbuf
- 0
-
-
- max_dev
- 1.5
-
-
- minoutbuf
- 0
-
-
- osps
- 1
-
-
- sps
- samp_per_sym
-
-
- taps
- rrc_taps
-
-
- type
- ccf
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (368, 20)
-
-
- _rotation
- 0
-
-
- id
- doppler_correction_per_sec
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 20
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (776, 100)
-
-
- _rotation
- 0
-
-
- id
- enable_iq_dump
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (840, 20)
-
-
- _rotation
- 180
-
-
- id
- file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- test.ogg
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx/filter_rate)
-
-
- _enabled
- 1
-
-
- _coordinate
- (608, 268)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- xlate_filter_taps
-
-
- type
- ccc
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- cw_offset/1200.0*baudrate
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- audio_samp_rate/(samp_per_sym*baudrate)
-
-
- _enabled
- True
-
-
- _coordinate
- (48, 660)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- audio_samp_rate
-
-
- taps
- firdes.low_pass(1, audio_samp_rate, (1+alpha)*baudrate, (1+alpha)*baudrate*filt_mode)
-
-
- type
- ccf
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (536, 100)
-
-
- _rotation
- 0
-
-
- id
- if_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_if_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (896, 100)
-
-
- _rotation
- 0
-
-
- id
- iq_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/iq.dat
-
-
-
- parameter
-
- alias
-
-
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 324)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e3
-
-
-
- low_pass_filter
-
- beta
- 6.76
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- cutoff_freq
- (1+alpha)*baudrate
-
-
- decim
- 1
-
-
- _enabled
- True
-
-
- type
- fir_filter_ccf
-
-
- _coordinate
- (1344, 308)
-
-
- _rotation
- 0
-
-
- gain
- 1
-
-
- id
- low_pass_filter_0
-
-
- interp
- 1
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- audio_samp_rate
-
-
- width
- ((1+alpha)*baudrate)*filt_mode
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
- satnogs.handle_rx_antenna(rx_sdr_device, antenna)
-
-
- bb_gain0
- satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 2
-
-
- corr0
- ppm
-
-
- freq0
- rx_freq - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
- satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 359)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1080, 20)
-
-
- _rotation
- 0
-
-
- id
- ppm
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (464, 100)
-
-
- _rotation
- 0
-
-
- id
- rf_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_rf_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (656, 20)
-
-
- _rotation
- 0
-
-
- id
- rigctl_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 4532
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (752, 20)
-
-
- _rotation
- 0
-
-
- id
- rx_freq
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e6
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (536, 20)
-
-
- _rotation
- 0
-
-
- id
- rx_sdr_device
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- rtlsdr
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1016, 756)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- False
-
-
- _coordinate
- (1016, 868)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_coarse_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (368, 404)
-
-
- _rotation
- 0
-
-
- id
- satnogs_coarse_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- corrections_per_sec
- 1000
-
-
- _enabled
- 0
-
-
- _coordinate
- (360, 248)
-
-
- _rotation
- 0
-
-
- id
- satnogs_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_frame_file_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (712, 796)
-
-
- _rotation
- 180
-
-
- id
- satnogs_frame_file_sink_0_1_0
-
-
- output_type
- 0
-
-
- prefix_name
- decoded_data_file_path
-
-
-
- satnogs_iq_sink
-
- append
- False
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- iq_file_path
-
-
- _coordinate
- (1344, 228)
-
-
- _rotation
- 0
-
-
- id
- satnogs_iq_sink_0
-
-
- scale
- 32767
-
-
- status
- enable_iq_dump
-
-
-
- satnogs_ogg_encoder
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- file_path
-
-
- _coordinate
- (864, 484)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ogg_encoder_0
-
-
- quality
- 1.0
-
-
- samp_rate
- audio_samp_rate
-
-
-
- satnogs_tcp_rigctl_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (16, 204)
-
-
- _rotation
- 0
-
-
- id
- satnogs_tcp_rigctl_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mode
- False
-
-
- port
- rigctl_port
-
-
- interval
- 1000/doppler_correction_per_sec
-
-
-
- satnogs_udp_msg_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (744, 860)
-
-
- _rotation
- 180
-
-
- id
- satnogs_udp_msg_sink_0_0
-
-
- addr
- udp_IP
-
-
- mtu
- 1500
-
-
- port
- udp_port
-
-
-
- satnogs_waterfall_sink
-
- alias
-
-
-
- center_freq
- 0.0
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- fft_size
- 1024
-
-
- filename
- waterfall_file_path
-
-
- _coordinate
- (1536, 44)
-
-
- _rotation
- 0
-
-
- id
- satnogs_waterfall_sink_0
-
-
- mode
- 1
-
-
- pps
- 10
-
-
- samp_rate
- max(12000, int(3*(1+alpha)*baudrate))
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (560, 860)
-
-
- _rotation
- 0
-
-
- id
- udp_IP
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- 127.0.0.1
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (656, 860)
-
-
- _rotation
- 0
-
-
- id
- udp_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 16887
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (944, 20)
-
-
- _rotation
- 0
-
-
- id
- waterfall_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/waterfall.dat
-
-
-
- analog_agc2_xx_0
- digital_pfb_clock_sync_xxx_0
- 0
- 0
-
-
- analog_agc2_xx_0_0
- blocks_multiply_xx_0
- 0
- 1
-
-
- analog_sig_source_x_0
- blocks_multiply_xx_0
- 0
- 0
-
-
- analog_sig_source_x_0
- blocks_multiply_xx_0_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- blks2_rational_resampler_xxx_1_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- blocks_multiply_xx_0_0
- 0
- 1
-
-
- blks2_rational_resampler_xxx_1
- low_pass_filter_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_iq_sink_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1_0
- satnogs_waterfall_sink_0
- 0
- 0
-
-
- blocks_complex_to_real_0
- satnogs_ogg_encoder_0
- 0
- 0
-
-
- blocks_complex_to_real_0_0
- digital_binary_slicer_fb_0
- 0
- 0
-
-
- blocks_multiply_xx_0
- blocks_complex_to_real_0
- 0
- 0
-
-
- blocks_multiply_xx_0_0
- freq_xlating_fir_filter_xxx_0_0
- 0
- 0
-
-
- digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
- 0
- 0
-
-
- digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0_0
- 0
- 0
-
-
- digital_costas_loop_cc_0_0_0_0
- blocks_complex_to_real_0_0
- 0
- 0
-
-
- digital_pfb_clock_sync_xxx_0
- digital_costas_loop_cc_0_0_0_0
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- blks2_rational_resampler_xxx_1
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0_0
- analog_agc2_xx_0
- 0
- 0
-
-
- low_pass_filter_0
- analog_agc2_xx_0_0
- 0
- 0
-
-
- osmosdr_source_0
- satnogs_coarse_doppler_correction_cc_0
- 0
- 0
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_coarse_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_coarse_doppler_correction_cc_0
- freq
- freq
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_doppler_correction_cc_0
- freq
- freq
-
-
diff --git a/apps/flowgraphs/bpsk_demod.grc b/apps/flowgraphs/bpsk_demod.grc
deleted file mode 100644
index 82bd45d..0000000
--- a/apps/flowgraphs/bpsk_demod.grc
+++ /dev/null
@@ -1,3207 +0,0 @@
-
-
-
- Thu May 5 00:22:45 2016
-
- options
-
- author
- surligas, cshields, csete
-
-
- window_size
- 3000, 3000
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
- A generic BPSK demodulation block
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- no_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- satnogs_bpsk_demod
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- run
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
- BPSK Generic Demodulation
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 52)
-
-
- _rotation
- 0
-
-
- id
- audio_samp_rate
-
-
- value
- 48000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (845, 985)
-
-
- _rotation
- 0
-
-
- id
- deviation
-
-
- value
- 5000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 260)
-
-
- _rotation
- 0
-
-
- id
- filter_rate
-
-
- value
- 250000
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 460)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 100e3
-
-
- _enabled
- 1
-
-
- _coordinate
- (48, 716)
-
-
- _rotation
- 0
-
-
- gain
- 12.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 164)
-
-
- _rotation
- 0
-
-
- id
- xlate_filter_taps
-
-
- value
- firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
-
-
- analog_agc2_xx
-
- attack_rate
- 0.01
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decay_rate
- 0.001
-
-
- _enabled
- 1
-
-
- _coordinate
- (1472, 60)
-
-
- _rotation
- 0
-
-
- gain
- 0.0
-
-
- id
- analog_agc2_xx_0_0
-
-
- max_gain
- 65536
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- reference
- 0.015
-
-
- type
- complex
-
-
-
- analog_sig_source_x
-
- amp
- 1
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- freq
- cw_offset
-
-
- _coordinate
- (1360, 568)
-
-
- _rotation
- 180
-
-
- id
- analog_sig_source_x_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- offset
- 0
-
-
- type
- complex
-
-
- samp_rate
- audio_samp_rate
-
-
- waveform
- analog.GR_COS_WAVE
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (398, 1065)
-
-
- _rotation
- 0
-
-
- id
- antenna
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_antenna
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (311, 1065)
-
-
- _rotation
- 0
-
-
- id
- bb_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_bb_gain
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- 125
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (992, 268)
-
-
- _rotation
- 0
-
-
- id
- blks2_rational_resampler_xxx_1
-
-
- interp
- 24
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
- []
-
-
- type
- ccc
-
-
-
- blocks_complex_to_real
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1016, 504)
-
-
- _rotation
- 180
-
-
- id
- blocks_complex_to_real_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- vlen
- 1
-
-
-
- blocks_multiply_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1216, 488)
-
-
- _rotation
- 180
-
-
- id
- blocks_multiply_xx_0
-
-
- type
- complex
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- num_inputs
- 2
-
-
- vlen
- 1
-
-
-
- parameter
-
- alias
-
-
-
- comment
- The CW offset shifts the carrier from 0 Hz to a
-frequency that corresponds to the CW audio
-tone. This tone is typically 500-800 Hz.
-
-
- _enabled
- True
-
-
- _coordinate
- (1360, 684)
-
-
- _rotation
- 0
-
-
- id
- cw_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 1500
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (696, 1068)
-
-
- _rotation
- 0
-
-
- id
- decoded_data_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/.satnogs/data/data
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (63, 1065)
-
-
- _rotation
- 0
-
-
- id
- dev_args
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_dev_args
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (64, 984)
-
-
- _rotation
- 0
-
-
- id
- doppler_correction_per_sec
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 20
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (472, 1068)
-
-
- _rotation
- 0
-
-
- id
- enable_iq_dump
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (534, 985)
-
-
- _rotation
- 180
-
-
- id
- file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- test.ogg
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx/filter_rate)
-
-
- _enabled
- 1
-
-
- _coordinate
- (680, 268)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- xlate_filter_taps
-
-
- type
- ccc
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (231, 1065)
-
-
- _rotation
- 0
-
-
- id
- if_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_if_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (592, 1068)
-
-
- _rotation
- 0
-
-
- id
- iq_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/iq.dat
-
-
-
- parameter
-
- alias
-
-
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- True
-
-
- _coordinate
- (1704, 324)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e3
-
-
-
- low_pass_filter
-
- beta
- 6.76
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- cutoff_freq
- 2000
-
-
- decim
- 1
-
-
- _enabled
- True
-
-
- type
- fir_filter_ccf
-
-
- _coordinate
- (1256, 36)
-
-
- _rotation
- 0
-
-
- gain
- 1
-
-
- id
- low_pass_filter_0
-
-
- interp
- 1
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- audio_samp_rate
-
-
- width
- 1000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
- satnogs.handle_rx_antenna(rx_sdr_device, antenna)
-
-
- bb_gain0
- satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 2
-
-
- corr0
- ppm
-
-
- freq0
- rx_freq - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- dc_offset_mode10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- gain_mode10
- False
-
-
- if_gain10
- 20
-
-
- iq_balance_mode10
- 0
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- dc_offset_mode11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- gain_mode11
- False
-
-
- if_gain11
- 20
-
-
- iq_balance_mode11
- 0
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- dc_offset_mode12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- gain_mode12
- False
-
-
- if_gain12
- 20
-
-
- iq_balance_mode12
- 0
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- dc_offset_mode13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- gain_mode13
- False
-
-
- if_gain13
- 20
-
-
- iq_balance_mode13
- 0
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- dc_offset_mode14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- gain_mode14
- False
-
-
- if_gain14
- 20
-
-
- iq_balance_mode14
- 0
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- dc_offset_mode15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- gain_mode15
- False
-
-
- if_gain15
- 20
-
-
- iq_balance_mode15
- 0
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- dc_offset_mode16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- gain_mode16
- False
-
-
- if_gain16
- 20
-
-
- iq_balance_mode16
- 0
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- dc_offset_mode17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- gain_mode17
- False
-
-
- if_gain17
- 20
-
-
- iq_balance_mode17
- 0
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- dc_offset_mode18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- gain_mode18
- False
-
-
- if_gain18
- 20
-
-
- iq_balance_mode18
- 0
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- dc_offset_mode19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- gain_mode19
- False
-
-
- if_gain19
- 20
-
-
- iq_balance_mode19
- 0
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- dc_offset_mode20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- gain_mode20
- False
-
-
- if_gain20
- 20
-
-
- iq_balance_mode20
- 0
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- dc_offset_mode21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- gain_mode21
- False
-
-
- if_gain21
- 20
-
-
- iq_balance_mode21
- 0
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- dc_offset_mode22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- gain_mode22
- False
-
-
- if_gain22
- 20
-
-
- iq_balance_mode22
- 0
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- dc_offset_mode23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- gain_mode23
- False
-
-
- if_gain23
- 20
-
-
- iq_balance_mode23
- 0
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- dc_offset_mode24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- gain_mode24
- False
-
-
- if_gain24
- 20
-
-
- iq_balance_mode24
- 0
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- dc_offset_mode25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- gain_mode25
- False
-
-
- if_gain25
- 20
-
-
- iq_balance_mode25
- 0
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- dc_offset_mode26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- gain_mode26
- False
-
-
- if_gain26
- 20
-
-
- iq_balance_mode26
- 0
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- dc_offset_mode27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- gain_mode27
- False
-
-
- if_gain27
- 20
-
-
- iq_balance_mode27
- 0
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- dc_offset_mode28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- gain_mode28
- False
-
-
- if_gain28
- 20
-
-
- iq_balance_mode28
- 0
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- dc_offset_mode29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- gain_mode29
- False
-
-
- if_gain29
- 20
-
-
- iq_balance_mode29
- 0
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- dc_offset_mode30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- gain_mode30
- False
-
-
- if_gain30
- 20
-
-
- iq_balance_mode30
- 0
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- dc_offset_mode31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- gain_mode31
- False
-
-
- if_gain31
- 20
-
-
- iq_balance_mode31
- 0
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- dc_offset_mode5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- gain_mode5
- False
-
-
- if_gain5
- 20
-
-
- iq_balance_mode5
- 0
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- dc_offset_mode6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- gain_mode6
- False
-
-
- if_gain6
- 20
-
-
- iq_balance_mode6
- 0
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- dc_offset_mode7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- gain_mode7
- False
-
-
- if_gain7
- 20
-
-
- iq_balance_mode7
- 0
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- dc_offset_mode8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- gain_mode8
- False
-
-
- if_gain8
- 20
-
-
- iq_balance_mode8
- 0
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- dc_offset_mode9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- gain_mode9
- False
-
-
- if_gain9
- 20
-
-
- iq_balance_mode9
- 0
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
- satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 359)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
- sync
-
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (773, 985)
-
-
- _rotation
- 0
-
-
- id
- ppm
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (159, 1065)
-
-
- _rotation
- 0
-
-
- id
- rf_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_rf_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (351, 985)
-
-
- _rotation
- 0
-
-
- id
- rigctl_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 4532
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (446, 985)
-
-
- _rotation
- 0
-
-
- id
- rx_freq
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e6
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (231, 985)
-
-
- _rotation
- 0
-
-
- id
- rx_sdr_device
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- usrpb200
-
-
-
- satnogs_coarse_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (368, 404)
-
-
- _rotation
- 0
-
-
- id
- satnogs_coarse_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- corrections_per_sec
- 1000
-
-
- _enabled
- 0
-
-
- _coordinate
- (360, 248)
-
-
- _rotation
- 0
-
-
- id
- satnogs_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_iq_sink
-
- append
- False
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- iq_file_path
-
-
- _coordinate
- (1272, 372)
-
-
- _rotation
- 0
-
-
- id
- satnogs_iq_sink_0
-
-
- scale
- 32767
-
-
- status
- enable_iq_dump
-
-
-
- satnogs_ogg_encoder
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- file_path
-
-
- _coordinate
- (680, 472)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ogg_encoder_0
-
-
- quality
- 1.0
-
-
- samp_rate
- audio_samp_rate
-
-
-
- satnogs_tcp_rigctl_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (16, 204)
-
-
- _rotation
- 0
-
-
- id
- satnogs_tcp_rigctl_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mode
- False
-
-
- port
- rigctl_port
-
-
- interval
- 1000/doppler_correction_per_sec
-
-
-
- satnogs_waterfall_sink
-
- alias
-
-
-
- center_freq
- 0.0
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- fft_size
- 1024
-
-
- filename
- waterfall_file_path
-
-
- _coordinate
- (1408, 248)
-
-
- _rotation
- 0
-
-
- id
- satnogs_waterfall_sink_0
-
-
- mode
- 1
-
-
- pps
- 10
-
-
- samp_rate
- audio_samp_rate
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (638, 985)
-
-
- _rotation
- 0
-
-
- id
- waterfall_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/waterfall.dat
-
-
-
- analog_agc2_xx_0_0
- blocks_multiply_xx_0
- 0
- 1
-
-
- analog_sig_source_x_0
- blocks_multiply_xx_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- low_pass_filter_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_iq_sink_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_waterfall_sink_0
- 0
- 0
-
-
- blocks_complex_to_real_0
- satnogs_ogg_encoder_0
- 0
- 0
-
-
- blocks_multiply_xx_0
- blocks_complex_to_real_0
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- blks2_rational_resampler_xxx_1
- 0
- 0
-
-
- low_pass_filter_0
- analog_agc2_xx_0_0
- 0
- 0
-
-
- osmosdr_source_0
- satnogs_coarse_doppler_correction_cc_0
- 0
- 0
-
-
- satnogs_coarse_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_coarse_doppler_correction_cc_0
- freq
- freq
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_doppler_correction_cc_0
- freq
- freq
-
-
diff --git a/apps/flowgraphs/cw_decoder.grc b/apps/flowgraphs/cw_decoder.grc
index b1a9146..b4029a5 100644
--- a/apps/flowgraphs/cw_decoder.grc
+++ b/apps/flowgraphs/cw_decoder.grc
@@ -969,7 +969,7 @@ tone. This tone is typically 1 kHz.
value
- 1000
+ 20
@@ -3604,7 +3604,7 @@ we shift the LO a little further
_coordinate
- (8, 140)
+ (7, 155)
_rotation
@@ -3640,7 +3640,7 @@ we shift the LO a little further
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
diff --git a/apps/flowgraphs/example_flowgraph.grc b/apps/flowgraphs/example_flowgraph.grc
index eb5afd2..5ca717a 100644
--- a/apps/flowgraphs/example_flowgraph.grc
+++ b/apps/flowgraphs/example_flowgraph.grc
@@ -1,5 +1,5 @@
-
+
Thu May 5 00:22:45 2016
@@ -2747,7 +2747,7 @@ doppler correction block.
_coordinate
- (16, 204)
+ (7, 211)
_rotation
@@ -2755,7 +2755,7 @@ doppler correction block.
id
- satnogs_tcp_rigctl_msg_source_0
+ satnogs_tcp_rigctl_msg_source_0_0
addr
@@ -2783,7 +2783,7 @@ doppler correction block.
interval
- 1000/doppler_correction_per_sec
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -2931,7 +2931,7 @@ doppler correction block.
0
- satnogs_tcp_rigctl_msg_source_0
+ satnogs_tcp_rigctl_msg_source_0_0
satnogs_coarse_doppler_correction_cc_0
freq
freq
diff --git a/apps/flowgraphs/fm_demod.grc b/apps/flowgraphs/fm_demod.grc
index 809ebab..12979f8 100644
--- a/apps/flowgraphs/fm_demod.grc
+++ b/apps/flowgraphs/fm_demod.grc
@@ -1,5 +1,5 @@
-
+
Thu May 5 00:22:45 2016
@@ -72,6 +72,10 @@
run
True
+
+ sizing_mode
+ fixed
+
thread_safe_setters
@@ -80,6 +84,10 @@
title
FM Generic Demodulation
+
+ placement
+ (0,0)
+
variable
@@ -120,7 +128,7 @@
_coordinate
- (928, 1028)
+ (869, 985)
_rotation
@@ -174,7 +182,7 @@
_coordinate
- (1040, 1028)
+ (973, 993)
_rotation
@@ -202,7 +210,7 @@ TX sampling rate
_coordinate
- (1088, 860)
+ (1061, 857)
_rotation
@@ -368,6 +376,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -411,6 +423,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
eng_float
@@ -513,6 +529,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -556,6 +576,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -599,6 +623,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
intx
@@ -642,6 +670,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
intx
@@ -685,6 +717,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -787,6 +823,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
eng_float
@@ -830,6 +870,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -874,6 +918,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2402,6 +2450,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
intx
@@ -2445,6 +2497,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2488,6 +2544,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
intx
@@ -2531,6 +2591,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2574,6 +2638,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
string
@@ -2740,7 +2808,7 @@ max_modulation_freq = 3000
_coordinate
- (16, 204)
+ (15, 243)
_rotation
@@ -2776,7 +2844,7 @@ max_modulation_freq = 3000
interval
- 1000/doppler_correction_per_sec
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -2868,6 +2936,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
string
diff --git a/apps/flowgraphs/fsk9600_ax25.grc b/apps/flowgraphs/fsk9600_ax25.grc
deleted file mode 100644
index 605fbc9..0000000
--- a/apps/flowgraphs/fsk9600_ax25.grc
+++ /dev/null
@@ -1,3484 +0,0 @@
-
-
-
- Thu May 5 00:22:45 2016
-
- options
-
- author
- Manolis Surligas (surligas@gmail.com)
-
-
- window_size
- 3000, 3000
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
- FSK9600 AX.25 decoder
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- no_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- satnogs_fsk9600_ax25
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- run
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
- FSK9600 AX.25 decoder
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (462, 546)
-
-
- _rotation
- 0
-
-
- id
- audio_samp_rate
-
-
- value
- 48000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (111, 769)
-
-
- _rotation
- 0
-
-
- id
- baud_rate
-
-
- value
- 9600
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (31, 769)
-
-
- _rotation
- 0
-
-
- id
- deviation
-
-
- value
- 5000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (750, 706)
-
-
- _rotation
- 0
-
-
- id
- filter_rate
-
-
- value
- 250000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (207, 769)
-
-
- _rotation
- 0
-
-
- id
- modulation_index
-
-
- value
- deviation / (baud_rate / 2.0)
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (351, 546)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 100e3
-
-
- _enabled
- 1
-
-
- _coordinate
- (31, 542)
-
-
- _rotation
- 0
-
-
- gain
- 12.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (590, 698)
-
-
- _rotation
- 0
-
-
- id
- xlate_filter_taps
-
-
- value
- firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
-
-
- analog_quadrature_demod_cf
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1046, 339)
-
-
- _rotation
- 180
-
-
- gain
- ((audio_samp_rate) / baud_rate)/(math.pi*modulation_index)
-
-
- id
- analog_quadrature_demod_cf_0_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (263, 865)
-
-
- _rotation
- 0
-
-
- id
- antenna
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_antenna
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (175, 865)
-
-
- _rotation
- 0
-
-
- id
- bb_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_bb_gain
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx / (int(samp_rate_rx/filter_rate)))
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (1272, 268)
-
-
- _rotation
- 0
-
-
- id
- blks2_rational_resampler_xxx_1
-
-
- interp
- 48000
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
- []
-
-
- type
- ccc
-
-
-
- dc_blocker_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (855, 427)
-
-
- _rotation
- 0
-
-
- id
- dc_blocker_xx_0
-
-
- length
- 1024
-
-
- long_form
- True
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- type
- ff
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (199, 546)
-
-
- _rotation
- 0
-
-
- id
- decoded_data_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/.satnogs/data/data
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (470, 690)
-
-
- _rotation
- 0
-
-
- id
- dev_args
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_dev_args
-
-
-
- digital_binary_slicer_fb
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1675, 446)
-
-
- _rotation
- 0
-
-
- id
- digital_binary_slicer_fb_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- digital_clock_recovery_mm_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1262, 407)
-
-
- _rotation
- 0
-
-
- gain_mu
- 0.175
-
-
- gain_omega
- 0.25*0.175*0.175
-
-
- id
- digital_clock_recovery_mm_xx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mu
- 0.5
-
-
- omega_relative_limit
- 0.005
-
-
- omega
- 48e3/9600
-
-
- type
- float
-
-
-
- digital_costas_loop_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1022, 255)
-
-
- _rotation
- 0
-
-
- id
- digital_costas_loop_cc_0
-
-
- w
- 2.0 * math.pi / 100.0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- order
- 2
-
-
- use_snr
- False
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (31, 690)
-
-
- _rotation
- 0
-
-
- id
- doppler_correction_per_sec
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 1000
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (343, 865)
-
-
- _rotation
- 0
-
-
- id
- enable_iq_dump
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (167, 945)
-
-
- _rotation
- 180
-
-
- id
- file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- test.wav
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx/filter_rate)
-
-
- _enabled
- 1
-
-
- _coordinate
- (680, 268)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- xlate_filter_taps
-
-
- type
- ccc
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (95, 865)
-
-
- _rotation
- 0
-
-
- id
- if_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_if_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (470, 865)
-
-
- _rotation
- 0
-
-
- id
- iq_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/iq.dat
-
-
-
- parameter
-
- alias
-
-
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- True
-
-
- _coordinate
- (263, 945)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e3
-
-
-
- low_pass_filter
-
- beta
- 6.76
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- cutoff_freq
- 7850
-
-
- decim
- 1
-
-
- _enabled
- True
-
-
- type
- fir_filter_fff
-
-
- _coordinate
- (1054, 391)
-
-
- _rotation
- 0
-
-
- gain
- 1
-
-
- id
- low_pass_filter_0
-
-
- interp
- 1
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- audio_samp_rate
-
-
- width
- audio_samp_rate * 0.15
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
- satnogs.handle_rx_antenna(rx_sdr_device, antenna)
-
-
- bb_gain0
- satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 2
-
-
- corr0
- ppm
-
-
- freq0
- rx_freq - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- dc_offset_mode10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- gain_mode10
- False
-
-
- if_gain10
- 20
-
-
- iq_balance_mode10
- 0
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- dc_offset_mode11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- gain_mode11
- False
-
-
- if_gain11
- 20
-
-
- iq_balance_mode11
- 0
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- dc_offset_mode12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- gain_mode12
- False
-
-
- if_gain12
- 20
-
-
- iq_balance_mode12
- 0
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- dc_offset_mode13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- gain_mode13
- False
-
-
- if_gain13
- 20
-
-
- iq_balance_mode13
- 0
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- dc_offset_mode14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- gain_mode14
- False
-
-
- if_gain14
- 20
-
-
- iq_balance_mode14
- 0
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- dc_offset_mode15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- gain_mode15
- False
-
-
- if_gain15
- 20
-
-
- iq_balance_mode15
- 0
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- dc_offset_mode16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- gain_mode16
- False
-
-
- if_gain16
- 20
-
-
- iq_balance_mode16
- 0
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- dc_offset_mode17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- gain_mode17
- False
-
-
- if_gain17
- 20
-
-
- iq_balance_mode17
- 0
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- dc_offset_mode18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- gain_mode18
- False
-
-
- if_gain18
- 20
-
-
- iq_balance_mode18
- 0
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- dc_offset_mode19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- gain_mode19
- False
-
-
- if_gain19
- 20
-
-
- iq_balance_mode19
- 0
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- dc_offset_mode20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- gain_mode20
- False
-
-
- if_gain20
- 20
-
-
- iq_balance_mode20
- 0
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- dc_offset_mode21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- gain_mode21
- False
-
-
- if_gain21
- 20
-
-
- iq_balance_mode21
- 0
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- dc_offset_mode22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- gain_mode22
- False
-
-
- if_gain22
- 20
-
-
- iq_balance_mode22
- 0
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- dc_offset_mode23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- gain_mode23
- False
-
-
- if_gain23
- 20
-
-
- iq_balance_mode23
- 0
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- dc_offset_mode24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- gain_mode24
- False
-
-
- if_gain24
- 20
-
-
- iq_balance_mode24
- 0
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- dc_offset_mode25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- gain_mode25
- False
-
-
- if_gain25
- 20
-
-
- iq_balance_mode25
- 0
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- dc_offset_mode26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- gain_mode26
- False
-
-
- if_gain26
- 20
-
-
- iq_balance_mode26
- 0
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- dc_offset_mode27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- gain_mode27
- False
-
-
- if_gain27
- 20
-
-
- iq_balance_mode27
- 0
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- dc_offset_mode28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- gain_mode28
- False
-
-
- if_gain28
- 20
-
-
- iq_balance_mode28
- 0
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- dc_offset_mode29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- gain_mode29
- False
-
-
- if_gain29
- 20
-
-
- iq_balance_mode29
- 0
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- dc_offset_mode30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- gain_mode30
- False
-
-
- if_gain30
- 20
-
-
- iq_balance_mode30
- 0
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- dc_offset_mode31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- gain_mode31
- False
-
-
- if_gain31
- 20
-
-
- iq_balance_mode31
- 0
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- dc_offset_mode5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- gain_mode5
- False
-
-
- if_gain5
- 20
-
-
- iq_balance_mode5
- 0
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- dc_offset_mode6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- gain_mode6
- False
-
-
- if_gain6
- 20
-
-
- iq_balance_mode6
- 0
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- dc_offset_mode7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- gain_mode7
- False
-
-
- if_gain7
- 20
-
-
- iq_balance_mode7
- 0
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- dc_offset_mode8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- gain_mode8
- False
-
-
- if_gain8
- 20
-
-
- iq_balance_mode8
- 0
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- dc_offset_mode9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- gain_mode9
- False
-
-
- if_gain9
- 20
-
-
- iq_balance_mode9
- 0
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
- satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 319)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
- sync
-
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (470, 945)
-
-
- _rotation
- 0
-
-
- id
- ppm
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (23, 865)
-
-
- _rotation
- 0
-
-
- id
- rf_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_rf_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (382, 690)
-
-
- _rotation
- 0
-
-
- id
- rigctl_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 4532
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (303, 690)
-
-
- _rotation
- 0
-
-
- id
- rx_freq
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e6
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (191, 690)
-
-
- _rotation
- 0
-
-
- id
- rx_sdr_device
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- usrpb200
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- False
-
-
- _coordinate
- (1374, 543)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_coarse_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (352, 276)
-
-
- _rotation
- 0
-
-
- id
- satnogs_coarse_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_frame_file_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1148, 546)
-
-
- _rotation
- 180
-
-
- id
- satnogs_frame_file_sink_0_1_0
-
-
- output_type
- 0
-
-
- prefix_name
- decoded_data_file_path
-
-
-
- satnogs_iq_sink
-
- append
- False
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- /tmp/iq.bin
-
-
- _coordinate
- (1286, 139)
-
-
- _rotation
- 0
-
-
- id
- satnogs_iq_sink_0
-
-
- scale
- 16768
-
-
- status
- enable_iq_dump
-
-
-
- satnogs_ogg_encoder
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- file_path
-
-
- _coordinate
- (831, 499)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ogg_encoder_0
-
-
- quality
- 1.0
-
-
- samp_rate
- audio_samp_rate
-
-
-
- satnogs_quad_demod_filter_ff
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1460, 434)
-
-
- _rotation
- 0
-
-
- gain
- ((audio_samp_rate) / baud_rate)/(math.pi*modulation_index)
-
-
- id
- satnogs_quad_demod_filter_ff_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- win
- 80
-
-
-
- satnogs_tcp_rigctl_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (16, 204)
-
-
- _rotation
- 0
-
-
- id
- satnogs_tcp_rigctl_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mode
- False
-
-
- port
- rigctl_port
-
-
- interval
- 1000
-
-
-
- satnogs_udp_msg_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1180, 650)
-
-
- _rotation
- 180
-
-
- id
- satnogs_udp_msg_sink_0_0
-
-
- addr
- udp_IP
-
-
- mtu
- 1500
-
-
- port
- udp_port
-
-
-
- satnogs_waterfall_sink
-
- alias
-
-
-
- center_freq
- 0.0
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- fft_size
- 1024
-
-
- filename
- waterfall_file_path
-
-
- _coordinate
- (1486, 255)
-
-
- _rotation
- 0
-
-
- id
- satnogs_waterfall_sink_0
-
-
- mode
- 1
-
-
- pps
- 10
-
-
- samp_rate
- audio_samp_rate
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (837, 706)
-
-
- _rotation
- 0
-
-
- id
- udp_IP
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- 127.0.0.1
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (949, 706)
-
-
- _rotation
- 0
-
-
- id
- udp_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 16887
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (23, 945)
-
-
- _rotation
- 0
-
-
- id
- waterfall_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/waterfall.dat
-
-
-
- analog_quadrature_demod_cf_0_0
- dc_blocker_xx_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- analog_quadrature_demod_cf_0_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_iq_sink_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_waterfall_sink_0
- 0
- 0
-
-
- dc_blocker_xx_0
- low_pass_filter_0
- 0
- 0
-
-
- digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
- 0
- 0
-
-
- digital_clock_recovery_mm_xx_0
- satnogs_quad_demod_filter_ff_0
- 0
- 0
-
-
- digital_costas_loop_cc_0
- blks2_rational_resampler_xxx_1
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- digital_costas_loop_cc_0
- 0
- 0
-
-
- low_pass_filter_0
- digital_clock_recovery_mm_xx_0
- 0
- 0
-
-
- low_pass_filter_0
- satnogs_ogg_encoder_0
- 0
- 0
-
-
- osmosdr_source_0
- satnogs_coarse_doppler_correction_cc_0
- 0
- 0
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_coarse_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_quad_demod_filter_ff_0
- digital_binary_slicer_fb_0
- 0
- 0
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_coarse_doppler_correction_cc_0
- freq
- freq
-
-
diff --git a/apps/flowgraphs/fsk9600_g3ruh_ax25.grc b/apps/flowgraphs/fsk9600_g3ruh_ax25.grc
deleted file mode 100644
index 6e9e592..0000000
--- a/apps/flowgraphs/fsk9600_g3ruh_ax25.grc
+++ /dev/null
@@ -1,3484 +0,0 @@
-
-
-
- Thu May 5 00:22:45 2016
-
- options
-
- author
- Manolis Surligas (surligas@gmail.com)
-
-
- window_size
- 3000, 3000
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
- FSK9600 AX.25 decoder with G3RUH support
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- no_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- satnogs_fsk9600_g3ruh_ax25
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- run
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
- FSK9600 AX.25 decoder with G3RUH support
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (446, 586)
-
-
- _rotation
- 0
-
-
- id
- audio_samp_rate
-
-
- value
- 48000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (95, 809)
-
-
- _rotation
- 0
-
-
- id
- baud_rate
-
-
- value
- 9600
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 809)
-
-
- _rotation
- 0
-
-
- id
- deviation
-
-
- value
- 5000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (734, 746)
-
-
- _rotation
- 0
-
-
- id
- filter_rate
-
-
- value
- 250000
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (191, 809)
-
-
- _rotation
- 0
-
-
- id
- modulation_index
-
-
- value
- deviation / (baud_rate / 2.0)
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (335, 586)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 100e3
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 590)
-
-
- _rotation
- 0
-
-
- gain
- 12.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (574, 738)
-
-
- _rotation
- 0
-
-
- id
- xlate_filter_taps
-
-
- value
- firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
-
-
- analog_quadrature_demod_cf
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1046, 339)
-
-
- _rotation
- 180
-
-
- gain
- ((audio_samp_rate) / baud_rate)/(math.pi*modulation_index)
-
-
- id
- analog_quadrature_demod_cf_0_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (247, 905)
-
-
- _rotation
- 0
-
-
- id
- antenna
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_antenna
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (159, 905)
-
-
- _rotation
- 0
-
-
- id
- bb_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_bb_gain
-
-
-
- rational_resampler_xxx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx / (int(samp_rate_rx/filter_rate)))
-
-
- _enabled
- True
-
-
- fbw
- 0
-
-
- _coordinate
- (1272, 268)
-
-
- _rotation
- 0
-
-
- id
- blks2_rational_resampler_xxx_1
-
-
- interp
- 48000
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- taps
- []
-
-
- type
- ccc
-
-
-
- dc_blocker_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (855, 427)
-
-
- _rotation
- 0
-
-
- id
- dc_blocker_xx_0
-
-
- length
- 1024
-
-
- long_form
- True
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- type
- ff
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (183, 586)
-
-
- _rotation
- 0
-
-
- id
- decoded_data_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/.satnogs/data/data
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (454, 730)
-
-
- _rotation
- 0
-
-
- id
- dev_args
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_dev_args
-
-
-
- digital_binary_slicer_fb
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1723, 446)
-
-
- _rotation
- 0
-
-
- id
- digital_binary_slicer_fb_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
-
- digital_clock_recovery_mm_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1262, 407)
-
-
- _rotation
- 0
-
-
- gain_mu
- 0.175
-
-
- gain_omega
- 0.25*0.175*0.175
-
-
- id
- digital_clock_recovery_mm_xx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mu
- 0.5
-
-
- omega_relative_limit
- 0.005
-
-
- omega
- 48e3/9600
-
-
- type
- float
-
-
-
- digital_costas_loop_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (968, 148)
-
-
- _rotation
- 0
-
-
- id
- digital_costas_loop_cc_0
-
-
- w
- 2.0 * math.pi / 100.0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- order
- 2
-
-
- use_snr
- False
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (15, 730)
-
-
- _rotation
- 0
-
-
- id
- doppler_correction_per_sec
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 1000
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (327, 905)
-
-
- _rotation
- 0
-
-
- id
- enable_iq_dump
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (151, 985)
-
-
- _rotation
- 180
-
-
- id
- file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- test.wav
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- int(samp_rate_rx/filter_rate)
-
-
- _enabled
- 1
-
-
- _coordinate
- (680, 268)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- xlate_filter_taps
-
-
- type
- ccc
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (79, 905)
-
-
- _rotation
- 0
-
-
- id
- if_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_if_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (454, 905)
-
-
- _rotation
- 0
-
-
- id
- iq_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/iq.dat
-
-
-
- parameter
-
- alias
-
-
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- True
-
-
- _coordinate
- (247, 985)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e3
-
-
-
- low_pass_filter
-
- beta
- 6.76
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- cutoff_freq
- 7850
-
-
- decim
- 1
-
-
- _enabled
- True
-
-
- type
- fir_filter_fff
-
-
- _coordinate
- (1054, 391)
-
-
- _rotation
- 0
-
-
- gain
- 1
-
-
- id
- low_pass_filter_0
-
-
- interp
- 1
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- audio_samp_rate
-
-
- width
- audio_samp_rate * 0.15
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
- satnogs.handle_rx_antenna(rx_sdr_device, antenna)
-
-
- bb_gain0
- satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 2
-
-
- corr0
- ppm
-
-
- freq0
- rx_freq - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- dc_offset_mode10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- gain_mode10
- False
-
-
- if_gain10
- 20
-
-
- iq_balance_mode10
- 0
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- dc_offset_mode11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- gain_mode11
- False
-
-
- if_gain11
- 20
-
-
- iq_balance_mode11
- 0
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- dc_offset_mode12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- gain_mode12
- False
-
-
- if_gain12
- 20
-
-
- iq_balance_mode12
- 0
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- dc_offset_mode13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- gain_mode13
- False
-
-
- if_gain13
- 20
-
-
- iq_balance_mode13
- 0
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- dc_offset_mode14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- gain_mode14
- False
-
-
- if_gain14
- 20
-
-
- iq_balance_mode14
- 0
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- dc_offset_mode15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- gain_mode15
- False
-
-
- if_gain15
- 20
-
-
- iq_balance_mode15
- 0
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- dc_offset_mode16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- gain_mode16
- False
-
-
- if_gain16
- 20
-
-
- iq_balance_mode16
- 0
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- dc_offset_mode17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- gain_mode17
- False
-
-
- if_gain17
- 20
-
-
- iq_balance_mode17
- 0
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- dc_offset_mode18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- gain_mode18
- False
-
-
- if_gain18
- 20
-
-
- iq_balance_mode18
- 0
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- dc_offset_mode19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- gain_mode19
- False
-
-
- if_gain19
- 20
-
-
- iq_balance_mode19
- 0
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- dc_offset_mode20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- gain_mode20
- False
-
-
- if_gain20
- 20
-
-
- iq_balance_mode20
- 0
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- dc_offset_mode21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- gain_mode21
- False
-
-
- if_gain21
- 20
-
-
- iq_balance_mode21
- 0
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- dc_offset_mode22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- gain_mode22
- False
-
-
- if_gain22
- 20
-
-
- iq_balance_mode22
- 0
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- dc_offset_mode23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- gain_mode23
- False
-
-
- if_gain23
- 20
-
-
- iq_balance_mode23
- 0
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- dc_offset_mode24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- gain_mode24
- False
-
-
- if_gain24
- 20
-
-
- iq_balance_mode24
- 0
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- dc_offset_mode25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- gain_mode25
- False
-
-
- if_gain25
- 20
-
-
- iq_balance_mode25
- 0
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- dc_offset_mode26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- gain_mode26
- False
-
-
- if_gain26
- 20
-
-
- iq_balance_mode26
- 0
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- dc_offset_mode27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- gain_mode27
- False
-
-
- if_gain27
- 20
-
-
- iq_balance_mode27
- 0
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- dc_offset_mode28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- gain_mode28
- False
-
-
- if_gain28
- 20
-
-
- iq_balance_mode28
- 0
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- dc_offset_mode29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- gain_mode29
- False
-
-
- if_gain29
- 20
-
-
- iq_balance_mode29
- 0
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- dc_offset_mode30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- gain_mode30
- False
-
-
- if_gain30
- 20
-
-
- iq_balance_mode30
- 0
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- dc_offset_mode31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- gain_mode31
- False
-
-
- if_gain31
- 20
-
-
- iq_balance_mode31
- 0
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- dc_offset_mode5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- gain_mode5
- False
-
-
- if_gain5
- 20
-
-
- iq_balance_mode5
- 0
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- dc_offset_mode6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- gain_mode6
- False
-
-
- if_gain6
- 20
-
-
- iq_balance_mode6
- 0
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- dc_offset_mode7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- gain_mode7
- False
-
-
- if_gain7
- 20
-
-
- iq_balance_mode7
- 0
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- dc_offset_mode8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- gain_mode8
- False
-
-
- if_gain8
- 20
-
-
- iq_balance_mode8
- 0
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- dc_offset_mode9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- gain_mode9
- False
-
-
- if_gain9
- 20
-
-
- iq_balance_mode9
- 0
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
- satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)
-
-
- _enabled
- 1
-
-
- _coordinate
- (15, 311)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
- sync
-
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (454, 985)
-
-
- _rotation
- 0
-
-
- id
- ppm
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (7, 905)
-
-
- _rotation
- 0
-
-
- id
- rf_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_rf_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (367, 730)
-
-
- _rotation
- 0
-
-
- id
- rigctl_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 4532
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (287, 730)
-
-
- _rotation
- 0
-
-
- id
- rx_freq
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e6
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (175, 730)
-
-
- _rotation
- 0
-
-
- id
- rx_sdr_device
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- usrpb200
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1528, 560)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_coarse_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (352, 276)
-
-
- _rotation
- 0
-
-
- id
- satnogs_coarse_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_frame_file_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1156, 602)
-
-
- _rotation
- 180
-
-
- id
- satnogs_frame_file_sink_0_1_0
-
-
- output_type
- 0
-
-
- prefix_name
- decoded_data_file_path
-
-
-
- satnogs_iq_sink
-
- append
- False
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- iq_file_path
-
-
- _coordinate
- (1286, 139)
-
-
- _rotation
- 0
-
-
- id
- satnogs_iq_sink_0
-
-
- scale
- 16768
-
-
- status
- enable_iq_dump
-
-
-
- satnogs_ogg_encoder
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- filename
- file_path
-
-
- _coordinate
- (792, 528)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ogg_encoder_0
-
-
- quality
- 1.0
-
-
- samp_rate
- audio_samp_rate
-
-
-
- satnogs_quad_demod_filter_ff
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1476, 434)
-
-
- _rotation
- 0
-
-
- gain
- ((audio_samp_rate) / baud_rate)/(math.pi*modulation_index)
-
-
- id
- satnogs_quad_demod_filter_ff_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- win
- 80
-
-
-
- satnogs_tcp_rigctl_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (16, 204)
-
-
- _rotation
- 0
-
-
- id
- satnogs_tcp_rigctl_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mode
- False
-
-
- port
- rigctl_port
-
-
- interval
- 1000
-
-
-
- satnogs_udp_msg_sink
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (1188, 690)
-
-
- _rotation
- 180
-
-
- id
- satnogs_udp_msg_sink_0_0
-
-
- addr
- udp_IP
-
-
- mtu
- 1500
-
-
- port
- udp_port
-
-
-
- satnogs_waterfall_sink
-
- alias
-
-
-
- center_freq
- 0.0
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- fft_size
- 1024
-
-
- filename
- waterfall_file_path
-
-
- _coordinate
- (1486, 255)
-
-
- _rotation
- 0
-
-
- id
- satnogs_waterfall_sink_0
-
-
- mode
- 1
-
-
- pps
- 10
-
-
- samp_rate
- audio_samp_rate
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (837, 746)
-
-
- _rotation
- 0
-
-
- id
- udp_IP
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- 127.0.0.1
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (949, 746)
-
-
- _rotation
- 0
-
-
- id
- udp_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 16887
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (7, 985)
-
-
- _rotation
- 0
-
-
- id
- waterfall_file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- /tmp/waterfall.dat
-
-
-
- analog_quadrature_demod_cf_0_0
- dc_blocker_xx_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- analog_quadrature_demod_cf_0_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_iq_sink_0
- 0
- 0
-
-
- blks2_rational_resampler_xxx_1
- satnogs_waterfall_sink_0
- 0
- 0
-
-
- dc_blocker_xx_0
- low_pass_filter_0
- 0
- 0
-
-
- digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
- 0
- 0
-
-
- digital_clock_recovery_mm_xx_0
- satnogs_quad_demod_filter_ff_0
- 0
- 0
-
-
- digital_costas_loop_cc_0
- blks2_rational_resampler_xxx_1
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- digital_costas_loop_cc_0
- 0
- 0
-
-
- low_pass_filter_0
- digital_clock_recovery_mm_xx_0
- 0
- 0
-
-
- low_pass_filter_0
- satnogs_ogg_encoder_0
- 0
- 0
-
-
- osmosdr_source_0
- satnogs_coarse_doppler_correction_cc_0
- 0
- 0
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_coarse_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_quad_demod_filter_ff_0
- digital_binary_slicer_fb_0
- 0
- 0
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_coarse_doppler_correction_cc_0
- freq
- freq
-
-
diff --git a/apps/flowgraphs/fsk_ax25.grc b/apps/flowgraphs/fsk_ax25.grc
index ee848f4..6aa9f97 100644
--- a/apps/flowgraphs/fsk_ax25.grc
+++ b/apps/flowgraphs/fsk_ax25.grc
@@ -116,6 +116,108 @@
48000
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ True
+
+
+ _coordinate
+ (1212, 801)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ False
+
+
+ _coordinate
+ (1372, 801)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
analog_quadrature_demod_cf
@@ -861,7 +963,7 @@
_coordinate
- (1512, 592)
+ (1523, 606)
_rotation
@@ -900,7 +1002,7 @@
_coordinate
- (1768, 556)
+ (1771, 570)
_rotation
@@ -987,7 +1089,7 @@
value
- 1000
+ 20
@@ -3222,124 +3324,6 @@ we shift the LO a little further
satnogs.not_set_samp_rate_rx
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1240, 492)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- False
-
-
- _coordinate
- (1240, 612)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
satnogs_coarse_doppler_correction_cc
@@ -3387,6 +3371,100 @@ we shift the LO a little further
rx_freq
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1220, 638)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0_0
+
+
+ _enabled
+ 1
+
+
+ _coordinate
+ (1220, 566)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
satnogs_frame_file_sink
@@ -3407,7 +3485,7 @@ we shift the LO a little further
_coordinate
- (936, 684)
+ (885, 730)
_rotation
@@ -3536,7 +3614,7 @@ we shift the LO a little further
_coordinate
- (216, 148)
+ (215, 147)
_rotation
@@ -3572,7 +3650,7 @@ we shift the LO a little further
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -3595,7 +3673,7 @@ we shift the LO a little further
_coordinate
- (936, 596)
+ (885, 634)
_rotation
@@ -3876,13 +3954,13 @@ we shift the LO a little further
digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
+ satnogs_frame_decoder_0_0
0
0
digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0_0
+ satnogs_frame_decoder_0_0_0
0
0
@@ -3946,36 +4024,36 @@ we shift the LO a little further
0
0
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
satnogs_coarse_doppler_correction_cc_0
pfb_arb_resampler_xxx_0
0
0
+
+ satnogs_frame_decoder_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
satnogs_tcp_rigctl_msg_source_0
satnogs_coarse_doppler_correction_cc_0
diff --git a/apps/flowgraphs/generic_iq_receiver.grc b/apps/flowgraphs/generic_iq_receiver.grc
deleted file mode 100644
index 12b6e3b..0000000
--- a/apps/flowgraphs/generic_iq_receiver.grc
+++ /dev/null
@@ -1,2858 +0,0 @@
-
-
-
- Thu May 5 00:22:45 2016
-
- options
-
- author
- Manolis Surligas (surligas@gmail.com)
-
-
- window_size
-
-
-
- category
- Custom
-
-
- comment
-
-
-
- description
- A generic FM demodulation block
-
-
- _enabled
- True
-
-
- _coordinate
- (8, 8)
-
-
- _rotation
- 0
-
-
- generate_options
- no_gui
-
-
- hier_block_src_path
- .:
-
-
- id
- satnogs_generic_iq_receiver
-
-
- max_nouts
- 0
-
-
- qt_qss_theme
-
-
-
- realtime_scheduling
-
-
-
- run_command
- {python} -u {filename}
-
-
- run_options
- run
-
-
- run
- True
-
-
- thread_safe_setters
-
-
-
- title
- Generic IQ samples receiver
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (568, 508)
-
-
- _rotation
- 0
-
-
- id
- audio_decimation
-
-
- value
- 2
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (568, 580)
-
-
- _rotation
- 0
-
-
- id
- audio_samp_rate
-
-
- value
- 44100
-
-
-
- variable
-
- comment
- Decimation factor
-for the RX after the
-SDR received samples
-
-
- _enabled
- True
-
-
- _coordinate
- (192, 612)
-
-
- _rotation
- 0
-
-
- id
- decimation_rx
-
-
- value
- satnogs.fm_demod_settings[rx_sdr_device]['decimation_rx']
-
-
-
- variable
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (432, 476)
-
-
- _rotation
- 0
-
-
- id
- quadrature_rate
-
-
- value
- samp_rate_rx / decimation_rx
-
-
-
- variable
-
- comment
- SDR device
-TX sampling rate
-
-
- _enabled
- True
-
-
- _coordinate
- (192, 484)
-
-
- _rotation
- 0
-
-
- id
- samp_rate_rx
-
-
- value
- satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
-
-
-
- variable_low_pass_filter_taps
-
- beta
- 6.76
-
-
- comment
-
-
-
- cutoff_freq
- 100e3
-
-
- _enabled
- 1
-
-
- _coordinate
- (560, 648)
-
-
- _rotation
- 0
-
-
- gain
- 12.0
-
-
- id
- taps
-
-
- samp_rate
- samp_rate_rx
-
-
- width
- 60000
-
-
- win
- firdes.WIN_HAMMING
-
-
-
- analog_sig_source_x
-
- amp
- 1
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 0
-
-
- freq
- -lo_offset
-
-
- _coordinate
- (312, 24)
-
-
- _rotation
- 0
-
-
- id
- analog_sig_source_x_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- offset
- 0
-
-
- type
- complex
-
-
- samp_rate
- samp_rate_rx
-
-
- waveform
- analog.GR_COS_WAVE
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (398, 937)
-
-
- _rotation
- 0
-
-
- id
- antenna
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_antenna
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (311, 937)
-
-
- _rotation
- 0
-
-
- id
- bb_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_bb_gain
-
-
-
- blocks_file_sink
-
- append
- False
-
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- file
- file_path
-
-
- _coordinate
- (1136, 284)
-
-
- _rotation
- 0
-
-
- id
- blocks_file_sink_0
-
-
- type
- complex
-
-
- unbuffered
- True
-
-
- vlen
- 1
-
-
-
- blocks_multiply_xx
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 0
-
-
- _coordinate
- (568, 64)
-
-
- _rotation
- 0
-
-
- id
- blocks_multiply_xx_0
-
-
- type
- complex
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- num_inputs
- 2
-
-
- vlen
- 1
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (63, 937)
-
-
- _rotation
- 0
-
-
- id
- dev_args
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- satnogs.not_set_dev_args
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (64, 860)
-
-
- _rotation
- 0
-
-
- id
- doppler_correction_per_sec
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 20
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (64, 620)
-
-
- _rotation
- 0
-
-
- id
- file_path
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- test.wav
-
-
-
- freq_xlating_fir_filter_xxx
-
- alias
-
-
-
- center_freq
- lo_offset
-
-
- comment
-
-
-
- affinity
-
-
-
- decim
- decimation_rx
-
-
- _enabled
- 1
-
-
- _coordinate
- (896, 280)
-
-
- _rotation
- 0
-
-
- id
- freq_xlating_fir_filter_xxx_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- samp_rate
- samp_rate_rx
-
-
- taps
- taps
-
-
- type
- ccc
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (231, 937)
-
-
- _rotation
- 0
-
-
- id
- if_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_if_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
- To avoid the SDR carrier at the DC
-we shift the LO a little further
-
-
- _enabled
- True
-
-
- _coordinate
- (328, 476)
-
-
- _rotation
- 0
-
-
- id
- lo_offset
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e3
-
-
-
- osmosdr_source
-
- alias
-
-
-
- ant0
- satnogs.handle_rx_antenna(rx_sdr_device, antenna)
-
-
- bb_gain0
- satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)
-
-
- bw0
- samp_rate_rx
-
-
- dc_offset_mode0
- 2
-
-
- corr0
- ppm
-
-
- freq0
- rx_freq - lo_offset
-
-
- gain_mode0
- False
-
-
- if_gain0
- satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)
-
-
- iq_balance_mode0
- 0
-
-
- gain0
- satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)
-
-
- ant10
-
-
-
- bb_gain10
- 20
-
-
- bw10
- 0
-
-
- dc_offset_mode10
- 0
-
-
- corr10
- 0
-
-
- freq10
- 100e6
-
-
- gain_mode10
- False
-
-
- if_gain10
- 20
-
-
- iq_balance_mode10
- 0
-
-
- gain10
- 10
-
-
- ant11
-
-
-
- bb_gain11
- 20
-
-
- bw11
- 0
-
-
- dc_offset_mode11
- 0
-
-
- corr11
- 0
-
-
- freq11
- 100e6
-
-
- gain_mode11
- False
-
-
- if_gain11
- 20
-
-
- iq_balance_mode11
- 0
-
-
- gain11
- 10
-
-
- ant12
-
-
-
- bb_gain12
- 20
-
-
- bw12
- 0
-
-
- dc_offset_mode12
- 0
-
-
- corr12
- 0
-
-
- freq12
- 100e6
-
-
- gain_mode12
- False
-
-
- if_gain12
- 20
-
-
- iq_balance_mode12
- 0
-
-
- gain12
- 10
-
-
- ant13
-
-
-
- bb_gain13
- 20
-
-
- bw13
- 0
-
-
- dc_offset_mode13
- 0
-
-
- corr13
- 0
-
-
- freq13
- 100e6
-
-
- gain_mode13
- False
-
-
- if_gain13
- 20
-
-
- iq_balance_mode13
- 0
-
-
- gain13
- 10
-
-
- ant14
-
-
-
- bb_gain14
- 20
-
-
- bw14
- 0
-
-
- dc_offset_mode14
- 0
-
-
- corr14
- 0
-
-
- freq14
- 100e6
-
-
- gain_mode14
- False
-
-
- if_gain14
- 20
-
-
- iq_balance_mode14
- 0
-
-
- gain14
- 10
-
-
- ant15
-
-
-
- bb_gain15
- 20
-
-
- bw15
- 0
-
-
- dc_offset_mode15
- 0
-
-
- corr15
- 0
-
-
- freq15
- 100e6
-
-
- gain_mode15
- False
-
-
- if_gain15
- 20
-
-
- iq_balance_mode15
- 0
-
-
- gain15
- 10
-
-
- ant16
-
-
-
- bb_gain16
- 20
-
-
- bw16
- 0
-
-
- dc_offset_mode16
- 0
-
-
- corr16
- 0
-
-
- freq16
- 100e6
-
-
- gain_mode16
- False
-
-
- if_gain16
- 20
-
-
- iq_balance_mode16
- 0
-
-
- gain16
- 10
-
-
- ant17
-
-
-
- bb_gain17
- 20
-
-
- bw17
- 0
-
-
- dc_offset_mode17
- 0
-
-
- corr17
- 0
-
-
- freq17
- 100e6
-
-
- gain_mode17
- False
-
-
- if_gain17
- 20
-
-
- iq_balance_mode17
- 0
-
-
- gain17
- 10
-
-
- ant18
-
-
-
- bb_gain18
- 20
-
-
- bw18
- 0
-
-
- dc_offset_mode18
- 0
-
-
- corr18
- 0
-
-
- freq18
- 100e6
-
-
- gain_mode18
- False
-
-
- if_gain18
- 20
-
-
- iq_balance_mode18
- 0
-
-
- gain18
- 10
-
-
- ant19
-
-
-
- bb_gain19
- 20
-
-
- bw19
- 0
-
-
- dc_offset_mode19
- 0
-
-
- corr19
- 0
-
-
- freq19
- 100e6
-
-
- gain_mode19
- False
-
-
- if_gain19
- 20
-
-
- iq_balance_mode19
- 0
-
-
- gain19
- 10
-
-
- ant1
-
-
-
- bb_gain1
- 20
-
-
- bw1
- 0
-
-
- dc_offset_mode1
- 0
-
-
- corr1
- 0
-
-
- freq1
- 100e6
-
-
- gain_mode1
- False
-
-
- if_gain1
- 20
-
-
- iq_balance_mode1
- 0
-
-
- gain1
- 10
-
-
- ant20
-
-
-
- bb_gain20
- 20
-
-
- bw20
- 0
-
-
- dc_offset_mode20
- 0
-
-
- corr20
- 0
-
-
- freq20
- 100e6
-
-
- gain_mode20
- False
-
-
- if_gain20
- 20
-
-
- iq_balance_mode20
- 0
-
-
- gain20
- 10
-
-
- ant21
-
-
-
- bb_gain21
- 20
-
-
- bw21
- 0
-
-
- dc_offset_mode21
- 0
-
-
- corr21
- 0
-
-
- freq21
- 100e6
-
-
- gain_mode21
- False
-
-
- if_gain21
- 20
-
-
- iq_balance_mode21
- 0
-
-
- gain21
- 10
-
-
- ant22
-
-
-
- bb_gain22
- 20
-
-
- bw22
- 0
-
-
- dc_offset_mode22
- 0
-
-
- corr22
- 0
-
-
- freq22
- 100e6
-
-
- gain_mode22
- False
-
-
- if_gain22
- 20
-
-
- iq_balance_mode22
- 0
-
-
- gain22
- 10
-
-
- ant23
-
-
-
- bb_gain23
- 20
-
-
- bw23
- 0
-
-
- dc_offset_mode23
- 0
-
-
- corr23
- 0
-
-
- freq23
- 100e6
-
-
- gain_mode23
- False
-
-
- if_gain23
- 20
-
-
- iq_balance_mode23
- 0
-
-
- gain23
- 10
-
-
- ant24
-
-
-
- bb_gain24
- 20
-
-
- bw24
- 0
-
-
- dc_offset_mode24
- 0
-
-
- corr24
- 0
-
-
- freq24
- 100e6
-
-
- gain_mode24
- False
-
-
- if_gain24
- 20
-
-
- iq_balance_mode24
- 0
-
-
- gain24
- 10
-
-
- ant25
-
-
-
- bb_gain25
- 20
-
-
- bw25
- 0
-
-
- dc_offset_mode25
- 0
-
-
- corr25
- 0
-
-
- freq25
- 100e6
-
-
- gain_mode25
- False
-
-
- if_gain25
- 20
-
-
- iq_balance_mode25
- 0
-
-
- gain25
- 10
-
-
- ant26
-
-
-
- bb_gain26
- 20
-
-
- bw26
- 0
-
-
- dc_offset_mode26
- 0
-
-
- corr26
- 0
-
-
- freq26
- 100e6
-
-
- gain_mode26
- False
-
-
- if_gain26
- 20
-
-
- iq_balance_mode26
- 0
-
-
- gain26
- 10
-
-
- ant27
-
-
-
- bb_gain27
- 20
-
-
- bw27
- 0
-
-
- dc_offset_mode27
- 0
-
-
- corr27
- 0
-
-
- freq27
- 100e6
-
-
- gain_mode27
- False
-
-
- if_gain27
- 20
-
-
- iq_balance_mode27
- 0
-
-
- gain27
- 10
-
-
- ant28
-
-
-
- bb_gain28
- 20
-
-
- bw28
- 0
-
-
- dc_offset_mode28
- 0
-
-
- corr28
- 0
-
-
- freq28
- 100e6
-
-
- gain_mode28
- False
-
-
- if_gain28
- 20
-
-
- iq_balance_mode28
- 0
-
-
- gain28
- 10
-
-
- ant29
-
-
-
- bb_gain29
- 20
-
-
- bw29
- 0
-
-
- dc_offset_mode29
- 0
-
-
- corr29
- 0
-
-
- freq29
- 100e6
-
-
- gain_mode29
- False
-
-
- if_gain29
- 20
-
-
- iq_balance_mode29
- 0
-
-
- gain29
- 10
-
-
- ant2
-
-
-
- bb_gain2
- 20
-
-
- bw2
- 0
-
-
- dc_offset_mode2
- 0
-
-
- corr2
- 0
-
-
- freq2
- 100e6
-
-
- gain_mode2
- False
-
-
- if_gain2
- 20
-
-
- iq_balance_mode2
- 0
-
-
- gain2
- 10
-
-
- ant30
-
-
-
- bb_gain30
- 20
-
-
- bw30
- 0
-
-
- dc_offset_mode30
- 0
-
-
- corr30
- 0
-
-
- freq30
- 100e6
-
-
- gain_mode30
- False
-
-
- if_gain30
- 20
-
-
- iq_balance_mode30
- 0
-
-
- gain30
- 10
-
-
- ant31
-
-
-
- bb_gain31
- 20
-
-
- bw31
- 0
-
-
- dc_offset_mode31
- 0
-
-
- corr31
- 0
-
-
- freq31
- 100e6
-
-
- gain_mode31
- False
-
-
- if_gain31
- 20
-
-
- iq_balance_mode31
- 0
-
-
- gain31
- 10
-
-
- ant3
-
-
-
- bb_gain3
- 20
-
-
- bw3
- 0
-
-
- dc_offset_mode3
- 0
-
-
- corr3
- 0
-
-
- freq3
- 100e6
-
-
- gain_mode3
- False
-
-
- if_gain3
- 20
-
-
- iq_balance_mode3
- 0
-
-
- gain3
- 10
-
-
- ant4
-
-
-
- bb_gain4
- 20
-
-
- bw4
- 0
-
-
- dc_offset_mode4
- 0
-
-
- corr4
- 0
-
-
- freq4
- 100e6
-
-
- gain_mode4
- False
-
-
- if_gain4
- 20
-
-
- iq_balance_mode4
- 0
-
-
- gain4
- 10
-
-
- ant5
-
-
-
- bb_gain5
- 20
-
-
- bw5
- 0
-
-
- dc_offset_mode5
- 0
-
-
- corr5
- 0
-
-
- freq5
- 100e6
-
-
- gain_mode5
- False
-
-
- if_gain5
- 20
-
-
- iq_balance_mode5
- 0
-
-
- gain5
- 10
-
-
- ant6
-
-
-
- bb_gain6
- 20
-
-
- bw6
- 0
-
-
- dc_offset_mode6
- 0
-
-
- corr6
- 0
-
-
- freq6
- 100e6
-
-
- gain_mode6
- False
-
-
- if_gain6
- 20
-
-
- iq_balance_mode6
- 0
-
-
- gain6
- 10
-
-
- ant7
-
-
-
- bb_gain7
- 20
-
-
- bw7
- 0
-
-
- dc_offset_mode7
- 0
-
-
- corr7
- 0
-
-
- freq7
- 100e6
-
-
- gain_mode7
- False
-
-
- if_gain7
- 20
-
-
- iq_balance_mode7
- 0
-
-
- gain7
- 10
-
-
- ant8
-
-
-
- bb_gain8
- 20
-
-
- bw8
- 0
-
-
- dc_offset_mode8
- 0
-
-
- corr8
- 0
-
-
- freq8
- 100e6
-
-
- gain_mode8
- False
-
-
- if_gain8
- 20
-
-
- iq_balance_mode8
- 0
-
-
- gain8
- 10
-
-
- ant9
-
-
-
- bb_gain9
- 20
-
-
- bw9
- 0
-
-
- dc_offset_mode9
- 0
-
-
- corr9
- 0
-
-
- freq9
- 100e6
-
-
- gain_mode9
- False
-
-
- if_gain9
- 20
-
-
- iq_balance_mode9
- 0
-
-
- gain9
- 10
-
-
- comment
-
-
-
- affinity
-
-
-
- args
- satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)
-
-
- _enabled
- 1
-
-
- _coordinate
- (23, 271)
-
-
- _rotation
- 0
-
-
- id
- osmosdr_source_0
-
-
- maxoutbuf
- 0
-
-
- clock_source0
-
-
-
- time_source0
-
-
-
- clock_source1
-
-
-
- time_source1
-
-
-
- clock_source2
-
-
-
- time_source2
-
-
-
- clock_source3
-
-
-
- time_source3
-
-
-
- clock_source4
-
-
-
- time_source4
-
-
-
- clock_source5
-
-
-
- time_source5
-
-
-
- clock_source6
-
-
-
- time_source6
-
-
-
- clock_source7
-
-
-
- time_source7
-
-
-
- minoutbuf
- 0
-
-
- nchan
- 1
-
-
- num_mboards
- 1
-
-
- type
- fc32
-
-
- sample_rate
- samp_rate_rx
-
-
- sync
-
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (183, 769)
-
-
- _rotation
- 0
-
-
- id
- ppm
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 0
-
-
-
- qtgui_freq_sink_x
-
- autoscale
- False
-
-
- average
- 0.2
-
-
- axislabels
- True
-
-
- bw
- samp_rate_rx
-
-
- alias
-
-
-
- fc
- 0
-
-
- comment
-
-
-
- ctrlpanel
- True
-
-
- affinity
-
-
-
- _enabled
- 0
-
-
- fftsize
- 1024
-
-
- _coordinate
- (792, 28)
-
-
- gui_hint
-
-
-
- _rotation
- 0
-
-
- grid
- True
-
-
- id
- qtgui_freq_sink_x_0
-
-
- legend
- True
-
-
- alpha1
- 1.0
-
-
- color1
- "blue"
-
-
- label1
-
-
-
- width1
- 1
-
-
- alpha10
- 1.0
-
-
- color10
- "dark blue"
-
-
- label10
-
-
-
- width10
- 1
-
-
- alpha2
- 1.0
-
-
- color2
- "red"
-
-
- label2
-
-
-
- width2
- 1
-
-
- alpha3
- 1.0
-
-
- color3
- "green"
-
-
- label3
-
-
-
- width3
- 1
-
-
- alpha4
- 1.0
-
-
- color4
- "black"
-
-
- label4
-
-
-
- width4
- 1
-
-
- alpha5
- 1.0
-
-
- color5
- "cyan"
-
-
- label5
-
-
-
- width5
- 1
-
-
- alpha6
- 1.0
-
-
- color6
- "magenta"
-
-
- label6
-
-
-
- width6
- 1
-
-
- alpha7
- 1.0
-
-
- color7
- "yellow"
-
-
- label7
-
-
-
- width7
- 1
-
-
- alpha8
- 1.0
-
-
- color8
- "dark red"
-
-
- label8
-
-
-
- width8
- 1
-
-
- alpha9
- 1.0
-
-
- color9
- "dark green"
-
-
- label9
-
-
-
- width9
- 1
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- name
- ""
-
-
- nconnections
- 1
-
-
- showports
- True
-
-
- freqhalf
- True
-
-
- tr_chan
- 0
-
-
- tr_level
- 0.0
-
-
- tr_mode
- qtgui.TRIG_MODE_FREE
-
-
- tr_tag
- ""
-
-
- type
- complex
-
-
- update_time
- 0.01
-
-
- wintype
- firdes.WIN_BLACKMAN_hARRIS
-
-
- label
- Relative Gain
-
-
- ymax
- 10
-
-
- ymin
- -140
-
-
- units
- dB
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (159, 937)
-
-
- _rotation
- 0
-
-
- id
- rf_gain
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- satnogs.not_set_rx_rf_gain
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (64, 780)
-
-
- _rotation
- 0
-
-
- id
- rigctl_port
-
-
- label
-
-
-
- short_id
-
-
-
- type
- intx
-
-
- value
- 4532
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (64, 700)
-
-
- _rotation
- 0
-
-
- id
- rx_freq
-
-
- label
-
-
-
- short_id
-
-
-
- type
- eng_float
-
-
- value
- 100e6
-
-
-
- parameter
-
- alias
-
-
-
- comment
-
-
-
- _enabled
- True
-
-
- _coordinate
- (64, 484)
-
-
- _rotation
- 0
-
-
- id
- rx_sdr_device
-
-
- label
-
-
-
- short_id
-
-
-
- type
- string
-
-
- value
- usrpb200
-
-
-
- satnogs_coarse_doppler_correction_cc
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (568, 288)
-
-
- _rotation
- 0
-
-
- id
- satnogs_coarse_doppler_correction_cc_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- sampling_rate
- samp_rate_rx
-
-
- target_freq
- rx_freq
-
-
-
- satnogs_tcp_rigctl_msg_source
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- 1
-
-
- _coordinate
- (24, 164)
-
-
- _rotation
- 0
-
-
- id
- satnogs_tcp_rigctl_msg_source_0
-
-
- addr
- "127.0.0.1"
-
-
- mtu
- 1500
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- mode
- False
-
-
- port
- rigctl_port
-
-
- interval
- 1000/doppler_correction_per_sec
-
-
-
- analog_sig_source_x_0
- blocks_multiply_xx_0
- 0
- 0
-
-
- blocks_multiply_xx_0
- qtgui_freq_sink_x_0
- 0
- 0
-
-
- freq_xlating_fir_filter_xxx_0
- blocks_file_sink_0
- 0
- 0
-
-
- osmosdr_source_0
- satnogs_coarse_doppler_correction_cc_0
- 0
- 0
-
-
- satnogs_coarse_doppler_correction_cc_0
- freq_xlating_fir_filter_xxx_0
- 0
- 0
-
-
- satnogs_tcp_rigctl_msg_source_0
- satnogs_coarse_doppler_correction_cc_0
- freq
- freq
-
-
diff --git a/apps/flowgraphs/msk_ax25.grc b/apps/flowgraphs/msk_ax25.grc
index c42e5da..c2e815e 100644
--- a/apps/flowgraphs/msk_ax25.grc
+++ b/apps/flowgraphs/msk_ax25.grc
@@ -116,6 +116,108 @@
48000
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ True
+
+
+ _coordinate
+ (1196, 777)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
+
+ variable_ax25_decoder
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ descrambling
+ False
+
+
+ _coordinate
+ (1356, 777)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ax25_decoder_0_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 512
+
+
+ crc_check
+ True
+
+
+ promisc
+ True
+
+
+ addr
+ 'GND'
+
+
+ ssid
+ 0
+
+
analog_quadrature_demod_cf
@@ -987,7 +1089,7 @@
value
- 1000
+ 20
@@ -1147,7 +1249,7 @@
_coordinate
- (8, 148)
+ (7, 179)
_rotation
@@ -3222,124 +3324,6 @@ we shift the LO a little further
satnogs.not_set_samp_rate_rx
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- True
-
-
- _coordinate
- (1240, 492)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
-
- satnogs_ax25_decoder_bm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- descrambling
- False
-
-
- _coordinate
- (1240, 612)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ax25_decoder_bm_0_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 1024
-
-
- minoutbuf
- 0
-
-
- promisc
- True
-
-
- addr
- 'GND'
-
-
- ssid
- 0
-
-
satnogs_coarse_doppler_correction_cc
@@ -3387,6 +3371,100 @@ we shift the LO a little further
rx_freq
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1204, 606)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
+
+ satnogs_frame_decoder
+
+ alias
+
+
+
+ comment
+
+
+
+ affinity
+
+
+
+ decoder_object
+ variable_ax25_decoder_0_0
+
+
+ _enabled
+ 1
+
+
+ _coordinate
+ (1204, 534)
+
+
+ _rotation
+ 180
+
+
+ id
+ satnogs_frame_decoder_0_0_0
+
+
+ itype
+ byte
+
+
+ maxoutbuf
+ 0
+
+
+ minoutbuf
+ 0
+
+
satnogs_frame_file_sink
@@ -3407,7 +3485,7 @@ we shift the LO a little further
_coordinate
- (936, 684)
+ (869, 706)
_rotation
@@ -3536,7 +3614,7 @@ we shift the LO a little further
_coordinate
- (216, 148)
+ (215, 147)
_rotation
@@ -3572,7 +3650,7 @@ we shift the LO a little further
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -3595,7 +3673,7 @@ we shift the LO a little further
_coordinate
- (936, 596)
+ (869, 610)
_rotation
@@ -3876,13 +3954,13 @@ we shift the LO a little further
digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0
+ satnogs_frame_decoder_0_0
0
0
digital_binary_slicer_fb_0
- satnogs_ax25_decoder_bm_0_0
+ satnogs_frame_decoder_0_0_0
0
0
@@ -3946,36 +4024,36 @@ we shift the LO a little further
0
0
-
- satnogs_ax25_decoder_bm_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_frame_file_sink_0_1_0
- pdu
- frame
-
-
- satnogs_ax25_decoder_bm_0_0
- satnogs_udp_msg_sink_0_0
- pdu
- in
-
satnogs_coarse_doppler_correction_cc_0
pfb_arb_resampler_xxx_0
0
0
+
+ satnogs_frame_decoder_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_frame_file_sink_0_1_0
+ out
+ frame
+
+
+ satnogs_frame_decoder_0_0_0
+ satnogs_udp_msg_sink_0_0
+ out
+ in
+
satnogs_tcp_rigctl_msg_source_0
satnogs_coarse_doppler_correction_cc_0
diff --git a/apps/flowgraphs/satellites/amsat_fox_duv_decoder.grc b/apps/flowgraphs/satellites/amsat_fox_duv_decoder.grc
index d55f09d..918f2b0 100644
--- a/apps/flowgraphs/satellites/amsat_fox_duv_decoder.grc
+++ b/apps/flowgraphs/satellites/amsat_fox_duv_decoder.grc
@@ -1,5 +1,5 @@
-
+
Thu May 5 00:22:45 2016
@@ -72,6 +72,10 @@
run
True
+
+ sizing_mode
+ fixed
+
thread_safe_setters
@@ -80,6 +84,10 @@
title
AMSAT FOX DUV Decoder
+
+ placement
+ (0,0)
+
variable
@@ -162,6 +170,41 @@
3000
+
+ variable_amsat_duv_decoder
+
+ comment
+
+
+
+ control_symbol
+ 0011111010
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1212, 730)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_amsat_duv_decoder_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 96
+
+
analog_quadrature_demod_cf
@@ -282,6 +325,10 @@
short_id
+
+ hide
+ none
+
type
string
@@ -325,6 +372,10 @@
short_id
+
+ hide
+ none
+
type
eng_float
@@ -368,6 +419,10 @@
short_id
+
+ hide
+ none
+
type
eng_float
@@ -505,6 +560,10 @@
short_id
+
+ hide
+ none
+
type
string
@@ -548,6 +607,10 @@
short_id
+
+ hide
+ none
+
type
string
@@ -577,11 +640,11 @@
_coordinate
- (1360, 640)
+ (1244, 494)
_rotation
- 180
+ 0
id
@@ -693,6 +756,10 @@
short_id
+
+ hide
+ none
+
type
intx
@@ -736,6 +803,10 @@
short_id
+
+ hide
+ none
+
type
intx
@@ -779,6 +850,10 @@
short_id
+
+ hide
+ none
+
type
string
@@ -822,6 +897,10 @@
short_id
+
+ hide
+ none
+
type
eng_float
@@ -865,6 +944,10 @@
short_id
+
+ hide
+ none
+
type
string
@@ -909,6 +992,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2498,7 +2585,7 @@ max_modulation_freq = 3000
_coordinate
- (528, 164)
+ (526, 179)
_rotation
@@ -2575,6 +2662,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
intx
@@ -2618,6 +2709,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2661,6 +2756,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
intx
@@ -2775,6 +2874,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2818,6 +2921,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
string
@@ -2861,6 +2968,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2870,45 +2981,6 @@ max_modulation_freq = 3000
satnogs.not_set_samp_rate_rx
-
- satnogs_ccsds_rs_decoder_mm
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (888, 640)
-
-
- _rotation
- 180
-
-
- id
- satnogs_ccsds_rs_decoder_mm_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
satnogs_coarse_doppler_correction_cc
@@ -2929,7 +3001,7 @@ max_modulation_freq = 3000
_coordinate
- (296, 184)
+ (295, 191)
_rotation
@@ -2957,54 +3029,7 @@ max_modulation_freq = 3000
- satnogs_decoder_8b10b
-
- alias
-
-
-
- comment
-
-
-
- control_symbol
- 0011111010
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1136, 628)
-
-
- _rotation
- 180
-
-
- id
- satnogs_decoder_8b10b_0
-
-
- maxoutbuf
- 0
-
-
- max_frame_len
- 960
-
-
- minoutbuf
- 0
-
-
-
- satnogs_fox_telem_mm
+ satnogs_frame_decoder
alias
@@ -3017,13 +3042,17 @@ max_modulation_freq = 3000
affinity
+
+ decoder_object
+ variable_amsat_duv_decoder_0
+
_enabled
True
_coordinate
- (544, 640)
+ (1212, 662)
_rotation
@@ -3031,7 +3060,11 @@ max_modulation_freq = 3000
id
- satnogs_fox_telem_mm_0
+ satnogs_frame_decoder_0
+
+
+ itype
+ byte
maxoutbuf
@@ -3062,7 +3095,7 @@ max_modulation_freq = 3000
_coordinate
- (280, 628)
+ (718, 618)
_rotation
@@ -3171,53 +3204,6 @@ max_modulation_freq = 3000
audio_samp_rate
-
- satnogs_quad_demod_filter_ff
-
- alias
-
-
-
- comment
-
-
-
- affinity
-
-
-
- _enabled
- True
-
-
- _coordinate
- (1200, 484)
-
-
- _rotation
- 0
-
-
- gain
- 1.2
-
-
- id
- satnogs_quad_demod_filter_ff_0
-
-
- maxoutbuf
- 0
-
-
- minoutbuf
- 0
-
-
- win
- 80
-
-
satnogs_tcp_rigctl_msg_source
@@ -3238,7 +3224,7 @@ max_modulation_freq = 3000
_coordinate
- (16, 140)
+ (15, 163)
_rotation
@@ -3274,7 +3260,7 @@ max_modulation_freq = 3000
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -3297,7 +3283,7 @@ max_modulation_freq = 3000
_coordinate
- (280, 692)
+ (718, 682)
_rotation
@@ -3409,6 +3395,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
string
@@ -3452,6 +3442,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
intx
@@ -3495,6 +3489,10 @@ max_modulation_freq = 3000
short_id
+
+ hide
+ none
+
type
string
@@ -3530,13 +3528,13 @@ max_modulation_freq = 3000
digital_binary_slicer_fb_0_0
- satnogs_decoder_8b10b_0
+ satnogs_frame_decoder_0
0
0
digital_clock_recovery_mm_xx_0_0_0
- satnogs_quad_demod_filter_ff_0
+ digital_binary_slicer_fb_0_0
0
0
@@ -3588,12 +3586,6 @@ max_modulation_freq = 3000
0
0
-
- satnogs_ccsds_rs_decoder_mm_0
- satnogs_fox_telem_mm_0
- pdu
- in
-
satnogs_coarse_doppler_correction_cc_0
pfb_arb_resampler_xxx_0
@@ -3601,29 +3593,17 @@ max_modulation_freq = 3000
0
- satnogs_decoder_8b10b_0
- satnogs_ccsds_rs_decoder_mm_0
- pdu
- in
-
-
- satnogs_fox_telem_mm_0
+ satnogs_frame_decoder_0
satnogs_frame_file_sink_0_1_0
- raw
+ out
frame
- satnogs_fox_telem_mm_0
+ satnogs_frame_decoder_0
satnogs_udp_msg_sink_0_0
- raw
+ out
in
-
- satnogs_quad_demod_filter_ff_0
- digital_binary_slicer_fb_0_0
- 0
- 0
-
satnogs_tcp_rigctl_msg_source_0
satnogs_coarse_doppler_correction_cc_0
diff --git a/apps/flowgraphs/satellites/meteor_decoder.grc b/apps/flowgraphs/satellites/meteor_decoder.grc
index dbb3d3b..e037ce5 100644
--- a/apps/flowgraphs/satellites/meteor_decoder.grc
+++ b/apps/flowgraphs/satellites/meteor_decoder.grc
@@ -720,7 +720,7 @@
value
- 1000
+ 20
@@ -3008,7 +3008,7 @@ we shift the LO a little further
_coordinate
- (216, 148)
+ (215, 147)
_rotation
@@ -3044,7 +3044,7 @@ we shift the LO a little further
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
diff --git a/apps/flowgraphs/satellites/noaa_apt_decoder.grc b/apps/flowgraphs/satellites/noaa_apt_decoder.grc
index 8546f6e..6cca638 100644
--- a/apps/flowgraphs/satellites/noaa_apt_decoder.grc
+++ b/apps/flowgraphs/satellites/noaa_apt_decoder.grc
@@ -1,5 +1,5 @@
-
+
Mon Apr 10 23:26:02 2017
@@ -72,6 +72,10 @@
run
True
+
+ sizing_mode
+ fixed
+
thread_safe_setters
@@ -80,6 +84,10 @@
title
NOAA APT Decoder
+
+ placement
+ (0,0)
+
variable
@@ -370,6 +378,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -492,6 +504,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
eng_float
@@ -578,6 +594,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -621,6 +641,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -664,6 +688,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
intx
@@ -707,6 +735,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
intx
@@ -809,6 +841,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -907,6 +943,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
intx
@@ -1060,6 +1100,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
eng_float
@@ -1103,6 +1147,10 @@ TX sampling rate
short_id
+
+ hide
+ none
+
type
string
@@ -1147,6 +1195,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2597,6 +2649,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
intx
@@ -2935,6 +2991,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
eng_float
@@ -2978,6 +3038,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
intx
@@ -3021,6 +3085,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
eng_float
@@ -3064,6 +3132,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
string
@@ -3281,7 +3353,7 @@ we shift the LO a little further
_coordinate
- (8, 132)
+ (7, 131)
_rotation
@@ -3317,7 +3389,7 @@ we shift the LO a little further
interval
- 1000/doppler_correction_per_sec
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -3409,6 +3481,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
intx
@@ -3452,6 +3528,10 @@ we shift the LO a little further
short_id
+
+ hide
+ none
+
type
string
diff --git a/apps/flowgraphs/satellites/reaktor_hello_world_fsk9600_decoder.grc b/apps/flowgraphs/satellites/reaktor_hello_world_fsk9600_decoder.grc
index 69b6807..dc235aa 100644
--- a/apps/flowgraphs/satellites/reaktor_hello_world_fsk9600_decoder.grc
+++ b/apps/flowgraphs/satellites/reaktor_hello_world_fsk9600_decoder.grc
@@ -116,6 +116,65 @@
48000
+
+ variable_ieee802_15_4_variant_decoder
+
+ crc
+ satnogs.crc.CRC16_IBM
+
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ preamble
+ [0x55, 0x55, 0x55, 0x55, 0x55]
+
+
+ _coordinate
+ (1380, 618)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_ieee802_15_4_variant_decoder_0
+
+
+ value
+ 'ok'
+
+
+ frame_len
+ 256
+
+
+ preamble_thrsh
+ 2
+
+
+ sync_thrsh
+ 1
+
+
+ sync_word
+ [0x35, 0x2E, 0x35, 0x2E]
+
+
+ var_len
+ True
+
+
+ whitening
+ variable_whitening_0
+
+
variable_whitening
@@ -155,6 +214,45 @@
0x1FF
+
+ variable_whitening
+
+ comment
+
+
+
+ _enabled
+ True
+
+
+ _coordinate
+ (1220, 618)
+
+
+ _rotation
+ 0
+
+
+ id
+ variable_whitening_0_0
+
+
+ value
+ 'ok'
+
+
+ mask
+ 0x21
+
+
+ order
+ 8
+
+
+ seed
+ 0x1FF
+
+
analog_quadrature_demod_cf
@@ -939,7 +1037,7 @@
_coordinate
- (1672, 532)
+ (1675, 530)
_rotation
@@ -1026,7 +1124,7 @@
value
- 1000
+ 20
@@ -3309,15 +3407,11 @@ we shift the LO a little further
- satnogs_frame_acquisition
+ satnogs_frame_decoder
alias
-
- crc
- 3
-
comment
@@ -3326,25 +3420,17 @@ we shift the LO a little further
affinity
+
+ decoder_object
+ variable_ieee802_15_4_variant_decoder_0
+
_enabled
True
-
- frame_len
- 256
-
-
- preamble
- [0xAA, 0xAA, 0xAA, 0xAA]
-
-
- frame_size_field_len
- 1
-
_coordinate
- (1228, 490)
+ (1228, 534)
_rotation
@@ -3352,40 +3438,20 @@ we shift the LO a little further
id
- satnogs_frame_acquisition_0
+ satnogs_frame_decoder_0_0
+
+
+ itype
+ byte
maxoutbuf
0
-
- max_frame_len
- 2048
-
minoutbuf
0
-
- preamble_thrsh
- 4
-
-
- sync_thrsh
- 3
-
-
- sync_word
- [0x35, 0x2E, 0x35, 0x2E]
-
-
- variant
- 1
-
-
- whitening
- variable_whitening_0
-
satnogs_frame_file_sink
@@ -3407,7 +3473,7 @@ we shift the LO a little further
_coordinate
- (936, 684)
+ (933, 586)
_rotation
@@ -3536,7 +3602,7 @@ we shift the LO a little further
_coordinate
- (112, 148)
+ (111, 163)
_rotation
@@ -3572,7 +3638,7 @@ we shift the LO a little further
interval
- 1000
+ int(1000.0/doppler_correction_per_sec) + 1
@@ -3595,7 +3661,7 @@ we shift the LO a little further
_coordinate
- (936, 596)
+ (933, 506)
_rotation
@@ -3876,7 +3942,7 @@ we shift the LO a little further
digital_binary_slicer_fb_0
- satnogs_frame_acquisition_0
+ satnogs_frame_decoder_0_0
0
0
@@ -3947,13 +4013,13 @@ we shift the LO a little further
0
- satnogs_frame_acquisition_0
+ satnogs_frame_decoder_0_0
satnogs_frame_file_sink_0_1_0
out
frame
- satnogs_frame_acquisition_0
+ satnogs_frame_decoder_0_0
satnogs_udp_msg_sink_0_0
out
in
diff --git a/apps/flowgraphs/satellites/satnogs_amsat_fox_duv_decoder.py b/apps/flowgraphs/satellites/satnogs_amsat_fox_duv_decoder.py
index 236a40f..06a147a 100755
--- a/apps/flowgraphs/satellites/satnogs_amsat_fox_duv_decoder.py
+++ b/apps/flowgraphs/satellites/satnogs_amsat_fox_duv_decoder.py
@@ -5,7 +5,7 @@
# Title: AMSAT FOX DUV Decoder
# Author: Thanos Giolias (agiolias@csd.uoc.gr), Nikos Karamolegos (karamolegkos.n@gmail.com), Manolis Surligas (surligas@gmail.com)
# Description: A DUV Decoder for the AMSAT FOX satellites
-# Generated: Wed Sep 5 12:05:57 2018
+# GNU Radio version: 3.7.13.5
##################################################
@@ -57,6 +57,7 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
##################################################
# Variables
##################################################
+ self.variable_amsat_duv_decoder_0 = variable_amsat_duv_decoder_0 = satnogs.amsat_duv_decoder_make('0011111010', 96)
self.max_modulation_freq = max_modulation_freq = 3000
self.deviation = deviation = 5000
self.audio_samp_rate = audio_samp_rate = 48000
@@ -66,16 +67,12 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
- self.satnogs_quad_demod_filter_ff_0 = satnogs.quad_demod_filter_ff(1.2)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
- self.satnogs_fox_telem_mm_0 = satnogs.fox_telem_mm()
- self.satnogs_decoder_8b10b_0 = satnogs.decoder_8b10b('0011111010', 960)
-
+ self.satnogs_frame_decoder_0 = satnogs.frame_decoder(variable_amsat_duv_decoder_0, gr.sizeof_char)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
- self.satnogs_ccsds_rs_decoder_mm_0 = satnogs.ccsds_rs_decoder_mm()
self.root_raised_cosine_filter_0 = filter.fir_filter_fff(1, firdes.root_raised_cosine(
1, 1, 2.4, 0.5, 512))
self.pfb_arb_resampler_xxx_0 = pfb.arb_resampler_ccf(
@@ -108,20 +105,20 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
self.analog_quadrature_demod_cf_0_0 = analog.quadrature_demod_cf(1.2)
self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf(1.0)
+
+
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_ccsds_rs_decoder_mm_0, 'pdu'), (self.satnogs_fox_telem_mm_0, 'in'))
- self.msg_connect((self.satnogs_decoder_8b10b_0, 'pdu'), (self.satnogs_ccsds_rs_decoder_mm_0, 'in'))
- self.msg_connect((self.satnogs_fox_telem_mm_0, 'raw'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_fox_telem_mm_0, 'raw'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_quadrature_demod_cf_0, 0), (self.satnogs_ogg_encoder_0, 0))
self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.low_pass_filter_1, 0))
self.connect((self.blocks_rotator_cc_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.dc_blocker_xx_0, 0), (self.root_raised_cosine_filter_0, 0))
- self.connect((self.digital_binary_slicer_fb_0_0, 0), (self.satnogs_decoder_8b10b_0, 0))
- self.connect((self.digital_clock_recovery_mm_xx_0_0_0, 0), (self.satnogs_quad_demod_filter_ff_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0_0, 0), (self.satnogs_frame_decoder_0, 0))
+ self.connect((self.digital_clock_recovery_mm_xx_0_0_0, 0), (self.digital_binary_slicer_fb_0_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.analog_quadrature_demod_cf_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.analog_quadrature_demod_cf_0_0, 0))
self.connect((self.low_pass_filter_1, 0), (self.dc_blocker_xx_0, 0))
@@ -131,7 +128,6 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
self.connect((self.pfb_arb_resampler_xxx_0, 0), (self.satnogs_waterfall_sink_0, 0))
self.connect((self.root_raised_cosine_filter_0, 0), (self.digital_clock_recovery_mm_xx_0_0_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.pfb_arb_resampler_xxx_0, 0))
- self.connect((self.satnogs_quad_demod_filter_ff_0, 0), (self.digital_binary_slicer_fb_0_0, 0))
def get_antenna(self):
return self.antenna
@@ -274,6 +270,12 @@ class satnogs_amsat_fox_duv_decoder(gr.top_block):
def set_waterfall_file_path(self, waterfall_file_path):
self.waterfall_file_path = waterfall_file_path
+ def get_variable_amsat_duv_decoder_0(self):
+ return self.variable_amsat_duv_decoder_0
+
+ def set_variable_amsat_duv_decoder_0(self, variable_amsat_duv_decoder_0):
+ self.variable_amsat_duv_decoder_0 = variable_amsat_duv_decoder_0
+
def get_max_modulation_freq(self):
return self.max_modulation_freq
diff --git a/apps/flowgraphs/satellites/satnogs_meteor_decoder.py b/apps/flowgraphs/satellites/satnogs_meteor_decoder.py
index 3299452..0bdbb07 100755
--- a/apps/flowgraphs/satellites/satnogs_meteor_decoder.py
+++ b/apps/flowgraphs/satellites/satnogs_meteor_decoder.py
@@ -5,9 +5,10 @@
# Title: satnogs_meteor_decoder
# Author: Manolis Surligas (surligas@gmail.com)
# Description: METEOR CCSDS Decoder
-# Generated: Fri Aug 17 00:39:48 2018
+# GNU Radio version: 3.7.13.5
##################################################
+
from gnuradio import analog
from gnuradio import blocks
from gnuradio import digital
@@ -25,7 +26,7 @@ import time
class satnogs_meteor_decoder(gr.top_block):
- def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
+ def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "satnogs_meteor_decoder")
##################################################
@@ -67,7 +68,7 @@ class satnogs_meteor_decoder(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink((sps*72e3) , 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_lrpt_sync_0 = satnogs.lrpt_sync(2)
self.satnogs_lrpt_decoder_0 = satnogs.lrpt_decoder()
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
@@ -306,7 +307,7 @@ def argument_parser():
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
+ "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
diff --git a/apps/flowgraphs/satellites/satnogs_noaa_apt_decoder.py b/apps/flowgraphs/satellites/satnogs_noaa_apt_decoder.py
index 9e43123..7cf0d6e 100755
--- a/apps/flowgraphs/satellites/satnogs_noaa_apt_decoder.py
+++ b/apps/flowgraphs/satellites/satnogs_noaa_apt_decoder.py
@@ -5,7 +5,7 @@
# Title: NOAA APT Decoder
# Author: Manolis Surligas, George Vardakis
# Description: A NOAA APT Decoder with automatic image synchronization
-# Generated: Wed Jul 4 12:13:02 2018
+# GNU Radio version: 3.7.13.5
##################################################
@@ -67,7 +67,7 @@ class satnogs_noaa_apt_decoder(gr.top_block):
# Blocks
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth)), 0.0, 8, 1024, waterfall_file_path, 0)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, 48000, 0.8)
self.satnogs_noaa_apt_sink_0 = satnogs.noaa_apt_sink(decoded_data_file_path, 2080, 1800, bool(sync), bool(flip_images))
self.satnogs_iq_sink_0 = satnogs.iq_sink(32767, iq_file_path, False, enable_iq_dump)
@@ -129,6 +129,8 @@ class satnogs_noaa_apt_decoder(gr.top_block):
audio_decimation=audio_decimation,
)
+
+
##################################################
# Connections
##################################################
diff --git a/apps/flowgraphs/satellites/satnogs_reaktor_hello_world_fsk9600_decoder.py b/apps/flowgraphs/satellites/satnogs_reaktor_hello_world_fsk9600_decoder.py
index 78d6a87..c97866f 100755
--- a/apps/flowgraphs/satellites/satnogs_reaktor_hello_world_fsk9600_decoder.py
+++ b/apps/flowgraphs/satellites/satnogs_reaktor_hello_world_fsk9600_decoder.py
@@ -27,7 +27,7 @@ import time
class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
- def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
+ def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "satnogs_reaktor_hello_world_fsk9600_decoder")
##################################################
@@ -58,6 +58,8 @@ class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
# Variables
##################################################
self.variable_whitening_0 = variable_whitening_0 = satnogs.whitening_make(0x21, 0x1FF, 8)
+ self.variable_whitening_0_0 = variable_whitening_0_0 = satnogs.whitening_make(0x21, 0x1FF, 8)
+ self.variable_ieee802_15_4_variant_decoder_0 = variable_ieee802_15_4_variant_decoder_0 = satnogs.ieee802_15_4_variant_decoder_make([0x55, 0x55, 0x55, 0x55, 0x55], 2, [0x35, 0x2E, 0x35, 0x2E], 1, satnogs.crc.CRC16_IBM, variable_whitening_0, True, 256)
self.audio_samp_rate = audio_samp_rate = 48000
##################################################
@@ -65,11 +67,11 @@ class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
- self.satnogs_frame_acquisition_0 = satnogs.frame_acquisition(1, [0xAA, 0xAA, 0xAA, 0xAA], 4, [0x35, 0x2E, 0x35, 0x2E], 3, 1, 256, 3, variable_whitening_0, 2048)
+ self.satnogs_frame_decoder_0_0 = satnogs.frame_decoder(variable_ieee802_15_4_variant_decoder_0, gr.sizeof_char)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
self.pfb_arb_resampler_xxx_0_0_0 = pfb.arb_resampler_ccf(
(2.0*baudrate)/audio_samp_rate,
@@ -107,7 +109,7 @@ class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
self.blocks_vco_c_0 = blocks.vco_c(audio_samp_rate, -audio_samp_rate, 1.0)
self.blocks_rotator_cc_0 = blocks.rotator_cc(-2.0 * math.pi * (lo_offset / satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx)))
self.blocks_multiply_xx_0_0 = blocks.multiply_vcc(1)
- self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096)
+ self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096, 1)
self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex*1, 1024/2)
self.analog_quadrature_demod_cf_0_0_0_1 = analog.quadrature_demod_cf(1.2)
self.analog_quadrature_demod_cf_0_0_0_0 = analog.quadrature_demod_cf(1.0)
@@ -118,8 +120,8 @@ class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_frame_acquisition_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_frame_acquisition_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_quadrature_demod_cf_0_0_0, 0), (self.dc_blocker_xx_0_0, 0))
self.connect((self.analog_quadrature_demod_cf_0_0_0_0, 0), (self.blocks_moving_average_xx_0, 0))
@@ -131,7 +133,7 @@ class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
self.connect((self.blocks_vco_c_0, 0), (self.blocks_multiply_xx_0_0, 1))
self.connect((self.dc_blocker_xx_0_0, 0), (self.satnogs_ogg_encoder_0, 0))
self.connect((self.dc_blocker_xx_0_0_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_acquisition_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0, 0))
self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.pfb_arb_resampler_xxx_0_0_0, 0))
self.connect((self.low_pass_filter_1, 0), (self.dc_blocker_xx_0_0_0, 0))
@@ -294,6 +296,18 @@ class satnogs_reaktor_hello_world_fsk9600_decoder(gr.top_block):
def set_variable_whitening_0(self, variable_whitening_0):
self.variable_whitening_0 = variable_whitening_0
+ def get_variable_whitening_0_0(self):
+ return self.variable_whitening_0_0
+
+ def set_variable_whitening_0_0(self, variable_whitening_0_0):
+ self.variable_whitening_0_0 = variable_whitening_0_0
+
+ def get_variable_ieee802_15_4_variant_decoder_0(self):
+ return self.variable_ieee802_15_4_variant_decoder_0
+
+ def set_variable_ieee802_15_4_variant_decoder_0(self, variable_ieee802_15_4_variant_decoder_0):
+ self.variable_ieee802_15_4_variant_decoder_0 = variable_ieee802_15_4_variant_decoder_0
+
def get_audio_samp_rate(self):
return self.audio_samp_rate
@@ -323,7 +337,7 @@ def argument_parser():
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
+ "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
diff --git a/apps/flowgraphs/satnogs_afsk1200_ax25.py b/apps/flowgraphs/satnogs_afsk1200_ax25.py
index 45a36e8..cbf733e 100755
--- a/apps/flowgraphs/satnogs_afsk1200_ax25.py
+++ b/apps/flowgraphs/satnogs_afsk1200_ax25.py
@@ -27,7 +27,7 @@ import time
class satnogs_afsk1200_ax25(gr.top_block):
- def __init__(self, antenna=satnogs.not_set_antenna, baudrate=1200.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, mark_frequency=2200.0, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, space_frequency=1200.0, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
+ def __init__(self, antenna=satnogs.not_set_antenna, baudrate=1200.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, mark_frequency=2200.0, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, space_frequency=1200.0, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "AFSK1200 AX.25 decoder ")
##################################################
@@ -59,6 +59,8 @@ class satnogs_afsk1200_ax25(gr.top_block):
##################################################
# Variables
##################################################
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0 = satnogs.ax25_decoder_make('GND', 0, True, False, True, 512)
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0 = satnogs.ax25_decoder_make('GND', 0, True, True, True, 512)
self.max_modulation_freq = max_modulation_freq = 3000
self.deviation = deviation = 5000
self.baud_rate = baud_rate = 1200
@@ -69,13 +71,13 @@ class satnogs_afsk1200_ax25(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
+ self.satnogs_frame_decoder_0_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0_0, gr.sizeof_char)
+ self.satnogs_frame_decoder_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0, gr.sizeof_char)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
- self.satnogs_ax25_decoder_bm_0_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
self.pfb_arb_resampler_xxx_0 = pfb.arb_resampler_ccf(
audio_samp_rate/satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx),
taps=None,
@@ -109,7 +111,7 @@ class satnogs_afsk1200_ax25(gr.top_block):
self.blocks_rotator_cc_0 = blocks.rotator_cc(-2.0 * math.pi * (lo_offset / satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx)))
self.blocks_multiply_xx_0_0 = blocks.multiply_vcc(1)
self.blocks_multiply_xx_0 = blocks.multiply_vcc(1)
- self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096)
+ self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096, 1)
self.blocks_float_to_complex_0 = blocks.float_to_complex(1)
self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex*1, 1024/2)
self.band_pass_filter_0 = filter.fir_filter_fff(1, firdes.band_pass(
@@ -124,10 +126,10 @@ class satnogs_afsk1200_ax25(gr.top_block):
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_quadrature_demod_cf_0, 0), (self.dc_blocker_xx_0_0, 0))
self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.band_pass_filter_0, 0))
@@ -144,8 +146,8 @@ class satnogs_afsk1200_ax25(gr.top_block):
self.connect((self.blocks_vco_c_0, 0), (self.blocks_multiply_xx_0_0, 1))
self.connect((self.dc_blocker_xx_0, 0), (self.blocks_float_to_complex_0, 0))
self.connect((self.dc_blocker_xx_0_0, 0), (self.low_pass_filter_2_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0_0, 0))
self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.analog_quadrature_demod_cf_0_0, 0))
self.connect((self.low_pass_filter_1, 0), (self.analog_quadrature_demod_cf_0, 0))
@@ -313,6 +315,18 @@ class satnogs_afsk1200_ax25(gr.top_block):
def set_waterfall_file_path(self, waterfall_file_path):
self.waterfall_file_path = waterfall_file_path
+ def get_variable_ax25_decoder_0_0(self):
+ return self.variable_ax25_decoder_0_0
+
+ def set_variable_ax25_decoder_0_0(self, variable_ax25_decoder_0_0):
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0
+
+ def get_variable_ax25_decoder_0(self):
+ return self.variable_ax25_decoder_0
+
+ def set_variable_ax25_decoder_0(self, variable_ax25_decoder_0):
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0
+
def get_max_modulation_freq(self):
return self.max_modulation_freq
@@ -369,7 +383,7 @@ def argument_parser():
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
+ "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
diff --git a/apps/flowgraphs/satnogs_apt_demod.py b/apps/flowgraphs/satnogs_apt_demod.py
deleted file mode 100755
index ed5b44e..0000000
--- a/apps/flowgraphs/satnogs_apt_demod.py
+++ /dev/null
@@ -1,326 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-##################################################
-# GNU Radio Python Flow Graph
-# Title: APT Generic Demodulation
-# Author: Manolis Surligas (surligas@gmail.com)
-# Description: A generic APT demodulation block
-# Generated: Sun Nov 19 11:34:53 2017
-##################################################
-
-from gnuradio import analog
-from gnuradio import eng_notation
-from gnuradio import filter
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
-from optparse import OptionParser
-import math
-import osmosdr
-import satnogs
-import time
-
-
-class satnogs_apt_demod(gr.top_block):
-
- def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.ogg', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat'):
- gr.top_block.__init__(self, "APT Generic Demodulation")
-
- ##################################################
- # Parameters
- ##################################################
- self.antenna = antenna
- self.bb_gain = bb_gain
- self.decoded_data_file_path = decoded_data_file_path
- self.dev_args = dev_args
- self.doppler_correction_per_sec = doppler_correction_per_sec
- self.enable_iq_dump = enable_iq_dump
- self.file_path = file_path
- self.if_gain = if_gain
- self.iq_file_path = iq_file_path
- self.lo_offset = lo_offset
- self.ppm = ppm
- self.rf_gain = rf_gain
- self.rigctl_port = rigctl_port
- self.rx_freq = rx_freq
- self.rx_sdr_device = rx_sdr_device
- self.waterfall_file_path = waterfall_file_path
-
- ##################################################
- # Variables
- ##################################################
- self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
- self.xlate_filter_taps = xlate_filter_taps = firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
- self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
-
- self.filter_rate = filter_rate = 250000
- self.deviation = deviation = 17000
- self.audio_samp_rate = audio_samp_rate = 48000
-
- ##################################################
- # Blocks
- ##################################################
- self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate*2, 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
- self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
- self.satnogs_iq_sink_0 = satnogs.iq_sink(32767, iq_file_path, False, enable_iq_dump)
- self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
- self.rational_resampler_xxx_0 = filter.rational_resampler_fff(
- interpolation=1,
- decimation=2,
- taps=None,
- fractional_bw=None,
- )
- self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
- self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
- self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
- self.osmosdr_source_0.set_freq_corr(ppm, 0)
- self.osmosdr_source_0.set_dc_offset_mode(2, 0)
- self.osmosdr_source_0.set_iq_balance_mode(0, 0)
- self.osmosdr_source_0.set_gain_mode(False, 0)
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
- self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
-
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
- self.blks2_rational_resampler_xxx_1 = filter.rational_resampler_ccc(
- interpolation=48,
- decimation=125,
- taps=None,
- fractional_bw=None,
- )
- self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf((2*math.pi*deviation)/96000)
-
- ##################################################
- # Connections
- ##################################################
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
- self.connect((self.analog_quadrature_demod_cf_0, 0), (self.rational_resampler_xxx_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.analog_quadrature_demod_cf_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_iq_sink_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blks2_rational_resampler_xxx_1, 0))
- self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
- self.connect((self.rational_resampler_xxx_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
-
- def get_antenna(self):
- return self.antenna
-
- def set_antenna(self, antenna):
- self.antenna = antenna
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_bb_gain(self):
- return self.bb_gain
-
- def set_bb_gain(self, bb_gain):
- self.bb_gain = bb_gain
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
-
- def get_decoded_data_file_path(self):
- return self.decoded_data_file_path
-
- def set_decoded_data_file_path(self, decoded_data_file_path):
- self.decoded_data_file_path = decoded_data_file_path
-
- def get_dev_args(self):
- return self.dev_args
-
- def set_dev_args(self, dev_args):
- self.dev_args = dev_args
-
- def get_doppler_correction_per_sec(self):
- return self.doppler_correction_per_sec
-
- def set_doppler_correction_per_sec(self, doppler_correction_per_sec):
- self.doppler_correction_per_sec = doppler_correction_per_sec
-
- def get_enable_iq_dump(self):
- return self.enable_iq_dump
-
- def set_enable_iq_dump(self, enable_iq_dump):
- self.enable_iq_dump = enable_iq_dump
-
- def get_file_path(self):
- return self.file_path
-
- def set_file_path(self, file_path):
- self.file_path = file_path
-
- def get_if_gain(self):
- return self.if_gain
-
- def set_if_gain(self, if_gain):
- self.if_gain = if_gain
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
-
- def get_iq_file_path(self):
- return self.iq_file_path
-
- def set_iq_file_path(self, iq_file_path):
- self.iq_file_path = iq_file_path
-
- def get_lo_offset(self):
- return self.lo_offset
-
- def set_lo_offset(self, lo_offset):
- self.lo_offset = lo_offset
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
- self.freq_xlating_fir_filter_xxx_0.set_center_freq(self.lo_offset)
-
- def get_ppm(self):
- return self.ppm
-
- def set_ppm(self, ppm):
- self.ppm = ppm
- self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
-
- def get_rf_gain(self):
- return self.rf_gain
-
- def set_rf_gain(self, rf_gain):
- self.rf_gain = rf_gain
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
-
- def get_rigctl_port(self):
- return self.rigctl_port
-
- def set_rigctl_port(self, rigctl_port):
- self.rigctl_port = rigctl_port
-
- def get_rx_freq(self):
- return self.rx_freq
-
- def set_rx_freq(self, rx_freq):
- self.rx_freq = rx_freq
- self.satnogs_coarse_doppler_correction_cc_0.set_new_freq_locked(self.rx_freq)
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
-
- def get_rx_sdr_device(self):
- return self.rx_sdr_device
-
- def set_rx_sdr_device(self, rx_sdr_device):
- self.rx_sdr_device = rx_sdr_device
- self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_waterfall_file_path(self):
- return self.waterfall_file_path
-
- def set_waterfall_file_path(self, waterfall_file_path):
- self.waterfall_file_path = waterfall_file_path
-
- def get_samp_rate_rx(self):
- return self.samp_rate_rx
-
- def set_samp_rate_rx(self, samp_rate_rx):
- self.samp_rate_rx = samp_rate_rx
- self.set_xlate_filter_taps(firdes.low_pass(1, self.samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76))
- self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
- self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
-
- def get_xlate_filter_taps(self):
- return self.xlate_filter_taps
-
- def set_xlate_filter_taps(self, xlate_filter_taps):
- self.xlate_filter_taps = xlate_filter_taps
- self.freq_xlating_fir_filter_xxx_0.set_taps((self.xlate_filter_taps))
-
- def get_taps(self):
- return self.taps
-
- def set_taps(self, taps):
- self.taps = taps
-
- def get_filter_rate(self):
- return self.filter_rate
-
- def set_filter_rate(self, filter_rate):
- self.filter_rate = filter_rate
-
- def get_deviation(self):
- return self.deviation
-
- def set_deviation(self, deviation):
- self.deviation = deviation
- self.analog_quadrature_demod_cf_0.set_gain((2*math.pi*self.deviation)/96000)
-
- def get_audio_samp_rate(self):
- return self.audio_samp_rate
-
- def set_audio_samp_rate(self, audio_samp_rate):
- self.audio_samp_rate = audio_samp_rate
-
-
-def argument_parser():
- description = 'A generic APT demodulation block'
- parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
- parser.add_option(
- "", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
- help="Set antenna [default=%default]")
- parser.add_option(
- "", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
- help="Set bb_gain [default=%default]")
- parser.add_option(
- "", "--decoded-data-file-path", dest="decoded_data_file_path", type="string", default='/tmp/.satnogs/data/data',
- help="Set decoded_data_file_path [default=%default]")
- parser.add_option(
- "", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
- help="Set dev_args [default=%default]")
- parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
- help="Set doppler_correction_per_sec [default=%default]")
- parser.add_option(
- "", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
- help="Set enable_iq_dump [default=%default]")
- parser.add_option(
- "", "--file-path", dest="file_path", type="string", default='test.ogg',
- help="Set file_path [default=%default]")
- parser.add_option(
- "", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
- help="Set if_gain [default=%default]")
- parser.add_option(
- "", "--iq-file-path", dest="iq_file_path", type="string", default='/tmp/iq.dat',
- help="Set iq_file_path [default=%default]")
- parser.add_option(
- "", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
- help="Set lo_offset [default=%default]")
- parser.add_option(
- "", "--ppm", dest="ppm", type="intx", default=0,
- help="Set ppm [default=%default]")
- parser.add_option(
- "", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
- help="Set rf_gain [default=%default]")
- parser.add_option(
- "", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
- help="Set rigctl_port [default=%default]")
- parser.add_option(
- "", "--rx-freq", dest="rx_freq", type="eng_float", default=eng_notation.num_to_str(100e6),
- help="Set rx_freq [default=%default]")
- parser.add_option(
- "", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
- help="Set rx_sdr_device [default=%default]")
- parser.add_option(
- "", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
- help="Set waterfall_file_path [default=%default]")
- return parser
-
-
-def main(top_block_cls=satnogs_apt_demod, options=None):
- if options is None:
- options, _ = argument_parser().parse_args()
-
- tb = top_block_cls(antenna=options.antenna, bb_gain=options.bb_gain, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, if_gain=options.if_gain, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path)
- tb.start()
- tb.wait()
-
-
-if __name__ == '__main__':
- main()
diff --git a/apps/flowgraphs/satnogs_bpsk_ax25.py b/apps/flowgraphs/satnogs_bpsk_ax25.py
index 002b889..12516b6 100755
--- a/apps/flowgraphs/satnogs_bpsk_ax25.py
+++ b/apps/flowgraphs/satnogs_bpsk_ax25.py
@@ -5,9 +5,10 @@
# Title: satnogs_bpsk_ax25
# Author: Manolis Surligas (surligas@gmail.com), Patrick Dohmen (DL4PD)
# Description: BPSK AX.25 decoder
-# Generated: Fri Dec 21 16:45:19 2018
+# GNU Radio version: 3.7.13.5
##################################################
+
from gnuradio import analog
from gnuradio import blocks
from gnuradio import digital
@@ -60,6 +61,8 @@ class satnogs_bpsk_ax25(gr.top_block):
##################################################
self.sps = sps = 4
self.nfilts = nfilts = 32
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0 = satnogs.ax25_decoder_make('GND', 0, True, False, True, 512)
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0 = satnogs.ax25_decoder_make('GND', 0, True, True, True, 512)
self.rrc_taps = rrc_taps = firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), excess_bw, 11*sps*nfilts)
self.bpsk_constellation = bpsk_constellation = digital.constellation_bpsk().base()
@@ -71,13 +74,13 @@ class satnogs_bpsk_ax25(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1.0/doppler_correction_per_sec) * 1000 + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
+ self.satnogs_frame_decoder_0_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0_0, gr.sizeof_char)
+ self.satnogs_frame_decoder_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0, gr.sizeof_char)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
- self.satnogs_ax25_decoder_bm_0_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
self.pfb_arb_resampler_xxx_0_0 = pfb.arb_resampler_ccf(
(1.0 * sps*baudrate)/satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx),
taps=None,
@@ -123,18 +126,18 @@ class satnogs_bpsk_ax25(gr.top_block):
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_agc2_xx_0, 0), (self.pfb_arb_resampler_xxx_0_0, 0))
self.connect((self.analog_agc2_xx_0_0, 0), (self.low_pass_filter_0_0, 0))
self.connect((self.blocks_complex_to_real_0, 0), (self.satnogs_ogg_encoder_0, 0))
self.connect((self.blocks_rotator_cc_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.blocks_rotator_cc_0_0, 0), (self.blocks_complex_to_real_0, 0))
- self.connect((self.digital_constellation_receiver_cb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_constellation_receiver_cb_0, 0), (self.satnogs_ax25_decoder_bm_0_0, 0))
+ self.connect((self.digital_constellation_receiver_cb_0, 0), (self.satnogs_frame_decoder_0_0, 0))
+ self.connect((self.digital_constellation_receiver_cb_0, 0), (self.satnogs_frame_decoder_0_0_0, 0))
self.connect((self.digital_costas_loop_cc_0_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.digital_constellation_receiver_cb_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.digital_costas_loop_cc_0_0, 0))
@@ -326,6 +329,18 @@ class satnogs_bpsk_ax25(gr.top_block):
self.nfilts = nfilts
self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.sps), self.excess_bw, 11*self.sps*self.nfilts))
+ def get_variable_ax25_decoder_0_0(self):
+ return self.variable_ax25_decoder_0_0
+
+ def set_variable_ax25_decoder_0_0(self, variable_ax25_decoder_0_0):
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0
+
+ def get_variable_ax25_decoder_0(self):
+ return self.variable_ax25_decoder_0
+
+ def set_variable_ax25_decoder_0(self, variable_ax25_decoder_0):
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0
+
def get_rrc_taps(self):
return self.rrc_taps
diff --git a/apps/flowgraphs/satnogs_bpsk_decoder.py b/apps/flowgraphs/satnogs_bpsk_decoder.py
deleted file mode 100755
index 7f99269..0000000
--- a/apps/flowgraphs/satnogs_bpsk_decoder.py
+++ /dev/null
@@ -1,452 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-##################################################
-# GNU Radio Python Flow Graph
-# Title: BPSK Decoder
-# Author: Patrick Dohmen, DL4PD
-# Description: A BPSK decoder block for gr-satnogs
-# Generated: Tue Mar 27 17:05:17 2018
-##################################################
-
-from gnuradio import analog
-from gnuradio import blocks
-from gnuradio import digital
-from gnuradio import eng_notation
-from gnuradio import filter
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
-from optparse import OptionParser
-import osmosdr
-import satnogs
-
-
-class satnogs_bpsk_decoder(gr.top_block):
-
- def __init__(self, antenna=satnogs.not_set_antenna, baudrate=1200, bb_gain=satnogs.not_set_rx_bb_gain, cw_offset=1500, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.ogg', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='rtlsdr', udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
- gr.top_block.__init__(self, "BPSK Decoder")
-
- ##################################################
- # Parameters
- ##################################################
- self.antenna = antenna
- self.baudrate = baudrate
- self.bb_gain = bb_gain
- self.cw_offset = cw_offset
- self.decoded_data_file_path = decoded_data_file_path
- self.dev_args = dev_args
- self.doppler_correction_per_sec = doppler_correction_per_sec
- self.enable_iq_dump = enable_iq_dump
- self.file_path = file_path
- self.if_gain = if_gain
- self.iq_file_path = iq_file_path
- self.lo_offset = lo_offset
- self.ppm = ppm
- self.rf_gain = rf_gain
- self.rigctl_port = rigctl_port
- self.rx_freq = rx_freq
- self.rx_sdr_device = rx_sdr_device
- self.udp_IP = udp_IP
- self.udp_port = udp_port
- self.waterfall_file_path = waterfall_file_path
-
- ##################################################
- # Variables
- ##################################################
- self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
- self.samp_per_sym = samp_per_sym = 5
- self.nfilts = nfilts = 16
- self.xlate_filter_taps = xlate_filter_taps = firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
- self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
-
- self.rrc_taps = rrc_taps = firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(samp_per_sym), 0.35, 11*samp_per_sym*nfilts)
- self.filter_rate = filter_rate = 250000
- self.filt_mode = filt_mode = 0.1
- self.deviation = deviation = 5000
- self.audio_samp_rate = audio_samp_rate = 48000
- self.alpha = alpha = 0.1
-
- ##################################################
- # Blocks
- ##################################################
- self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(max(12000, int(3*(1+alpha)*baudrate)), 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
- self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
- self.satnogs_iq_sink_0 = satnogs.iq_sink(32767, iq_file_path, False, enable_iq_dump)
- self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
- self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
- self.satnogs_ax25_decoder_bm_0_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
- self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
- self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
- self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
- self.osmosdr_source_0.set_freq_corr(ppm, 0)
- self.osmosdr_source_0.set_dc_offset_mode(2, 0)
- self.osmosdr_source_0.set_iq_balance_mode(0, 0)
- self.osmosdr_source_0.set_gain_mode(False, 0)
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
- self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
-
- self.low_pass_filter_0 = filter.fir_filter_ccf(1, firdes.low_pass(
- 1, audio_samp_rate, (1+alpha)*baudrate, ((1+alpha)*baudrate)*filt_mode, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0_0 = filter.freq_xlating_fir_filter_ccf(audio_samp_rate/(samp_per_sym*baudrate), (firdes.low_pass(1, audio_samp_rate, (1+alpha)*baudrate, (1+alpha)*baudrate*filt_mode)), cw_offset/1200.0*baudrate, audio_samp_rate)
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
- self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(samp_per_sym, 0.063, (rrc_taps), nfilts, nfilts/2, 1.5, 1)
- self.digital_costas_loop_cc_0_0_0_0 = digital.costas_loop_cc(0.063, 2, False)
- self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
- self.blocks_multiply_xx_0_0 = blocks.multiply_vcc(1)
- self.blocks_multiply_xx_0 = blocks.multiply_vcc(1)
- self.blocks_complex_to_real_0_0 = blocks.complex_to_real(1)
- self.blocks_complex_to_real_0 = blocks.complex_to_real(1)
- self.blks2_rational_resampler_xxx_1_0 = filter.rational_resampler_ccc(
- interpolation=max(12000, int(3*(1+alpha)*baudrate)),
- decimation=48000,
- taps=None,
- fractional_bw=None,
- )
- self.blks2_rational_resampler_xxx_1 = filter.rational_resampler_ccc(
- interpolation=audio_samp_rate,
- decimation=int(samp_rate_rx/(samp_rate_rx/filter_rate)),
- taps=None,
- fractional_bw=None,
- )
- self.analog_sig_source_x_0 = analog.sig_source_c(audio_samp_rate, analog.GR_COS_WAVE, cw_offset/1200.0*baudrate, 1, 0)
- self.analog_agc2_xx_0_0 = analog.agc2_cc(0.01, 0.001, 0.015, 0.0)
- self.analog_agc2_xx_0_0.set_max_gain(65536)
- self.analog_agc2_xx_0 = analog.agc2_cc(0.01, 0.001, 0.5, 1.0)
- self.analog_agc2_xx_0.set_max_gain(65536)
-
- ##################################################
- # Connections
- ##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
- self.connect((self.analog_agc2_xx_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
- self.connect((self.analog_agc2_xx_0_0, 0), (self.blocks_multiply_xx_0, 1))
- self.connect((self.analog_sig_source_x_0, 0), (self.blocks_multiply_xx_0, 0))
- self.connect((self.analog_sig_source_x_0, 0), (self.blocks_multiply_xx_0_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.blks2_rational_resampler_xxx_1_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.blocks_multiply_xx_0_0, 1))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.low_pass_filter_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_iq_sink_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1_0, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.blocks_complex_to_real_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.blocks_complex_to_real_0_0, 0), (self.digital_binary_slicer_fb_0, 0))
- self.connect((self.blocks_multiply_xx_0, 0), (self.blocks_complex_to_real_0, 0))
- self.connect((self.blocks_multiply_xx_0_0, 0), (self.freq_xlating_fir_filter_xxx_0_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0_0, 0))
- self.connect((self.digital_costas_loop_cc_0_0_0_0, 0), (self.blocks_complex_to_real_0_0, 0))
- self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.digital_costas_loop_cc_0_0_0_0, 0))
- self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blks2_rational_resampler_xxx_1, 0))
- self.connect((self.freq_xlating_fir_filter_xxx_0_0, 0), (self.analog_agc2_xx_0, 0))
- self.connect((self.low_pass_filter_0, 0), (self.analog_agc2_xx_0_0, 0))
- self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
- self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
-
- def get_antenna(self):
- return self.antenna
-
- def set_antenna(self, antenna):
- self.antenna = antenna
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_baudrate(self):
- return self.baudrate
-
- def set_baudrate(self, baudrate):
- self.baudrate = baudrate
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, ((1+self.alpha)*self.baudrate)*self.filt_mode, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0_0.set_taps((firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, (1+self.alpha)*self.baudrate*self.filt_mode)))
- self.freq_xlating_fir_filter_xxx_0_0.set_center_freq(self.cw_offset/1200.0*self.baudrate)
- self.analog_sig_source_x_0.set_frequency(self.cw_offset/1200.0*self.baudrate)
-
- def get_bb_gain(self):
- return self.bb_gain
-
- def set_bb_gain(self, bb_gain):
- self.bb_gain = bb_gain
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
-
- def get_cw_offset(self):
- return self.cw_offset
-
- def set_cw_offset(self, cw_offset):
- self.cw_offset = cw_offset
- self.freq_xlating_fir_filter_xxx_0_0.set_center_freq(self.cw_offset/1200.0*self.baudrate)
- self.analog_sig_source_x_0.set_frequency(self.cw_offset/1200.0*self.baudrate)
-
- def get_decoded_data_file_path(self):
- return self.decoded_data_file_path
-
- def set_decoded_data_file_path(self, decoded_data_file_path):
- self.decoded_data_file_path = decoded_data_file_path
-
- def get_dev_args(self):
- return self.dev_args
-
- def set_dev_args(self, dev_args):
- self.dev_args = dev_args
-
- def get_doppler_correction_per_sec(self):
- return self.doppler_correction_per_sec
-
- def set_doppler_correction_per_sec(self, doppler_correction_per_sec):
- self.doppler_correction_per_sec = doppler_correction_per_sec
-
- def get_enable_iq_dump(self):
- return self.enable_iq_dump
-
- def set_enable_iq_dump(self, enable_iq_dump):
- self.enable_iq_dump = enable_iq_dump
-
- def get_file_path(self):
- return self.file_path
-
- def set_file_path(self, file_path):
- self.file_path = file_path
-
- def get_if_gain(self):
- return self.if_gain
-
- def set_if_gain(self, if_gain):
- self.if_gain = if_gain
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
-
- def get_iq_file_path(self):
- return self.iq_file_path
-
- def set_iq_file_path(self, iq_file_path):
- self.iq_file_path = iq_file_path
-
- def get_lo_offset(self):
- return self.lo_offset
-
- def set_lo_offset(self, lo_offset):
- self.lo_offset = lo_offset
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
- self.freq_xlating_fir_filter_xxx_0.set_center_freq(self.lo_offset)
-
- def get_ppm(self):
- return self.ppm
-
- def set_ppm(self, ppm):
- self.ppm = ppm
- self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
-
- def get_rf_gain(self):
- return self.rf_gain
-
- def set_rf_gain(self, rf_gain):
- self.rf_gain = rf_gain
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
-
- def get_rigctl_port(self):
- return self.rigctl_port
-
- def set_rigctl_port(self, rigctl_port):
- self.rigctl_port = rigctl_port
-
- def get_rx_freq(self):
- return self.rx_freq
-
- def set_rx_freq(self, rx_freq):
- self.rx_freq = rx_freq
- self.satnogs_coarse_doppler_correction_cc_0.set_new_freq_locked(self.rx_freq)
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
-
- def get_rx_sdr_device(self):
- return self.rx_sdr_device
-
- def set_rx_sdr_device(self, rx_sdr_device):
- self.rx_sdr_device = rx_sdr_device
- self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_udp_IP(self):
- return self.udp_IP
-
- def set_udp_IP(self, udp_IP):
- self.udp_IP = udp_IP
-
- def get_udp_port(self):
- return self.udp_port
-
- def set_udp_port(self, udp_port):
- self.udp_port = udp_port
-
- def get_waterfall_file_path(self):
- return self.waterfall_file_path
-
- def set_waterfall_file_path(self, waterfall_file_path):
- self.waterfall_file_path = waterfall_file_path
-
- def get_samp_rate_rx(self):
- return self.samp_rate_rx
-
- def set_samp_rate_rx(self, samp_rate_rx):
- self.samp_rate_rx = samp_rate_rx
- self.set_xlate_filter_taps(firdes.low_pass(1, self.samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76))
- self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
- self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
-
- def get_samp_per_sym(self):
- return self.samp_per_sym
-
- def set_samp_per_sym(self, samp_per_sym):
- self.samp_per_sym = samp_per_sym
- self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.samp_per_sym), 0.35, 11*self.samp_per_sym*self.nfilts))
-
- def get_nfilts(self):
- return self.nfilts
-
- def set_nfilts(self, nfilts):
- self.nfilts = nfilts
- self.set_rrc_taps(firdes.root_raised_cosine(self.nfilts, self.nfilts, 1.0/float(self.samp_per_sym), 0.35, 11*self.samp_per_sym*self.nfilts))
-
- def get_xlate_filter_taps(self):
- return self.xlate_filter_taps
-
- def set_xlate_filter_taps(self, xlate_filter_taps):
- self.xlate_filter_taps = xlate_filter_taps
- self.freq_xlating_fir_filter_xxx_0.set_taps((self.xlate_filter_taps))
-
- def get_taps(self):
- return self.taps
-
- def set_taps(self, taps):
- self.taps = taps
-
- def get_rrc_taps(self):
- return self.rrc_taps
-
- def set_rrc_taps(self, rrc_taps):
- self.rrc_taps = rrc_taps
- self.digital_pfb_clock_sync_xxx_0.update_taps((self.rrc_taps))
-
- def get_filter_rate(self):
- return self.filter_rate
-
- def set_filter_rate(self, filter_rate):
- self.filter_rate = filter_rate
-
- def get_filt_mode(self):
- return self.filt_mode
-
- def set_filt_mode(self, filt_mode):
- self.filt_mode = filt_mode
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, ((1+self.alpha)*self.baudrate)*self.filt_mode, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0_0.set_taps((firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, (1+self.alpha)*self.baudrate*self.filt_mode)))
-
- def get_deviation(self):
- return self.deviation
-
- def set_deviation(self, deviation):
- self.deviation = deviation
-
- def get_audio_samp_rate(self):
- return self.audio_samp_rate
-
- def set_audio_samp_rate(self, audio_samp_rate):
- self.audio_samp_rate = audio_samp_rate
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, ((1+self.alpha)*self.baudrate)*self.filt_mode, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0_0.set_taps((firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, (1+self.alpha)*self.baudrate*self.filt_mode)))
- self.analog_sig_source_x_0.set_sampling_freq(self.audio_samp_rate)
-
- def get_alpha(self):
- return self.alpha
-
- def set_alpha(self, alpha):
- self.alpha = alpha
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, ((1+self.alpha)*self.baudrate)*self.filt_mode, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0_0.set_taps((firdes.low_pass(1, self.audio_samp_rate, (1+self.alpha)*self.baudrate, (1+self.alpha)*self.baudrate*self.filt_mode)))
-
-
-def argument_parser():
- description = 'A BPSK decoder block for gr-satnogs'
- parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
- parser.add_option(
- "", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
- help="Set antenna [default=%default]")
- parser.add_option(
- "", "--baudrate", dest="baudrate", type="intx", default=1200,
- help="Set baudrate [default=%default]")
- parser.add_option(
- "", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
- help="Set bb_gain [default=%default]")
- parser.add_option(
- "", "--cw-offset", dest="cw_offset", type="eng_float", default=eng_notation.num_to_str(1500),
- help="Set cw_offset [default=%default]")
- parser.add_option(
- "", "--decoded-data-file-path", dest="decoded_data_file_path", type="string", default='/tmp/.satnogs/data/data',
- help="Set decoded_data_file_path [default=%default]")
- parser.add_option(
- "", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
- help="Set dev_args [default=%default]")
- parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
- help="Set doppler_correction_per_sec [default=%default]")
- parser.add_option(
- "", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
- help="Set enable_iq_dump [default=%default]")
- parser.add_option(
- "", "--file-path", dest="file_path", type="string", default='test.ogg',
- help="Set file_path [default=%default]")
- parser.add_option(
- "", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
- help="Set if_gain [default=%default]")
- parser.add_option(
- "", "--iq-file-path", dest="iq_file_path", type="string", default='/tmp/iq.dat',
- help="Set iq_file_path [default=%default]")
- parser.add_option(
- "", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
- help="Set lo_offset [default=%default]")
- parser.add_option(
- "", "--ppm", dest="ppm", type="intx", default=0,
- help="Set ppm [default=%default]")
- parser.add_option(
- "", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
- help="Set rf_gain [default=%default]")
- parser.add_option(
- "", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
- help="Set rigctl_port [default=%default]")
- parser.add_option(
- "", "--rx-freq", dest="rx_freq", type="eng_float", default=eng_notation.num_to_str(100e6),
- help="Set rx_freq [default=%default]")
- parser.add_option(
- "", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='rtlsdr',
- help="Set rx_sdr_device [default=%default]")
- parser.add_option(
- "", "--udp-IP", dest="udp_IP", type="string", default='127.0.0.1',
- help="Set udp_IP [default=%default]")
- parser.add_option(
- "", "--udp-port", dest="udp_port", type="intx", default=16887,
- help="Set udp_port [default=%default]")
- parser.add_option(
- "", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
- help="Set waterfall_file_path [default=%default]")
- return parser
-
-
-def main(top_block_cls=satnogs_bpsk_decoder, options=None):
- if options is None:
- options, _ = argument_parser().parse_args()
-
- tb = top_block_cls(antenna=options.antenna, baudrate=options.baudrate, bb_gain=options.bb_gain, cw_offset=options.cw_offset, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, if_gain=options.if_gain, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, udp_IP=options.udp_IP, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
- tb.start()
- tb.wait()
-
-
-if __name__ == '__main__':
- main()
diff --git a/apps/flowgraphs/satnogs_bpsk_demod.py b/apps/flowgraphs/satnogs_bpsk_demod.py
deleted file mode 100755
index b13a05f..0000000
--- a/apps/flowgraphs/satnogs_bpsk_demod.py
+++ /dev/null
@@ -1,341 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-##################################################
-# GNU Radio Python Flow Graph
-# Title: BPSK Generic Demodulation
-# Author: surligas, cshields, csete
-# Description: A generic BPSK demodulation block
-# Generated: Sun Nov 19 11:35:26 2017
-##################################################
-
-from gnuradio import analog
-from gnuradio import blocks
-from gnuradio import eng_notation
-from gnuradio import filter
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
-from optparse import OptionParser
-import osmosdr
-import satnogs
-import time
-
-
-class satnogs_bpsk_demod(gr.top_block):
-
- def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, cw_offset=1500, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.ogg', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat'):
- gr.top_block.__init__(self, "BPSK Generic Demodulation")
-
- ##################################################
- # Parameters
- ##################################################
- self.antenna = antenna
- self.bb_gain = bb_gain
- self.cw_offset = cw_offset
- self.decoded_data_file_path = decoded_data_file_path
- self.dev_args = dev_args
- self.doppler_correction_per_sec = doppler_correction_per_sec
- self.enable_iq_dump = enable_iq_dump
- self.file_path = file_path
- self.if_gain = if_gain
- self.iq_file_path = iq_file_path
- self.lo_offset = lo_offset
- self.ppm = ppm
- self.rf_gain = rf_gain
- self.rigctl_port = rigctl_port
- self.rx_freq = rx_freq
- self.rx_sdr_device = rx_sdr_device
- self.waterfall_file_path = waterfall_file_path
-
- ##################################################
- # Variables
- ##################################################
- self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
- self.xlate_filter_taps = xlate_filter_taps = firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
- self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
-
- self.filter_rate = filter_rate = 250000
- self.deviation = deviation = 5000
- self.audio_samp_rate = audio_samp_rate = 48000
-
- ##################################################
- # Blocks
- ##################################################
- self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
- self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
- self.satnogs_iq_sink_0 = satnogs.iq_sink(32767, iq_file_path, False, enable_iq_dump)
- self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
- self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
- self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
- self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
- self.osmosdr_source_0.set_freq_corr(ppm, 0)
- self.osmosdr_source_0.set_dc_offset_mode(2, 0)
- self.osmosdr_source_0.set_iq_balance_mode(0, 0)
- self.osmosdr_source_0.set_gain_mode(False, 0)
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
- self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
-
- self.low_pass_filter_0 = filter.fir_filter_ccf(1, firdes.low_pass(
- 1, audio_samp_rate, 2000, 1000, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
- self.blocks_multiply_xx_0 = blocks.multiply_vcc(1)
- self.blocks_complex_to_real_0 = blocks.complex_to_real(1)
- self.blks2_rational_resampler_xxx_1 = filter.rational_resampler_ccc(
- interpolation=24,
- decimation=125,
- taps=None,
- fractional_bw=None,
- )
- self.analog_sig_source_x_0 = analog.sig_source_c(audio_samp_rate, analog.GR_COS_WAVE, cw_offset, 1, 0)
- self.analog_agc2_xx_0_0 = analog.agc2_cc(0.01, 0.001, 0.015, 0.0)
- self.analog_agc2_xx_0_0.set_max_gain(65536)
-
- ##################################################
- # Connections
- ##################################################
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
- self.connect((self.analog_agc2_xx_0_0, 0), (self.blocks_multiply_xx_0, 1))
- self.connect((self.analog_sig_source_x_0, 0), (self.blocks_multiply_xx_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.low_pass_filter_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_iq_sink_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.blocks_complex_to_real_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.blocks_multiply_xx_0, 0), (self.blocks_complex_to_real_0, 0))
- self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blks2_rational_resampler_xxx_1, 0))
- self.connect((self.low_pass_filter_0, 0), (self.analog_agc2_xx_0_0, 0))
- self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
- self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
-
- def get_antenna(self):
- return self.antenna
-
- def set_antenna(self, antenna):
- self.antenna = antenna
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_bb_gain(self):
- return self.bb_gain
-
- def set_bb_gain(self, bb_gain):
- self.bb_gain = bb_gain
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
-
- def get_cw_offset(self):
- return self.cw_offset
-
- def set_cw_offset(self, cw_offset):
- self.cw_offset = cw_offset
- self.analog_sig_source_x_0.set_frequency(self.cw_offset)
-
- def get_decoded_data_file_path(self):
- return self.decoded_data_file_path
-
- def set_decoded_data_file_path(self, decoded_data_file_path):
- self.decoded_data_file_path = decoded_data_file_path
-
- def get_dev_args(self):
- return self.dev_args
-
- def set_dev_args(self, dev_args):
- self.dev_args = dev_args
-
- def get_doppler_correction_per_sec(self):
- return self.doppler_correction_per_sec
-
- def set_doppler_correction_per_sec(self, doppler_correction_per_sec):
- self.doppler_correction_per_sec = doppler_correction_per_sec
-
- def get_enable_iq_dump(self):
- return self.enable_iq_dump
-
- def set_enable_iq_dump(self, enable_iq_dump):
- self.enable_iq_dump = enable_iq_dump
-
- def get_file_path(self):
- return self.file_path
-
- def set_file_path(self, file_path):
- self.file_path = file_path
-
- def get_if_gain(self):
- return self.if_gain
-
- def set_if_gain(self, if_gain):
- self.if_gain = if_gain
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
-
- def get_iq_file_path(self):
- return self.iq_file_path
-
- def set_iq_file_path(self, iq_file_path):
- self.iq_file_path = iq_file_path
-
- def get_lo_offset(self):
- return self.lo_offset
-
- def set_lo_offset(self, lo_offset):
- self.lo_offset = lo_offset
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
- self.freq_xlating_fir_filter_xxx_0.set_center_freq(self.lo_offset)
-
- def get_ppm(self):
- return self.ppm
-
- def set_ppm(self, ppm):
- self.ppm = ppm
- self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
-
- def get_rf_gain(self):
- return self.rf_gain
-
- def set_rf_gain(self, rf_gain):
- self.rf_gain = rf_gain
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
-
- def get_rigctl_port(self):
- return self.rigctl_port
-
- def set_rigctl_port(self, rigctl_port):
- self.rigctl_port = rigctl_port
-
- def get_rx_freq(self):
- return self.rx_freq
-
- def set_rx_freq(self, rx_freq):
- self.rx_freq = rx_freq
- self.satnogs_coarse_doppler_correction_cc_0.set_new_freq_locked(self.rx_freq)
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
-
- def get_rx_sdr_device(self):
- return self.rx_sdr_device
-
- def set_rx_sdr_device(self, rx_sdr_device):
- self.rx_sdr_device = rx_sdr_device
- self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_waterfall_file_path(self):
- return self.waterfall_file_path
-
- def set_waterfall_file_path(self, waterfall_file_path):
- self.waterfall_file_path = waterfall_file_path
-
- def get_samp_rate_rx(self):
- return self.samp_rate_rx
-
- def set_samp_rate_rx(self, samp_rate_rx):
- self.samp_rate_rx = samp_rate_rx
- self.set_xlate_filter_taps(firdes.low_pass(1, self.samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76))
- self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
- self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
-
- def get_xlate_filter_taps(self):
- return self.xlate_filter_taps
-
- def set_xlate_filter_taps(self, xlate_filter_taps):
- self.xlate_filter_taps = xlate_filter_taps
- self.freq_xlating_fir_filter_xxx_0.set_taps((self.xlate_filter_taps))
-
- def get_taps(self):
- return self.taps
-
- def set_taps(self, taps):
- self.taps = taps
-
- def get_filter_rate(self):
- return self.filter_rate
-
- def set_filter_rate(self, filter_rate):
- self.filter_rate = filter_rate
-
- def get_deviation(self):
- return self.deviation
-
- def set_deviation(self, deviation):
- self.deviation = deviation
-
- def get_audio_samp_rate(self):
- return self.audio_samp_rate
-
- def set_audio_samp_rate(self, audio_samp_rate):
- self.audio_samp_rate = audio_samp_rate
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, 2000, 1000, firdes.WIN_HAMMING, 6.76))
- self.analog_sig_source_x_0.set_sampling_freq(self.audio_samp_rate)
-
-
-def argument_parser():
- description = 'A generic BPSK demodulation block'
- parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
- parser.add_option(
- "", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
- help="Set antenna [default=%default]")
- parser.add_option(
- "", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
- help="Set bb_gain [default=%default]")
- parser.add_option(
- "", "--cw-offset", dest="cw_offset", type="eng_float", default=eng_notation.num_to_str(1500),
- help="Set cw_offset [default=%default]")
- parser.add_option(
- "", "--decoded-data-file-path", dest="decoded_data_file_path", type="string", default='/tmp/.satnogs/data/data',
- help="Set decoded_data_file_path [default=%default]")
- parser.add_option(
- "", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
- help="Set dev_args [default=%default]")
- parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
- help="Set doppler_correction_per_sec [default=%default]")
- parser.add_option(
- "", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
- help="Set enable_iq_dump [default=%default]")
- parser.add_option(
- "", "--file-path", dest="file_path", type="string", default='test.ogg',
- help="Set file_path [default=%default]")
- parser.add_option(
- "", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
- help="Set if_gain [default=%default]")
- parser.add_option(
- "", "--iq-file-path", dest="iq_file_path", type="string", default='/tmp/iq.dat',
- help="Set iq_file_path [default=%default]")
- parser.add_option(
- "", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
- help="Set lo_offset [default=%default]")
- parser.add_option(
- "", "--ppm", dest="ppm", type="intx", default=0,
- help="Set ppm [default=%default]")
- parser.add_option(
- "", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
- help="Set rf_gain [default=%default]")
- parser.add_option(
- "", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
- help="Set rigctl_port [default=%default]")
- parser.add_option(
- "", "--rx-freq", dest="rx_freq", type="eng_float", default=eng_notation.num_to_str(100e6),
- help="Set rx_freq [default=%default]")
- parser.add_option(
- "", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
- help="Set rx_sdr_device [default=%default]")
- parser.add_option(
- "", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
- help="Set waterfall_file_path [default=%default]")
- return parser
-
-
-def main(top_block_cls=satnogs_bpsk_demod, options=None):
- if options is None:
- options, _ = argument_parser().parse_args()
-
- tb = top_block_cls(antenna=options.antenna, bb_gain=options.bb_gain, cw_offset=options.cw_offset, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, if_gain=options.if_gain, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path)
- tb.start()
- tb.wait()
-
-
-if __name__ == '__main__':
- main()
diff --git a/apps/flowgraphs/satnogs_cw_decoder.py b/apps/flowgraphs/satnogs_cw_decoder.py
index 4c3af5b..f960743 100755
--- a/apps/flowgraphs/satnogs_cw_decoder.py
+++ b/apps/flowgraphs/satnogs_cw_decoder.py
@@ -5,9 +5,10 @@
# Title: CW Decoder
# Author: Manolis Surligas (surligas@gmail.com)
# Description: A CW (Morse) Decoder
-# Generated: Sun Jan 6 13:47:58 2019
+# GNU Radio version: 3.7.13.5
##################################################
+
from gnuradio import analog
from gnuradio import blocks
from gnuradio import eng_notation
@@ -25,7 +26,7 @@ import time
class satnogs_cw_decoder(gr.top_block):
- def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, bfo_freq=1e3, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.txt', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat', wpm=20):
+ def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, bfo_freq=1e3, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.txt', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat', wpm=20):
gr.top_block.__init__(self, "CW Decoder")
##################################################
@@ -65,7 +66,7 @@ class satnogs_cw_decoder(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_morse_decoder_0 = satnogs.morse_decoder(ord('#'), 3)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
@@ -340,7 +341,7 @@ def argument_parser():
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
+ "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
diff --git a/apps/flowgraphs/satnogs_example_flowgraph.py b/apps/flowgraphs/satnogs_example_flowgraph.py
index 13887d4..840c618 100755
--- a/apps/flowgraphs/satnogs_example_flowgraph.py
+++ b/apps/flowgraphs/satnogs_example_flowgraph.py
@@ -5,9 +5,10 @@
# Title: An example flowgraph
# Author: Manolis Surligas (surligas@gmail.com)
# Description: An example flowgraph that can be used as a base for decoding flowgraphs
-# Generated: Fri Apr 27 11:31:43 2018
+# GNU Radio version: 3.7.13.5
##################################################
+
from gnuradio import analog
from gnuradio import eng_notation
from gnuradio import filter
@@ -63,7 +64,7 @@ class satnogs_example_flowgraph(gr.top_block):
# Blocks
##################################################
self.satnogs_waterfall_sink_0_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
@@ -94,7 +95,7 @@ class satnogs_example_flowgraph(gr.top_block):
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
+ self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_quadrature_demod_cf_0, 0), (self.satnogs_ogg_encoder_0, 0))
self.connect((self.blks2_rational_resampler_xxx_1_0, 0), (self.analog_quadrature_demod_cf_0, 0))
self.connect((self.blks2_rational_resampler_xxx_1_0, 0), (self.satnogs_iq_sink_0_0, 0))
diff --git a/apps/flowgraphs/satnogs_fm_demod.py b/apps/flowgraphs/satnogs_fm_demod.py
index 7c1ed8f..67768bd 100755
--- a/apps/flowgraphs/satnogs_fm_demod.py
+++ b/apps/flowgraphs/satnogs_fm_demod.py
@@ -5,9 +5,10 @@
# Title: FM Generic Demodulation
# Author: Manolis Surligas (surligas@gmail.com)
# Description: A generic FM demodulation block
-# Generated: Sun Nov 19 11:35:00 2017
+# GNU Radio version: 3.7.13.5
##################################################
+
from gnuradio import analog
from gnuradio import eng_notation
from gnuradio import filter
@@ -63,7 +64,7 @@ class satnogs_fm_demod(gr.top_block):
# Blocks
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(32767, iq_file_path, False, enable_iq_dump)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
@@ -91,6 +92,8 @@ class satnogs_fm_demod(gr.top_block):
)
self.analog_quadrature_demod_cf_0 = analog.quadrature_demod_cf((2*math.pi*deviation)/audio_samp_rate)
+
+
##################################################
# Connections
##################################################
diff --git a/apps/flowgraphs/satnogs_fsk9600_ax25.py b/apps/flowgraphs/satnogs_fsk9600_ax25.py
deleted file mode 100755
index 0451c00..0000000
--- a/apps/flowgraphs/satnogs_fsk9600_ax25.py
+++ /dev/null
@@ -1,378 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-##################################################
-# GNU Radio Python Flow Graph
-# Title: FSK9600 AX.25 decoder
-# Author: Manolis Surligas (surligas@gmail.com)
-# Description: FSK9600 AX.25 decoder
-# Generated: Sat Nov 24 21:42:51 2018
-##################################################
-
-from gnuradio import analog
-from gnuradio import digital
-from gnuradio import eng_notation
-from gnuradio import filter
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
-from optparse import OptionParser
-import math
-import osmosdr
-import satnogs
-import time
-
-
-class satnogs_fsk9600_ax25(gr.top_block):
-
- def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
- gr.top_block.__init__(self, "FSK9600 AX.25 decoder ")
-
- ##################################################
- # Parameters
- ##################################################
- self.antenna = antenna
- self.bb_gain = bb_gain
- self.decoded_data_file_path = decoded_data_file_path
- self.dev_args = dev_args
- self.doppler_correction_per_sec = doppler_correction_per_sec
- self.enable_iq_dump = enable_iq_dump
- self.file_path = file_path
- self.if_gain = if_gain
- self.iq_file_path = iq_file_path
- self.lo_offset = lo_offset
- self.ppm = ppm
- self.rf_gain = rf_gain
- self.rigctl_port = rigctl_port
- self.rx_freq = rx_freq
- self.rx_sdr_device = rx_sdr_device
- self.udp_IP = udp_IP
- self.udp_port = udp_port
- self.waterfall_file_path = waterfall_file_path
-
- ##################################################
- # Variables
- ##################################################
- self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
- self.deviation = deviation = 5000
- self.baud_rate = baud_rate = 9600
- self.xlate_filter_taps = xlate_filter_taps = firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
- self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
-
- self.modulation_index = modulation_index = deviation / (baud_rate / 2.0)
- self.filter_rate = filter_rate = 250000
- self.audio_samp_rate = audio_samp_rate = 48000
-
- ##################################################
- # Blocks
- ##################################################
- self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
- self.satnogs_quad_demod_filter_ff_0 = satnogs.quad_demod_filter_ff(((audio_samp_rate) / baud_rate)/(math.pi*modulation_index))
- self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
- self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, '/tmp/iq.bin', False, enable_iq_dump)
- self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
- self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
- self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
- self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
- self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
- self.osmosdr_source_0.set_freq_corr(ppm, 0)
- self.osmosdr_source_0.set_dc_offset_mode(2, 0)
- self.osmosdr_source_0.set_iq_balance_mode(0, 0)
- self.osmosdr_source_0.set_gain_mode(False, 0)
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
- self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
-
- self.low_pass_filter_0 = filter.fir_filter_fff(1, firdes.low_pass(
- 1, audio_samp_rate, 7850, audio_samp_rate * 0.15, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
- self.digital_costas_loop_cc_0 = digital.costas_loop_cc(2.0 * math.pi / 100.0, 2, False)
- self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(48e3/9600, 0.25*0.175*0.175, 0.5, 0.175, 0.005)
- self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
- self.dc_blocker_xx_0 = filter.dc_blocker_ff(1024, True)
- self.blks2_rational_resampler_xxx_1 = filter.rational_resampler_ccc(
- interpolation=48000,
- decimation=int(samp_rate_rx / (int(samp_rate_rx/filter_rate))),
- taps=None,
- fractional_bw=None,
- )
- self.analog_quadrature_demod_cf_0_0 = analog.quadrature_demod_cf(((audio_samp_rate) / baud_rate)/(math.pi*modulation_index))
-
- ##################################################
- # Connections
- ##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
- self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.dc_blocker_xx_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.analog_quadrature_demod_cf_0_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_iq_sink_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.dc_blocker_xx_0, 0), (self.low_pass_filter_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.satnogs_quad_demod_filter_ff_0, 0))
- self.connect((self.digital_costas_loop_cc_0, 0), (self.blks2_rational_resampler_xxx_1, 0))
- self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.digital_costas_loop_cc_0, 0))
- self.connect((self.low_pass_filter_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
- self.connect((self.low_pass_filter_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
- self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
- self.connect((self.satnogs_quad_demod_filter_ff_0, 0), (self.digital_binary_slicer_fb_0, 0))
-
- def get_antenna(self):
- return self.antenna
-
- def set_antenna(self, antenna):
- self.antenna = antenna
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_bb_gain(self):
- return self.bb_gain
-
- def set_bb_gain(self, bb_gain):
- self.bb_gain = bb_gain
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
-
- def get_decoded_data_file_path(self):
- return self.decoded_data_file_path
-
- def set_decoded_data_file_path(self, decoded_data_file_path):
- self.decoded_data_file_path = decoded_data_file_path
-
- def get_dev_args(self):
- return self.dev_args
-
- def set_dev_args(self, dev_args):
- self.dev_args = dev_args
-
- def get_doppler_correction_per_sec(self):
- return self.doppler_correction_per_sec
-
- def set_doppler_correction_per_sec(self, doppler_correction_per_sec):
- self.doppler_correction_per_sec = doppler_correction_per_sec
-
- def get_enable_iq_dump(self):
- return self.enable_iq_dump
-
- def set_enable_iq_dump(self, enable_iq_dump):
- self.enable_iq_dump = enable_iq_dump
-
- def get_file_path(self):
- return self.file_path
-
- def set_file_path(self, file_path):
- self.file_path = file_path
-
- def get_if_gain(self):
- return self.if_gain
-
- def set_if_gain(self, if_gain):
- self.if_gain = if_gain
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
-
- def get_iq_file_path(self):
- return self.iq_file_path
-
- def set_iq_file_path(self, iq_file_path):
- self.iq_file_path = iq_file_path
-
- def get_lo_offset(self):
- return self.lo_offset
-
- def set_lo_offset(self, lo_offset):
- self.lo_offset = lo_offset
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
- self.freq_xlating_fir_filter_xxx_0.set_center_freq(self.lo_offset)
-
- def get_ppm(self):
- return self.ppm
-
- def set_ppm(self, ppm):
- self.ppm = ppm
- self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
-
- def get_rf_gain(self):
- return self.rf_gain
-
- def set_rf_gain(self, rf_gain):
- self.rf_gain = rf_gain
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
-
- def get_rigctl_port(self):
- return self.rigctl_port
-
- def set_rigctl_port(self, rigctl_port):
- self.rigctl_port = rigctl_port
-
- def get_rx_freq(self):
- return self.rx_freq
-
- def set_rx_freq(self, rx_freq):
- self.rx_freq = rx_freq
- self.satnogs_coarse_doppler_correction_cc_0.set_new_freq_locked(self.rx_freq)
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
-
- def get_rx_sdr_device(self):
- return self.rx_sdr_device
-
- def set_rx_sdr_device(self, rx_sdr_device):
- self.rx_sdr_device = rx_sdr_device
- self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_udp_IP(self):
- return self.udp_IP
-
- def set_udp_IP(self, udp_IP):
- self.udp_IP = udp_IP
-
- def get_udp_port(self):
- return self.udp_port
-
- def set_udp_port(self, udp_port):
- self.udp_port = udp_port
-
- def get_waterfall_file_path(self):
- return self.waterfall_file_path
-
- def set_waterfall_file_path(self, waterfall_file_path):
- self.waterfall_file_path = waterfall_file_path
-
- def get_samp_rate_rx(self):
- return self.samp_rate_rx
-
- def set_samp_rate_rx(self, samp_rate_rx):
- self.samp_rate_rx = samp_rate_rx
- self.set_xlate_filter_taps(firdes.low_pass(1, self.samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76))
- self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
- self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
-
- def get_deviation(self):
- return self.deviation
-
- def set_deviation(self, deviation):
- self.deviation = deviation
- self.set_modulation_index(self.deviation / (self.baud_rate / 2.0))
-
- def get_baud_rate(self):
- return self.baud_rate
-
- def set_baud_rate(self, baud_rate):
- self.baud_rate = baud_rate
- self.set_modulation_index(self.deviation / (self.baud_rate / 2.0))
- self.analog_quadrature_demod_cf_0_0.set_gain(((self.audio_samp_rate) / self.baud_rate)/(math.pi*self.modulation_index))
-
- def get_xlate_filter_taps(self):
- return self.xlate_filter_taps
-
- def set_xlate_filter_taps(self, xlate_filter_taps):
- self.xlate_filter_taps = xlate_filter_taps
- self.freq_xlating_fir_filter_xxx_0.set_taps((self.xlate_filter_taps))
-
- def get_taps(self):
- return self.taps
-
- def set_taps(self, taps):
- self.taps = taps
-
- def get_modulation_index(self):
- return self.modulation_index
-
- def set_modulation_index(self, modulation_index):
- self.modulation_index = modulation_index
- self.analog_quadrature_demod_cf_0_0.set_gain(((self.audio_samp_rate) / self.baud_rate)/(math.pi*self.modulation_index))
-
- def get_filter_rate(self):
- return self.filter_rate
-
- def set_filter_rate(self, filter_rate):
- self.filter_rate = filter_rate
-
- def get_audio_samp_rate(self):
- return self.audio_samp_rate
-
- def set_audio_samp_rate(self, audio_samp_rate):
- self.audio_samp_rate = audio_samp_rate
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, 7850, self.audio_samp_rate * 0.15, firdes.WIN_HAMMING, 6.76))
- self.analog_quadrature_demod_cf_0_0.set_gain(((self.audio_samp_rate) / self.baud_rate)/(math.pi*self.modulation_index))
-
-
-def argument_parser():
- description = 'FSK9600 AX.25 decoder'
- parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
- parser.add_option(
- "", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
- help="Set antenna [default=%default]")
- parser.add_option(
- "", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
- help="Set bb_gain [default=%default]")
- parser.add_option(
- "", "--decoded-data-file-path", dest="decoded_data_file_path", type="string", default='/tmp/.satnogs/data/data',
- help="Set decoded_data_file_path [default=%default]")
- parser.add_option(
- "", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
- help="Set dev_args [default=%default]")
- parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
- help="Set doppler_correction_per_sec [default=%default]")
- parser.add_option(
- "", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
- help="Set enable_iq_dump [default=%default]")
- parser.add_option(
- "", "--file-path", dest="file_path", type="string", default='test.wav',
- help="Set file_path [default=%default]")
- parser.add_option(
- "", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
- help="Set if_gain [default=%default]")
- parser.add_option(
- "", "--iq-file-path", dest="iq_file_path", type="string", default='/tmp/iq.dat',
- help="Set iq_file_path [default=%default]")
- parser.add_option(
- "", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
- help="Set lo_offset [default=%default]")
- parser.add_option(
- "", "--ppm", dest="ppm", type="intx", default=0,
- help="Set ppm [default=%default]")
- parser.add_option(
- "", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
- help="Set rf_gain [default=%default]")
- parser.add_option(
- "", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
- help="Set rigctl_port [default=%default]")
- parser.add_option(
- "", "--rx-freq", dest="rx_freq", type="eng_float", default=eng_notation.num_to_str(100e6),
- help="Set rx_freq [default=%default]")
- parser.add_option(
- "", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
- help="Set rx_sdr_device [default=%default]")
- parser.add_option(
- "", "--udp-IP", dest="udp_IP", type="string", default='127.0.0.1',
- help="Set udp_IP [default=%default]")
- parser.add_option(
- "", "--udp-port", dest="udp_port", type="intx", default=16887,
- help="Set udp_port [default=%default]")
- parser.add_option(
- "", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
- help="Set waterfall_file_path [default=%default]")
- return parser
-
-
-def main(top_block_cls=satnogs_fsk9600_ax25, options=None):
- if options is None:
- options, _ = argument_parser().parse_args()
-
- tb = top_block_cls(antenna=options.antenna, bb_gain=options.bb_gain, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, if_gain=options.if_gain, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, udp_IP=options.udp_IP, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
- tb.start()
- tb.wait()
-
-
-if __name__ == '__main__':
- main()
diff --git a/apps/flowgraphs/satnogs_fsk9600_g3ruh_ax25.py b/apps/flowgraphs/satnogs_fsk9600_g3ruh_ax25.py
deleted file mode 100755
index c90d9b6..0000000
--- a/apps/flowgraphs/satnogs_fsk9600_g3ruh_ax25.py
+++ /dev/null
@@ -1,378 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-##################################################
-# GNU Radio Python Flow Graph
-# Title: FSK9600 AX.25 decoder with G3RUH support
-# Author: Manolis Surligas (surligas@gmail.com)
-# Description: FSK9600 AX.25 decoder with G3RUH support
-# Generated: Sat Nov 24 21:42:53 2018
-##################################################
-
-from gnuradio import analog
-from gnuradio import digital
-from gnuradio import eng_notation
-from gnuradio import filter
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
-from optparse import OptionParser
-import math
-import osmosdr
-import satnogs
-import time
-
-
-class satnogs_fsk9600_g3ruh_ax25(gr.top_block):
-
- def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
- gr.top_block.__init__(self, "FSK9600 AX.25 decoder with G3RUH support")
-
- ##################################################
- # Parameters
- ##################################################
- self.antenna = antenna
- self.bb_gain = bb_gain
- self.decoded_data_file_path = decoded_data_file_path
- self.dev_args = dev_args
- self.doppler_correction_per_sec = doppler_correction_per_sec
- self.enable_iq_dump = enable_iq_dump
- self.file_path = file_path
- self.if_gain = if_gain
- self.iq_file_path = iq_file_path
- self.lo_offset = lo_offset
- self.ppm = ppm
- self.rf_gain = rf_gain
- self.rigctl_port = rigctl_port
- self.rx_freq = rx_freq
- self.rx_sdr_device = rx_sdr_device
- self.udp_IP = udp_IP
- self.udp_port = udp_port
- self.waterfall_file_path = waterfall_file_path
-
- ##################################################
- # Variables
- ##################################################
- self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
- self.deviation = deviation = 5000
- self.baud_rate = baud_rate = 9600
- self.xlate_filter_taps = xlate_filter_taps = firdes.low_pass(1, samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76)
-
- self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
-
- self.modulation_index = modulation_index = deviation / (baud_rate / 2.0)
- self.filter_rate = filter_rate = 250000
- self.audio_samp_rate = audio_samp_rate = 48000
-
- ##################################################
- # Blocks
- ##################################################
- self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
- self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
- self.satnogs_quad_demod_filter_ff_0 = satnogs.quad_demod_filter_ff(((audio_samp_rate) / baud_rate)/(math.pi*modulation_index))
- self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
- self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
- self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
- self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
- self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
- self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
- self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
- self.osmosdr_source_0.set_freq_corr(ppm, 0)
- self.osmosdr_source_0.set_dc_offset_mode(2, 0)
- self.osmosdr_source_0.set_iq_balance_mode(0, 0)
- self.osmosdr_source_0.set_gain_mode(False, 0)
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
- self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
-
- self.low_pass_filter_0 = filter.fir_filter_fff(1, firdes.low_pass(
- 1, audio_samp_rate, 7850, audio_samp_rate * 0.15, firdes.WIN_HAMMING, 6.76))
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
- self.digital_costas_loop_cc_0 = digital.costas_loop_cc(2.0 * math.pi / 100.0, 2, False)
- self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(48e3/9600, 0.25*0.175*0.175, 0.5, 0.175, 0.005)
- self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
- self.dc_blocker_xx_0 = filter.dc_blocker_ff(1024, True)
- self.blks2_rational_resampler_xxx_1 = filter.rational_resampler_ccc(
- interpolation=48000,
- decimation=int(samp_rate_rx / (int(samp_rate_rx/filter_rate))),
- taps=None,
- fractional_bw=None,
- )
- self.analog_quadrature_demod_cf_0_0 = analog.quadrature_demod_cf(((audio_samp_rate) / baud_rate)/(math.pi*modulation_index))
-
- ##################################################
- # Connections
- ##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
- self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.dc_blocker_xx_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.analog_quadrature_demod_cf_0_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_iq_sink_0, 0))
- self.connect((self.blks2_rational_resampler_xxx_1, 0), (self.satnogs_waterfall_sink_0, 0))
- self.connect((self.dc_blocker_xx_0, 0), (self.low_pass_filter_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.satnogs_quad_demod_filter_ff_0, 0))
- self.connect((self.digital_costas_loop_cc_0, 0), (self.blks2_rational_resampler_xxx_1, 0))
- self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.digital_costas_loop_cc_0, 0))
- self.connect((self.low_pass_filter_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
- self.connect((self.low_pass_filter_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
- self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
- self.connect((self.satnogs_quad_demod_filter_ff_0, 0), (self.digital_binary_slicer_fb_0, 0))
-
- def get_antenna(self):
- return self.antenna
-
- def set_antenna(self, antenna):
- self.antenna = antenna
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_bb_gain(self):
- return self.bb_gain
-
- def set_bb_gain(self, bb_gain):
- self.bb_gain = bb_gain
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
-
- def get_decoded_data_file_path(self):
- return self.decoded_data_file_path
-
- def set_decoded_data_file_path(self, decoded_data_file_path):
- self.decoded_data_file_path = decoded_data_file_path
-
- def get_dev_args(self):
- return self.dev_args
-
- def set_dev_args(self, dev_args):
- self.dev_args = dev_args
-
- def get_doppler_correction_per_sec(self):
- return self.doppler_correction_per_sec
-
- def set_doppler_correction_per_sec(self, doppler_correction_per_sec):
- self.doppler_correction_per_sec = doppler_correction_per_sec
-
- def get_enable_iq_dump(self):
- return self.enable_iq_dump
-
- def set_enable_iq_dump(self, enable_iq_dump):
- self.enable_iq_dump = enable_iq_dump
-
- def get_file_path(self):
- return self.file_path
-
- def set_file_path(self, file_path):
- self.file_path = file_path
-
- def get_if_gain(self):
- return self.if_gain
-
- def set_if_gain(self, if_gain):
- self.if_gain = if_gain
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
-
- def get_iq_file_path(self):
- return self.iq_file_path
-
- def set_iq_file_path(self, iq_file_path):
- self.iq_file_path = iq_file_path
-
- def get_lo_offset(self):
- return self.lo_offset
-
- def set_lo_offset(self, lo_offset):
- self.lo_offset = lo_offset
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
- self.freq_xlating_fir_filter_xxx_0.set_center_freq(self.lo_offset)
-
- def get_ppm(self):
- return self.ppm
-
- def set_ppm(self, ppm):
- self.ppm = ppm
- self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
-
- def get_rf_gain(self):
- return self.rf_gain
-
- def set_rf_gain(self, rf_gain):
- self.rf_gain = rf_gain
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
-
- def get_rigctl_port(self):
- return self.rigctl_port
-
- def set_rigctl_port(self, rigctl_port):
- self.rigctl_port = rigctl_port
-
- def get_rx_freq(self):
- return self.rx_freq
-
- def set_rx_freq(self, rx_freq):
- self.rx_freq = rx_freq
- self.satnogs_coarse_doppler_correction_cc_0.set_new_freq_locked(self.rx_freq)
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
-
- def get_rx_sdr_device(self):
- return self.rx_sdr_device
-
- def set_rx_sdr_device(self, rx_sdr_device):
- self.rx_sdr_device = rx_sdr_device
- self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_udp_IP(self):
- return self.udp_IP
-
- def set_udp_IP(self, udp_IP):
- self.udp_IP = udp_IP
-
- def get_udp_port(self):
- return self.udp_port
-
- def set_udp_port(self, udp_port):
- self.udp_port = udp_port
-
- def get_waterfall_file_path(self):
- return self.waterfall_file_path
-
- def set_waterfall_file_path(self, waterfall_file_path):
- self.waterfall_file_path = waterfall_file_path
-
- def get_samp_rate_rx(self):
- return self.samp_rate_rx
-
- def set_samp_rate_rx(self, samp_rate_rx):
- self.samp_rate_rx = samp_rate_rx
- self.set_xlate_filter_taps(firdes.low_pass(1, self.samp_rate_rx, 125000, 25000, firdes.WIN_HAMMING, 6.76))
- self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
- self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
-
- def get_deviation(self):
- return self.deviation
-
- def set_deviation(self, deviation):
- self.deviation = deviation
- self.set_modulation_index(self.deviation / (self.baud_rate / 2.0))
-
- def get_baud_rate(self):
- return self.baud_rate
-
- def set_baud_rate(self, baud_rate):
- self.baud_rate = baud_rate
- self.set_modulation_index(self.deviation / (self.baud_rate / 2.0))
- self.analog_quadrature_demod_cf_0_0.set_gain(((self.audio_samp_rate) / self.baud_rate)/(math.pi*self.modulation_index))
-
- def get_xlate_filter_taps(self):
- return self.xlate_filter_taps
-
- def set_xlate_filter_taps(self, xlate_filter_taps):
- self.xlate_filter_taps = xlate_filter_taps
- self.freq_xlating_fir_filter_xxx_0.set_taps((self.xlate_filter_taps))
-
- def get_taps(self):
- return self.taps
-
- def set_taps(self, taps):
- self.taps = taps
-
- def get_modulation_index(self):
- return self.modulation_index
-
- def set_modulation_index(self, modulation_index):
- self.modulation_index = modulation_index
- self.analog_quadrature_demod_cf_0_0.set_gain(((self.audio_samp_rate) / self.baud_rate)/(math.pi*self.modulation_index))
-
- def get_filter_rate(self):
- return self.filter_rate
-
- def set_filter_rate(self, filter_rate):
- self.filter_rate = filter_rate
-
- def get_audio_samp_rate(self):
- return self.audio_samp_rate
-
- def set_audio_samp_rate(self, audio_samp_rate):
- self.audio_samp_rate = audio_samp_rate
- self.low_pass_filter_0.set_taps(firdes.low_pass(1, self.audio_samp_rate, 7850, self.audio_samp_rate * 0.15, firdes.WIN_HAMMING, 6.76))
- self.analog_quadrature_demod_cf_0_0.set_gain(((self.audio_samp_rate) / self.baud_rate)/(math.pi*self.modulation_index))
-
-
-def argument_parser():
- description = 'FSK9600 AX.25 decoder with G3RUH support'
- parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
- parser.add_option(
- "", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
- help="Set antenna [default=%default]")
- parser.add_option(
- "", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
- help="Set bb_gain [default=%default]")
- parser.add_option(
- "", "--decoded-data-file-path", dest="decoded_data_file_path", type="string", default='/tmp/.satnogs/data/data',
- help="Set decoded_data_file_path [default=%default]")
- parser.add_option(
- "", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
- help="Set dev_args [default=%default]")
- parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
- help="Set doppler_correction_per_sec [default=%default]")
- parser.add_option(
- "", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
- help="Set enable_iq_dump [default=%default]")
- parser.add_option(
- "", "--file-path", dest="file_path", type="string", default='test.wav',
- help="Set file_path [default=%default]")
- parser.add_option(
- "", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
- help="Set if_gain [default=%default]")
- parser.add_option(
- "", "--iq-file-path", dest="iq_file_path", type="string", default='/tmp/iq.dat',
- help="Set iq_file_path [default=%default]")
- parser.add_option(
- "", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
- help="Set lo_offset [default=%default]")
- parser.add_option(
- "", "--ppm", dest="ppm", type="intx", default=0,
- help="Set ppm [default=%default]")
- parser.add_option(
- "", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
- help="Set rf_gain [default=%default]")
- parser.add_option(
- "", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
- help="Set rigctl_port [default=%default]")
- parser.add_option(
- "", "--rx-freq", dest="rx_freq", type="eng_float", default=eng_notation.num_to_str(100e6),
- help="Set rx_freq [default=%default]")
- parser.add_option(
- "", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
- help="Set rx_sdr_device [default=%default]")
- parser.add_option(
- "", "--udp-IP", dest="udp_IP", type="string", default='127.0.0.1',
- help="Set udp_IP [default=%default]")
- parser.add_option(
- "", "--udp-port", dest="udp_port", type="intx", default=16887,
- help="Set udp_port [default=%default]")
- parser.add_option(
- "", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
- help="Set waterfall_file_path [default=%default]")
- return parser
-
-
-def main(top_block_cls=satnogs_fsk9600_g3ruh_ax25, options=None):
- if options is None:
- options, _ = argument_parser().parse_args()
-
- tb = top_block_cls(antenna=options.antenna, bb_gain=options.bb_gain, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, if_gain=options.if_gain, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, udp_IP=options.udp_IP, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
- tb.start()
- tb.wait()
-
-
-if __name__ == '__main__':
- main()
diff --git a/apps/flowgraphs/satnogs_fsk_ax25.py b/apps/flowgraphs/satnogs_fsk_ax25.py
index 576ee1a..5f2bc0d 100755
--- a/apps/flowgraphs/satnogs_fsk_ax25.py
+++ b/apps/flowgraphs/satnogs_fsk_ax25.py
@@ -27,7 +27,7 @@ import time
class satnogs_fsk_ax25(gr.top_block):
- def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
+ def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "satnogs_fsk_ax25")
##################################################
@@ -57,6 +57,8 @@ class satnogs_fsk_ax25(gr.top_block):
##################################################
# Variables
##################################################
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0 = satnogs.ax25_decoder_make('GND', 0, True, False, True, 512)
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0 = satnogs.ax25_decoder_make('GND', 0, True, True, True, 512)
self.audio_samp_rate = audio_samp_rate = 48000
##################################################
@@ -64,13 +66,13 @@ class satnogs_fsk_ax25(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1000.0/doppler_correction_per_sec) + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
+ self.satnogs_frame_decoder_0_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0_0, gr.sizeof_char)
+ self.satnogs_frame_decoder_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0, gr.sizeof_char)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
- self.satnogs_ax25_decoder_bm_0_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
self.pfb_arb_resampler_xxx_0_0_0 = pfb.arb_resampler_ccf(
(2.0*baudrate)/audio_samp_rate,
taps=None,
@@ -107,7 +109,7 @@ class satnogs_fsk_ax25(gr.top_block):
self.blocks_vco_c_0 = blocks.vco_c(audio_samp_rate, -audio_samp_rate, 1.0)
self.blocks_rotator_cc_0 = blocks.rotator_cc(-2.0 * math.pi * (lo_offset / satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx)))
self.blocks_multiply_xx_0 = blocks.multiply_vcc(1)
- self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096)
+ self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096, 1)
self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex*1, 1024/2)
self.analog_quadrature_demod_cf_0_0_0_0 = analog.quadrature_demod_cf(1.0)
self.analog_quadrature_demod_cf_0_0_0 = analog.quadrature_demod_cf(0.9)
@@ -118,10 +120,10 @@ class satnogs_fsk_ax25(gr.top_block):
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.low_pass_filter_1, 0))
self.connect((self.analog_quadrature_demod_cf_0_0_0, 0), (self.dc_blocker_xx_0_0, 0))
@@ -133,8 +135,8 @@ class satnogs_fsk_ax25(gr.top_block):
self.connect((self.blocks_vco_c_0, 0), (self.blocks_multiply_xx_0, 1))
self.connect((self.dc_blocker_xx_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
self.connect((self.dc_blocker_xx_0_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0_0, 0))
self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.pfb_arb_resampler_xxx_0_0_0, 0))
self.connect((self.low_pass_filter_1, 0), (self.dc_blocker_xx_0, 0))
@@ -291,6 +293,18 @@ class satnogs_fsk_ax25(gr.top_block):
def set_waterfall_file_path(self, waterfall_file_path):
self.waterfall_file_path = waterfall_file_path
+ def get_variable_ax25_decoder_0_0(self):
+ return self.variable_ax25_decoder_0_0
+
+ def set_variable_ax25_decoder_0_0(self, variable_ax25_decoder_0_0):
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0
+
+ def get_variable_ax25_decoder_0(self):
+ return self.variable_ax25_decoder_0
+
+ def set_variable_ax25_decoder_0(self, variable_ax25_decoder_0):
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0
+
def get_audio_samp_rate(self):
return self.audio_samp_rate
@@ -320,7 +334,7 @@ def argument_parser():
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
+ "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
diff --git a/apps/flowgraphs/satnogs_generic_iq_receiver.py b/apps/flowgraphs/satnogs_generic_iq_receiver.py
deleted file mode 100755
index 7d296ef..0000000
--- a/apps/flowgraphs/satnogs_generic_iq_receiver.py
+++ /dev/null
@@ -1,268 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-##################################################
-# GNU Radio Python Flow Graph
-# Title: Generic IQ samples receiver
-# Author: Manolis Surligas (surligas@gmail.com)
-# Description: A generic FM demodulation block
-# Generated: Sun Nov 19 11:38:07 2017
-##################################################
-
-from gnuradio import blocks
-from gnuradio import eng_notation
-from gnuradio import filter
-from gnuradio import gr
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
-from optparse import OptionParser
-import osmosdr
-import satnogs
-import time
-
-
-class satnogs_generic_iq_receiver(gr.top_block):
-
- def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200'):
- gr.top_block.__init__(self, "Generic IQ samples receiver")
-
- ##################################################
- # Parameters
- ##################################################
- self.antenna = antenna
- self.bb_gain = bb_gain
- self.dev_args = dev_args
- self.doppler_correction_per_sec = doppler_correction_per_sec
- self.file_path = file_path
- self.if_gain = if_gain
- self.lo_offset = lo_offset
- self.ppm = ppm
- self.rf_gain = rf_gain
- self.rigctl_port = rigctl_port
- self.rx_freq = rx_freq
- self.rx_sdr_device = rx_sdr_device
-
- ##################################################
- # Variables
- ##################################################
- self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
- self.decimation_rx = decimation_rx = satnogs.fm_demod_settings[rx_sdr_device]['decimation_rx']
-
- self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
-
- self.quadrature_rate = quadrature_rate = samp_rate_rx / decimation_rx
- self.audio_samp_rate = audio_samp_rate = 44100
- self.audio_decimation = audio_decimation = 2
-
- ##################################################
- # Blocks
- ##################################################
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000/doppler_correction_per_sec, 1500)
- self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
- self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
- self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
- self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
- self.osmosdr_source_0.set_freq_corr(ppm, 0)
- self.osmosdr_source_0.set_dc_offset_mode(2, 0)
- self.osmosdr_source_0.set_iq_balance_mode(0, 0)
- self.osmosdr_source_0.set_gain_mode(False, 0)
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
- self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
-
- self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(decimation_rx, (taps), lo_offset, samp_rate_rx)
- self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_gr_complex*1, file_path, False)
- self.blocks_file_sink_0.set_unbuffered(True)
-
- ##################################################
- # Connections
- ##################################################
- self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
- self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blocks_file_sink_0, 0))
- self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
- self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
-
- def get_antenna(self):
- return self.antenna
-
- def set_antenna(self, antenna):
- self.antenna = antenna
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_bb_gain(self):
- return self.bb_gain
-
- def set_bb_gain(self, bb_gain):
- self.bb_gain = bb_gain
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
-
- def get_dev_args(self):
- return self.dev_args
-
- def set_dev_args(self, dev_args):
- self.dev_args = dev_args
-
- def get_doppler_correction_per_sec(self):
- return self.doppler_correction_per_sec
-
- def set_doppler_correction_per_sec(self, doppler_correction_per_sec):
- self.doppler_correction_per_sec = doppler_correction_per_sec
-
- def get_file_path(self):
- return self.file_path
-
- def set_file_path(self, file_path):
- self.file_path = file_path
- self.blocks_file_sink_0.open(self.file_path)
-
- def get_if_gain(self):
- return self.if_gain
-
- def set_if_gain(self, if_gain):
- self.if_gain = if_gain
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
-
- def get_lo_offset(self):
- return self.lo_offset
-
- def set_lo_offset(self, lo_offset):
- self.lo_offset = lo_offset
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
- self.freq_xlating_fir_filter_xxx_0.set_center_freq(self.lo_offset)
-
- def get_ppm(self):
- return self.ppm
-
- def set_ppm(self, ppm):
- self.ppm = ppm
- self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
-
- def get_rf_gain(self):
- return self.rf_gain
-
- def set_rf_gain(self, rf_gain):
- self.rf_gain = rf_gain
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
-
- def get_rigctl_port(self):
- return self.rigctl_port
-
- def set_rigctl_port(self, rigctl_port):
- self.rigctl_port = rigctl_port
-
- def get_rx_freq(self):
- return self.rx_freq
-
- def set_rx_freq(self, rx_freq):
- self.rx_freq = rx_freq
- self.satnogs_coarse_doppler_correction_cc_0.set_new_freq_locked(self.rx_freq)
- self.osmosdr_source_0.set_center_freq(self.rx_freq - self.lo_offset, 0)
-
- def get_rx_sdr_device(self):
- return self.rx_sdr_device
-
- def set_rx_sdr_device(self, rx_sdr_device):
- self.rx_sdr_device = rx_sdr_device
- self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
- self.set_decimation_rx(satnogs.fm_demod_settings[self.rx_sdr_device]['decimation_rx'])
- self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
- self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
- self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
- self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
-
- def get_samp_rate_rx(self):
- return self.samp_rate_rx
-
- def set_samp_rate_rx(self, samp_rate_rx):
- self.samp_rate_rx = samp_rate_rx
- self.set_quadrature_rate(self.samp_rate_rx / self.decimation_rx)
- self.osmosdr_source_0.set_sample_rate(self.samp_rate_rx)
- self.osmosdr_source_0.set_bandwidth(self.samp_rate_rx, 0)
-
- def get_decimation_rx(self):
- return self.decimation_rx
-
- def set_decimation_rx(self, decimation_rx):
- self.decimation_rx = decimation_rx
- self.set_quadrature_rate(self.samp_rate_rx / self.decimation_rx)
-
- def get_taps(self):
- return self.taps
-
- def set_taps(self, taps):
- self.taps = taps
- self.freq_xlating_fir_filter_xxx_0.set_taps((self.taps))
-
- def get_quadrature_rate(self):
- return self.quadrature_rate
-
- def set_quadrature_rate(self, quadrature_rate):
- self.quadrature_rate = quadrature_rate
-
- def get_audio_samp_rate(self):
- return self.audio_samp_rate
-
- def set_audio_samp_rate(self, audio_samp_rate):
- self.audio_samp_rate = audio_samp_rate
-
- def get_audio_decimation(self):
- return self.audio_decimation
-
- def set_audio_decimation(self, audio_decimation):
- self.audio_decimation = audio_decimation
-
-
-def argument_parser():
- description = 'A generic FM demodulation block'
- parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
- parser.add_option(
- "", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
- help="Set antenna [default=%default]")
- parser.add_option(
- "", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
- help="Set bb_gain [default=%default]")
- parser.add_option(
- "", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
- help="Set dev_args [default=%default]")
- parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
- help="Set doppler_correction_per_sec [default=%default]")
- parser.add_option(
- "", "--file-path", dest="file_path", type="string", default='test.wav',
- help="Set file_path [default=%default]")
- parser.add_option(
- "", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
- help="Set if_gain [default=%default]")
- parser.add_option(
- "", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
- help="Set lo_offset [default=%default]")
- parser.add_option(
- "", "--ppm", dest="ppm", type="intx", default=0,
- help="Set ppm [default=%default]")
- parser.add_option(
- "", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
- help="Set rf_gain [default=%default]")
- parser.add_option(
- "", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
- help="Set rigctl_port [default=%default]")
- parser.add_option(
- "", "--rx-freq", dest="rx_freq", type="eng_float", default=eng_notation.num_to_str(100e6),
- help="Set rx_freq [default=%default]")
- parser.add_option(
- "", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
- help="Set rx_sdr_device [default=%default]")
- return parser
-
-
-def main(top_block_cls=satnogs_generic_iq_receiver, options=None):
- if options is None:
- options, _ = argument_parser().parse_args()
-
- tb = top_block_cls(antenna=options.antenna, bb_gain=options.bb_gain, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, if_gain=options.if_gain, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device)
- tb.start()
- tb.wait()
-
-
-if __name__ == '__main__':
- main()
diff --git a/apps/flowgraphs/satnogs_msk_ax25.py b/apps/flowgraphs/satnogs_msk_ax25.py
index 7e1f4f7..41042e1 100755
--- a/apps/flowgraphs/satnogs_msk_ax25.py
+++ b/apps/flowgraphs/satnogs_msk_ax25.py
@@ -27,7 +27,7 @@ import time
class satnogs_msk_ax25(gr.top_block):
- def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
+ def __init__(self, antenna=satnogs.not_set_antenna, baudrate=9600.0, bb_gain=satnogs.not_set_rx_bb_gain, decoded_data_file_path='/tmp/.satnogs/data/data', dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=20, enable_iq_dump=0, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, iq_file_path='/tmp/iq.dat', lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', samp_rate_rx=satnogs.not_set_samp_rate_rx, udp_IP='127.0.0.1', udp_port=16887, waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "satnogs_msk_ax25")
##################################################
@@ -57,6 +57,8 @@ class satnogs_msk_ax25(gr.top_block):
##################################################
# Variables
##################################################
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0 = satnogs.ax25_decoder_make('GND', 0, True, False, True, 512)
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0 = satnogs.ax25_decoder_make('GND', 0, True, True, True, 512)
self.audio_samp_rate = audio_samp_rate = 48000
##################################################
@@ -64,13 +66,13 @@ class satnogs_msk_ax25(gr.top_block):
##################################################
self.satnogs_waterfall_sink_0 = satnogs.waterfall_sink(audio_samp_rate, 0.0, 10, 1024, waterfall_file_path, 1)
self.satnogs_udp_msg_sink_0_0 = satnogs.udp_msg_sink(udp_IP, udp_port, 1500)
- self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
+ self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, int(1.0/doppler_correction_per_sec) * 1000 + 1, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_iq_sink_0 = satnogs.iq_sink(16768, iq_file_path, False, enable_iq_dump)
self.satnogs_frame_file_sink_0_1_0 = satnogs.frame_file_sink(decoded_data_file_path, 0)
+ self.satnogs_frame_decoder_0_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0_0, gr.sizeof_char)
+ self.satnogs_frame_decoder_0_0 = satnogs.frame_decoder(variable_ax25_decoder_0, gr.sizeof_char)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx))
- self.satnogs_ax25_decoder_bm_0_0 = satnogs.ax25_decoder_bm('GND', 0, True, False, 1024)
- self.satnogs_ax25_decoder_bm_0 = satnogs.ax25_decoder_bm('GND', 0, True, True, 1024)
self.pfb_arb_resampler_xxx_0_0_0 = pfb.arb_resampler_ccf(
(2.0*baudrate)/audio_samp_rate,
taps=None,
@@ -107,7 +109,7 @@ class satnogs_msk_ax25(gr.top_block):
self.blocks_vco_c_0 = blocks.vco_c(audio_samp_rate, -audio_samp_rate, 1.0)
self.blocks_rotator_cc_0 = blocks.rotator_cc(-2.0 * math.pi * (lo_offset / satnogs.handle_samp_rate_rx(rx_sdr_device, samp_rate_rx)))
self.blocks_multiply_xx_0 = blocks.multiply_vcc(1)
- self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096)
+ self.blocks_moving_average_xx_0 = blocks.moving_average_ff(1024, 1.0/1024.0, 4096, 1)
self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex*1, 1024/2)
self.analog_quadrature_demod_cf_0_0_0_0 = analog.quadrature_demod_cf(1.0)
self.analog_quadrature_demod_cf_0_0_0 = analog.quadrature_demod_cf(0.9)
@@ -118,10 +120,10 @@ class satnogs_msk_ax25(gr.top_block):
##################################################
# Connections
##################################################
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
- self.msg_connect((self.satnogs_ax25_decoder_bm_0_0, 'pdu'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_frame_file_sink_0_1_0, 'frame'))
+ self.msg_connect((self.satnogs_frame_decoder_0_0_0, 'out'), (self.satnogs_udp_msg_sink_0_0, 'in'))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.analog_quadrature_demod_cf_0_0, 0), (self.low_pass_filter_1, 0))
self.connect((self.analog_quadrature_demod_cf_0_0_0, 0), (self.dc_blocker_xx_0_0, 0))
@@ -133,8 +135,8 @@ class satnogs_msk_ax25(gr.top_block):
self.connect((self.blocks_vco_c_0, 0), (self.blocks_multiply_xx_0, 1))
self.connect((self.dc_blocker_xx_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
self.connect((self.dc_blocker_xx_0_0, 0), (self.satnogs_ogg_encoder_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0, 0))
- self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_ax25_decoder_bm_0_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0, 0))
+ self.connect((self.digital_binary_slicer_fb_0, 0), (self.satnogs_frame_decoder_0_0_0, 0))
self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
self.connect((self.low_pass_filter_0, 0), (self.pfb_arb_resampler_xxx_0_0_0, 0))
self.connect((self.low_pass_filter_1, 0), (self.dc_blocker_xx_0, 0))
@@ -291,6 +293,18 @@ class satnogs_msk_ax25(gr.top_block):
def set_waterfall_file_path(self, waterfall_file_path):
self.waterfall_file_path = waterfall_file_path
+ def get_variable_ax25_decoder_0_0(self):
+ return self.variable_ax25_decoder_0_0
+
+ def set_variable_ax25_decoder_0_0(self, variable_ax25_decoder_0_0):
+ self.variable_ax25_decoder_0_0 = variable_ax25_decoder_0_0
+
+ def get_variable_ax25_decoder_0(self):
+ return self.variable_ax25_decoder_0
+
+ def set_variable_ax25_decoder_0(self, variable_ax25_decoder_0):
+ self.variable_ax25_decoder_0 = variable_ax25_decoder_0
+
def get_audio_samp_rate(self):
return self.audio_samp_rate
@@ -320,7 +334,7 @@ def argument_parser():
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
- "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
+ "", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=20,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--enable-iq-dump", dest="enable_iq_dump", type="intx", default=0,
diff --git a/apps/scripts/CMakeLists.txt b/apps/scripts/CMakeLists.txt
deleted file mode 100644
index 4355ed3..0000000
--- a/apps/scripts/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-INSTALL(FILES
- satnogs_waterfall.gp
- DESTINATION share/satnogs/scripts
-)
\ No newline at end of file
diff --git a/apps/scripts/satnogs_waterfall.gp b/apps/scripts/satnogs_waterfall.gp
deleted file mode 100755
index 69907ca..0000000
--- a/apps/scripts/satnogs_waterfall.gp
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/gnuplot
-#
-# gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
-#
-# Copyright (C) 2017, Libre Space Foundation
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see
-
-# satnogs-waterfall.gp
-# Plot a waterfall diagramm from the output of the satnogs_waterfall_sink block.
-#
-# Usage:
-# gnuplot -e "inputfile='waterfall_sink.data'" -e "outfile='waterfall.png'" /usr/local/share/satnogs/scripts/satnogs_waterfall.gp
-
-reset
-if (!exists("height")) height=800
-if (!exists("width")) width=800
-if (!exists("outfile")) outfile='/tmp/waterfall.png'
-
-################################################################################
-# Get FFT size and maximum number of records so we can plot the waterfall
-# even in case the file was not properly closed and contains data that are
-# not an integer multiple of the FFT size
-################################################################################
-
-# Set terminal to unkown so no ploting is performed.
-set terminal unknown
-
-# Read the first float to get the FFT size
-# The file contains a float specifying the FFT size the x-axis scale
-# and then each each pixel line
-# starts with the time in seconds from the beginning of the capture.
-# Then, read until the last float of a fully filled pixel line to get the number
-# of floats that should be in the file.
-# For strange reasons the STATS_records returns inconcistent size (always the half)
-plot inputfile binary format='%float32' index 0 every ::0:0:0:0 using (fft_size = $1), \
- "" binary format='%float32' every fft_size + 1::fft_size using (float_num = $0 + 1)
-cmd = sprintf("truncate -s %u %s", float_num * 4, inputfile)
-
-# Truncate properly the file
-system(cmd)
-
-set view map
-set terminal pngcairo size width,height enhanced font 'Verdana,14'
-set output outfile
-
-unset key
-set style line 11 lc rgb '#808080' lt 1
-set border 3 front ls 11
-set style line 12 lc rgb '#888888' lt 0 lw 1
-set grid front ls 12
-set tics nomirror out scale 0.75
-
-set xlabel 'Frequency (kHz)'
-set ylabel 'Time'
-set cbtics scale 0
-
-# Spectravue palette and scale
-set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)
-
-# palette
-set palette defined (0 '#000000', \
- 1 '#0000e7', \
- 2 '#0094ff', \
- 3 '#00ffb8', \
- 4 '#2eff00', \
- 5 '#ffff00', \
- 6 '#ff8800', \
- 7 '#ff0000', \
- 8 '#ff007c')
-set ylabel 'Time (seconds)'
-set cbrange [-100:-50]
-set cblabel 'Power (dB)'
-
-
-# Get automatically the axis ranges from the file
-stats inputfile using 1 binary nooutput
-set xrange [STATS_min*1e-3:STATS_max*1e-3 + 1]
-stats inputfile using 2 binary nooutput
-set yrange [0:STATS_max + 1]
-
-# Plot and scale the frequency axis to kHz for readability
-plot inputfile every 2 using ($1*1e-3):2:3 binary matrix with image
diff --git a/lib/frame_file_sink_impl.cc b/lib/frame_file_sink_impl.cc
index 400a215..2049b6d 100644
--- a/lib/frame_file_sink_impl.cc
+++ b/lib/frame_file_sink_impl.cc
@@ -25,6 +25,9 @@
#include
#include "frame_file_sink_impl.h"
+#include
+#include
+
namespace gr {
namespace satnogs {
@@ -95,14 +98,30 @@ frame_file_sink_impl::msg_handler_frame(pmt::pmt_t msg)
d_counter = 0;
}
- uint8_t *su;
+ const char *su;
+ size_t len;
+ std::string s;
+
+ /* Check if the message contains the legacy or the new format */
+ if (pmt::is_dict(msg)) {
+ pmt::pmt_t pdu = pmt::dict_ref(msg, pmt::mp(metadata::value(metadata::PDU)),
+ pmt::PMT_NIL);
+ s = base64_decode(std::string((const char *) pmt::blob_data(pdu),
+ pmt::blob_length(pdu)));
+ su = s.c_str();
+ len = s.size();
+ }
+ else {
+ su = (const char *) pmt::blob_data(msg), pmt::blob_length(msg);
+ s = std::string((const char *) pmt::blob_data(msg), pmt::blob_length(msg));
+ len = pmt::blob_length(msg);
+ }
switch (d_output_type) {
case 0: {
/* Binary form */
std::ofstream fd(filename.c_str());
- fd.write((const char *) pmt::blob_data(msg),
- pmt::blob_length(msg));
+ fd.write(su, len);
fd.close();
break;
}
@@ -110,7 +129,6 @@ frame_file_sink_impl::msg_handler_frame(pmt::pmt_t msg)
/* aHex annotated, dd .txt to filename */
filename.append(".txt");
std::ofstream fd(filename.c_str());
- su = (uint8_t *) pmt::blob_data(msg);
for (size_t i = 0; i < pmt::blob_length(msg); i++) {
fd << "0x" << std::hex << std::setw(2) << std::setfill('0')
<< (uint32_t) su[i] << " ";
@@ -122,7 +140,6 @@ frame_file_sink_impl::msg_handler_frame(pmt::pmt_t msg)
/* Binary annotated, add .txt to filename */
filename.append(".txt");
std::ofstream fd(filename.c_str());
- su = (uint8_t *) pmt::blob_data(msg);
for (size_t i = 0; i < pmt::blob_length(msg); i++) {
fd << "0b" << std::bitset<8> (su[i]) << " ";
}
diff --git a/lib/multi_format_msg_sink_impl.cc b/lib/multi_format_msg_sink_impl.cc
index 67c9276..37007ee 100644
--- a/lib/multi_format_msg_sink_impl.cc
+++ b/lib/multi_format_msg_sink_impl.cc
@@ -47,7 +47,7 @@ multi_format_msg_sink::make(size_t format,
void
multi_format_msg_sink_impl::msg_handler_file(pmt::pmt_t msg)
{
- const uint8_t *su;
+ const char *su;
size_t len;
std::string s;
char buf[256];
@@ -56,14 +56,13 @@ multi_format_msg_sink_impl::msg_handler_file(pmt::pmt_t msg)
if (pmt::is_dict(msg)) {
pmt::pmt_t pdu = pmt::dict_ref(msg, pmt::mp(metadata::value(metadata::PDU)),
pmt::PMT_NIL);
- std::string d = base64_decode(std::string((const char *) pmt::blob_data(pdu),
+ s = base64_decode(std::string((const char *) pmt::blob_data(pdu),
pmt::blob_length(pdu)));
- su = (const uint8_t *) pmt::blob_data(pdu), pmt::blob_length(pdu);
- s = std::string((const char *) pmt::blob_data(pdu), pmt::blob_length(pdu));
- len = pmt::blob_length(pdu);
+ su = s.c_str();
+ len = s.size();
}
else {
- su = (const uint8_t *) pmt::blob_data(msg), pmt::blob_length(msg);
+ su = (const char *) pmt::blob_data(msg), pmt::blob_length(msg);
s = std::string((const char *) pmt::blob_data(msg), pmt::blob_length(msg));
len = pmt::blob_length(msg);
}
@@ -100,23 +99,23 @@ multi_format_msg_sink_impl::msg_handler_file(pmt::pmt_t msg)
void
multi_format_msg_sink_impl::msg_handler_stdout(pmt::pmt_t msg)
{
- const uint8_t *su;
+ const char *su;
size_t len;
std::string s;
char buf[256];
+ /* Check if the message contains the legacy or the new format */
/* Check if the message contains the legacy or the new format */
if (pmt::is_dict(msg)) {
pmt::pmt_t pdu = pmt::dict_ref(msg, pmt::mp(metadata::value(metadata::PDU)),
pmt::PMT_NIL);
- std::string d = base64_decode(std::string((const char *) pmt::blob_data(pdu),
+ s = base64_decode(std::string((const char *) pmt::blob_data(pdu),
pmt::blob_length(pdu)));
- su = (const uint8_t *) pmt::blob_data(pdu), pmt::blob_length(pdu);
- s = std::string((const char *) pmt::blob_data(pdu), pmt::blob_length(pdu));
- len = pmt::blob_length(pdu);
+ su = s.c_str();
+ len = s.size();
}
else {
- su = (const uint8_t *) pmt::blob_data(msg), pmt::blob_length(msg);
+ su = (const char *) pmt::blob_data(msg), pmt::blob_length(msg);
s = std::string((const char *) pmt::blob_data(msg), pmt::blob_length(msg));
len = pmt::blob_length(msg);
}