Thanks for sharing. I did have a full duplex single channel working. This started from a question of "can you run the exact same for a second channel so we can compare performance of different antennas". The simple approach I wanted for that was to just run two copies of the flowgraph. Based on the comments here I bumped the sink/source blocks to have two channels, set the subdevs (A:0 A:1) on both, and stream channels ([0, 1]) and then copied all the blocks in the graph to create a parallel path (different UDP source/sinks mapping back to the different channels). However when I try to run this, I get the below error. I created a simplified graph with two signal sources and two null sinks just to see if the UHD blocks were setup correctly and that graph runs. Any thoughts on what else to look at?
[ERROR] [0/Radio#0] Invalid channel configuration: This device does not support 1 TX x 2 RX or 2 TX x 1 RX configurations! thread[thread-per-block[28]: <block usrp_sink(11)>]: RuntimeError: Invalid channel configuration: This device does not support 1 TX x 2 RX or 2 TX x 1 RX configurations! Below are the sink/source blocks from the generated graph. 66 self.uhd_usrp_source_0 = uhd.usrp_source( 67 ",".join(("", "")), 68 uhd.stream_args( 69 cpu_format="fc32", 70 args='', 71 channels=[0,1], 72 ), 73 ) 74 self.uhd_usrp_source_0.set_subdev_spec('A:0 A:1', 0) 75 self.uhd_usrp_source_0.set_center_freq(center_freq, 0) 76 self.uhd_usrp_source_0.set_gain(rx_gain, 0) 77 self.uhd_usrp_source_0.set_antenna('RX2', 0) 78 self.uhd_usrp_source_0.set_bandwidth(500000, 0) 79 self.uhd_usrp_source_0.set_center_freq(center_freq, 1) 80 self.uhd_usrp_source_0.set_gain(rx_gain, 1) 81 self.uhd_usrp_source_0.set_antenna('RX2', 1) 82 self.uhd_usrp_source_0.set_bandwidth(500000, 1) 83 self.uhd_usrp_source_0.set_samp_rate(samp_rate) 84 self.uhd_usrp_source_0.set_time_unknown_pps(uhd.time_spec()) 85 self.uhd_usrp_sink_0 = uhd.usrp_sink( 86 ",".join(("", "")), 87 uhd.stream_args( 88 cpu_format="fc32", 89 args='', 90 channels=[0,1], 91 ), 92 '', 93 ) 94 self.uhd_usrp_sink_0.set_subdev_spec('A:0 A:1', 0) 95 self.uhd_usrp_sink_0.set_center_freq(center_freq, 0) 96 self.uhd_usrp_sink_0.set_gain(tx_gain, 0) 97 self.uhd_usrp_sink_0.set_antenna('TX/RX', 0) 98 self.uhd_usrp_sink_0.set_bandwidth(500000, 0) 99 self.uhd_usrp_sink_0.set_center_freq(center_freq, 1) 100 self.uhd_usrp_sink_0.set_gain(tx_gain, 1) 101 self.uhd_usrp_sink_0.set_antenna('TX/RX', 1) 102 self.uhd_usrp_sink_0.set_bandwidth(500000, 1) 103 self.uhd_usrp_sink_0.set_samp_rate(samp_rate) 104 self.uhd_usrp_sink_0.set_time_unknown_pps(uhd.time_spec()) Thanks! On Thu, Mar 25, 2021 at 2:07 PM Barry Duggan <ba...@dcsmail.net> wrote: > Hi Ben, > > As I understand it, the UHD Source and Sink blocks must be in the same > flowgraph. Otherwise, after you start one flowgraph, the other will say > it can't find the device, or some similar error. > > For how I solved the problem, see > > https://raw.githubusercontent.com/duggabe/gr-control/main/xmt_rcv_switch.grc > > Feel free to ask questions. > > Good luck, > -- > Barry Duggan KV4FV > https://github.com/duggabe > > On Thu, 25 Mar 2021 13:23:40 -0400, Ben Magistro <konce...@gmail.com> > wrote: > > This might be more of a GNURadio question, but is it possible to share a > single USRP device (E310 in this case) with two flowgraphs? What I mean is > the E310 has a "A" and "B" channel, could you use channel "A" with one > flowgraph and "B" with another or does everything have to be implemented in > a single flowgraph with the UHD sink/source configured to have two > channels? I'm guessing the latter due to how UHD interacts with the > hardware. > > Thanks! >
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com