AX.25 AFSK loopback using gr-satellites
AX.25 over AFSK, transmitted and received in one flowgraph
- Author Daniel Estevez
- Category gr-satellites
- Blocks 28
- Connections 24
- File
gr-satellites/satellites_ax25_afsk.grc
Blocks used
| Block | Module | Used |
|---|---|---|
| Variable | GNU Radio | 3 |
| Multiply | GNU Radio | 2 |
| QT GUI Time Sink | GNU Radio | 2 |
| Signal Source | GNU Radio | 2 |
| Binary Slicer | GNU Radio | 1 |
| Char To Float | GNU Radio | 1 |
| Complex To Real | GNU Radio | 1 |
| Decimating FIR Filter | GNU Radio | 1 |
| Frequency Mod | GNU Radio | 1 |
| HDLC Deframer | gr-satellites | 1 |
| HDLC Framer | gr-satellites | 1 |
| Hilbert | GNU Radio | 1 |
| Message Debug | GNU Radio | 1 |
| NRZI Decode | gr-satellites | 1 |
| NRZI Encode | gr-satellites | 1 |
| PDU To Stream | GNU Radio | 1 |
| Quadrature Demod | GNU Radio | 1 |
| Repeat | GNU Radio | 1 |
| Stream to Tagged Stream | GNU Radio | 1 |
| Symbol Sync | GNU Radio | 1 |
| Tagged Stream to PDU | GNU Radio | 1 |
| Throttle | GNU Radio | 1 |
| Vector Source | GNU Radio | 1 |
Flowgraph source
gr-satellites/satellites_ax25_afsk.grc
options:
parameters:
author: Daniel Estevez
copyright: ''
description: AX.25 over AFSK, transmitted and received in one flowgraph
generate_options: qt_gui
id: AX_25_AFSK_loopback_using_gr_satellites
title: AX.25 AFSK loopback using gr-satellites
states:
coordinate: [10, 10]
rotation: 0
state: enabled
blocks:
- name: baudrate
id: variable
parameters:
comment: ''
value: samp_rate/samp_per_sym
states:
coordinate: [600, 10]
rotation: 0
state: enabled
- name: samp_per_sym
id: variable
parameters:
comment: ''
value: '40'
states:
coordinate: [770, 10]
rotation: 0
state: enabled
- name: samp_rate
id: variable
parameters:
comment: ''
value: '48000'
states:
coordinate: [970, 10]
rotation: 0
state: enabled
- name: af_carrier
id: analog_sig_source_x
parameters:
affinity: ''
alias: ''
amplitude: '1'
comment: ''
frequency: '1200'
maxoutbuf: '0'
minoutbuf: '0'
samp_rate: samp_rate
type: complex
waveform: analog.GR_SIN_WAVE
states:
coordinate: [1200, 350]
rotation: 0
state: enabled
- name: analytic
id: hilbert_fc
parameters:
affinity: ''
alias: ''
beta: '6.76'
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
num_taps: '65'
win: window.WIN_HAMMING
states:
coordinate: [610, 750]
rotation: 0
state: enabled
- name: audio_scope
id: qtgui_time_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1'
alpha2: '1'
autoscale: 'False'
axislabels: 'True'
color1: blue
color2: red
comment: ''
ctrlpanel: 'False'
grid: 'False'
label1: Signal 1
label2: Signal 2
legend: 'True'
marker1: '0'
marker2: '0'
name: Transmitted AFSK audio
samp_rate: samp_rate
size: '1024'
stemplot: 'False'
style1: '1'
style2: '1'
tr_chan: '0'
tr_delay: '0'
tr_level: '0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: ''
type: float
update_time: '0.1'
width1: '1'
width2: '1'
ylabel: Amplitude
ymax: '1.5'
ymin: '-1.5'
yunit: ''
states:
coordinate: [610, 850]
rotation: 0
state: enabled
- name: bits_to_float
id: blocks_char_to_float
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
scale: '1'
vlen: '1'
states:
coordinate: [950, 350]
rotation: 0
state: enabled
- name: downmix
id: blocks_multiply_xx
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
num_inputs: '2'
type: complex
vlen: '1'
states:
coordinate: [980, 630]
rotation: 0
state: enabled
- name: fm_modulator
id: analog_frequency_modulator_fc
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
sensitivity: 2*math.pi*1000/samp_rate
states:
coordinate: [1200, 490]
rotation: 0
state: enabled
- name: frame_tagger
id: blocks_stream_to_tagged_stream
parameters:
affinity: ''
alias: ''
comment: ''
len_tag_key: packet_len
maxoutbuf: '0'
minoutbuf: '0'
packet_len: '32'
type: byte
vlen: '1'
states:
coordinate: [690, 210]
rotation: 0
state: enabled
- name: framed_bits
id: pdu_pdu_to_stream_x
parameters:
affinity: ''
alias: ''
comment: ''
depth: '4096'
early_behavior: pdu.EARLY_BURST_APPEND
maxoutbuf: '0'
minoutbuf: '0'
type: byte
states:
coordinate: [100, 350]
rotation: 0
state: enabled
- name: frames
id: blocks_message_debug
parameters:
affinity: ''
alias: ''
comment: ''
en_uvec: 'True'
log_level: info
states:
coordinate: [570, 1320]
rotation: 0
state: enabled
- name: hdlc_deframer
id: satellites_hdlc_deframer
parameters:
affinity: ''
alias: ''
check_fcs: 'True'
comment: ''
max_length: '10000'
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [80, 1410]
rotation: 0
state: enabled
- name: hdlc_framer
id: satellites_hdlc_framer
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
postamble_bytes: '7'
preamble_bytes: '50'
states:
coordinate: [1450, 210]
rotation: 0
state: enabled
- name: lo
id: analog_sig_source_x
parameters:
affinity: ''
alias: ''
amplitude: '1'
comment: ''
frequency: '-1700'
maxoutbuf: '0'
minoutbuf: '0'
samp_rate: samp_rate
type: complex
waveform: analog.GR_COS_WAVE
states:
coordinate: [610, 610]
rotation: 0
state: enabled
- name: matched_filter
id: fir_filter_xxx
parameters:
affinity: ''
alias: ''
comment: ''
decim: '1'
maxoutbuf: '0'
minoutbuf: '0'
samp_delay: '0'
taps: '[1/samp_per_sym] * samp_per_sym'
type: fff
states:
coordinate: [80, 1100]
rotation: 0
state: enabled
- name: nrzi_decode
id: satellites_nrzi_decode
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [1480, 1060]
rotation: 0
state: enabled
- name: nrzi_encode
id: satellites_nrzi_encode
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [430, 350]
rotation: 0
state: enabled
- name: payload
id: blocks_vector_source_x
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
repeat: 'True'
tags: '[]'
type: byte
vector: '[130, 160, 144, 100, 96, 100, 96, 154, 96, 168, 144, 152, 64, 97, 3, 240, 72, 101, 108, 108, 111, 32, 102, 114, 111, 109, 32, 65, 88, 46, 50, 53]'
vlen: '1'
states:
coordinate: [10, 200]
rotation: 0
state: enabled
- name: payload_throttle
id: blocks_throttle2
parameters:
affinity: ''
alias: ''
comment: ''
ignoretag: 'True'
limit: auto
maximum: '0.1'
maxoutbuf: '0'
minoutbuf: '0'
samples_per_second: samp_rate
type: byte
vlen: '1'
states:
coordinate: [360, 190]
rotation: 0
state: enabled
- name: quad_demod
id: analog_quadrature_demod_cf
parameters:
affinity: ''
alias: ''
comment: ''
gain: samp_rate/(2*math.pi*500)
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [1220, 640]
rotation: 0
state: enabled
- name: repeat
id: blocks_repeat
parameters:
affinity: ''
alias: ''
comment: ''
interp: samp_per_sym
maxoutbuf: '0'
minoutbuf: '0'
type: byte
vlen: '1'
states:
coordinate: [680, 350]
rotation: 0
state: enabled
- name: slicer
id: digital_binary_slicer_fb
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
states:
coordinate: [1120, 1060]
rotation: 0
state: enabled
- name: symbol_scope
id: qtgui_time_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1'
alpha2: '1'
autoscale: 'True'
axislabels: 'True'
color1: blue
color2: red
comment: ''
ctrlpanel: 'False'
grid: 'False'
label1: Signal 1
label2: Signal 2
legend: 'True'
marker1: '0'
marker2: '0'
name: Recovered soft symbols
samp_rate: baudrate
size: '256'
stemplot: 'False'
style1: '1'
style2: '1'
tr_chan: '0'
tr_delay: '0'
tr_level: '0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: ''
type: float
update_time: '0.1'
width1: '1'
width2: '1'
ylabel: Amplitude
ymax: '2'
ymin: '-2'
yunit: ''
states:
coordinate: [1120, 1160]
rotation: 0
state: enabled
- name: symbol_sync
id: digital_symbol_sync_xx
parameters:
affinity: ''
alias: ''
comment: ''
constellation: digital.constellation_bpsk().base()
damping: '1'
loop_bw: '0.03'
max_dev: '0.1'
maxoutbuf: '0'
minoutbuf: '0'
nfilters: '128'
osps: '1'
pfb_mf_taps: '[]'
resamp_type: digital.IR_MMSE_8TAP
sps: samp_per_sym
ted_gain: '1'
ted_type: digital.TED_GARDNER
type: ff
states:
coordinate: [460, 1010]
rotation: 0
state: enabled
- name: to_audio
id: blocks_complex_to_real
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
vlen: '1'
states:
coordinate: [330, 620]
rotation: 0
state: enabled
- name: to_pdu
id: pdu_tagged_stream_to_pdu
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
tag: packet_len
type: byte
states:
coordinate: [1070, 210]
rotation: 0
state: enabled
- name: upmix
id: blocks_multiply_xx
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
num_inputs: '2'
type: complex
vlen: '1'
states:
coordinate: [90, 610]
rotation: 0
state: enabled
connections:
- [af_carrier, '0', upmix, '1']
- [analytic, '0', downmix, '1']
- [bits_to_float, '0', fm_modulator, '0']
- [downmix, '0', quad_demod, '0']
- [fm_modulator, '0', upmix, '0']
- [frame_tagger, '0', to_pdu, '0']
- [framed_bits, '0', nrzi_encode, '0']
- src_blk_id: hdlc_deframer
src_port_id: out
snk_blk_id: frames
snk_port_id: print_pdu
- src_blk_id: hdlc_framer
src_port_id: out
snk_blk_id: framed_bits
snk_port_id: pdus
- [lo, '0', downmix, '0']
- [matched_filter, '0', symbol_sync, '0']
- [nrzi_decode, '0', hdlc_deframer, '0']
- [nrzi_encode, '0', repeat, '0']
- [payload, '0', payload_throttle, '0']
- [payload_throttle, '0', frame_tagger, '0']
- [quad_demod, '0', matched_filter, '0']
- [repeat, '0', bits_to_float, '0']
- [slicer, '0', nrzi_decode, '0']
- [symbol_sync, '0', slicer, '0']
- [symbol_sync, '0', symbol_scope, '0']
- [to_audio, '0', analytic, '0']
- [to_audio, '0', audio_scope, '0']
- src_blk_id: to_pdu
src_port_id: pdus
snk_blk_id: hdlc_framer
snk_port_id: in
- [upmix, '0', to_audio, '0']
metadata:
file_format: 2
grc_version: 3.11.0.0