diff --git a/README.md b/README.md index cab3341..bab7b67 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ for decoding signals from various scientific and academic sattelites. 3. G++ (with C++11 support) 4. VOLK 5. git +6. gr-osmocom (optional, for using the flowgraphs) ### Installation diff --git a/examples/README.md b/examples/README.md index 377a452..cad1058 100644 --- a/examples/README.md +++ b/examples/README.md @@ -32,4 +32,21 @@ Words per Minute (WPM) is about 20. As this block does not use any satellite signal rather than a simple sine, you do not expect any correction at all. However you will be able to see how smoothly the sine peak is drifting. This drift in normal situations will be the correction offset. - \ No newline at end of file + + * `debug_fsk_transceiver_uhd.grc`: This flowgraph provides an FSK transceiver. + It was designed having as reference the CC1120 chip, but using properly + the parameters of the FSK encoder/decoder, it can be used as a generic FSK modem. + However the FSK framing format should follow the format: + | Preamble | SYNC Word | Payload length | Payload | CRC | + |:-----------------:|:----------:|:--------------:|:--------:|:-------------:| + | x repeating bytes | x bytes | 1 B, 0-255 | variable | 2 B, optional | + The flowgraph transmits messages that are produced from the `Debug Message Source` + block. Furthermore, frame payloads can be derived from a `UDP` message source + block. Just use a tool like `netcat` to deliver arbitrary payloads through + `UDP` messages. + + * `debug_fsk_transceiver_uhd.grc`: This flowgraph provides exactly the same + functionality as `debug_fsk_transceiver_uhd.grc` does. + However, it uses the `Osmocom` SDR source and sink blocks for non UHD based + SDR hardware (e.g BladeRF, HackRF, etc). + \ No newline at end of file diff --git a/examples/debug_fsk_transceiver_osmocom.grc b/examples/debug_fsk_transceiver_osmocom.grc new file mode 100644 index 0000000..b27abcd --- /dev/null +++ b/examples/debug_fsk_transceiver_osmocom.grc @@ -0,0 +1,4709 @@ + + + + Fri Mar 18 13:57:31 2016 + + options + + author + + + + window_size + 1720, 1080 + + + category + Custom + + + comment + + + + description + + + + _enabled + True + + + _coordinate + (8, 8) + + + _rotation + 0 + + + generate_options + qt_gui + + + hier_block_src_path + .: + + + id + debug_fsk_transceiver_osmocom + + + 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 + (808, 13) + + + _rotation + 0 + + + id + baud_rate + + + value + 9600 + + + + variable_qtgui_range + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (1600, 25) + + + 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 + (1600, 145) + + + 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 + (272, 13) + + + _rotation + 0 + + + id + decimation_rx + + + value + 20 + + + + variable + + comment + The FSK frequency deviation + + + _enabled + True + + + _coordinate + (648, 13) + + + _rotation + 0 + + + id + deviation + + + value + 3.9973e3 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 589) + + + _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 + (1496, 25) + + + 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 + (1496, 145) + + + 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 + True + + + _coordinate + (8, 717) + + + _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 + True + + + _coordinate + (1200, 13) + + + _rotation + 0 + + + id + lo_offset + + + value + 100e3 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 517) + + + _rotation + 0 + + + id + modulation_index + + + value + deviation / (baud_rate / 2.0) + + + + variable_qtgui_range + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (1384, 25) + + + 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 + (1384, 145) + + + 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 + (1056, 13) + + + _rotation + 0 + + + id + rx_frequency + + + value + 434e6 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 445) + + + _rotation + 0 + + + id + samp_rate + + + value + samp_rate_rx/decimation_rx + + + + variable + + comment + SDR device +TX sampling rate + + + _enabled + True + + + _coordinate + (408, 13) + + + _rotation + 0 + + + id + samp_rate_rx + + + value + 2e6 + + + + variable + + comment + SDR device +TX sampling rate + + + _enabled + True + + + _coordinate + (536, 13) + + + _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, 117) + + + _rotation + 0 + + + id + samples_per_symbol_tx + + + value + 4 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 653) + + + _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 + (1384, 386) + + + _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 + (904, 13) + + + _rotation + 0 + + + id + tx_frequency + + + value + 434e6 + + + + analog_frequency_modulator_fc + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (1104, 524) + + + _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 + (752, 252) + + + _rotation + 0 + + + gain + (samp_rate / 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 + (912, 608) + + + _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_multiply_xx + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (776, 712) + + + _rotation + 180 + + + id + blocks_multiply_xx_0 + + + type + complex + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + num_inputs + 2 + + + vlen + 1 + + + + digital_clock_recovery_mm_xx + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (904, 304) + + + _rotation + 180 + + + 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/baud_rate + + + type + float + + + + freq_xlating_fir_filter_xxx + + alias + + + + center_freq + lo_offset + + + comment + + + + affinity + + + + decim + decimation_rx + + + _enabled + 1 + + + _coordinate + (456, 183) + + + _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 + True + + + _coordinate + (1384, 572) + + + _rotation + 0 + + + id + import_0 + + + import + import numpy + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (1384, 516) + + + _rotation + 0 + + + id + import_0_0 + + + import + import math + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (1384, 628) + + + _rotation + 0 + + + id + import_0_1 + + + import + from gnuradio import filter + + + + interp_fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (856, 517) + + + _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 + True + + + _coordinate + (544, 689) + + + _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 + True + + + _coordinate + (200, 133) + + + _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 + (1080, 679) + + + _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 + + + + qtgui_freq_sink_x + + autoscale + False + + + average + 1.0 + + + bw + samp_rate_rx/10.0 + + + alias + + + + fc + 0 + + + comment + + + + ctrlpanel + True + + + affinity + + + + _enabled + 0 + + + fftsize + 1024 + + + _coordinate + (1016, 174) + + + 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 + + + ymax + 10 + + + ymin + -140 + + + + qtgui_waterfall_sink_x + + bw + samp_rate_rx/10.0 + + + alias + + + + fc + 0 + + + comment + + + + affinity + + + + _enabled + 0 + + + fftsize + 4096 + + + _coordinate + (808, 134) + + + gui_hint + + + + _rotation + 0 + + + grid + True + + + id + qtgui_waterfall_sink_x_0 + + + int_max + 10 + + + int_min + -140 + + + legend + True + + + alpha1 + 1.0 + + + color1 + 0 + + + label1 + + + + alpha10 + 1.0 + + + color10 + 0 + + + label10 + + + + alpha2 + 1.0 + + + color2 + 0 + + + label2 + + + + alpha3 + 1.0 + + + color3 + 0 + + + label3 + + + + alpha4 + 1.0 + + + color4 + 0 + + + label4 + + + + alpha5 + 1.0 + + + color5 + 0 + + + label5 + + + + alpha6 + 1.0 + + + color6 + 0 + + + label6 + + + + alpha7 + 1.0 + + + color7 + 0 + + + label7 + + + + alpha8 + 1.0 + + + color8 + 0 + + + label8 + + + + alpha9 + 1.0 + + + color9 + 0 + + + label9 + + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + name + "" + + + nconnections + 1 + + + showports + True + + + freqhalf + True + + + type + complex + + + update_time + 0.05 + + + wintype + firdes.WIN_BLACKMAN_hARRIS + + + + satnogs_clear_text_msg_sink + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (288, 336) + + + _rotation + 180 + + + id + satnogs_clear_text_msg_sink_0 + + + + satnogs_debug_msg_source + + alias + + + + comment + + + + affinity + + + + delay + 0.2 + + + _enabled + 1 + + + _coordinate + (224, 510) + + + _rotation + 0 + + + id + satnogs_debug_msg_source_0 + + + maxoutbuf + 0 + + + msg + "HELLO WORLD" + + + minoutbuf + 0 + + + repeat + True + + + + 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 + True + + + _coordinate + (216, 590) + + + _rotation + 0 + + + id + satnogs_udp_msg_source_0 + + + addr + "127.0.0.1" + + + mtu + 1500 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + port + 16886 + + + + satnogs_upsat_fsk_frame_acquisition + + alias + + + + check_crc + True + + + comment + + + + affinity + + + + _enabled + 1 + + + preamble + [0x33]*8 + + + _coordinate + (536, 304) + + + _rotation + 180 + + + id + satnogs_upsat_fsk_frame_acquisition_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + sync_word + [0x7A, 0x0E] + + + manchester + False + + + whitening + True + + + + satnogs_upsat_fsk_frame_encoder + + append_crc + True + + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + preamble + [0x33]*8 + + + _coordinate + (544, 482) + + + _rotation + 0 + + + id + satnogs_upsat_fsk_frame_encoder_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + settling_samples + 256 + + + msb_first + True + + + sync_word + [0x7A, 0x0E] + + + manchester + False + + + whitening + True + + + + 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_multiply_xx_0 + osmosdr_sink_0 + 0 + 0 + + + digital_clock_recovery_mm_xx_0 + satnogs_upsat_fsk_frame_acquisition_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + analog_quadrature_demod_cf_0_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + qtgui_freq_sink_x_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + qtgui_waterfall_sink_x_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_debug_msg_source_0 + satnogs_upsat_fsk_frame_encoder_0 + msg + pdu + + + satnogs_udp_msg_source_0 + satnogs_upsat_fsk_frame_encoder_0 + msg + pdu + + + satnogs_upsat_fsk_frame_acquisition_0 + satnogs_clear_text_msg_sink_0 + pdu + in + + + satnogs_upsat_fsk_frame_encoder_0 + interp_fir_filter_xxx_0 + 0 + 0 + + diff --git a/examples/debug_fsk_transceiver_uhd.grc b/examples/debug_fsk_transceiver_uhd.grc new file mode 100644 index 0000000..6bbd200 --- /dev/null +++ b/examples/debug_fsk_transceiver_uhd.grc @@ -0,0 +1,3933 @@ + + + + Fri Mar 18 13:57:31 2016 + + options + + author + + + + window_size + 1720, 1080 + + + category + Custom + + + comment + + + + description + + + + _enabled + True + + + _coordinate + (8, 8) + + + _rotation + 0 + + + generate_options + qt_gui + + + hier_block_src_path + .: + + + id + debug_fsk_transceiver_uhd + + + 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 + (808, 13) + + + _rotation + 0 + + + id + baud_rate + + + value + 9600 + + + + variable + + comment + Decimation factor +for the RX after the +SDR received samples + + + _enabled + True + + + _coordinate + (272, 13) + + + _rotation + 0 + + + id + decimation_rx + + + value + 20 + + + + variable + + comment + The FSK frequency deviation + + + _enabled + True + + + _coordinate + (648, 13) + + + _rotation + 0 + + + id + deviation + + + value + 3.9973e3 + + + + variable_qtgui_range + + comment + + + + value + 20 + + + _enabled + True + + + _coordinate + (1384, 121) + + + gui_hint + + + + _rotation + 0 + + + id + gain + + + label + Gain + + + min_len + 200 + + + orient + Qt.Horizontal + + + start + 0 + + + step + 0.5 + + + stop + 30 + + + rangeType + float + + + widget + counter_slider + + + + variable_qtgui_range + + comment + + + + value + 20 + + + _enabled + True + + + _coordinate + (1384, 9) + + + gui_hint + + + + _rotation + 0 + + + id + gain_tx + + + label + Gain TX + + + min_len + 200 + + + orient + Qt.Horizontal + + + start + 0 + + + step + 0.5 + + + stop + 70 + + + rangeType + float + + + widget + counter_slider + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 589) + + + _rotation + 0 + + + id + gaussian_taps + + + value + filter.firdes.gaussian(1.0, samples_per_symbol_tx, 1.0, 4*samples_per_symbol_tx) + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 717) + + + _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 + True + + + _coordinate + (1200, 13) + + + _rotation + 0 + + + id + lo_offset + + + value + 100e3 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 517) + + + _rotation + 0 + + + id + modulation_index + + + value + deviation / (baud_rate / 2.0) + + + + variable + + comment + The RX center frequency + of the system + + + _enabled + True + + + _coordinate + (1056, 13) + + + _rotation + 0 + + + id + rx_frequency + + + value + 434e6 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 445) + + + _rotation + 0 + + + id + samp_rate + + + value + samp_rate_rx/decimation_rx + + + + variable + + comment + SDR device +TX sampling rate + + + _enabled + True + + + _coordinate + (408, 13) + + + _rotation + 0 + + + id + samp_rate_rx + + + value + 2e6 + + + + variable + + comment + SDR device +TX sampling rate + + + _enabled + True + + + _coordinate + (536, 13) + + + _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, 117) + + + _rotation + 0 + + + id + samples_per_symbol_tx + + + value + 4 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (8, 653) + + + _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 + (1384, 242) + + + _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 + (904, 13) + + + _rotation + 0 + + + id + tx_frequency + + + value + 434e6 + + + + analog_frequency_modulator_fc + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (1104, 524) + + + _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 + (752, 252) + + + _rotation + 0 + + + gain + (samp_rate / 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 + (912, 608) + + + _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_multiply_xx + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (776, 712) + + + _rotation + 180 + + + id + blocks_multiply_xx_0 + + + type + complex + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + num_inputs + 2 + + + vlen + 1 + + + + digital_clock_recovery_mm_xx + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (904, 304) + + + _rotation + 180 + + + 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/baud_rate + + + type + float + + + + freq_xlating_fir_filter_xxx + + alias + + + + center_freq + lo_offset + + + comment + + + + affinity + + + + decim + decimation_rx + + + _enabled + 1 + + + _coordinate + (456, 183) + + + _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 + True + + + _coordinate + (1384, 420) + + + _rotation + 0 + + + id + import_0 + + + import + import numpy + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (1384, 372) + + + _rotation + 0 + + + id + import_0_0 + + + import + import math + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (1384, 468) + + + _rotation + 0 + + + id + import_0_1 + + + import + from gnuradio import filter + + + + interp_fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (856, 517) + + + _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 + + + + pfb_arb_resampler_xxx + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (1080, 679) + + + _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 + + + + qtgui_freq_sink_x + + autoscale + False + + + average + 1.0 + + + bw + samp_rate_rx/10.0 + + + alias + + + + fc + 0 + + + comment + + + + ctrlpanel + True + + + affinity + + + + _enabled + 0 + + + fftsize + 1024 + + + _coordinate + (1016, 174) + + + 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 + + + ymax + 10 + + + ymin + -140 + + + + qtgui_waterfall_sink_x + + bw + samp_rate_rx/10.0 + + + alias + + + + fc + 0 + + + comment + + + + affinity + + + + _enabled + 0 + + + fftsize + 4096 + + + _coordinate + (808, 134) + + + gui_hint + + + + _rotation + 0 + + + grid + True + + + id + qtgui_waterfall_sink_x_0 + + + int_max + 10 + + + int_min + -140 + + + legend + True + + + alpha1 + 1.0 + + + color1 + 0 + + + label1 + + + + alpha10 + 1.0 + + + color10 + 0 + + + label10 + + + + alpha2 + 1.0 + + + color2 + 0 + + + label2 + + + + alpha3 + 1.0 + + + color3 + 0 + + + label3 + + + + alpha4 + 1.0 + + + color4 + 0 + + + label4 + + + + alpha5 + 1.0 + + + color5 + 0 + + + label5 + + + + alpha6 + 1.0 + + + color6 + 0 + + + label6 + + + + alpha7 + 1.0 + + + color7 + 0 + + + label7 + + + + alpha8 + 1.0 + + + color8 + 0 + + + label8 + + + + alpha9 + 1.0 + + + color9 + 0 + + + label9 + + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + name + "" + + + nconnections + 1 + + + showports + True + + + freqhalf + True + + + type + complex + + + update_time + 0.05 + + + wintype + firdes.WIN_BLACKMAN_hARRIS + + + + satnogs_clear_text_msg_sink + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (288, 336) + + + _rotation + 180 + + + id + satnogs_clear_text_msg_sink_0 + + + + satnogs_debug_msg_source + + alias + + + + comment + + + + affinity + + + + delay + 0.2 + + + _enabled + 1 + + + _coordinate + (224, 510) + + + _rotation + 0 + + + id + satnogs_debug_msg_source_0 + + + maxoutbuf + 0 + + + msg + "HELLO WORLD" + + + minoutbuf + 0 + + + repeat + True + + + + 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 + True + + + _coordinate + (216, 590) + + + _rotation + 0 + + + id + satnogs_udp_msg_source_0 + + + addr + "127.0.0.1" + + + mtu + 1500 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + port + 16886 + + + + satnogs_upsat_fsk_frame_acquisition + + alias + + + + check_crc + True + + + comment + + + + affinity + + + + _enabled + 1 + + + preamble + [0x33]*8 + + + _coordinate + (536, 304) + + + _rotation + 180 + + + id + satnogs_upsat_fsk_frame_acquisition_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + sync_word + [0x7A, 0x0E] + + + manchester + False + + + whitening + True + + + + satnogs_upsat_fsk_frame_encoder + + append_crc + True + + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + preamble + [0x33]*8 + + + _coordinate + (544, 482) + + + _rotation + 0 + + + id + satnogs_upsat_fsk_frame_encoder_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + settling_samples + 256 + + + msb_first + True + + + sync_word + [0x7A, 0x0E] + + + manchester + False + + + whitening + True + + + + uhd_usrp_sink + + alias + + + + ant0 + TX/RX + + + bw0 + samp_rate_tx + + + center_freq0 + tx_frequency - lo_offset + + + norm_gain0 + False + + + gain0 + gain_tx + + + ant10 + + + + bw10 + 0 + + + center_freq10 + 0 + + + norm_gain10 + False + + + gain10 + 0 + + + ant11 + + + + bw11 + 0 + + + center_freq11 + 0 + + + norm_gain11 + False + + + gain11 + 0 + + + ant12 + + + + bw12 + 0 + + + center_freq12 + 0 + + + norm_gain12 + False + + + gain12 + 0 + + + ant13 + + + + bw13 + 0 + + + center_freq13 + 0 + + + norm_gain13 + False + + + gain13 + 0 + + + ant14 + + + + bw14 + 0 + + + center_freq14 + 0 + + + norm_gain14 + False + + + gain14 + 0 + + + ant15 + + + + bw15 + 0 + + + center_freq15 + 0 + + + norm_gain15 + False + + + gain15 + 0 + + + ant16 + + + + bw16 + 0 + + + center_freq16 + 0 + + + norm_gain16 + False + + + gain16 + 0 + + + ant17 + + + + bw17 + 0 + + + center_freq17 + 0 + + + norm_gain17 + False + + + gain17 + 0 + + + ant18 + + + + bw18 + 0 + + + center_freq18 + 0 + + + norm_gain18 + False + + + gain18 + 0 + + + ant19 + + + + bw19 + 0 + + + center_freq19 + 0 + + + norm_gain19 + False + + + gain19 + 0 + + + ant1 + + + + bw1 + 0 + + + center_freq1 + 0 + + + norm_gain1 + False + + + gain1 + 0 + + + ant20 + + + + bw20 + 0 + + + center_freq20 + 0 + + + norm_gain20 + False + + + gain20 + 0 + + + ant21 + + + + bw21 + 0 + + + center_freq21 + 0 + + + norm_gain21 + False + + + gain21 + 0 + + + ant22 + + + + bw22 + 0 + + + center_freq22 + 0 + + + norm_gain22 + False + + + gain22 + 0 + + + ant23 + + + + bw23 + 0 + + + center_freq23 + 0 + + + norm_gain23 + False + + + gain23 + 0 + + + ant24 + + + + bw24 + 0 + + + center_freq24 + 0 + + + norm_gain24 + False + + + gain24 + 0 + + + ant25 + + + + bw25 + 0 + + + center_freq25 + 0 + + + norm_gain25 + False + + + gain25 + 0 + + + ant26 + + + + bw26 + 0 + + + center_freq26 + 0 + + + norm_gain26 + False + + + gain26 + 0 + + + ant27 + + + + bw27 + 0 + + + center_freq27 + 0 + + + norm_gain27 + False + + + gain27 + 0 + + + ant28 + + + + bw28 + 0 + + + center_freq28 + 0 + + + norm_gain28 + False + + + gain28 + 0 + + + ant29 + + + + bw29 + 0 + + + center_freq29 + 0 + + + norm_gain29 + False + + + gain29 + 0 + + + ant2 + + + + bw2 + 0 + + + center_freq2 + 0 + + + norm_gain2 + False + + + gain2 + 0 + + + ant30 + + + + bw30 + 0 + + + center_freq30 + 0 + + + norm_gain30 + False + + + gain30 + 0 + + + ant31 + + + + bw31 + 0 + + + center_freq31 + 0 + + + norm_gain31 + False + + + gain31 + 0 + + + ant3 + + + + bw3 + 0 + + + center_freq3 + 0 + + + norm_gain3 + False + + + gain3 + 0 + + + ant4 + + + + bw4 + 0 + + + center_freq4 + 0 + + + norm_gain4 + False + + + gain4 + 0 + + + ant5 + + + + bw5 + 0 + + + center_freq5 + 0 + + + norm_gain5 + False + + + gain5 + 0 + + + ant6 + + + + bw6 + 0 + + + center_freq6 + 0 + + + norm_gain6 + False + + + gain6 + 0 + + + ant7 + + + + bw7 + 0 + + + center_freq7 + 0 + + + norm_gain7 + False + + + gain7 + 0 + + + ant8 + + + + bw8 + 0 + + + center_freq8 + 0 + + + norm_gain8 + False + + + gain8 + 0 + + + ant9 + + + + bw9 + 0 + + + center_freq9 + 0 + + + norm_gain9 + False + + + gain9 + 0 + + + clock_rate + 0.0 + + + comment + + + + affinity + + + + dev_addr + "" + + + dev_args + "" + + + _enabled + 1 + + + _coordinate + (440, 705) + + + _rotation + 180 + + + id + uhd_usrp_sink_0 + + + type + fc32 + + + clock_source0 + + + + sd_spec0 + + + + time_source0 + + + + clock_source1 + + + + sd_spec1 + + + + time_source1 + + + + clock_source2 + + + + sd_spec2 + + + + time_source2 + + + + clock_source3 + + + + sd_spec3 + + + + time_source3 + + + + clock_source4 + + + + sd_spec4 + + + + time_source4 + + + + clock_source5 + + + + sd_spec5 + + + + time_source5 + + + + clock_source6 + + + + sd_spec6 + + + + time_source6 + + + + clock_source7 + + + + sd_spec7 + + + + time_source7 + + + + nchan + 1 + + + num_mboards + 1 + + + samp_rate + samp_rate_tx + + + hide_cmd_port + False + + + stream_args + + + + stream_chans + [] + + + sync + + + + len_tag_name + + + + otw + + + + + uhd_usrp_source + + alias + + + + ant0 + RX2 + + + bw0 + samp_rate_rx + + + center_freq0 + rx_frequency - lo_offset + + + dc_offs_enb0 + "" + + + iq_imbal_enb0 + "" + + + norm_gain0 + False + + + gain0 + gain + + + ant10 + + + + bw10 + 0 + + + center_freq10 + 0 + + + dc_offs_enb10 + "" + + + iq_imbal_enb10 + "" + + + norm_gain10 + False + + + gain10 + 0 + + + ant11 + + + + bw11 + 0 + + + center_freq11 + 0 + + + dc_offs_enb11 + "" + + + iq_imbal_enb11 + "" + + + norm_gain11 + False + + + gain11 + 0 + + + ant12 + + + + bw12 + 0 + + + center_freq12 + 0 + + + dc_offs_enb12 + "" + + + iq_imbal_enb12 + "" + + + norm_gain12 + False + + + gain12 + 0 + + + ant13 + + + + bw13 + 0 + + + center_freq13 + 0 + + + dc_offs_enb13 + "" + + + iq_imbal_enb13 + "" + + + norm_gain13 + False + + + gain13 + 0 + + + ant14 + + + + bw14 + 0 + + + center_freq14 + 0 + + + dc_offs_enb14 + "" + + + iq_imbal_enb14 + "" + + + norm_gain14 + False + + + gain14 + 0 + + + ant15 + + + + bw15 + 0 + + + center_freq15 + 0 + + + dc_offs_enb15 + "" + + + iq_imbal_enb15 + "" + + + norm_gain15 + False + + + gain15 + 0 + + + ant16 + + + + bw16 + 0 + + + center_freq16 + 0 + + + dc_offs_enb16 + "" + + + iq_imbal_enb16 + "" + + + norm_gain16 + False + + + gain16 + 0 + + + ant17 + + + + bw17 + 0 + + + center_freq17 + 0 + + + dc_offs_enb17 + "" + + + iq_imbal_enb17 + "" + + + norm_gain17 + False + + + gain17 + 0 + + + ant18 + + + + bw18 + 0 + + + center_freq18 + 0 + + + dc_offs_enb18 + "" + + + iq_imbal_enb18 + "" + + + norm_gain18 + False + + + gain18 + 0 + + + ant19 + + + + bw19 + 0 + + + center_freq19 + 0 + + + dc_offs_enb19 + "" + + + iq_imbal_enb19 + "" + + + norm_gain19 + False + + + gain19 + 0 + + + ant1 + + + + bw1 + 0 + + + center_freq1 + 0 + + + dc_offs_enb1 + "" + + + iq_imbal_enb1 + "" + + + norm_gain1 + False + + + gain1 + 0 + + + ant20 + + + + bw20 + 0 + + + center_freq20 + 0 + + + dc_offs_enb20 + "" + + + iq_imbal_enb20 + "" + + + norm_gain20 + False + + + gain20 + 0 + + + ant21 + + + + bw21 + 0 + + + center_freq21 + 0 + + + dc_offs_enb21 + "" + + + iq_imbal_enb21 + "" + + + norm_gain21 + False + + + gain21 + 0 + + + ant22 + + + + bw22 + 0 + + + center_freq22 + 0 + + + dc_offs_enb22 + "" + + + iq_imbal_enb22 + "" + + + norm_gain22 + False + + + gain22 + 0 + + + ant23 + + + + bw23 + 0 + + + center_freq23 + 0 + + + dc_offs_enb23 + "" + + + iq_imbal_enb23 + "" + + + norm_gain23 + False + + + gain23 + 0 + + + ant24 + + + + bw24 + 0 + + + center_freq24 + 0 + + + dc_offs_enb24 + "" + + + iq_imbal_enb24 + "" + + + norm_gain24 + False + + + gain24 + 0 + + + ant25 + + + + bw25 + 0 + + + center_freq25 + 0 + + + dc_offs_enb25 + "" + + + iq_imbal_enb25 + "" + + + norm_gain25 + False + + + gain25 + 0 + + + ant26 + + + + bw26 + 0 + + + center_freq26 + 0 + + + dc_offs_enb26 + "" + + + iq_imbal_enb26 + "" + + + norm_gain26 + False + + + gain26 + 0 + + + ant27 + + + + bw27 + 0 + + + center_freq27 + 0 + + + dc_offs_enb27 + "" + + + iq_imbal_enb27 + "" + + + norm_gain27 + False + + + gain27 + 0 + + + ant28 + + + + bw28 + 0 + + + center_freq28 + 0 + + + dc_offs_enb28 + "" + + + iq_imbal_enb28 + "" + + + norm_gain28 + False + + + gain28 + 0 + + + ant29 + + + + bw29 + 0 + + + center_freq29 + 0 + + + dc_offs_enb29 + "" + + + iq_imbal_enb29 + "" + + + norm_gain29 + False + + + gain29 + 0 + + + ant2 + + + + bw2 + 0 + + + center_freq2 + 0 + + + dc_offs_enb2 + "" + + + iq_imbal_enb2 + "" + + + norm_gain2 + False + + + gain2 + 0 + + + ant30 + + + + bw30 + 0 + + + center_freq30 + 0 + + + dc_offs_enb30 + "" + + + iq_imbal_enb30 + "" + + + norm_gain30 + False + + + gain30 + 0 + + + ant31 + + + + bw31 + 0 + + + center_freq31 + 0 + + + dc_offs_enb31 + "" + + + iq_imbal_enb31 + "" + + + norm_gain31 + False + + + gain31 + 0 + + + ant3 + + + + bw3 + 0 + + + center_freq3 + 0 + + + dc_offs_enb3 + "" + + + iq_imbal_enb3 + "" + + + norm_gain3 + False + + + gain3 + 0 + + + ant4 + + + + bw4 + 0 + + + center_freq4 + 0 + + + dc_offs_enb4 + "" + + + iq_imbal_enb4 + "" + + + norm_gain4 + False + + + gain4 + 0 + + + ant5 + + + + bw5 + 0 + + + center_freq5 + 0 + + + dc_offs_enb5 + "" + + + iq_imbal_enb5 + "" + + + norm_gain5 + False + + + gain5 + 0 + + + ant6 + + + + bw6 + 0 + + + center_freq6 + 0 + + + dc_offs_enb6 + "" + + + iq_imbal_enb6 + "" + + + norm_gain6 + False + + + gain6 + 0 + + + ant7 + + + + bw7 + 0 + + + center_freq7 + 0 + + + dc_offs_enb7 + "" + + + iq_imbal_enb7 + "" + + + norm_gain7 + False + + + gain7 + 0 + + + ant8 + + + + bw8 + 0 + + + center_freq8 + 0 + + + dc_offs_enb8 + "" + + + iq_imbal_enb8 + "" + + + norm_gain8 + False + + + gain8 + 0 + + + ant9 + + + + bw9 + 0 + + + center_freq9 + 0 + + + dc_offs_enb9 + "" + + + iq_imbal_enb9 + "" + + + norm_gain9 + False + + + gain9 + 0 + + + clock_rate + 0.0 + + + comment + + + + affinity + + + + dev_addr + "" + + + dev_args + "" + + + _enabled + 1 + + + _coordinate + (248, 160) + + + _rotation + 0 + + + id + uhd_usrp_source_0 + + + maxoutbuf + 0 + + + clock_source0 + + + + sd_spec0 + + + + time_source0 + + + + clock_source1 + + + + sd_spec1 + + + + time_source1 + + + + clock_source2 + + + + sd_spec2 + + + + time_source2 + + + + clock_source3 + + + + sd_spec3 + + + + time_source3 + + + + clock_source4 + + + + sd_spec4 + + + + time_source4 + + + + clock_source5 + + + + sd_spec5 + + + + time_source5 + + + + clock_source6 + + + + sd_spec6 + + + + time_source6 + + + + clock_source7 + + + + sd_spec7 + + + + time_source7 + + + + minoutbuf + 0 + + + nchan + 1 + + + num_mboards + 1 + + + type + fc32 + + + samp_rate + samp_rate_rx + + + hide_cmd_port + False + + + stream_args + + + + stream_chans + [] + + + sync + + + + otw + + + + + 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_multiply_xx_0 + uhd_usrp_sink_0 + 0 + 0 + + + digital_clock_recovery_mm_xx_0 + satnogs_upsat_fsk_frame_acquisition_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + analog_quadrature_demod_cf_0_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + qtgui_freq_sink_x_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + qtgui_waterfall_sink_x_0 + 0 + 0 + + + interp_fir_filter_xxx_0 + analog_frequency_modulator_fc_0 + 0 + 0 + + + pfb_arb_resampler_xxx_0 + blocks_multiply_xx_0 + 0 + 0 + + + satnogs_debug_msg_source_0 + satnogs_upsat_fsk_frame_encoder_0 + msg + pdu + + + satnogs_udp_msg_source_0 + satnogs_upsat_fsk_frame_encoder_0 + msg + pdu + + + satnogs_upsat_fsk_frame_acquisition_0 + satnogs_clear_text_msg_sink_0 + pdu + in + + + satnogs_upsat_fsk_frame_encoder_0 + interp_fir_filter_xxx_0 + 0 + 0 + + + uhd_usrp_source_0 + freq_xlating_fir_filter_xxx_0 + 0 + 0 + +