Hi Jim, I'm so glad you're trying this out! This is a known issue that we're hoping to fix very soon, so you probably did everything right. In the meantime, you could put your block in-tree for testing purposes. You can also interact with it as "0/Block#0". I'll see if we can add a note to the guide to indicate this might not show up correctly until the issue is resolved.
Thanks, Wade On Thu, Sep 17, 2020 at 9:58 AM Jim Palladino via USRP-users < usrp-users@lists.ettus.com> wrote: > Hello, > > I just updated my rfnoc workflow to UHD 4.0 this week. I've gone through > the process of creating an RFNoC block, building the corresponding FPGA > image, putting it on an E320 (had to upgrade MPM), and seeing the block is > present when executing uhd_usrp_probe. The problem is that the block shows > up as "* 0/Block#0", and not "* 0/Gain#0". Basically, I'm trying to go > through the tuturial. > > _____________________________________________________ > | / > | | RFNoC blocks on this device: > | | > | | * 0/Block#0 > | | * 0/DDC#0 > | | * 0/DUC#0 > | | * 0/DmaFIFO#0 > | | * 0/Radio#0 > > I've confirmed that I have a gain.yml file under my ../uhd/rfnoc/blocks > folder with the correct noc_id. If I do a uhd_usrp_probe with the > --init-only option, I get: > > ------------------------------ > [WARNING] [RFNOC::BLOCK_FACTORY] Could not find block with Noc-ID > 0xbdc26af0, 0xffff > ------------------------------ > > I confirmed that this Noc-ID matches the ID in my gain.yml file. I started > digging into uhd_usrp_probe code (I'm not a C++ person) and noticed that > the registry_factory section of code has "FIXME TODO" under the descriptor > registry section, but has code for the direct registry section: > > ------------------------------- > block_factory_info_t factory::get_block_factory(noc_id_t noc_id, > device_type_t device_id) > { > // First, check the descriptor registry > // FIXME TODO > > // Second, check the direct registry > block_device_pair_t key{noc_id, device_id}; > > if (!get_direct_block_registry().count(key)) { > key = block_device_pair_t(noc_id, ANY_DEVICE); > } > if (!get_direct_block_registry().count(key)) { > UHD_LOG_WARNING("RFNOC::BLOCK_FACTORY", > "Could not find block with Noc-ID " << std::hex << "0x" << > key.first << ", 0x" > << key.second << std::dec); > key = block_device_pair_t(DEFAULT_NOC_ID, ANY_DEVICE); > } > return get_direct_block_registry().at(key); > } > ---------------------------------- > > Does this mean that uhd_usrp_probe is not even looking at the yml files > and only looks for directly registered blocks? I'm not sure what directly > registered means and if my example "gain" block should somehow be directly > registered. > > I was thinking that this is just something incomplete that doesn't work > with UHD right now, but in the "Getting Started with RFNoC in UHD 4.0" > guide (https://kb.ettus.com/Getting_Started_with_RFNoC_in_UHD_4.0), they > show the Gain block showing up correctly when doing a uhd_usrp_probe. > > So, I don't understand why this isn't working or how it should work. Some > background, I cloned/built: > 1) UHD (v4.0.0.0 tag) > 2) gnuradio (3.8.2.0 tag) > 3) gr-ettus (maint-3.8-uhd4.0 branch) > > I "believe" my paths/environment are setup correctly. > > Thanks for any help. > Jim > > > _______________________________________________ > 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