Hi all,

I'm trying to specify exactly which channel to record from an RFNoC
flowgraph on the E310, but I cant seem to get this to work....

Typically, in non-RFNoC applications, or in the "legacy_compat" mode, you
can use the following options:

uhd_rx_cfile -r <sample rate> -f <frequency> -A TX/RX --spec=A:A
recording.c32
uhd_rx_cfile -r <sample rate> -f <frequency> -A RX2 --spec=A:A recording.c32
uhd_rx_cfile -r <sample rate> -f <frequency> -A TX/RX --spec=A:B
recording.c32
uhd_rx_cfile -r <sample rate> -f <frequency> -A RX2 --spec=A:B recording.c32

And each option, in turn, records data from a different receive port on the
E310.


But, I cant figure out the correct combination to get the rfnoc_radio
software to support recording on channel B. A few things I've tried:

1. Changing the rfnoc_radio dropdown to "Radio Select = B". This errors
like this:

Traceback (most recent call last):
  File "/home/root/test_rx.py", line 138, in <module>
    main()
  File "/home/root/test_rx.py", line 127, in main
    tb = top_block_cls(args=options.args, freq=options.freq,
gain=options.gain, rate=options.rate)
  File "/home/root/test_rx.py", line 52, in __init__
    1, -1
  File "/usr/lib/python2.7/site-packages/ettus/ettus_swig.py", line 1980,
in make
    return _ettus_swig.rfnoc_radio_make(*args, **kwargs)
RuntimeError: Cannot find a block for ID: Radio_1
-- Loading FPGA image: /boot/system_top.bit... done


2. Adding a FIFO to the FPGA on the second channel, and "dropping" the
samples from the first channel.
[image: Inline image 1]

But this fails like so:

-- [0/FIFO_0] source_node_ctrl::set_rx_streamer() 0 -> 1
-- [0/Radio_0] radio_ctrl_impl::set_rx_streamer() 1 -> 1
-- [0/Radio_0] e3xx_radio_ctrl_impl::_update_enables()
-- [0/Radio_0] e3xx_radio_ctrl_impl::_update_gpio_state()
-- [Device3] updating RX streamer to RX Terminator 0
--   New tick_rate == 250000  New samp_rate == 250000 New scaling ==
3.05185e-05
-- [0/FIFO_0] source_block_ctrl_base::issue_stream_cmd()
-- [0/Radio_0] radio_ctrl_impl::issue_stream_cmd() 0 a
-- [0/Radio_0] radio_ctrl_impl::issue_stream_cmd() called on inactive
channel. Skipping.
timeout on chan 0
timeout on chan 0

And no data is recorded.

3. I also tried (foolishly) manually editing the generated python to
connect the File Sink to port 1 of the rfnoc_radio, rather than port 0.

I used this flowgraph:
[image: Inline image 3]
And then I manually changed the following lines:

self.connect((self.uhd_rfnoc_streamer_radio_0, 0),
(self.blocks_file_sink_0_0, 0))
=becomes==>
self.connect((self.uhd_rfnoc_streamer_radio_0, 1),
(self.blocks_file_sink_0_0, 0))

I was hopeful that port 1 actually existed and was initialized correctly in
UHD, but alas, port 1 clearly does not exist for me to attach the file sink
to:

Traceback (most recent call last):
  File "/home/root/test_rx.py", line 138, in <module>
    main()
  File "/home/root/test_rx.py", line 128, in main
    tb.start()
  File "/usr/lib/python2.7/site-packages/gnuradio/gr/top_block.py", line
109, in start
    top_block_start_unlocked(self._impl, max_noutput_items)
  File "/usr/lib/python2.7/site-packages/gnuradio/gr/runtime_swig.py", line
3671, in top_block_start_unlocked
    return _runtime_swig.top_block_start_unlocked(*args, **kwargs)
RuntimeError: rfnoc_radio(1): missing connection from output port 0
-- Loading FPGA image: /boot/system_top.bit... done


I cant seem to figure this out.. Any suggestions?? Am I missing something
obvious, or is RFNoC missing this support?

(by the way, I am admittedly still behind on my UHD version. So perhaps
there's updates that resolve this issue recently?)

Thanks!
EJ
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to