gr-satnogs/apps/flowgraphs/bpsk_ax25.grc

1006 lines
21 KiB
Plaintext

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