GNU Radio World

AX.25 BPSK loopback using gr-satellites

AX.25 over BPSK, transmitted and received in one flowgraph

Press Load to open this flowgraph in an editor embedded above, then ▶ to run it. Nothing is downloaded until you do.

Open in the full editor ▶ Download the .grc

Blocks used

BlockModuleUsed
VariableGNU Radio3
Binary SlicerGNU Radio1
BPSK Demodulatorgr-satellites1
Constellation ModulatorGNU Radio1
Constellation ObjectGNU Radio1
HDLC Deframergr-satellites1
HDLC Framergr-satellites1
Message DebugGNU Radio1
NRZI Decodegr-satellites1
NRZI Encodegr-satellites1
PDU To StreamGNU Radio1
QT GUI Frequency SinkGNU Radio1
QT GUI Time SinkGNU Radio1
Stream to Tagged StreamGNU Radio1
Tagged Stream to PDUGNU Radio1
ThrottleGNU Radio1
Unpacked to PackedGNU Radio1
Vector SourceGNU Radio1

Flowgraph source

gr-satellites/satellites_ax25_bpsk.grc
options:
    parameters:
        author: Daniel Estevez
        copyright: ''
        description: AX.25 over BPSK, transmitted and received in one flowgraph
        generate_options: qt_gui
        id: AX_25_BPSK_loopback_using_gr_satellites
        title: AX.25 BPSK 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: '8'
    states:
        coordinate: [770, 10]
        rotation: 0
        state: enabled
-   name: samp_rate
    id: variable
    parameters:
        comment: ''
        value: '9600'
    states:
        coordinate: [970, 10]
        rotation: 0
        state: enabled
-   name: bpsk_const
    id: variable_constellation
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        const_points: '[]'
        dims: '1'
        normalization: digital.constellation.AMPLITUDE_NORMALIZATION
        npwr: '1'
        precision: '8'
        rot_sym: '2'
        soft_dec_lut: '"auto"'
        sym_map: '[]'
        type: bpsk
    states:
        coordinate: [1140, 10]
        rotation: 0
        state: enabled
-   name: bpsk_demod
    id: satellites_bpsk_demodulator
    parameters:
        affinity: ''
        alias: ''
        baudrate: baudrate
        comment: ''
        differential: 'False'
        f_offset: '0'
        iq: 'True'
        manchester: 'False'
        maxoutbuf: '0'
        minoutbuf: '0'
        options: '""'
        samp_rate: samp_rate
    states:
        coordinate: [1390, 430]
        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: '31'
        type: byte
        vlen: '1'
    states:
        coordinate: [690, 270]
        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, 460]
        rotation: 0
        state: enabled
-   name: frames
    id: blocks_message_debug
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        en_uvec: 'True'
        log_level: info
    states:
        coordinate: [1180, 770]
        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: [690, 860]
        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, 270]
        rotation: 0
        state: enabled
-   name: modulator
    id: digital_constellation_modulator
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        constellation: bpsk_const
        differential: 'False'
        excess_bw: '0.35'
        log: 'False'
        maxoutbuf: '0'
        minoutbuf: '0'
        samples_per_symbol: samp_per_sym
        truncate: 'False'
        verbose: 'False'
    states:
        coordinate: [1010, 410]
        rotation: 0
        state: enabled
-   name: nrzi_decode
    id: satellites_nrzi_decode
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        maxoutbuf: '0'
        minoutbuf: '0'
    states:
        coordinate: [440, 860]
        rotation: 0
        state: enabled
-   name: nrzi_encode
    id: satellites_nrzi_encode
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        maxoutbuf: '0'
        minoutbuf: '0'
    states:
        coordinate: [430, 460]
        rotation: 0
        state: enabled
-   name: pack
    id: blocks_unpacked_to_packed_xx
    parameters:
        affinity: ''
        alias: ''
        bits_per_chunk: '1'
        comment: ''
        endianness: gr.GR_MSB_FIRST
        maxoutbuf: '0'
        minoutbuf: '0'
        num_ports: '1'
        type: byte
    states:
        coordinate: [680, 460]
        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, 66, 80, 83, 75]'
        vlen: '1'
    states:
        coordinate: [10, 260]
        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, 250]
        rotation: 0
        state: enabled
-   name: slicer
    id: digital_binary_slicer_fb
    parameters:
        affinity: ''
        alias: ''
        comment: ''
        maxoutbuf: '0'
        minoutbuf: '0'
    states:
        coordinate: [80, 860]
        rotation: 0
        state: enabled
-   name: spectrum
    id: qtgui_freq_sink_x
    parameters:
        affinity: ''
        alias: ''
        alpha1: '1'
        autoscale: 'False'
        average: '0.2'
        axislabels: 'True'
        color1: '"blue"'
        comment: ''
        ctrlpanel: 'False'
        fc: '0'
        fftsize: '2048'
        grid: 'True'
        label1: BPSK signal
        legend: 'True'
        marker1: '-1'
        maxoutbuf: '0'
        minoutbuf: '0'
        name: Transmitted BPSK spectrum
        samp_rate: samp_rate
        style1: '1'
        tr_chan: '0'
        tr_level: '0'
        tr_mode: qtgui.TRIG_MODE_FREE
        tr_tag: ''
        update_time: '0.1'
        width1: '1'
        ymax: '10'
        ymin: '-100'
    states:
        coordinate: [1390, 590]
        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: [80, 960]
        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, 270]
        rotation: 0
        state: enabled
connections:
- [bpsk_demod, '0', slicer, '0']
- [bpsk_demod, '0', symbol_scope, '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
- [modulator, '0', bpsk_demod, '0']
- [modulator, '0', spectrum, '0']
- [nrzi_decode, '0', hdlc_deframer, '0']
- [nrzi_encode, '0', pack, '0']
- [pack, '0', modulator, '0']
- [payload, '0', payload_throttle, '0']
- [payload_throttle, '0', frame_tagger, '0']
- [slicer, '0', nrzi_decode, '0']
-   src_blk_id: to_pdu
    src_port_id: pdus
    snk_blk_id: hdlc_framer
    snk_port_id: in
metadata:
    file_format: 2
    grc_version: 3.11.0.0