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