parameters:
author: Johannes Demel
catch_exceptions: 'True'
category: '[GRC Hier Blocks]'
cmake_opt: ''
comment: ''
copyright: ''
description: ''
gen_cmake: 'On'
gen_linking: dynamic
generate_options: qt_gui
hier_block_src_path: '.:'
id: multi_usrp_test
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: Multiple USRP test
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 8]
rotation: 0
state: enabled
blocks:
- name: device_addr
id: variable
parameters:
comment: ''
value: '"addr0=192.168.20.213,addr1=192.168.21.218"'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [96, 100]
rotation: 0
state: disabled
- name: device_addr
id: variable
parameters:
comment: ''
value: '"addr0=192.168.20.213"'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [309, 214]
rotation: 0
state: enabled
- name: device_args
id: variable
parameters:
comment: ''
value: '"master_clock_rate=122.88e6,clock_source=external,time_source=external"'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [98, 163]
rotation: 0
state: enabled
- name: freq
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: 2,0,1,1
label: Carrier Frequency
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: 2.4e9
step: '1'
stop: 3.8e9
value: 3.75e9
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [431, 13]
rotation: 0
state: enabled
- name: rgain
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: 3,0,1,1
label: RX gain
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '1'
stop: '75'
value: '55'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [580, 13]
rotation: 0
state: enabled
- name: samp_rate
id: variable
parameters:
comment: ''
value: 30.72e6
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [184, 12]
rotation: 0
state: enabled
- name: tgain
id: variable_qtgui_range
parameters:
comment: ''
gui_hint: 4,0,1,1
label: TX gain
min_len: '200'
orient: QtCore.Qt.Horizontal
rangeType: float
start: '0'
step: '1'
stop: '75'
value: '55'
widget: counter_slider
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [711, 12]
rotation: 0
state: enabled
- name: analog_sig_source_x_0
id: analog_sig_source_x
parameters:
affinity: ''
alias: ''
amp: '.7'
comment: ''
freq: 1.e6
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
phase: '0'
samp_rate: samp_rate
type: complex
waveform: analog.GR_COS_WAVE
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [674, 362]
rotation: 0
state: enabled
- name: analog_sig_source_x_0_0
id: analog_sig_source_x
parameters:
affinity: ''
alias: ''
amp: '.7'
comment: ''
freq: 4.e6
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
phase: '0'
samp_rate: samp_rate
type: complex
waveform: analog.GR_COS_WAVE
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [678, 491]
rotation: 0
state: enabled
- 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: samp_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: freq
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: '2'
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: [367, 412]
rotation: 0
state: enabled
- name: qtgui_time_sink_synced_stream
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: 'True'
gui_hint: 0, 0, 2,3
label1: ''
label10: ''
label2: ''
label3: ''
label4: ''
label5: ''
label6: ''
label7: ''
label8: ''
label9: ''
legend: 'False'
marker1: '-1'
marker10: '-1'
marker2: '-1'
marker3: '-1'
marker4: '-1'
marker5: '-1'
marker6: '-1'
marker7: '-1'
marker8: '-1'
marker9: '-1'
name: '"synchronization"'
nconnections: '2'
size: int(samp_rate / 500) * 2
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: 30e-6
tr_level: '0.05'
tr_mode: qtgui.TRIG_MODE_FREE
tr_slope: qtgui.TRIG_SLOPE_POS
tr_tag: '"frame_start"'
type: complex
update_time: '0.4'
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: [487, 630]
rotation: 0
state: disabled
- name: uhd_usrp_sink_1
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: freq
center_freq1: freq
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: 122.88e6
clock_source0: external
clock_source1: ''
clock_source2: ''
clock_source3: ''
clock_source4: ''
clock_source5: ''
clock_source6: ''
clock_source7: ''
comment: ''
dev_addr: device_addr
dev_args: device_args
gain0: tgain
gain1: tgain
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: '2'
num_mboards: '1'
otw: ''
samp_rate: samp_rate
sd_spec0: ''
sd_spec1: ''
sd_spec2: ''
sd_spec3: ''
sd_spec4: ''
sd_spec5: ''
sd_spec6: ''
sd_spec7: ''
show_lo_controls: 'False'
stream_args: ''
stream_chans: '[2,3]'
sync: sync
time_source0: external
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: [1040, 300]
rotation: 0
state: enabled
- name: uhd_usrp_source_1
id: uhd_usrp_source
parameters:
affinity: ''
alias: ''
ant0: '"RX2"'
ant1: '"RX2"'
ant10: '"RX2"'
ant11: '"RX2"'
ant12: '"RX2"'
ant13: '"RX2"'
ant14: '"RX2"'
ant15: '"RX2"'
ant16: '"RX2"'
ant17: '"RX2"'
ant18: '"RX2"'
ant19: '"RX2"'
ant2: '"RX2"'
ant20: '"RX2"'
ant21: '"RX2"'
ant22: '"RX2"'
ant23: '"RX2"'
ant24: '"RX2"'
ant25: '"RX2"'
ant26: '"RX2"'
ant27: '"RX2"'
ant28: '"RX2"'
ant29: '"RX2"'
ant3: '"RX2"'
ant30: '"RX2"'
ant31: '"RX2"'
ant4: '"RX2"'
ant5: '"RX2"'
ant6: '"RX2"'
ant7: '"RX2"'
ant8: '"RX2"'
ant9: '"RX2"'
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: freq
center_freq1: freq
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: 122.88e6
clock_source0: external
clock_source1: ''
clock_source2: ''
clock_source3: ''
clock_source4: ''
clock_source5: ''
clock_source6: ''
clock_source7: ''
comment: ''
dc_offs_enb0: '""'
dc_offs_enb1: '""'
dc_offs_enb10: '""'
dc_offs_enb11: '""'
dc_offs_enb12: '""'
dc_offs_enb13: '""'
dc_offs_enb14: '""'
dc_offs_enb15: '""'
dc_offs_enb16: '""'
dc_offs_enb17: '""'
dc_offs_enb18: '""'
dc_offs_enb19: '""'
dc_offs_enb2: '""'
dc_offs_enb20: '""'
dc_offs_enb21: '""'
dc_offs_enb22: '""'
dc_offs_enb23: '""'
dc_offs_enb24: '""'
dc_offs_enb25: '""'
dc_offs_enb26: '""'
dc_offs_enb27: '""'
dc_offs_enb28: '""'
dc_offs_enb29: '""'
dc_offs_enb3: '""'
dc_offs_enb30: '""'
dc_offs_enb31: '""'
dc_offs_enb4: '""'
dc_offs_enb5: '""'
dc_offs_enb6: '""'
dc_offs_enb7: '""'
dc_offs_enb8: '""'
dc_offs_enb9: '""'
dev_addr: device_addr
dev_args: device_args
gain0: rgain
gain1: rgain
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
iq_imbal_enb0: '""'
iq_imbal_enb1: '""'
iq_imbal_enb10: '""'
iq_imbal_enb11: '""'
iq_imbal_enb12: '""'
iq_imbal_enb13: '""'
iq_imbal_enb14: '""'
iq_imbal_enb15: '""'
iq_imbal_enb16: '""'
iq_imbal_enb17: '""'
iq_imbal_enb18: '""'
iq_imbal_enb19: '""'
iq_imbal_enb2: '""'
iq_imbal_enb20: '""'
iq_imbal_enb21: '""'
iq_imbal_enb22: '""'
iq_imbal_enb23: '""'
iq_imbal_enb24: '""'
iq_imbal_enb25: '""'
iq_imbal_enb26: '""'
iq_imbal_enb27: '""'
iq_imbal_enb28: '""'
iq_imbal_enb29: '""'
iq_imbal_enb3: '""'
iq_imbal_enb30: '""'
iq_imbal_enb31: '""'
iq_imbal_enb4: '""'
iq_imbal_enb5: '""'
iq_imbal_enb6: '""'
iq_imbal_enb7: '""'
iq_imbal_enb8: '""'
iq_imbal_enb9: '""'
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: '2'
num_mboards: '1'
otw: ''
rx_agc0: Default
rx_agc1: Default
rx_agc10: Default
rx_agc11: Default
rx_agc12: Default
rx_agc13: Default
rx_agc14: Default
rx_agc15: Default
rx_agc16: Default
rx_agc17: Default
rx_agc18: Default
rx_agc19: Default
rx_agc2: Default
rx_agc20: Default
rx_agc21: Default
rx_agc22: Default
rx_agc23: Default
rx_agc24: Default
rx_agc25: Default
rx_agc26: Default
rx_agc27: Default
rx_agc28: Default
rx_agc29: Default
rx_agc3: Default
rx_agc30: Default
rx_agc31: Default
rx_agc4: Default
rx_agc5: Default
rx_agc6: Default
rx_agc7: Default
rx_agc8: Default
rx_agc9: Default
samp_rate: samp_rate
sd_spec0: ''
sd_spec1: ''
sd_spec2: ''
sd_spec3: ''
sd_spec4: ''
sd_spec5: ''
sd_spec6: ''
sd_spec7: ''
show_lo_controls: 'False'
stream_args: ''
stream_chans: '[0,1]'
sync: sync
time_source0: external
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: [99, 308]
rotation: 0
state: true
connections:
- [analog_sig_source_x_0, '0', uhd_usrp_sink_1, '0']
- [analog_sig_source_x_0_0, '0', uhd_usrp_sink_1, '1']
- [uhd_usrp_source_1, '0', qtgui_freq_sink_x_0, '0']
- [uhd_usrp_source_1, '1', qtgui_freq_sink_x_0, '1']
metadata:
file_format: 1
Hi,
yes, I just attach a grc file for GR 3.9 that I use to test things.
It works if I specify `addr=...` or `addr0=...` with one device. If I
switch to 2 devices `addr=....,addr1=...` it fails.
It seems like UHD tries to initialize the devices twice.
----
[INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100;
UHD_3.15.0.0-62-g7a3f1516
[INFO] [MPMD] Initializing 2 device(s) in parallel with args:
mgmt_addr0=192.168.20.213,type0=n3xx,product0=n310,serial0=319841B,claimed0=False,mgmt_addr1=192.168.21.218,type1=n3xx,product1=n310,serial1=3180AF3,claimed1=False,addr0=192.168.20.213,addr1=192.168.21.218,master_clock_rate=122.88e6,clock_source=external,time_source=external
[INFO] [MPM.PeriphManager] init() called with device args
`time_source=external,clock_source=external,master_clock_rate=122.88e6,product=n310,mgmt_addr=192.168.20.213'.
[INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
[INFO] [MPM.PeriphManager] init() called with device args
`time_source=external,product=n310,master_clock_rate=122.88e6,clock_source=external,mgmt_addr=192.168.21.218'.
[INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000011312)
[...]
[INFO] [1/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [MULTI_USRP] 1) catch time transition at pps edge
[INFO] [MULTI_USRP] 2) set times next pps (synchronously)
[INFO] [MPMD] Initializing 2 device(s) in parallel with args:
mgmt_addr0=192.168.20.213,type0=n3xx,product0=n310,serial0=319841B,claimed0=True,mgmt_addr1=192.168.21.218,type1=n3xx,product1=n310,serial1=3180AF3,claimed1=True,addr0=192.168.20.213,addr1=192.168.21.218,master_clock_rate=122.88e6,clock_source=external,time_source=external
[ERROR] [RPC] Someone tried to claim this device again (From: 192.168.20.34)
----
If I use only one device, it looks like this:
----
[INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100;
UHD_3.15.0.0-62-g7a3f1516
[INFO] [MPMD] Initializing 1 device(s) in parallel with args:
mgmt_addr=192.168.20.213,type=n3xx,product=n310,serial=319841B,claimed=False,addr0=192.168.20.213,master_clock_rate=122.88e6,clock_source=external,time_source=external
[INFO] [MPM.PeriphManager] init() called with device args
`time_source=external,clock_source=external,master_clock_rate=122.88e6,product=n310,mgmt_addr=192.168.20.213'.
[INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
[...]
[INFO] [0/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [MULTI_USRP] 1) catch time transition at pps edge
[INFO] [MULTI_USRP] 2) set times next pps (synchronously)
[INFO] [MULTI_USRP] 1) catch time transition at pps edge
[INFO] [MULTI_USRP] 2) set times next pps (synchronously)
----
The last 4 lines are suspicious because they indicate that
synchronization is performed twice. Also, most of the time during start
up is spend there.
Anyways, I attached my MWE flowgraph. I'd be happy if you could tell me
how to fix my issue.
Cheers
Johannes
On 10.02.21 22:52, Marcus D Leech wrote:
> What happens if you just use a single N310 for both TX and RX?
>
> Just trying to figure out where the problem might be. Also please share a minimal flow graph that shows the problem.
>
> Sent from my iPhone
>
>> On Feb 10, 2021, at 1:25 PM, Johannes Demel <demel@ant.uni-bremen.de> wrote:
>>
>> Hi all,
>>
>> I have a flowgraph where I want to use two N310s for TX and RX.
>>
>> If I run `benchmark_rate`, everything works fine.
>>
>> ```
>> ./benchmark_rate --pps external --ref external --rx_channels "0,4" --tx_channels "2,6" --rx_rate 61.44e6 --tx_rate 61.44e6 --args="addr0=192.168.21.218,addr1=192.168.20.213,master_clock_rate=122.88e6
>> ```
>>
>> It's important that I use one RX and one TX channel each on those USRPs.
>>
>> But it seems like I can't do that with
>>
>> ```
>> [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_3.15.0.0-62-g7a3f1516
>> [INFO] [MPMD] Initializing 2 device(s) in parallel with args: mgmt_addr0=192.168.20.213,type0=n3xx,product0=n310,serial0=319841B,claimed0=False,mgmt_addr1=192.168.21.218,type1=n3xx,product1=n310,serial1=3180AF3,claimed1=False,addr0=192.168.20.213,addr1=192.168.21.218,master_clock_rate=122.88e6,clock_source=external,time_source=external
>> [INFO] [MPM.PeriphManager] init() called with device args `time_source=external,clock_source=external,master_clock_rate=122.88e6,product=n310,mgmt_addr=192.168.20.213'.
>> [INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
>> [INFO] [MPM.PeriphManager] init() called with device args `time_source=external,product=n310,master_clock_rate=122.88e6,clock_source=external,mgmt_addr=192.168.21.218'.
>>
>> [...]
>>
>> [INFO] [MULTI_USRP] 1) catch time transition at pps edge
>> [INFO] [MULTI_USRP] 2) set times next pps (synchronously)
>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.21.218,type=n3xx,product=n310,serial=3180AF3,claimed=True,addr=192.168.21.218,master_clock_rate=122.88e6,clock_source=external,time_source=external
>> [ERROR] [RPC] Someone tried to claim this device again (From: 192.168.21.34)
>> [WARNING] [MPM.RPCServer] Someone tried to claim this device again (From: 192.168.21.34)
>> Traceback (most recent call last):
>> File "gr-tacmac/examples/usrp_multi_test.py", line 360, in <module>
>> main()
>> File "gr-tacmac/examples/usrp_multi_test.py", line 338, in main
>> tb = top_block_cls()
>> File "gr-tacmac/examples/usrp_multi_test.py", line 133, in __init__
>> self.uhd_usrp_sink_0 = uhd.usrp_sink(
>> RuntimeError: RuntimeError: Error during RPC call to `claim'. Error message: Someone tried to claim this device again (From: 192.168.21.34)
>> ```
>>
>> I can share the example flowgraph. It's just a USRP source connected to a Qt time sink (and a Qt Freq sink). And a USRP sink that's fed by two Signal sources.
>>
>> It works if I only have either a USRP sink or USRP source. But in case I try to use both. The configuration breaks with the above error. How do I fix this?
>>
>> Cheers
>> Johannes
>>
No comments:
Post a Comment