actually try this one. I think I had the tx and rx mixed up. Neither still work though.
#!/usr/bin/env python2 # -*- coding: utf-8 -*- ################################################## # GNU Radio Python Flow Graph # Title: Rfnoc Sin Radio E310 # Generated: Thu Sep 21 14:12:08 2017 ################################################## 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 optparse import OptionParser import ettus class RFNoc_Radio_Radio_e310(gr.top_block): def __init__(self): gr.top_block.__init__(self, "Rfnoc Radio Radio E310") ################################################## # Variables ################################################## self.samp_rate = samp_rate = 2e6 self.device3 = variable_uhd_device3_0 = ettus.device3(uhd.device_addr_t( ",".join(('type=e3x0', "fpga=/home/root/e300_siggen_ddc.bit")) )) self.up_rate = up_rate = 12e6 self.freq = freq = samp_rate/10 ################################################## # Blocks ################################################## self.uhd_rfnoc_streamer_radio_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.set_rate(up_rate) for i in xrange(1): self.uhd_rfnoc_streamer_radio_0.set_tx_freq(1.0e9, i) self.uhd_rfnoc_streamer_radio_0.set_tx_gain(20, i) self.uhd_rfnoc_streamer_radio_0.set_tx_dc_offset(True, i) self.uhd_rfnoc_streamer_radio_0.set_tx_antenna("TX/RX", 0) self.uhd_rfnoc_streamer_radio_1 = 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_1.set_rate(samp_rate) for i in xrange(1): self.uhd_rfnoc_streamer_radio_1.set_rx_freq(2.4e9, i) self.uhd_rfnoc_streamer_radio_1.set_rx_gain(40, i) self.uhd_rfnoc_streamer_radio_1.set_rx_dc_offset(True, i) self.uhd_rfnoc_streamer_radio_1.set_rx_bandwidth(56e6, 0) self.uhd_rfnoc_streamer_radio_1.set_rx_antenna("RX2", 0) ################################################## # Connections ################################################## self.device3.connect(self.uhd_rfnoc_streamer_radio_1.get_block_id(), 0, self.uhd_rfnoc_streamer_radio_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.issue_stream_cmd(stream_cmd) self.uhd_rfnoc_streamer_radio_1.issue_stream_cmd(stream_cmd) self.uhd_rfnoc_streamer_radio_0.set_tx_streamer(True,0) self.uhd_rfnoc_streamer_radio_1.set_rx_streamer(True,0) def get_samp_rate(self): return self.samp_rate def set_samp_rate(self, samp_rate): self.samp_rate = samp_rate self.set_freq(self.samp_rate/10) 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_up_rate(self): return self.up_rate def set_up_rate(self, up_rate): self.up_rate = up_rate self.uhd_rfnoc_streamer_radio_0.set_rate(self.up_rate) def main(top_block_cls=RFNoc_Radio_Radio_e310, options=None): tb = top_block_cls() #tb.uhd_rfnoc_streamer_radio_0.set_tx_streamer(True,0) #tb.uhd_rfnoc_streamer_radio_1.set_rx_streamer(True,0) tb.start() #tb.uhd_rfnoc_streamer_radio_0.set_tx_streamer(True,0) #tb.uhd_rfnoc_streamer_radio_1.set_rx_streamer(True,0) try: raw_input('Press Enter to quit: ') except EOFError: pass tb.stop() tb.wait() if __name__ == '__main__': main() On Thu, Dec 14, 2017 at 11:41 AM, Nick Foster <bistrom...@gmail.com> wrote: > 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