options: parameters: author: Manolis Surligas (surligas@gmail.com), Patrick Dohmen (DL4PD) category: '[GRC Hier Blocks]' cmake_opt: '' comment: '' copyright: '' description: BPSK AX.25 decoder gen_cmake: 'On' gen_linking: dynamic generate_options: no_gui hier_block_src_path: '.:' id: satnogs_bpsk_ax25 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: satnogs_bpsk_ax25 window_size: 2*1080,1080 states: bus_sink: false bus_source: false bus_structure: null coordinate: [8, 20] 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: [1312, 20.0] rotation: 0 state: enabled - name: bpsk_constellation id: variable_constellation parameters: comment: '' const_points: '[-1-1j, -1+1j, 1+1j, 1-1j]' dims: '1' precision: '8' rot_sym: '4' soft_dec_lut: None sym_map: '[0, 1, 3, 2]' type: bpsk states: bus_sink: false bus_source: false bus_structure: null coordinate: [624, 964.0] rotation: 0 state: enabled - name: decimation id: variable parameters: comment: '' value: satnogs.find_decimation(baudrate, 2, audio_samp_rate,sps) states: bus_sink: false bus_source: false bus_structure: null coordinate: [1120, 20.0] rotation: 0 state: true - name: nfilts id: variable parameters: comment: '' value: '32' states: bus_sink: false bus_source: false bus_structure: null coordinate: [608, 828.0] rotation: 0 state: enabled - name: rrc_taps id: variable parameters: comment: '' value: firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), excess_bw, 11*sps*nfilts) states: bus_sink: false bus_source: false bus_structure: null coordinate: [872, 828.0] rotation: 0 state: enabled - name: sps id: variable parameters: comment: '' value: '4' states: bus_sink: false bus_source: false bus_structure: null coordinate: [688, 828.0] rotation: 0 state: enabled - name: variable_ax25_decoder_0 id: variable_ax25_decoder parameters: addr: '''GND''' comment: '' crc_check: 'True' descrambling: 'True' frame_len: '512' promisc: 'True' ssid: '0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1232, 796.0] rotation: 0 state: enabled - name: variable_ax25_decoder_0_0 id: variable_ax25_decoder parameters: addr: '''GND''' comment: '' crc_check: 'True' descrambling: 'False' frame_len: '512' promisc: 'True' ssid: '0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1400, 796.0] rotation: 0 state: enabled - name: analog_agc2_xx_0 id: analog_agc2_xx parameters: affinity: '' alias: '' attack_rate: 1e-3 comment: '' decay_rate: 1e-3 gain: '1.0' max_gain: '65536' maxoutbuf: '0' minoutbuf: '0' reference: '0.5' type: complex states: bus_sink: false bus_source: false bus_structure: null coordinate: [264, 428.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: '1.0' max_gain: '65536' maxoutbuf: '0' minoutbuf: '0' reference: '0.015' type: complex states: bus_sink: false bus_source: false bus_structure: null coordinate: [712, 428.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: [808, 20.0] rotation: 0 state: enabled - name: baudrate id: parameter parameters: alias: '' comment: '' hide: none label: '' short_id: '' type: eng_float value: '9600.0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1224, 20.0] rotation: 0 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: [1312, 464.0] rotation: 0 state: enabled - name: blocks_rotator_cc_0_0 id: blocks_rotator_cc parameters: affinity: '' alias: '' comment: "Add a frequency offset of 1200 Hz \nto move the audio\n a bit higher\ \ than 0." maxoutbuf: '0' minoutbuf: '0' phase_inc: 2.0 * math.pi * (1200.0 / audio_samp_rate) states: bus_sink: false bus_source: false bus_structure: null coordinate: [1096, 460.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: [960, 20.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: [-32, 908.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: [360, 12.0] rotation: 0 state: enabled - name: digital_constellation_receiver_cb_0 id: digital_constellation_receiver_cb parameters: affinity: '' alias: '' comment: '' constellation: bpsk_constellation fmax: '0.25' fmin: '-0.25' loop_bw: 2.0 * math.pi/100.0 maxoutbuf: '0' minoutbuf: '0' showports: 'True' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1064, 608.0] rotation: 0 state: enabled - name: digital_costas_loop_cc_0_0 id: digital_costas_loop_cc parameters: affinity: '' alias: '' comment: '' maxoutbuf: '0' minoutbuf: '0' order: '2' use_snr: 'True' w: 2.0 * math.pi / 100.0 states: bus_sink: false bus_source: false bus_structure: null coordinate: [592, 608.0] rotation: 0 state: enabled - name: digital_pfb_clock_sync_xxx_0 id: digital_pfb_clock_sync_xxx parameters: affinity: '' alias: '' comment: '' filter_size: nfilts init_phase: nfilts/2 loop_bw: 2.0 * math.pi/100.0 max_dev: '1.5' maxoutbuf: '0' minoutbuf: '0' osps: '1' sps: sps taps: rrc_taps type: ccf states: bus_sink: false bus_source: false bus_structure: null coordinate: [808, 612.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: [128, 908.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: [224, 828.0] rotation: 0 state: enabled - name: excess_bw id: parameter parameters: alias: '' comment: 'The BPSK excess bandwidth setup. Used in filtering.' hide: none label: '' short_id: '' type: eng_float value: '0.35' states: bus_sink: false bus_source: false bus_structure: null coordinate: [760, 828.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: [112, 828.0] rotation: 180 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: [888, 20.0] rotation: 0 state: enabled - name: import_0 id: import parameters: alias: '' comment: '' imports: import math states: bus_sink: false bus_source: false bus_structure: null coordinate: [7, 187] 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: [368, 828.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: [728, 20.0] rotation: 0 state: enabled - name: low_pass_filter_0 id: low_pass_filter parameters: affinity: '' alias: '' beta: '6.76' comment: '' cutoff_freq: ((1.0 + excess_bw) * baudrate/2.0) + min(baudrate, abs(max_cfo)) decim: decimation // sps gain: '1' interp: '1' maxoutbuf: '0' minoutbuf: '0' samp_rate: baudrate*decimation type: fir_filter_ccf width: baudrate / 10.0 win: firdes.WIN_HAMMING states: bus_sink: false bus_source: false bus_structure: null coordinate: [408, 588.0] rotation: 0 state: enabled - name: low_pass_filter_0_0 id: low_pass_filter parameters: affinity: '' alias: '' beta: '6.76' comment: '' cutoff_freq: ((1.0 + excess_bw) * baudrate/2.0) + min(baudrate, abs(max_cfo)) decim: '1' gain: '1' interp: '1' maxoutbuf: '0' minoutbuf: '0' samp_rate: audio_samp_rate type: fir_filter_ccf width: baudrate / 10.0 win: firdes.WIN_HAMMING states: bus_sink: false bus_source: false bus_structure: null coordinate: [904, 412.0] rotation: 0 state: enabled - name: max_cfo id: parameter parameters: alias: '' comment: "The maximum offset allowed from the carrier.\nUsed for filtering. Larger\ \ values allow decoding\nof frames with large frequency drifts,\n but degrades\ \ reception performance." hide: none label: '' short_id: '' type: eng_float value: '1000.0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [768, 948.0] rotation: 0 state: enabled - name: pfb_arb_resampler_xxx_0 id: pfb_arb_resampler_xxx parameters: affinity: '' alias: '' atten: '80' comment: '' maxoutbuf: '0' minoutbuf: '0' nfilts: '32' rrate: audio_samp_rate/(baudrate*decimation) samp_delay: '0' taps: '' type: ccf states: bus_sink: false bus_source: false bus_structure: null coordinate: [464, 436.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: [368, 908.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: [648, 20.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: [488, 12.0] rotation: 0 state: enabled - 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: baudrate*decimation samp_rate: samp_rate_rx sat_freq: rx_freq states: bus_sink: false bus_source: false bus_structure: null coordinate: [488, 132.0] rotation: 0 state: true - name: satnogs_frame_decoder_0_0 id: satnogs_frame_decoder parameters: affinity: '' alias: '' comment: '' decoder_object: variable_ax25_decoder_0 itype: byte maxoutbuf: '0' minoutbuf: '0' vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1304, 688.0] rotation: 0 state: enabled - name: satnogs_frame_decoder_0_0_0 id: satnogs_frame_decoder parameters: affinity: '' alias: '' comment: '' decoder_object: variable_ax25_decoder_0_0 itype: byte maxoutbuf: '0' minoutbuf: '0' vlen: '1' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1304, 608.0] rotation: 0 state: enabled - name: satnogs_frame_file_sink_0_1_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: [1720, 612.0] rotation: 0 state: enabled - name: satnogs_iq_sink_0_0 id: satnogs_iq_sink parameters: activate: enable_iq_dump affinity: '' alias: '' append: 'False' comment: '' filename: iq_file_path scale: '16768' states: bus_sink: false bus_source: false bus_structure: null coordinate: [16, 508.0] rotation: 180 state: enabled - name: satnogs_json_converter_0 id: satnogs_json_converter parameters: affinity: '' alias: '' comment: '' extra: '' maxoutbuf: '0' minoutbuf: '0' states: bus_sink: false bus_source: false bus_structure: null coordinate: [1536, 660.0] rotation: 0 state: true - 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: [1472, 444.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: [232, 244.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: [1720, 676.0] rotation: 0 state: enabled - name: satnogs_waterfall_sink_0_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: baudrate*decimation states: bus_sink: false bus_source: false bus_structure: null coordinate: [16, 332.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: [232, 20.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: [232, 108.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: [464, 828.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: [464, 908.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: [792, 164.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: [16, 460.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: [-32, 828.0] rotation: 0 state: enabled connections: - [analog_agc2_xx_0, '0', low_pass_filter_0, '0'] - [analog_agc2_xx_0, '0', pfb_arb_resampler_xxx_0, '0'] - [analog_agc2_xx_0_0, '0', low_pass_filter_0_0, '0'] - [blocks_complex_to_real_0, '0', satnogs_ogg_encoder_0, '0'] - [blocks_rotator_cc_0_0, '0', blocks_complex_to_real_0, '0'] - [digital_constellation_receiver_cb_0, '0', satnogs_frame_decoder_0_0, '0'] - [digital_constellation_receiver_cb_0, '0', satnogs_frame_decoder_0_0_0, '0'] - [digital_costas_loop_cc_0_0, '0', digital_pfb_clock_sync_xxx_0, '0'] - [digital_pfb_clock_sync_xxx_0, '0', digital_constellation_receiver_cb_0, '0'] - [low_pass_filter_0, '0', digital_costas_loop_cc_0_0, '0'] - [low_pass_filter_0_0, '0', blocks_rotator_cc_0_0, '0'] - [pfb_arb_resampler_xxx_0, '0', analog_agc2_xx_0_0, '0'] - [satnogs_doppler_compensation_0, '0', virtual_sink_0, '0'] - [satnogs_frame_decoder_0_0, out, satnogs_json_converter_0, in] - [satnogs_frame_decoder_0_0_0, out, satnogs_json_converter_0, in] - [satnogs_json_converter_0, out, satnogs_frame_file_sink_0_1_0, frame] - [satnogs_json_converter_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, '0'] - [virtual_source_0, '0', satnogs_waterfall_sink_0_0, '0'] metadata: file_format: 1