Hi Mike,

Did you cross-compile your RFNoC OOT module and install it to the E310?

Jonathon

On Tue, Feb 9, 2021 at 9:52 PM Mike via USRP-users <
usrp-users@lists.ettus.com> wrote:

> All,  I wanted to resurrect a problem that I had couple months ago that
> I put aside and would now like to fix.  The issue is that I get a python
> error when executing a flow graph on an E310 that was generated from GRC.
>
> The error is posted below.  For background I'm using UHD 3.15 with GNU
> Radio 3.7.  I've successfully created a bit file for the FPGA with a
> custom block (simple gain block).  I've updated the UHD xml file such
> that uhd_usrp_probe correctly identifies the new block.  Also, using a
> python command line tool, I've been able to import my module and enough
> of other modules like ettus and create a device3 variable to see that I
> can instantiate my mikes.digitalgain block.  Previously I've
> successfully generated non-RFNoC OOT modules and run them on the E310.
> So, I'm a little stumped how to get past this error.  Is there an
> additional step that I'm missing to compile the RFNoC module so that the
> E310 version of GNU Radio can successfully import the module and connect
> to it in the top block.  Is the warning about using the default block
> controller relevant?  I thought that simple blocks could be controlled
> through the XML files using the default controller.  Any help would be
> greatly appreciated...
>
> root@ni-e31x:~# ./e310_rx_spectrum.py
> [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106800;
> UHD_3.15.0.0-62-g7a3f1516
> [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=3092E3A,claimed=False
> [WARNING] [MPM.RPCServer] A timeout event occured!
> [INFO] [MPM.PeriphManager] Found 1 daughterboard(s).
> [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000003310)
> [WARNING] [RFNOC] Can't find a block controller for key digitalgain,
> using default block controller!
> [INFO] [0/digitalgain_0] Initializing block control (NOC ID:
> 0x1234123412341234)
> [INFO] [MPM.PeriphManager] init() called with device args
> `product=e310_sg1,mgmt_addr=127.0.0.1'.
> [WARNING] [RFNOC] Can't find a block controller for key FFT, using
> default block controller!
> [INFO] [0/FFT_0] Initializing block control (NOC ID: 0xFF70000000000000)
> [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
> [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
> [INFO] [0/FIFO_2] Initializing block control (NOC ID: 0xF1F0000000000000)
> [INFO] [0/Radio_0] Performing CODEC loopback test...
> [INFO] [0/Radio_0] CODEC loopback test passed
> [INFO] [0/Radio_0] Performing CODEC loopback test...
> [INFO] [0/Radio_0] CODEC loopback test passed
> Traceback (most recent call last):
>    File "./e310_rx_spectrum.py", line 191, in <module>
>      main()
>    File "./e310_rx_spectrum.py", line 180, in main
>      tb = top_block_cls(freq=options.freq,
> rfnoc_gain=options.rfnoc_gain, rx_gain=options.rx_gain)
>    File "./e310_rx_spectrum.py", line 80, in __init__
>      self.mikes_digitalgain_0 = mikes.digitalgain(
> AttributeError: 'module' object has no attribute 'digitalgain'
> root@ni-e31x:~# ^C
>
>
> On 11/16/20 3:53 PM, Mike via USRP-users wrote:
> > All,
> >
> > I'm working with the E310 unit and have run up against a road block.
> > I've completed almost the entire application note, AN-823 (Getting
> > started with RFNoC Development).
> >
> > I'm using UHD 3.15 with GNU Radio 3.7.  I've successfully built a
> > custom FPGA with the tutorial's "gain" block.  I can see the new block
> > with the proper name with uhd_usrp_probe.
> >
> > I updated the XML files to allow GRC to implement the RFNoC block.
> >
> > Here is where I run into problems.  When I copy the gnuradio python
> > file over to the E310 I keep getting an error that states that the
> > 'module' object has no attribute 'gain'.
> >
> > root@ni-e31x:~# python e310_rx_spectrum.py
> > [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106800;
> > UHD_3.15.0.0-62-g7a3f1516
> > [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
> >
> mgmt_addr=127.0.0.1,type=e3xx,product=e310_sg1,serial=3092E3A,claimed=False
> > [WARNING] [MPM.RPCServer] A timeout event occured!
> > [INFO] [MPM.PeriphManager] Found 1 daughterboard(s).
> > [INFO] [0/Radio_0] Initializing block control (NOC ID:
> > 0x12AD100000003310)
> > [WARNING] [RFNOC] Can't find a block controller for key gain, using
> > default block controller!
> > [INFO] [0/gain_0] Initializing block control (NOC ID: 0x1111222233334444)
> > [INFO] [MPM.PeriphManager] init() called with device args
> > `mgmt_addr=127.0.0.1,product=e310_sg1'.
> > [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)
> > [WARNING] [RFNOC] Can't find a block controller for key FFT, using
> > default block controller!
> > [INFO] [0/FFT_0] Initializing block control (NOC ID: 0xFF70000000000000)
> > [INFO] [0/Radio_0] Performing CODEC loopback test...
> > [INFO] [0/Radio_0] CODEC loopback test passed
> > [INFO] [0/Radio_0] Performing CODEC loopback test...
> > [INFO] [0/Radio_0] CODEC loopback test passed
> > Traceback (most recent call last):
> >   File "e310_rx_spectrum.py", line 216, in <module>
> >     main()
> >   File "e310_rx_spectrum.py", line 205, in main
> >     tb = top_block_cls(freq=options.freq,
> > rfnoc_gain=options.rfnoc_gain, rx_gain=options.rx_gain)
> >   File "e310_rx_spectrum.py", line 101, in __init__
> >     self.tutorial_gain_0 = tutorial.gain(
> > AttributeError: 'module' object has no attribute 'gain'
> >
> > Now, I've seen many suggestions on how to address this.  It mostly
> > describes this as a problem importing the module 'tutorial'.  I've
> > seen descriptions of using the "nm" command to see if the callback
> > function is undefined.  But I still haven't been able to fix the issue.
> >
> > But mostly what I'm after is a working example of an RFNoC module for
> > the E310. One that includes the GRC interface so that the software
> > interface can program the FPGA registers.  I think that a lot of the
> > tutorials are written for host applications whereas the E310 has a
> > cross-compiling aspect to it.
> >
> > So, if somebody has a working example, I'd greatly appreciate it. Or
> > maybe a better description or tutorial for E310 specific issues like
> > cross-compiling OOT RFNoC blocks.
> >
> > Many thanks for all the help that has already been given me.
> >
> > Mike
> >
> >
> > _______________________________________________
> > 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
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to