options: parameters: author: Manolis Surligas (surligas@gmail.com) category: Custom cmake_opt: '' comment: '' copyright: '' description: A CW (Morse) Decoder gen_cmake: 'On' gen_linking: dynamic generate_options: no_gui hier_block_src_path: '.:' id: satnogs_cw_decoder max_nouts: '0' output_language: python placement: (0,0) qt_qss_theme: '' realtime_scheduling: '' run: 'True' run_command: '{python} -u {filename}' run_options: run sizing_mode: fixed thread_safe_setters: '' title: CW Decoder window_size: 3000, 3000 states: bus_sink: false bus_source: false bus_structure: null coordinate: [8, 8] rotation: 0 state: enabled blocks: - name: audio_samp_rate id: variable parameters: comment: '' value: '48000' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1240, 12.0] rotation: 0 state: enabled - name: dec id: variable parameters: comment: '' value: '8' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1456, 12.0] rotation: 0 state: enabled - name: dot_samples id: variable parameters: comment: '' value: int((1.2 / wpm) / (1.0 / (audio_samp_rate / 10.0))) states: bus_sink: false bus_source: false bus_structure: null coordinate: [1360, 12.0] rotation: 0 state: enabled - name: analog_agc2_xx_0 id: analog_agc2_xx parameters: affinity: '' alias: '' attack_rate: 1e-4 comment: '' decay_rate: 1e-4 gain: '1.0' max_gain: '65536' maxoutbuf: '0' minoutbuf: '0' reference: '1.0' type: complex states: bus_sink: false bus_source: false bus_structure: null coordinate: [280, 460.0] rotation: 0 state: enabled - name: analog_agc2_xx_0_0 id: analog_agc2_xx parameters: affinity: '' alias: '' attack_rate: '0.01' comment: '' decay_rate: '0.001' gain: '0.0' max_gain: '65536' maxoutbuf: '0' minoutbuf: '0' reference: '0.015' type: complex states: bus_sink: false bus_source: false bus_structure: null coordinate: [616, 348.0] rotation: 0 state: enabled - name: analog_pll_carriertracking_cc_0 id: analog_pll_carriertracking_cc parameters: affinity: '' alias: '' comment: '' max_freq: 2*math.pi*2500 maxoutbuf: '0' min_freq: -2*math.pi*2500 minoutbuf: '0' w: 2*math.pi/100 states: bus_sink: false bus_source: false bus_structure: null coordinate: [736, 476.0] rotation: 0 state: enabled - name: antenna id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: '' states: bus_sink: false bus_source: false bus_structure: null coordinate: [880, 12.0] rotation: 0 state: enabled - name: bfo_freq id: parameter parameters: alias: '' comment: 'The bfo_freq shifts the carrier from 0 Hz to a frequency that corresponds to the CW audio tone. This tone is typically 1 kHz.' hide: none label: '' short_id: '' type: eng_float value: 1e3 states: bus_sink: false bus_source: false bus_structure: null coordinate: [1368, 76.0] rotation: 0 state: enabled - name: blocks_complex_to_mag_0 id: blocks_complex_to_mag parameters: affinity: '' alias: '' comment: '' maxoutbuf: '0' minoutbuf: '0' vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1456, 616.0] rotation: 180 state: enabled - name: blocks_complex_to_real_0 id: blocks_complex_to_real parameters: affinity: '' alias: '' comment: '' maxoutbuf: '0' minoutbuf: '0' vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1000, 384.0] rotation: 0 state: enabled - name: blocks_delay_0 id: blocks_delay parameters: affinity: '' alias: '' comment: '' delay: int(dot_samples//dec) maxoutbuf: '0' minoutbuf: '0' num_ports: '1' type: complex vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1120, 540.0] rotation: 0 state: enabled - name: blocks_keep_one_in_n_0 id: blocks_keep_one_in_n parameters: affinity: '' alias: '' comment: 'Decimate manually so we can avoid an extra filter' maxoutbuf: '0' minoutbuf: '0' n: '10' type: complex vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [592, 496.0] rotation: 0 state: true - name: blocks_multiply_conjugate_cc_0 id: blocks_multiply_conjugate_cc parameters: affinity: '' alias: '' comment: '' maxoutbuf: '0' minoutbuf: '0' vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1256, 496.0] rotation: 0 state: enabled - name: blocks_rotator_cc_0_0 id: blocks_rotator_cc parameters: affinity: '' alias: '' comment: '' maxoutbuf: '0' minoutbuf: '0' phase_inc: 2.0 * math.pi * (bfo_freq / audio_samp_rate) states: bus_sink: false bus_source: false bus_structure: null coordinate: [808, 380.0] rotation: 0 state: enabled - name: bw id: parameter parameters: alias: '' comment: 'The bandwidth should configure RF filters on some devices. Set to 0.0 for automatic calculation.' hide: none label: Bandwidth short_id: '' type: eng_float value: '0.0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1040, 12.0] rotation: 0 state: enabled - name: decoded_data_file_path id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: /tmp/.satnogs/data/data states: bus_sink: false bus_source: false bus_structure: null coordinate: [0, 748.0] rotation: 0 state: enabled - name: dev_args id: parameter parameters: alias: '' comment: '' hide: none label: Device arguments short_id: '' type: str value: '' states: bus_sink: false bus_source: false bus_structure: null coordinate: [432, 12.0] rotation: 0 state: enabled - name: doppler_correction_per_sec id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: intx value: '20' states: bus_sink: false bus_source: false bus_structure: null coordinate: [160, 748.0] rotation: 0 state: enabled - name: enable_iq_dump id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: intx value: '0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [256, 668.0] rotation: 0 state: enabled - name: file_path id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: test.wav states: bus_sink: false bus_source: false bus_structure: null coordinate: [144, 668.0] rotation: 180 state: enabled - name: fir_filter_xxx_0 id: fir_filter_xxx parameters: affinity: '' alias: '' comment: '' decim: '1' maxoutbuf: '0' minoutbuf: '0' samp_delay: '0' taps: '[1.0] * int(dot_samples//dec)' type: ccc states: bus_sink: false bus_source: false bus_structure: null coordinate: [1408, 500.0] rotation: 0 state: enabled - name: gain id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: eng_float value: '0.0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [960, 12.0] rotation: 0 state: enabled - name: import_0 id: import parameters: alias: '' comment: '' imports: import satnogs states: bus_sink: false bus_source: false bus_structure: null coordinate: [200, 20.0] rotation: 0 state: enabled - name: import_1 id: import parameters: alias: '' comment: '' imports: import math states: bus_sink: false bus_source: false bus_structure: null coordinate: [200, 68.0] rotation: 0 state: enabled - name: iq_file_path id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: /tmp/iq.dat states: bus_sink: false bus_source: false bus_structure: null coordinate: [400, 668.0] rotation: 0 state: enabled - name: lo_offset id: parameter parameters: alias: '' comment: 'To avoid the SDR carrier at the DC we shift the LO a little further' hide: none label: '' short_id: '' type: eng_float value: 100e3 states: bus_sink: false bus_source: false bus_structure: null coordinate: [800, 12.0] rotation: 0 state: enabled - name: low_pass_filter_0 id: low_pass_filter parameters: affinity: '' alias: '' beta: '6.76' comment: '' cutoff_freq: '200' decim: '1' gain: '1' interp: '1' maxoutbuf: '0' minoutbuf: '0' samp_rate: audio_samp_rate/10 type: fir_filter_ccf width: 0.1e3 win: firdes.WIN_HAMMING states: bus_sink: false bus_source: false bus_structure: null coordinate: [936, 444.0] rotation: 0 state: enabled - name: low_pass_filter_0_0 id: low_pass_filter parameters: affinity: '' alias: '' beta: '6.76' comment: '' cutoff_freq: '3000' decim: '1' gain: '1' interp: '1' maxoutbuf: '0' minoutbuf: '0' samp_rate: audio_samp_rate type: fir_filter_ccf width: 1e3 win: firdes.WIN_HAMMING states: bus_sink: false bus_source: false bus_structure: null coordinate: [432, 444.0] rotation: 0 state: enabled - name: rigctl_port id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: intx value: '4532' states: bus_sink: false bus_source: false bus_structure: null coordinate: [400, 748.0] rotation: 0 state: enabled - name: rx_freq id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: eng_float value: 100e6 states: bus_sink: false bus_source: false bus_structure: null coordinate: [720, 12.0] rotation: 0 state: enabled - name: samp_rate_rx id: parameter parameters: alias: '' comment: '' hide: none label: Device Sampling rate short_id: '' type: eng_float value: '0.0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [568, 12.0] rotation: 0 state: enabled - name: satnogs_cw_to_symbol_1 id: satnogs_cw_to_symbol parameters: affinity: '' alias: '' comment: '' conf_level: '0.9' hysteresis: dot_samples//dec maxoutbuf: '0' minoutbuf: '0' samp_rate: audio_samp_rate/10 threshold: '2.0' wpm: wpm states: bus_sink: false bus_source: false bus_structure: null coordinate: [1264, 596.0] rotation: 180 state: true - name: satnogs_doppler_compensation_0 id: satnogs_doppler_compensation parameters: affinity: '' alias: '' comment: '' compensate: '1' lo_offset: lo_offset maxoutbuf: '0' minoutbuf: '0' out_samp_rate: audio_samp_rate samp_rate: samp_rate_rx sat_freq: rx_freq states: bus_sink: false bus_source: false bus_structure: null coordinate: [560, 140.0] rotation: 0 state: true - name: satnogs_frame_file_sink_0_0 id: satnogs_frame_file_sink parameters: affinity: '' alias: '' comment: '' output_type: '0' prefix_name: decoded_data_file_path states: bus_sink: false bus_source: false bus_structure: null coordinate: [832, 620.0] rotation: 180 state: enabled - name: satnogs_iq_sink_0 id: satnogs_iq_sink parameters: activate: '1' affinity: '' alias: '' append: 'False' comment: '' filename: iq_file_path scale: '16768' states: bus_sink: false bus_source: false bus_structure: null coordinate: [40, 548.0] rotation: 180 state: enabled - name: satnogs_morse_decoder_0 id: satnogs_morse_decoder parameters: affinity: '' alias: '' comment: '' maxoutbuf: '0' min_frame_len: '3' minoutbuf: '0' unrecognized_char: ord('#') states: bus_sink: false bus_source: false bus_structure: null coordinate: [1064, 620.0] rotation: 180 state: enabled - name: satnogs_ogg_encoder_0 id: satnogs_ogg_encoder parameters: affinity: '' alias: '' comment: '' filename: file_path quality: '1.0' samp_rate: audio_samp_rate states: bus_sink: false bus_source: false bus_structure: null coordinate: [1144, 364.0] rotation: 0 state: enabled - name: satnogs_tcp_rigctl_msg_source_0 id: satnogs_tcp_rigctl_msg_source parameters: addr: '"127.0.0.1"' affinity: '' alias: '' comment: '' interval: int(1000.0/doppler_correction_per_sec) + 1 maxoutbuf: '0' minoutbuf: '0' mode: 'False' mtu: '1500' port: rigctl_port states: bus_sink: false bus_source: false bus_structure: null coordinate: [304, 252.0] rotation: 0 state: enabled - name: satnogs_udp_msg_sink_0_0 id: satnogs_udp_msg_sink parameters: addr: udp_IP affinity: '' alias: '' comment: '' mtu: '1500' port: udp_port states: bus_sink: false bus_source: false bus_structure: null coordinate: [832, 692.0] rotation: 180 state: enabled - name: satnogs_waterfall_sink_0 id: satnogs_waterfall_sink parameters: affinity: '' alias: '' center_freq: rx_freq comment: '' fft_size: '1024' filename: waterfall_file_path mode: '1' rps: '10' samp_rate: audio_samp_rate states: bus_sink: false bus_source: false bus_structure: null coordinate: [40, 356.0] rotation: 180 state: enabled - name: soapy_rx_device id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: driver=invalid states: bus_sink: false bus_source: false bus_structure: null coordinate: [304, 12.0] rotation: 0 state: enabled - name: soapy_source_0 id: soapy_source parameters: affinity: '' alias: '' amp_gain0: '0' ant0: antenna ant1: RX2 args: dev_args balance0: '0' balance1: '0' bw0: bw bw1: '0' center_freq0: rx_freq - lo_offset center_freq1: '0' clock_rate: '0' clock_source: '' comment: '' correction0: '0' correction1: '0' dc_offset0: '0' dc_offset1: '0' dc_offset_auto_mode0: 'False' dc_offset_auto_mode1: 'False' dev: soapy_rx_device devname: custom gain_auto_mode0: 'False' gain_auto_mode1: 'False' ifgr_gain: '59' lna_gain0: '10' lna_gain1: '10' manual_gain0: 'False' manual_gain1: 'True' maxoutbuf: '0' minoutbuf: '0' mix_gain0: '10' mix_gain1: '10' nchan: '1' nco_freq0: '0' nco_freq1: '0' overall_gain0: gain overall_gain1: '10' pga_gain0: '24' pga_gain1: '24' rfgr_gain: '9' samp_rate: samp_rate_rx sdrplay_agc_setpoint: '-30' sdrplay_biastee: 'True' sdrplay_dabnotch: 'False' sdrplay_if_mode: Zero-IF sdrplay_rfnotch: 'False' tia_gain0: '0' tia_gain1: '0' tuner_gain0: '10' tuner_gain1: '10' type: fc32 vga_gain0: '10' vga_gain1: '10' states: bus_sink: false bus_source: false bus_structure: null coordinate: [304, 116.0] rotation: 0 state: true - name: udp_IP id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: 127.0.0.1 states: bus_sink: false bus_source: false bus_structure: null coordinate: [496, 668.0] rotation: 0 state: enabled - name: udp_port id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: intx value: '16887' states: bus_sink: false bus_source: false bus_structure: null coordinate: [496, 748.0] rotation: 0 state: enabled - name: virtual_sink_0 id: virtual_sink parameters: alias: '' comment: '' stream_id: doppler_corrected states: bus_sink: false bus_source: false bus_structure: null coordinate: [864, 172.0] rotation: 0 state: true - name: virtual_source_0 id: virtual_source parameters: alias: '' comment: '' stream_id: doppler_corrected states: bus_sink: false bus_source: false bus_structure: null coordinate: [40, 492.0] rotation: 0 state: true - name: waterfall_file_path id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: str value: /tmp/waterfall.dat states: bus_sink: false bus_source: false bus_structure: null coordinate: [0, 668.0] rotation: 0 state: enabled - name: wpm id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: intx value: '20' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1168, 12.0] rotation: 0 state: enabled connections: - [analog_agc2_xx_0, '0', low_pass_filter_0_0, '0'] - [analog_agc2_xx_0_0, '0', blocks_rotator_cc_0_0, '0'] - [analog_pll_carriertracking_cc_0, '0', low_pass_filter_0, '0'] - [blocks_complex_to_mag_0, '0', satnogs_cw_to_symbol_1, '0'] - [blocks_complex_to_real_0, '0', satnogs_ogg_encoder_0, '0'] - [blocks_delay_0, '0', blocks_multiply_conjugate_cc_0, '1'] - [blocks_keep_one_in_n_0, '0', analog_pll_carriertracking_cc_0, '0'] - [blocks_multiply_conjugate_cc_0, '0', fir_filter_xxx_0, '0'] - [blocks_rotator_cc_0_0, '0', blocks_complex_to_real_0, '0'] - [fir_filter_xxx_0, '0', blocks_complex_to_mag_0, '0'] - [low_pass_filter_0, '0', blocks_delay_0, '0'] - [low_pass_filter_0, '0', blocks_multiply_conjugate_cc_0, '0'] - [low_pass_filter_0_0, '0', analog_agc2_xx_0_0, '0'] - [low_pass_filter_0_0, '0', blocks_keep_one_in_n_0, '0'] - [satnogs_cw_to_symbol_1, out, satnogs_morse_decoder_0, in] - [satnogs_doppler_compensation_0, '0', virtual_sink_0, '0'] - [satnogs_morse_decoder_0, out, satnogs_frame_file_sink_0_0, frame] - [satnogs_morse_decoder_0, out, satnogs_udp_msg_sink_0_0, in] - [satnogs_tcp_rigctl_msg_source_0, freq, satnogs_doppler_compensation_0, doppler] - [soapy_source_0, '0', satnogs_doppler_compensation_0, '0'] - [virtual_source_0, '0', analog_agc2_xx_0, '0'] - [virtual_source_0, '0', satnogs_iq_sink_0, '0'] - [virtual_source_0, '0', satnogs_waterfall_sink_0, '0'] metadata: file_format: 1