hardware demonstration

pull/19/head
Jean-Michel Friedt 2024-06-07 13:36:30 +02:00
parent db29c5164b
commit 55d9b18aa5
7 changed files with 356 additions and 823 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

View File

@ -1,761 +0,0 @@
options:
parameters:
author: Barry Duggan
catch_exceptions: 'True'
category: '[GRC Hier Blocks]'
cmake_opt: ''
comment: ''
copyright: ''
description: NBFM transmitter
gen_cmake: 'On'
gen_linking: dynamic
generate_options: qt_gui
hier_block_src_path: '.:'
id: NFM_xmt
max_nouts: '0'
output_language: python
placement: (0,0)
qt_qss_theme: ''
realtime_scheduling: ''
run: 'True'
run_command: '{python} -u {filename}'
run_options: prompt
sizing_mode: fixed
thread_safe_setters: ''
title: NFM_xmt
window_size: ''
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [16, 12.0]
rotation: 0
state: enabled
blocks:
- name: df
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: ''
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '0.001'
stop: '0.02'
value: '0'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [128, 288.0]
rotation: 0
state: true
- name: freq
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: ''
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '1'
stop: samp_rate/2
value: '440'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [456, 16.0]
rotation: 0
state: true
- name: if_rate
id: variable
parameters:
comment: ''
value: int(usrp_rate/3)
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [376, 16.0]
rotation: 0
state: true
- name: noise
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: ''
label: ''
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '0.01'
stop: '2'
value: '0'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [16, 288.0]
rotation: 0
state: true
- name: samp_rate
id: variable
parameters:
comment: ''
value: '48000'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [200, 16.0]
rotation: 0
state: enabled
- name: usrp_rate
id: variable
parameters:
comment: ''
value: '576000'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [288, 16.0]
rotation: 0
state: true
- name: analog_agc_xx_0
id: analog_agc_xx
parameters:
affinity: ''
alias: ''
comment: ''
gain: '1.0'
max_gain: '65536'
maxoutbuf: '0'
minoutbuf: '0'
rate: 1e-3
reference: '2'
type: float
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1064, 520.0]
rotation: 0
state: true
- name: analog_nbfm_rx_0
id: analog_nbfm_rx
parameters:
affinity: ''
alias: ''
audio_rate: '48000'
comment: ''
max_dev: 5e3
maxoutbuf: '0'
minoutbuf: '0'
quad_rate: if_rate
tau: 75e-6
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [688, 416.0]
rotation: 0
state: enabled
- name: analog_nbfm_tx_0
id: analog_nbfm_tx
parameters:
affinity: ''
alias: ''
audio_rate: samp_rate
comment: ''
fh: '-1.0'
max_dev: 5e3
maxoutbuf: '0'
minoutbuf: '0'
quad_rate: if_rate
tau: 75e-6
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [576, 168.0]
rotation: 0
state: true
- name: blocks_null_sink_0
id: blocks_null_sink
parameters:
affinity: ''
alias: ''
bus_structure_sink: '[[0,],]'
comment: ''
num_inputs: '1'
type: byte
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1416, 552.0]
rotation: 0
state: true
- name: blocks_repeat_0_0
id: blocks_repeat
parameters:
affinity: ''
alias: ''
comment: ''
interp: (int)(usrp_rate/if_rate)
maxoutbuf: '0'
minoutbuf: '0'
type: complex
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [984, 200.0]
rotation: 0
state: true
- name: blocks_throttle_0
id: blocks_throttle
parameters:
affinity: ''
alias: ''
comment: ''
ignoretag: 'True'
maxoutbuf: '0'
minoutbuf: '0'
samples_per_second: usrp_rate
type: complex
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [160, 440.0]
rotation: 0
state: true
- name: blocks_vector_source_x_0_2
id: blocks_vector_source_x
parameters:
affinity: ''
alias: ''
comment: ''
maxoutbuf: '0'
minoutbuf: '0'
repeat: 'True'
tags: '[]'
type: byte
vector: (0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00)
vlen: '1'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 184.0]
rotation: 0
state: true
- name: channels_channel_model_0
id: channels_channel_model
parameters:
affinity: ''
alias: ''
block_tags: 'False'
comment: ''
epsilon: '1.0'
freq_offset: df
maxoutbuf: '0'
minoutbuf: '0'
noise_voltage: noise
seed: '0'
taps: 1.0 + 1.0j
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [320, 400.0]
rotation: 0
state: true
- name: low_pass_filter_0
id: low_pass_filter
parameters:
affinity: ''
alias: ''
beta: '6.76'
comment: ''
cutoff_freq: '15000'
decim: '1'
gain: '1'
interp: '1'
maxoutbuf: '0'
minoutbuf: '0'
samp_rate: if_rate
type: fir_filter_ccf
width: '2000'
win: window.WIN_HAMMING
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [816, 148.0]
rotation: 0
state: true
- name: low_pass_filter_1
id: low_pass_filter
parameters:
affinity: ''
alias: ''
beta: '6.76'
comment: ''
cutoff_freq: usrp_rate/6
decim: int(usrp_rate/if_rate)
gain: '1'
interp: '1'
maxoutbuf: '0'
minoutbuf: '0'
samp_rate: usrp_rate
type: fir_filter_ccf
width: usrp_rate/64
win: window.WIN_HAMMING
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [520, 388.0]
rotation: 0
state: true
- name: m17_m17_coder_0
id: m17_m17_coder
parameters:
affinity: ''
alias: ''
comment: ''
debug: 'False'
dst_id: ALL
maxoutbuf: '0'
meta: meta
minoutbuf: '0'
src_id: EMITTER1
type: '42'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [208, 168.0]
rotation: 0
state: true
- name: m17_m17_decoder_0
id: m17_m17_decoder
parameters:
affinity: ''
alias: ''
comment: ''
debug_ctrl: 'True'
debug_data: 'False'
maxoutbuf: '0'
minoutbuf: '0'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1248, 536.0]
rotation: 0
state: true
- name: note_0_2
id: note
parameters:
alias: ''
comment: ''
note: DATA
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [48, 128.0]
rotation: 0
state: true
- name: qtgui_freq_sink_x_0
id: qtgui_freq_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
average: '1.0'
axislabels: 'True'
bw: if_rate
color1: '"blue"'
color10: '"dark blue"'
color2: '"red"'
color3: '"green"'
color4: '"black"'
color5: '"cyan"'
color6: '"magenta"'
color7: '"yellow"'
color8: '"dark red"'
color9: '"dark green"'
comment: ''
ctrlpanel: 'False'
fc: '0'
fftsize: '1024'
freqhalf: 'True'
grid: 'False'
gui_hint: ''
label: Relative Gain
label1: ''
label10: ''''''
label2: ''''''
label3: ''''''
label4: ''''''
label5: ''''''
label6: ''''''
label7: ''''''
label8: ''''''
label9: ''''''
legend: 'True'
maxoutbuf: '0'
minoutbuf: '0'
name: '""'
nconnections: '3'
norm_window: 'False'
showports: 'False'
tr_chan: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_tag: '""'
type: complex
units: dB
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
wintype: window.WIN_BLACKMAN_hARRIS
ymax: '10'
ymin: '-140'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1232, 256.0]
rotation: 0
state: true
- name: qtgui_time_sink_x_0
id: qtgui_time_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
axislabels: 'True'
color1: blue
color10: dark blue
color2: red
color3: green
color4: black
color5: cyan
color6: magenta
color7: yellow
color8: dark red
color9: dark green
comment: ''
ctrlpanel: 'False'
entags: 'True'
grid: 'False'
gui_hint: ''
label1: Signal 1
label10: Signal 10
label2: Signal 2
label3: Signal 3
label4: Signal 4
label5: Signal 5
label6: Signal 6
label7: Signal 7
label8: Signal 8
label9: Signal 9
legend: 'True'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
name: '""'
nconnections: '2'
size: '1024'
srate: samp_rate
stemplot: 'False'
style1: '1'
style10: '1'
style2: '1'
style3: '1'
style4: '1'
style5: '1'
style6: '1'
style7: '1'
style8: '1'
style9: '1'
tr_chan: '0'
tr_delay: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: '""'
type: float
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
ylabel: Amplitude
ymax: '1'
ymin: '-1'
yunit: '""'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1224, 360.0]
rotation: 0
state: true
- name: qtgui_time_sink_x_0_0
id: qtgui_time_sink_x
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
axislabels: 'True'
color1: blue
color10: dark blue
color2: red
color3: green
color4: black
color5: cyan
color6: magenta
color7: yellow
color8: dark red
color9: dark green
comment: ''
ctrlpanel: 'False'
entags: 'True'
grid: 'False'
gui_hint: ''
label1: Signal 1
label10: Signal 10
label2: Signal 2
label3: Signal 3
label4: Signal 4
label5: Signal 5
label6: Signal 6
label7: Signal 7
label8: Signal 8
label9: Signal 9
legend: 'True'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
name: '""'
nconnections: '2'
size: '1024'
srate: samp_rate
stemplot: 'False'
style1: '1'
style10: '1'
style2: '1'
style3: '1'
style4: '1'
style5: '1'
style6: '1'
style7: '1'
style8: '1'
style9: '1'
tr_chan: '0'
tr_delay: '0'
tr_level: '0.0'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: '""'
type: float
update_time: '0.10'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
ylabel: Amplitude
ymax: '1'
ymin: '-1'
yunit: '""'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1224, 448.0]
rotation: 0
state: true
- name: root_raised_cosine_filter_0
id: root_raised_cosine_filter
parameters:
affinity: ''
alias: ''
alpha: '0.5'
comment: ''
decim: '1'
gain: '1'
interp: '10'
maxoutbuf: '0'
minoutbuf: '0'
ntaps: '81'
samp_rate: '10'
sym_rate: '1.0'
type: interp_fir_filter_fff
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [376, 160.0]
rotation: 0
state: true
- name: root_raised_cosine_filter_0_0
id: root_raised_cosine_filter
parameters:
affinity: ''
alias: ''
alpha: '0.5'
comment: ''
decim: '10'
gain: '1'
interp: '10'
maxoutbuf: '0'
minoutbuf: '0'
ntaps: '81'
samp_rate: '10'
sym_rate: '1.0'
type: fir_filter_fff
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [864, 504.0]
rotation: 0
state: true
- name: virtual_sink_0
id: virtual_sink
parameters:
alias: ''
comment: ''
stream_id: tag1
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1136, 200.0]
rotation: 0
state: true
- name: virtual_source_0
id: virtual_source
parameters:
alias: ''
comment: ''
stream_id: tag1
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 440.0]
rotation: 0
state: true
connections:
- [analog_agc_xx_0, '0', m17_m17_decoder_0, '0']
- [analog_agc_xx_0, '0', qtgui_time_sink_x_0_0, '1']
- [analog_nbfm_rx_0, '0', qtgui_time_sink_x_0, '1']
- [analog_nbfm_rx_0, '0', root_raised_cosine_filter_0_0, '0']
- [analog_nbfm_tx_0, '0', low_pass_filter_0, '0']
- [analog_nbfm_tx_0, '0', qtgui_freq_sink_x_0, '1']
- [blocks_repeat_0_0, '0', virtual_sink_0, '0']
- [blocks_throttle_0, '0', channels_channel_model_0, '0']
- [blocks_vector_source_x_0_2, '0', m17_m17_coder_0, '0']
- [channels_channel_model_0, '0', low_pass_filter_1, '0']
- [low_pass_filter_0, '0', blocks_repeat_0_0, '0']
- [low_pass_filter_0, '0', qtgui_freq_sink_x_0, '0']
- [low_pass_filter_1, '0', analog_nbfm_rx_0, '0']
- [low_pass_filter_1, '0', qtgui_freq_sink_x_0, '2']
- [m17_m17_coder_0, '0', qtgui_time_sink_x_0_0, '0']
- [m17_m17_coder_0, '0', root_raised_cosine_filter_0, '0']
- [m17_m17_decoder_0, '0', blocks_null_sink_0, '0']
- [root_raised_cosine_filter_0, '0', analog_nbfm_tx_0, '0']
- [root_raised_cosine_filter_0, '0', qtgui_time_sink_x_0, '0']
- [root_raised_cosine_filter_0_0, '0', analog_agc_xx_0, '0']
- [virtual_source_0, '0', blocks_throttle_0, '0']
metadata:
file_format: 1
grc_version: 3.10.5.1

View File

@ -1,5 +1,9 @@
## gr-m17 examples
For a first test, jump to ``m17_streamer.grc`` which does not use external tools but is GNU Radio only.
The two ``m17_rx.grc`` and ``m17_tx.grc`` are for debugging and validation purposes of the conversion
from ``libm17`` to GNU Radio block.
### m17_rx.grc
<img src="m17_rx.png">
@ -82,13 +86,21 @@ Loopback demo with a noisy channel, including full modulation & demodulation.
<img src="m17_loopback_noisychannel.png">
## TO BE DEBUGGED AND VALIDATED
### transmitterPLUTOSDR.grc
M17 transmitter with ADALM Pluto SDR.
M17 transmitter with ADALM Pluto SDR or Ettus Research B210.
<img src="transmitterPLUTOSDR.png">
### receiverRTLSDR.grc
M17 receiver with RTL SDR. Automatic Frequency Correction can be enabled as an option.
M17 receiver with RTL-SDR. Automatic Frequency Correction can be enabled as an option.
<img src="receiverRTLSDR.png">
### Complete demonstration
Resulting demonstration of wireless communication between a B210 emitting the signal and RTL-SDR dongle
as receiver.
<img src="2024-06-07-132848_2704x1050_scrot.png">

View File

@ -28,7 +28,7 @@ options:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 8]
coordinate: [48, 24.0]
rotation: 0
state: enabled
@ -42,16 +42,16 @@ blocks:
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '-10'
start: '-100'
step: '0.1'
stop: '10'
stop: '100'
value: '0'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [304, 12.0]
coordinate: [344, 32.0]
rotation: 0
state: true
- name: rf_gain
@ -72,7 +72,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [416, 12.0]
coordinate: [456, 32.0]
rotation: 0
state: true
- name: samp_rate
@ -84,7 +84,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [192, 12.0]
coordinate: [232, 32.0]
rotation: 0
state: enabled
- name: variable_qtgui_check_box_0
@ -101,7 +101,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [536, 12.0]
coordinate: [576, 24.0]
rotation: 0
state: true
- name: analog_quadrature_demod_cf_0
@ -117,7 +117,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [400, 324.0]
coordinate: [528, 216.0]
rotation: 0
state: enabled
- name: audio_sink_0
@ -134,7 +134,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [2240, 292.0]
coordinate: [384, 480.0]
rotation: 0
state: enabled
- name: blocks_moving_average_xx_0
@ -154,7 +154,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [432, 420.0]
coordinate: [776, 192.0]
rotation: 0
state: enabled
- name: blocks_multiply_const_vxx_0
@ -172,7 +172,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [600, 444.0]
coordinate: [1008, 216.0]
rotation: 0
state: true
- name: blocks_packed_to_unpacked_xx_0
@ -191,8 +191,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1432, 284.0]
rotation: 0
coordinate: [432, 304.0]
rotation: 180
state: enabled
- name: blocks_short_to_float_0
id: blocks_short_to_float
@ -208,7 +208,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1936, 292.0]
coordinate: [64, 480.0]
rotation: 0
state: enabled
- name: blocks_stream_to_vector_0
@ -226,8 +226,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1592, 296.0]
rotation: 0
coordinate: [272, 320.0]
rotation: 180
state: enabled
- name: blocks_sub_xx_0
id: blocks_sub_xx
@ -244,7 +244,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [672, 328.0]
coordinate: [1240, 192.0]
rotation: 0
state: true
- name: digital_symbol_sync_xx_0
@ -271,8 +271,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [984, 284.0]
rotation: 0
coordinate: [872, 300.0]
rotation: 180
state: enabled
- name: import_0
id: import
@ -284,7 +284,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 100.0]
coordinate: [48, 128.0]
rotation: 0
state: true
- name: m17_m17_decoder_0_0
@ -293,7 +293,7 @@ blocks:
affinity: ''
alias: ''
comment: ''
debug_ctrl: 'False'
debug_ctrl: 'True'
debug_data: 'True'
maxoutbuf: '0'
minoutbuf: '0'
@ -302,8 +302,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1264, 276.0]
rotation: 0
coordinate: [664, 296.0]
rotation: 180
state: enabled
- name: qtgui_eye_sink_x_0
id: qtgui_eye_sink_x
@ -398,8 +398,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [984, 172.0]
rotation: 0
coordinate: [920, 472.0]
rotation: 180
state: enabled
- name: qtgui_time_sink_x_0
id: qtgui_time_sink_x
@ -495,7 +495,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [2232, 180.0]
coordinate: [528, 392.0]
rotation: 0
state: disabled
- name: qtgui_time_sink_x_0_0
@ -592,8 +592,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1264, 172.0]
rotation: 0
coordinate: [664, 392.0]
rotation: 180
state: disabled
- name: rational_resampler_xxx_0_0
id: rational_resampler_xxx
@ -612,7 +612,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [232, 300.0]
coordinate: [304, 192.0]
rotation: 0
state: enabled
- name: rational_resampler_xxx_1
@ -632,7 +632,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [2072, 268.0]
coordinate: [208, 456.0]
rotation: 0
state: enabled
- name: root_raised_cosine_filter_0
@ -655,8 +655,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [776, 300.0]
rotation: 0
coordinate: [1176, 320.0]
rotation: 180
state: enabled
- name: soapy_rtlsdr_source_0
id: soapy_rtlsdr_source
@ -665,6 +665,7 @@ blocks:
agc: 'False'
alias: ''
bias: 'False'
bufflen: '16384'
center_freq: int(433475000*(1+ppm*1e-6))
comment: ''
dev_args: ''
@ -678,7 +679,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [32, 316.0]
coordinate: [48, 208.0]
rotation: 0
state: true
- name: vocoder_codec2_decode_ps_0
@ -694,8 +695,8 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1744, 292.0]
rotation: 0
coordinate: [80, 312.0]
rotation: 180
state: enabled
connections:
@ -720,4 +721,4 @@ connections:
metadata:
file_format: 1
grc_version: 3.10.7.0
grc_version: 3.10.10.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View File

@ -37,6 +37,7 @@ blocks:
id: variable_qtgui_entry
parameters:
comment: ''
entry_signal: editingFinished
gui_hint: qtgui_tab_widget_0@0:0,0
label: Destination callsign
type: string
@ -52,6 +53,7 @@ blocks:
id: variable_qtgui_entry
parameters:
comment: ''
entry_signal: editingFinished
gui_hint: qtgui_tab_widget_0@0:1,0
label: Frequency
type: int
@ -60,7 +62,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [384, 12.0]
coordinate: [432, 16.0]
rotation: 0
state: true
- name: ppm
@ -81,7 +83,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [536, 12.0]
coordinate: [584, 16.0]
rotation: 0
state: true
- name: pwr
@ -102,7 +104,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [704, 12.0]
coordinate: [752, 16.0]
rotation: 0
state: true
- name: rf_on
@ -119,7 +121,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [304, 108.0]
coordinate: [1040, 16.0]
rotation: 0
state: true
- name: samp_rate
@ -138,6 +140,7 @@ blocks:
id: variable_qtgui_entry
parameters:
comment: ''
entry_signal: editingFinished
gui_hint: qtgui_tab_widget_0@0:0,1
label: Source callsign
type: string
@ -162,7 +165,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [728, 300.0]
coordinate: [728, 240.0]
rotation: 0
state: true
- name: analog_sig_source_x_0
@ -185,7 +188,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [16, 444.0]
coordinate: [120, 384.0]
rotation: 0
state: enabled
- name: blocks_multiply_const_vxx_0
@ -203,7 +206,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [896, 300.0]
coordinate: [976, 240.0]
rotation: 0
state: true
- name: blocks_pack_k_bits_bb_0
@ -219,7 +222,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [232, 412.0]
coordinate: [336, 344.0]
rotation: 180
state: true
- name: blocks_vector_source_x_0_2
@ -240,7 +243,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 284.0]
coordinate: [8, 224.0]
rotation: 0
state: disabled
- name: blocks_vector_to_stream_0
@ -258,7 +261,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [384, 416.0]
coordinate: [488, 352.0]
rotation: 180
state: enabled
- name: iio_pluto_sink_0_0
@ -284,9 +287,9 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1216, 244.0]
coordinate: [1296, 180.0]
rotation: 0
state: enabled
state: disabled
- name: import_0
id: import
parameters:
@ -317,7 +320,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [304, 268.0]
coordinate: [336, 208.0]
rotation: 0
state: enabled
- name: note_0_2
@ -330,7 +333,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [48, 364.0]
coordinate: [160, 312.0]
rotation: 0
state: true
- name: note_0_2_1
@ -343,7 +346,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [16, 572.0]
coordinate: [0, 312.0]
rotation: 0
state: true
- name: qtgui_freq_sink_x_0_0
@ -424,7 +427,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1216, 420.0]
coordinate: [1304, 360.0]
rotation: 0
state: enabled
- name: qtgui_tab_widget_0
@ -458,7 +461,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [824, 12.0]
coordinate: [872, 16.0]
rotation: 0
state: true
- name: qtgui_time_sink_x_0_0
@ -555,7 +558,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [728, 372.0]
coordinate: [776, 304.0]
rotation: 0
state: enabled
- name: rational_resampler_xxx_0_0
@ -575,7 +578,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1040, 276.0]
coordinate: [1128, 216.0]
rotation: 0
state: true
- name: root_raised_cosine_filter_0
@ -598,9 +601,286 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [520, 260.0]
coordinate: [528, 200.0]
rotation: 0
state: true
- name: uhd_usrp_sink_0
id: uhd_usrp_sink
parameters:
affinity: ''
alias: ''
ant0: '"TX/RX"'
ant1: '"TX/RX"'
ant10: '"TX/RX"'
ant11: '"TX/RX"'
ant12: '"TX/RX"'
ant13: '"TX/RX"'
ant14: '"TX/RX"'
ant15: '"TX/RX"'
ant16: '"TX/RX"'
ant17: '"TX/RX"'
ant18: '"TX/RX"'
ant19: '"TX/RX"'
ant2: '"TX/RX"'
ant20: '"TX/RX"'
ant21: '"TX/RX"'
ant22: '"TX/RX"'
ant23: '"TX/RX"'
ant24: '"TX/RX"'
ant25: '"TX/RX"'
ant26: '"TX/RX"'
ant27: '"TX/RX"'
ant28: '"TX/RX"'
ant29: '"TX/RX"'
ant3: '"TX/RX"'
ant30: '"TX/RX"'
ant31: '"TX/RX"'
ant4: '"TX/RX"'
ant5: '"TX/RX"'
ant6: '"TX/RX"'
ant7: '"TX/RX"'
ant8: '"TX/RX"'
ant9: '"TX/RX"'
bw0: '0'
bw1: '0'
bw10: '0'
bw11: '0'
bw12: '0'
bw13: '0'
bw14: '0'
bw15: '0'
bw16: '0'
bw17: '0'
bw18: '0'
bw19: '0'
bw2: '0'
bw20: '0'
bw21: '0'
bw22: '0'
bw23: '0'
bw24: '0'
bw25: '0'
bw26: '0'
bw27: '0'
bw28: '0'
bw29: '0'
bw3: '0'
bw30: '0'
bw31: '0'
bw4: '0'
bw5: '0'
bw6: '0'
bw7: '0'
bw8: '0'
bw9: '0'
center_freq0: int(freq*(1+ppm*1e-6))
center_freq1: '0'
center_freq10: '0'
center_freq11: '0'
center_freq12: '0'
center_freq13: '0'
center_freq14: '0'
center_freq15: '0'
center_freq16: '0'
center_freq17: '0'
center_freq18: '0'
center_freq19: '0'
center_freq2: '0'
center_freq20: '0'
center_freq21: '0'
center_freq22: '0'
center_freq23: '0'
center_freq24: '0'
center_freq25: '0'
center_freq26: '0'
center_freq27: '0'
center_freq28: '0'
center_freq29: '0'
center_freq3: '0'
center_freq30: '0'
center_freq31: '0'
center_freq4: '0'
center_freq5: '0'
center_freq6: '0'
center_freq7: '0'
center_freq8: '0'
center_freq9: '0'
clock_rate: 0e0
clock_source0: ''
clock_source1: ''
clock_source2: ''
clock_source3: ''
clock_source4: ''
clock_source5: ''
clock_source6: ''
clock_source7: ''
comment: ''
dev_addr: '""'
dev_args: ''
gain0: '69'
gain1: '0'
gain10: '0'
gain11: '0'
gain12: '0'
gain13: '0'
gain14: '0'
gain15: '0'
gain16: '0'
gain17: '0'
gain18: '0'
gain19: '0'
gain2: '0'
gain20: '0'
gain21: '0'
gain22: '0'
gain23: '0'
gain24: '0'
gain25: '0'
gain26: '0'
gain27: '0'
gain28: '0'
gain29: '0'
gain3: '0'
gain30: '0'
gain31: '0'
gain4: '0'
gain5: '0'
gain6: '0'
gain7: '0'
gain8: '0'
gain9: '0'
gain_type0: default
gain_type1: default
gain_type10: default
gain_type11: default
gain_type12: default
gain_type13: default
gain_type14: default
gain_type15: default
gain_type16: default
gain_type17: default
gain_type18: default
gain_type19: default
gain_type2: default
gain_type20: default
gain_type21: default
gain_type22: default
gain_type23: default
gain_type24: default
gain_type25: default
gain_type26: default
gain_type27: default
gain_type28: default
gain_type29: default
gain_type3: default
gain_type30: default
gain_type31: default
gain_type4: default
gain_type5: default
gain_type6: default
gain_type7: default
gain_type8: default
gain_type9: default
len_tag_name: '""'
lo_export0: 'False'
lo_export1: 'False'
lo_export10: 'False'
lo_export11: 'False'
lo_export12: 'False'
lo_export13: 'False'
lo_export14: 'False'
lo_export15: 'False'
lo_export16: 'False'
lo_export17: 'False'
lo_export18: 'False'
lo_export19: 'False'
lo_export2: 'False'
lo_export20: 'False'
lo_export21: 'False'
lo_export22: 'False'
lo_export23: 'False'
lo_export24: 'False'
lo_export25: 'False'
lo_export26: 'False'
lo_export27: 'False'
lo_export28: 'False'
lo_export29: 'False'
lo_export3: 'False'
lo_export30: 'False'
lo_export31: 'False'
lo_export4: 'False'
lo_export5: 'False'
lo_export6: 'False'
lo_export7: 'False'
lo_export8: 'False'
lo_export9: 'False'
lo_source0: internal
lo_source1: internal
lo_source10: internal
lo_source11: internal
lo_source12: internal
lo_source13: internal
lo_source14: internal
lo_source15: internal
lo_source16: internal
lo_source17: internal
lo_source18: internal
lo_source19: internal
lo_source2: internal
lo_source20: internal
lo_source21: internal
lo_source22: internal
lo_source23: internal
lo_source24: internal
lo_source25: internal
lo_source26: internal
lo_source27: internal
lo_source28: internal
lo_source29: internal
lo_source3: internal
lo_source30: internal
lo_source31: internal
lo_source4: internal
lo_source5: internal
lo_source6: internal
lo_source7: internal
lo_source8: internal
lo_source9: internal
maxoutbuf: '0'
minoutbuf: '0'
nchan: '1'
num_mboards: '1'
otw: ''
samp_rate: samp_rate*16
sd_spec0: ''
sd_spec1: ''
sd_spec2: ''
sd_spec3: ''
sd_spec4: ''
sd_spec5: ''
sd_spec6: ''
sd_spec7: ''
show_lo_controls: 'False'
start_time: '-1.0'
stream_args: ''
stream_chans: '[]'
sync: sync
time_source0: ''
time_source1: ''
time_source2: ''
time_source3: ''
time_source4: ''
time_source5: ''
time_source6: ''
time_source7: ''
type: fc32
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [1344, 56.0]
rotation: 0
state: enabled
- name: vocoder_codec2_encode_sp_0
id: vocoder_codec2_encode_sp
parameters:
@ -614,7 +894,7 @@ blocks:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [208, 484.0]
coordinate: [456, 424.0]
rotation: 0
state: enabled
@ -628,10 +908,11 @@ connections:
- [m17_m17_coder_0_0, '0', root_raised_cosine_filter_0, '0']
- [rational_resampler_xxx_0_0, '0', iio_pluto_sink_0_0, '0']
- [rational_resampler_xxx_0_0, '0', qtgui_freq_sink_x_0_0, '0']
- [rational_resampler_xxx_0_0, '0', uhd_usrp_sink_0, '0']
- [root_raised_cosine_filter_0, '0', analog_frequency_modulator_fc_0_0, '0']
- [root_raised_cosine_filter_0, '0', qtgui_time_sink_x_0_0, '0']
- [vocoder_codec2_encode_sp_0, '0', blocks_vector_to_stream_0, '0']
metadata:
file_format: 1
grc_version: 3.10.7.0
grc_version: 3.10.10.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB