Thanks. At first blush this looks like it should work to me. I'll try it
out here.

Nick

On Thu, Dec 14, 2017 at 11:37 AM Jack Ziegler <jacka...@gmail.com> wrote:

> *Trying to do loopback with a rfnoc rx radio connect to  a rfnoc tx radio.
> (running at 56e6 Msps with the E310/E312).  This is with no host connections
> *third gen E310
> * [UHDlinux; GNU C++ version 4.9.2; Boost_105700;
> UHD_4.0.0.rfnoc-devel-369-g1908672f]
> , with modifications from the "stupid rfnoc tricks webpage"
> *python is listed below, note the typed in changes (extra from the grc
> generation) as reccomended by the "stupid rfnoc tricks webpage"
>
>         stream_cmd =
> uhd.stream_cmd_t(uhd.stream_cmd_t.STREAM_MODE_START_CONTINUOUS)
>         self.uhd_rfnoc_streamer_radio_0_0.issue_stream_cmd(stream_cmd)
>         self.uhd_rfnoc_streamer_radio_0_0.set_tx_streamer(True,0)
>
> *expect to see both the rx2 and trx lights on and the signal being
> transmitted
> *The flowgraph runs with output in the terminal as one would expect, but
> there are no lights on the rx2 and trx and no signal transmitted
>
> Also note that I have tried rebuilding the bitstream file with this change
> making .at_reset(1'b1) now 1'b0
>
>  setting_reg #(.my_addr(SR_RX_CTRL_OUTPUT_FORMAT), .width(1), 
> .at_reset(1'b0)) sr_output_format (
>  .clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr),
>  .in(set_data),.out(use_timestamps),.changed());
>
> and get the same result (otherwise I don't specify the fpga image and use
> the default one)
>
> this is the output
> "
> [INFO] [UHDlinux; GNU C++ version 4.9.2; Boost_105700;
> UHD_4.0.0.rfnoc-devel-369-g1908672f]
> [INFO] [E300] Loading FPGA image: /home/root/e300_thres_0time.bit...
> [INFO] [E300] FPGA image loaded
> [INFO] [E300] Initializing core control (global registers)...
>
> [INFO] [E300] Performing register loopback test...
> [INFO] [E300] Register loopback test passed
> [INFO] [RFNOC RADIO] Register loopback test passed
> [INFO] [RFNOC RADIO] Register loopback test passed
> [INFO] [AD936X] Performing CODEC loopback test...
> [INFO] [AD936X] CODEC loopback test passed
> [INFO] [AD936X] Performing CODEC loopback test...
> [INFO] [AD936X] CODEC loopback test passed
> [INFO] [CORES] Performing timer loopback test...
> [INFO] [CORES] Timer loopback test passed
> [INFO] [CORES] Performing timer loopback test...
> [INFO] [CORES] Timer loopback test passed
> [INFO] [CORES] Performing timer loopback test...
> [INFO] [CORES] Timer loopback test passed
> [INFO] [RFNOC] Assuming max packet size for 0/Radio_0
>
> "
> And the lights on e310 don't turn on....
>
>
>
>
> Thanks
>
> Jack
>
> #!/usr/bin/env python2
> # -*- coding: utf-8 -*-
> ##################################################
> # GNU Radio Python Flow Graph
> # Title: Radioradioonly
> # Generated: Tue Dec  5 13:40:36 2017
> ##################################################
>
> if __name__ == '__main__':
>     import ctypes
>     import sys
>     if sys.platform.startswith('linux'):
>         try:
>             x11 = ctypes.cdll.LoadLibrary('libX11.so')
>             x11.XInitThreads()
>         except:
>             print "Warning: failed to XInitThreads()"
>
> from PyQt4 import Qt
> from gnuradio import eng_notation
> from gnuradio import gr
> from gnuradio import uhd
> from gnuradio.eng_option import eng_option
> from gnuradio.filter import firdes
> from gnuradio.qtgui import Range, RangeWidget
> from optparse import OptionParser
> import ettus
> import sys
> from gnuradio import qtgui
>
>
> class radioradioonly(gr.top_block, Qt.QWidget):
>
>     def __init__(self):
>         gr.top_block.__init__(self, "Radioradioonly")
>         Qt.QWidget.__init__(self)
>         self.setWindowTitle("Radioradioonly")
>         qtgui.util.check_set_qss()
>         try:
>             self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
>         except:
>             pass
>         self.top_scroll_layout = Qt.QVBoxLayout()
>         self.setLayout(self.top_scroll_layout)
>         self.top_scroll = Qt.QScrollArea()
>         self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
>         self.top_scroll_layout.addWidget(self.top_scroll)
>         self.top_scroll.setWidgetResizable(True)
>         self.top_widget = Qt.QWidget()
>         self.top_scroll.setWidget(self.top_widget)
>         self.top_layout = Qt.QVBoxLayout(self.top_widget)
>         self.top_grid_layout = Qt.QGridLayout()
>         self.top_layout.addLayout(self.top_grid_layout)
>
>         self.settings = Qt.QSettings("GNU Radio", "radioradioonly")
>         self.restoreGeometry(self.settings.value("geometry").toByteArray())
>
>
>         ##################################################
>         # Variables
>         ##################################################
>         self.device3 = variable_uhd_device3_0 =
> ettus.device3(uhd.device_addr_t( ",".join(('',
> "fpga=/home/root/e300_thres_0time.bit")) ))
>         self.txgain = txgain = 40
>         self.samp_rate = samp_rate = 8e6
>         self.rxgain = rxgain = 80
>         self.center_f = center_f = 2.4e9
>
>         ##################################################
>         # Blocks
>         ##################################################
>         self._rxgain_range = Range(1., 85, .0001, 40, 200)
>         self._rxgain_win = RangeWidget(self._rxgain_range,
> self.set_rxgain, 'rxgain', "counter_slider", float)
>         self.top_layout.addWidget(self._rxgain_win)
>         self._center_f_range = Range(2.4e9, 2.55e9, 1e4, 2.4e9, 200)
>         self._center_f_win = RangeWidget(self._center_f_range,
> self.set_center_f, 'center_f', "counter_slider", float)
>         self.top_layout.addWidget(self._center_f_win)
>         self.uhd_rfnoc_streamer_radio_0_0 = ettus.rfnoc_radio(
>             self.device3,
>             uhd.stream_args( # Tx Stream Args
>                 cpu_format="fc32",
>                 otw_format="sc16",
>         args='',
>             ),
>             uhd.stream_args( # Rx Stream Args
>                 cpu_format="fc32",
>                 otw_format="sc16",
>                 args="", # empty
>             ),
>             0, -1
>         )
>         self.uhd_rfnoc_streamer_radio_0_0.set_rate(samp_rate)
>         for i in xrange(1):
>             self.uhd_rfnoc_streamer_radio_0_0.set_tx_freq(center_f, i)
>             self.uhd_rfnoc_streamer_radio_0_0.set_tx_gain(rxgain, i)
>             self.uhd_rfnoc_streamer_radio_0_0.set_tx_dc_offset(True, i)
>
>         self.uhd_rfnoc_streamer_radio_0_0.set_tx_antenna("TX/RX", 0)
>
>         self.uhd_rfnoc_streamer_radio_0 = ettus.rfnoc_radio(
>             self.device3,
>             uhd.stream_args( # Tx Stream Args
>                 cpu_format="fc32",
>                 otw_format="sc16",
>                 args="", # empty
>             ),
>             uhd.stream_args( # Rx Stream Args
>                 cpu_format="fc32",
>                 otw_format="sc16",
>         args='',
>             ),
>             0, -1
>         )
>         self.uhd_rfnoc_streamer_radio_0.set_rate(samp_rate)
>         for i in xrange(1):
>             self.uhd_rfnoc_streamer_radio_0.set_rx_freq(2.4e9, i)
>             self.uhd_rfnoc_streamer_radio_0.set_rx_gain(rxgain, i)
>             self.uhd_rfnoc_streamer_radio_0.set_rx_dc_offset(True, i)
>
>         self.uhd_rfnoc_streamer_radio_0.set_rx_bandwidth(56e6, 0)
>
>         self.uhd_rfnoc_streamer_radio_0.set_rx_antenna("RX2", 0)
>
>         self._txgain_range = Range(1., 85, .0001, 40, 200)
>         self._txgain_win = RangeWidget(self._txgain_range,
> self.set_txgain, 'txgain', "counter_slider", float)
>         self.top_layout.addWidget(self._txgain_win)
>         self._thres_range = Range(.0001, 33000., .0001, 1., 200)
>         self.top_layout.addWidget(self._thres_win)
>
>
>
>         ##################################################
>         # Connections
>         ##################################################
>
> self.device3.connect(self.uhd_rfnoc_streamer_radio_0.get_block_id(), 0,
> self.uhd_rfnoc_streamer_radio_0_0.get_block_id(), 0)
>
>         stream_cmd =
> uhd.stream_cmd_t(uhd.stream_cmd_t.STREAM_MODE_START_CONTINUOUS)
>         self.uhd_rfnoc_streamer_radio_0_0.issue_stream_cmd(stream_cmd)
>         self.uhd_rfnoc_streamer_radio_0_0.set_tx_streamer(True,0)
>
>
>     def closeEvent(self, event):
>         self.settings = Qt.QSettings("GNU Radio", "radioradioonly")
>         self.settings.setValue("geometry", self.saveGeometry())
>         event.accept()
>
>     def get_variable_uhd_device3_0(self):
>         return self.variable_uhd_device3_0
>
>     def set_variable_uhd_device3_0(self, variable_uhd_device3_0):
>         self.variable_uhd_device3_0 = variable_uhd_device3_0
>
>     def get_txgain(self):
>         return self.txgain
>
>     def set_txgain(self, txgain):
>         self.txgain = txgain
>
>     def get_thres(self):
>         return self.thres
>
>     def set_thres(self, thres):
>         self.thres = thres
>
>     def get_samp_rate(self):
>         return self.samp_rate
>
>     def set_samp_rate(self, samp_rate):
>         self.samp_rate = samp_rate
>         self.uhd_rfnoc_streamer_radio_0_0.set_rate(self.samp_rate)
>         self.uhd_rfnoc_streamer_radio_0.set_rate(self.samp_rate)
>
>     def get_rxgain(self):
>         return self.rxgain
>
>     def set_rxgain(self, rxgain):
>         self.rxgain = rxgain
>         for i in xrange(1):
>             self.uhd_rfnoc_streamer_radio_0_0.set_tx_gain(self.rxgain, i)
>         for i in xrange(1):
>             self.uhd_rfnoc_streamer_radio_0.set_rx_gain(self.rxgain, i)
>
>     def get_center_f(self):
>         return self.center_f
>
>     def set_center_f(self, center_f):
>         self.center_f = center_f
>         for i in xrange(1):
>             self.uhd_rfnoc_streamer_radio_0_0.set_tx_freq(self.center_f, i)
>
>
> def main(top_block_cls=radioradioonly, options=None):
>
>     from distutils.version import StrictVersion
>     if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
>         style = gr.prefs().get_string('qtgui', 'style', 'raster')
>         Qt.QApplication.setGraphicsSystem(style)
>     qapp = Qt.QApplication(sys.argv)
>
>     tb = top_block_cls()
>     tb.start()
>     tb.show()
>
>     def quitting():
>         tb.stop()
>         tb.wait()
>     qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
>     qapp.exec_()
>
>
> if __name__ == '__main__':
>     main()
>
> On Thu, Nov 30, 2017 at 5:23 PM, Nick Foster <bistrom...@gmail.com> wrote:
>
>> You need to help us before we can help you. Can you tell me:
>>
>> * What you're actually trying to do
>> * Your hardware setup
>> * Your UHD version
>> * Your flowgraph
>> * The results you expect
>> * The results you actually observe
>>
>> Then maybe we can help.
>>
>> Nick
>>
>> On Thu, Nov 30, 2017 at 4:44 PM Jack Ziegler <jacka...@gmail.com> wrote:
>>
>>> I tried doing the changes in uhd, and gr-ettus.  I also tried changing
>>> that register value to 0 for the fpga and making a new e300.bit file.
>>> Any recommendations on how to troubleshoot?   Also as I referenced, I'm
>>> doing this on a new e312 usrp.
>>>
>>> Thanks,
>>> Jack
>>>
>>> On Wed, Nov 29, 2017 at 10:36 PM, Nick Foster <bistrom...@gmail.com>
>>> wrote:
>>>
>>>> It should still apply. Is there something specific you're having
>>>> trouble with?
>>>>
>>>> On Wed, Nov 29, 2017, 10:06 PM Jack Ziegler via USRP-users <
>>>> usrp-users@lists.ettus.com> wrote:
>>>>
>>>>> Has anyone recently tried rfnoc loopback?
>>>>> I tried following these directions:
>>>>> https://corvid.io/2017/04/22/stupid-rfnoc-tricks-loopback/
>>>>> they are dated from last April.  Not sure if I missed a step or maybe
>>>>> there is something new in gr-ettus and uhd-devel?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Jack Ziegler
>>>>> _______________________________________________
>>>>> USRP-users mailing list
>>>>> USRP-users@lists.ettus.com
>>>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>>>>
>>>>
>>>
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to