So here is the trace for the gain block, and it certainly is loading the right XML file it seems. 🤔
[DEBUG] [RFNOC] Reading XML file /home/root/newinstall/usr/share/uhd/rfnoc/blocks/gain.xml for NOC ID 0xB7DD64941A952AAC [TRACE] [RFNOC] [RFNoC Factory] block_ctrl_base::make() [DEBUG] [RFNOC] Reading XML file /home/root/newinstall/usr/share/uhd/rfnoc/blocks/gain.xml for NOC ID 0xB7DD64941A952AAC [TRACE] [RFNOC] [RFNoC Factory] Using controller key 'gain' and block name 'gain' [DEBUG] [RFNOC] Reading XML file /home/root/newinstall/usr/share/uhd/rfnoc/blocks/gain.xml for NOC ID 0xB7DD64941A952AAC [INFO] [0/gain_0] Initializing block control (NOC ID: 0xB7DD64941A952AAC) [DEBUG] [0/gain_0] Checking compat number for FPGA component `noc_shell': Expecting 5.1, actual: 5.1. [TRACE] [0/gain_0] Adding port definition at xbar/gain_0/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0' [TRACE] [0/gain_0] Adding port definition at xbar/gain_0/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0' [DEBUG] [E300] [E300] Setting up dest map for host ep 112 to be stream 3 However I don't show it instantiating any of the args. I did vim the file and it appears correct (output below). <?xml version="1.0"?> <!--Default XML file--> <nocblock> <name>gain</name> <blockname>gain</blockname> <ids> <id revision="0">B7DD64941A952AAC</id> </ids> <!-- Registers --> <registers> <setreg> <name>GAIN</name> <address>128</address> </setreg> </registers> <!-- Args --> <args> <args> <name>gain</name> <type>double</type> <value>1.0</value> <check>GE($gain, 0.0) AND LE($gain, 32767.0)</check> <check_message>Invalid Gain!</check_message> <action> SR_WRITE("GAIN", IROUND($gain)) </action> </args> </args> <!--One input, one output. If this is used, better have all the info the C++ file.--> <ports> <sink> <name>in0</name> <type>sc16</type> </sink> <source> <name>out0</name> <type>sc16</type> </source> </ports> </nocblock> Regards, Jon On Fri, Nov 22, 2019 at 10:51 AM Jonathan Lockhart <jlockhar...@gmail.com> wrote: > NVM, I got it set. I am teasing through the long console output now. Might > of wanted to set the file log instead. Live and learn. > > On Fri, Nov 22, 2019 at 10:20 AM EJ Kreinar <ejkrei...@gmail.com> wrote: > >> Good progress, agreed it looks like the gain arg isn't getting created >> here... >> >> If you run with log level trace, rfnoc should (might?) indicate the xml >> file it loaded. I'd try to find that xml and confirm it looks like what you >> expect, with the gain arg entry. >> >> Also, perhaps grep your prefix and share directories on the embedded >> device to search for any other xml files that might match the noc id or >> provide the same "gain" block... I've definitely fought with conflicting >> xml definitions before, you might be seeing that here. >> >> EJ >> >> On Fri, Nov 22, 2019, 9:36 AM Jonathan Lockhart <jlockhar...@gmail.com> >> wrote: >> >>> Hey EJ, >>> >>> Sorry for being slow I had to dig around to set that UHD Log variable, >>> which easy enough it was just a simple export. I then ran uhd_usrp_probe >>> with the --tree and setting the fpga to my bit file. Here is the output >>> from the probe. >>> >>> root@ettus-e3xx-sg3:~# uhd_usrp_probe >>> --args="fpga=./newinstall/e300.bit" --tree >>> [INFO] [UHD] linux; GNU C++ version 4.9.2; Boost_105700; >>> UHD_3.14.1.HEAD-0-g0347a6d8 >>> [INFO] [E300] Loading FPGA image: ./newinstall/e300.bit... >>> [INFO] [E300] FPGA image loaded >>> [INFO] [E300] Detecting internal GPS >>> .... [INFO] [E300] GPSDO found >>> [INFO] [E300] Initializing core control (global registers)... >>> >>> [INFO] [E300] Performing register loopback test... >>> [INFO] [E300] Register loopback test passed >>> [INFO] [0/Radio_0] Initializing block control (NOC ID: >>> 0x12AD100000000000) >>> [WARNING] [RFNOC] Can't find a block controller for key gain, using >>> default block controller! >>> [INFO] [0/gain_0] Initializing block control (NOC ID: 0xB7DD64941A952AAC) >>> [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) >>> / >>> /name >>> /mboards >>> /mboards/0 >>> /mboards/0/name >>> /mboards/0/codename >>> /mboards/0/fpga_version >>> /mboards/0/fpga_version_hash >>> /mboards/0/clock_source >>> /mboards/0/clock_source/value >>> /mboards/0/clock_source/options >>> /mboards/0/sensors >>> /mboards/0/sensors/temp >>> /mboards/0/sensors/ref_locked >>> /mboards/0/sensors/gps_locked >>> /mboards/0/sensors/gps_time >>> /mboards/0/sensors/gps_position >>> /mboards/0/sensors/gps_gpgga >>> /mboards/0/sensors/gps_gprmc >>> /mboards/0/eeprom >>> /mboards/0/dboards >>> /mboards/0/dboards/A >>> /mboards/0/dboards/A/rx_eeprom >>> /mboards/0/dboards/A/tx_eeprom >>> /mboards/0/dboards/A/gdb_eeprom >>> /mboards/0/dboards/A/rx_frontends >>> /mboards/0/dboards/A/rx_frontends/A >>> /mboards/0/dboards/A/rx_frontends/A/name >>> /mboards/0/dboards/A/rx_frontends/A/sensors >>> /mboards/0/dboards/A/rx_frontends/A/sensors/temp >>> /mboards/0/dboards/A/rx_frontends/A/sensors/rssi >>> /mboards/0/dboards/A/rx_frontends/A/sensors/lo_locked >>> /mboards/0/dboards/A/rx_frontends/A/gains >>> /mboards/0/dboards/A/rx_frontends/A/gains/PGA >>> /mboards/0/dboards/A/rx_frontends/A/gains/PGA/range >>> /mboards/0/dboards/A/rx_frontends/A/gains/PGA/value >>> /mboards/0/dboards/A/rx_frontends/A/connection >>> /mboards/0/dboards/A/rx_frontends/A/enabled >>> /mboards/0/dboards/A/rx_frontends/A/use_lo_offset >>> /mboards/0/dboards/A/rx_frontends/A/bandwidth >>> /mboards/0/dboards/A/rx_frontends/A/bandwidth/value >>> /mboards/0/dboards/A/rx_frontends/A/bandwidth/range >>> /mboards/0/dboards/A/rx_frontends/A/freq >>> /mboards/0/dboards/A/rx_frontends/A/freq/range >>> /mboards/0/dboards/A/rx_frontends/A/freq/value >>> /mboards/0/dboards/A/rx_frontends/A/dc_offset >>> /mboards/0/dboards/A/rx_frontends/A/dc_offset/enable >>> /mboards/0/dboards/A/rx_frontends/A/iq_balance >>> /mboards/0/dboards/A/rx_frontends/A/iq_balance/enable >>> /mboards/0/dboards/A/rx_frontends/A/gain >>> /mboards/0/dboards/A/rx_frontends/A/gain/agc >>> /mboards/0/dboards/A/rx_frontends/A/gain/agc/enable >>> /mboards/0/dboards/A/rx_frontends/A/gain/agc/mode >>> /mboards/0/dboards/A/rx_frontends/A/gain/agc/mode/value >>> /mboards/0/dboards/A/rx_frontends/A/gain/agc/mode/options >>> /mboards/0/dboards/A/rx_frontends/A/filters >>> /mboards/0/dboards/A/rx_frontends/A/filters/DEC_3 >>> /mboards/0/dboards/A/rx_frontends/A/filters/DEC_3/value >>> /mboards/0/dboards/A/rx_frontends/A/filters/FIR_1 >>> /mboards/0/dboards/A/rx_frontends/A/filters/FIR_1/value >>> /mboards/0/dboards/A/rx_frontends/A/filters/HB_1 >>> /mboards/0/dboards/A/rx_frontends/A/filters/HB_1/value >>> /mboards/0/dboards/A/rx_frontends/A/filters/HB_2 >>> /mboards/0/dboards/A/rx_frontends/A/filters/HB_2/value >>> /mboards/0/dboards/A/rx_frontends/A/filters/HB_3 >>> /mboards/0/dboards/A/rx_frontends/A/filters/HB_3/value >>> /mboards/0/dboards/A/rx_frontends/A/filters/LPF_BB >>> /mboards/0/dboards/A/rx_frontends/A/filters/LPF_BB/value >>> /mboards/0/dboards/A/rx_frontends/A/filters/LPF_TIA >>> /mboards/0/dboards/A/rx_frontends/A/filters/LPF_TIA/value >>> /mboards/0/dboards/A/rx_frontends/A/antenna >>> /mboards/0/dboards/A/rx_frontends/A/antenna/options >>> /mboards/0/dboards/A/rx_frontends/A/antenna/value >>> /mboards/0/dboards/A/rx_frontends/B >>> /mboards/0/dboards/A/rx_frontends/B/name >>> /mboards/0/dboards/A/rx_frontends/B/sensors >>> /mboards/0/dboards/A/rx_frontends/B/sensors/temp >>> /mboards/0/dboards/A/rx_frontends/B/sensors/rssi >>> /mboards/0/dboards/A/rx_frontends/B/sensors/lo_locked >>> /mboards/0/dboards/A/rx_frontends/B/gains >>> /mboards/0/dboards/A/rx_frontends/B/gains/PGA >>> /mboards/0/dboards/A/rx_frontends/B/gains/PGA/range >>> /mboards/0/dboards/A/rx_frontends/B/gains/PGA/value >>> /mboards/0/dboards/A/rx_frontends/B/connection >>> /mboards/0/dboards/A/rx_frontends/B/enabled >>> /mboards/0/dboards/A/rx_frontends/B/use_lo_offset >>> /mboards/0/dboards/A/rx_frontends/B/bandwidth >>> /mboards/0/dboards/A/rx_frontends/B/bandwidth/value >>> /mboards/0/dboards/A/rx_frontends/B/bandwidth/range >>> /mboards/0/dboards/A/rx_frontends/B/freq >>> /mboards/0/dboards/A/rx_frontends/B/freq/range >>> /mboards/0/dboards/A/rx_frontends/B/freq/value >>> /mboards/0/dboards/A/rx_frontends/B/dc_offset >>> /mboards/0/dboards/A/rx_frontends/B/dc_offset/enable >>> /mboards/0/dboards/A/rx_frontends/B/iq_balance >>> /mboards/0/dboards/A/rx_frontends/B/iq_balance/enable >>> /mboards/0/dboards/A/rx_frontends/B/gain >>> /mboards/0/dboards/A/rx_frontends/B/gain/agc >>> /mboards/0/dboards/A/rx_frontends/B/gain/agc/enable >>> /mboards/0/dboards/A/rx_frontends/B/gain/agc/mode >>> /mboards/0/dboards/A/rx_frontends/B/gain/agc/mode/value >>> /mboards/0/dboards/A/rx_frontends/B/gain/agc/mode/options >>> /mboards/0/dboards/A/rx_frontends/B/filters >>> /mboards/0/dboards/A/rx_frontends/B/filters/DEC_3 >>> /mboards/0/dboards/A/rx_frontends/B/filters/DEC_3/value >>> /mboards/0/dboards/A/rx_frontends/B/filters/FIR_1 >>> /mboards/0/dboards/A/rx_frontends/B/filters/FIR_1/value >>> /mboards/0/dboards/A/rx_frontends/B/filters/HB_1 >>> /mboards/0/dboards/A/rx_frontends/B/filters/HB_1/value >>> /mboards/0/dboards/A/rx_frontends/B/filters/HB_2 >>> /mboards/0/dboards/A/rx_frontends/B/filters/HB_2/value >>> /mboards/0/dboards/A/rx_frontends/B/filters/HB_3 >>> /mboards/0/dboards/A/rx_frontends/B/filters/HB_3/value >>> /mboards/0/dboards/A/rx_frontends/B/filters/LPF_BB >>> /mboards/0/dboards/A/rx_frontends/B/filters/LPF_BB/value >>> /mboards/0/dboards/A/rx_frontends/B/filters/LPF_TIA >>> /mboards/0/dboards/A/rx_frontends/B/filters/LPF_TIA/value >>> /mboards/0/dboards/A/rx_frontends/B/antenna >>> /mboards/0/dboards/A/rx_frontends/B/antenna/options >>> /mboards/0/dboards/A/rx_frontends/B/antenna/value >>> /mboards/0/dboards/A/tx_frontends >>> /mboards/0/dboards/A/tx_frontends/A >>> /mboards/0/dboards/A/tx_frontends/A/name >>> /mboards/0/dboards/A/tx_frontends/A/sensors >>> /mboards/0/dboards/A/tx_frontends/A/sensors/temp >>> /mboards/0/dboards/A/tx_frontends/A/sensors/lo_locked >>> /mboards/0/dboards/A/tx_frontends/A/gains >>> /mboards/0/dboards/A/tx_frontends/A/gains/PGA >>> /mboards/0/dboards/A/tx_frontends/A/gains/PGA/range >>> /mboards/0/dboards/A/tx_frontends/A/gains/PGA/value >>> /mboards/0/dboards/A/tx_frontends/A/connection >>> /mboards/0/dboards/A/tx_frontends/A/enabled >>> /mboards/0/dboards/A/tx_frontends/A/use_lo_offset >>> /mboards/0/dboards/A/tx_frontends/A/bandwidth >>> /mboards/0/dboards/A/tx_frontends/A/bandwidth/value >>> /mboards/0/dboards/A/tx_frontends/A/bandwidth/range >>> /mboards/0/dboards/A/tx_frontends/A/freq >>> /mboards/0/dboards/A/tx_frontends/A/freq/range >>> /mboards/0/dboards/A/tx_frontends/A/freq/value >>> /mboards/0/dboards/A/tx_frontends/A/filters >>> /mboards/0/dboards/A/tx_frontends/A/filters/FIR_1 >>> /mboards/0/dboards/A/tx_frontends/A/filters/FIR_1/value >>> /mboards/0/dboards/A/tx_frontends/A/filters/HB_1 >>> /mboards/0/dboards/A/tx_frontends/A/filters/HB_1/value >>> /mboards/0/dboards/A/tx_frontends/A/filters/HB_2 >>> /mboards/0/dboards/A/tx_frontends/A/filters/HB_2/value >>> /mboards/0/dboards/A/tx_frontends/A/filters/HB_3 >>> /mboards/0/dboards/A/tx_frontends/A/filters/HB_3/value >>> /mboards/0/dboards/A/tx_frontends/A/filters/INT_3 >>> /mboards/0/dboards/A/tx_frontends/A/filters/INT_3/value >>> /mboards/0/dboards/A/tx_frontends/A/filters/LPF_BB >>> /mboards/0/dboards/A/tx_frontends/A/filters/LPF_BB/value >>> /mboards/0/dboards/A/tx_frontends/A/filters/LPF_SECONDARY >>> /mboards/0/dboards/A/tx_frontends/A/filters/LPF_SECONDARY/value >>> /mboards/0/dboards/A/tx_frontends/A/antenna >>> /mboards/0/dboards/A/tx_frontends/A/antenna/options >>> /mboards/0/dboards/A/tx_frontends/A/antenna/value >>> /mboards/0/dboards/A/tx_frontends/B >>> /mboards/0/dboards/A/tx_frontends/B/name >>> /mboards/0/dboards/A/tx_frontends/B/sensors >>> /mboards/0/dboards/A/tx_frontends/B/sensors/temp >>> /mboards/0/dboards/A/tx_frontends/B/sensors/lo_locked >>> /mboards/0/dboards/A/tx_frontends/B/gains >>> /mboards/0/dboards/A/tx_frontends/B/gains/PGA >>> /mboards/0/dboards/A/tx_frontends/B/gains/PGA/range >>> /mboards/0/dboards/A/tx_frontends/B/gains/PGA/value >>> /mboards/0/dboards/A/tx_frontends/B/connection >>> /mboards/0/dboards/A/tx_frontends/B/enabled >>> /mboards/0/dboards/A/tx_frontends/B/use_lo_offset >>> /mboards/0/dboards/A/tx_frontends/B/bandwidth >>> /mboards/0/dboards/A/tx_frontends/B/bandwidth/value >>> /mboards/0/dboards/A/tx_frontends/B/bandwidth/range >>> /mboards/0/dboards/A/tx_frontends/B/freq >>> /mboards/0/dboards/A/tx_frontends/B/freq/range >>> /mboards/0/dboards/A/tx_frontends/B/freq/value >>> /mboards/0/dboards/A/tx_frontends/B/filters >>> /mboards/0/dboards/A/tx_frontends/B/filters/FIR_1 >>> /mboards/0/dboards/A/tx_frontends/B/filters/FIR_1/value >>> /mboards/0/dboards/A/tx_frontends/B/filters/HB_1 >>> /mboards/0/dboards/A/tx_frontends/B/filters/HB_1/value >>> /mboards/0/dboards/A/tx_frontends/B/filters/HB_2 >>> /mboards/0/dboards/A/tx_frontends/B/filters/HB_2/value >>> /mboards/0/dboards/A/tx_frontends/B/filters/HB_3 >>> /mboards/0/dboards/A/tx_frontends/B/filters/HB_3/value >>> /mboards/0/dboards/A/tx_frontends/B/filters/INT_3 >>> /mboards/0/dboards/A/tx_frontends/B/filters/INT_3/value >>> /mboards/0/dboards/A/tx_frontends/B/filters/LPF_BB >>> /mboards/0/dboards/A/tx_frontends/B/filters/LPF_BB/value >>> /mboards/0/dboards/A/tx_frontends/B/filters/LPF_SECONDARY >>> /mboards/0/dboards/A/tx_frontends/B/filters/LPF_SECONDARY/value >>> /mboards/0/dboards/A/tx_frontends/B/antenna >>> /mboards/0/dboards/A/tx_frontends/B/antenna/options >>> /mboards/0/dboards/A/tx_frontends/B/antenna/value >>> /mboards/0/global_regs >>> /mboards/0/global_regs/misc >>> /mboards/0/global_regs/pll >>> /mboards/0/tick_rate >>> /mboards/0/xbar >>> /mboards/0/xbar/Radio_0 >>> /mboards/0/xbar/Radio_0/noc_id >>> /mboards/0/xbar/Radio_0/input_buffer_size >>> /mboards/0/xbar/Radio_0/input_buffer_size/0 >>> /mboards/0/xbar/Radio_0/input_buffer_size/1 >>> /mboards/0/xbar/Radio_0/mtu >>> /mboards/0/xbar/Radio_0/mtu/0 >>> /mboards/0/xbar/Radio_0/mtu/1 >>> /mboards/0/xbar/Radio_0/ports >>> /mboards/0/xbar/Radio_0/ports/in >>> /mboards/0/xbar/Radio_0/ports/in/0 >>> /mboards/0/xbar/Radio_0/ports/in/1 >>> /mboards/0/xbar/Radio_0/ports/out >>> /mboards/0/xbar/Radio_0/ports/out/0 >>> /mboards/0/xbar/Radio_0/ports/out/1 >>> /mboards/0/xbar/Radio_0/args >>> /mboards/0/xbar/Radio_0/args/0 >>> /mboards/0/xbar/Radio_0/args/0/spp >>> /mboards/0/xbar/Radio_0/args/0/spp/type >>> /mboards/0/xbar/Radio_0/args/0/spp/value >>> /mboards/0/xbar/Radio_0/args/1 >>> /mboards/0/xbar/gain_0 >>> /mboards/0/xbar/gain_0/noc_id >>> /mboards/0/xbar/gain_0/input_buffer_size >>> /mboards/0/xbar/gain_0/input_buffer_size/0 >>> /mboards/0/xbar/gain_0/mtu >>> /mboards/0/xbar/gain_0/mtu/0 >>> /mboards/0/xbar/gain_0/registers >>> /mboards/0/xbar/gain_0/registers/sr >>> /mboards/0/xbar/gain_0/registers/sr/Gain >>> /mboards/0/xbar/gain_0/ports >>> /mboards/0/xbar/gain_0/ports/in >>> /mboards/0/xbar/gain_0/ports/in/0 >>> /mboards/0/xbar/gain_0/ports/out >>> /mboards/0/xbar/gain_0/ports/out/0 >>> /mboards/0/xbar/gain_0/args >>> /mboards/0/xbar/gain_0/args/0 >>> /mboards/0/xbar/DDC_0 >>> /mboards/0/xbar/DDC_0/noc_id >>> /mboards/0/xbar/DDC_0/input_buffer_size >>> /mboards/0/xbar/DDC_0/input_buffer_size/0 >>> /mboards/0/xbar/DDC_0/input_buffer_size/1 >>> /mboards/0/xbar/DDC_0/mtu >>> /mboards/0/xbar/DDC_0/mtu/0 >>> /mboards/0/xbar/DDC_0/mtu/1 >>> /mboards/0/xbar/DDC_0/registers >>> /mboards/0/xbar/DDC_0/registers/sr >>> /mboards/0/xbar/DDC_0/registers/sr/N >>> /mboards/0/xbar/DDC_0/registers/sr/M >>> /mboards/0/xbar/DDC_0/registers/sr/CONFIG >>> /mboards/0/xbar/DDC_0/registers/sr/DDS_FREQ >>> /mboards/0/xbar/DDC_0/registers/sr/SCALE_IQ >>> /mboards/0/xbar/DDC_0/registers/sr/DECIM_WORD >>> /mboards/0/xbar/DDC_0/registers/sr/MODE >>> /mboards/0/xbar/DDC_0/registers/sr/RELOAD >>> /mboards/0/xbar/DDC_0/ports >>> /mboards/0/xbar/DDC_0/ports/in >>> /mboards/0/xbar/DDC_0/ports/in/0 >>> /mboards/0/xbar/DDC_0/ports/in/1 >>> /mboards/0/xbar/DDC_0/ports/out >>> /mboards/0/xbar/DDC_0/ports/out/0 >>> /mboards/0/xbar/DDC_0/ports/out/1 >>> /mboards/0/xbar/DDC_0/args >>> /mboards/0/xbar/DDC_0/args/0 >>> /mboards/0/xbar/DDC_0/args/0/freq >>> /mboards/0/xbar/DDC_0/args/0/freq/type >>> /mboards/0/xbar/DDC_0/args/0/freq/value >>> /mboards/0/xbar/DDC_0/args/0/input_rate >>> /mboards/0/xbar/DDC_0/args/0/input_rate/type >>> /mboards/0/xbar/DDC_0/args/0/input_rate/value >>> /mboards/0/xbar/DDC_0/args/0/output_rate >>> /mboards/0/xbar/DDC_0/args/0/output_rate/type >>> /mboards/0/xbar/DDC_0/args/0/output_rate/value >>> /mboards/0/xbar/DDC_0/args/0/fullscale >>> /mboards/0/xbar/DDC_0/args/0/fullscale/type >>> /mboards/0/xbar/DDC_0/args/0/fullscale/value >>> /mboards/0/xbar/DDC_0/args/0/scalar_correction >>> /mboards/0/xbar/DDC_0/args/0/scalar_correction/type >>> /mboards/0/xbar/DDC_0/args/0/scalar_correction/value >>> /mboards/0/xbar/DDC_0/args/1 >>> /mboards/0/xbar/DDC_0/args/1/freq >>> /mboards/0/xbar/DDC_0/args/1/freq/type >>> /mboards/0/xbar/DDC_0/args/1/freq/value >>> /mboards/0/xbar/DDC_0/args/1/input_rate >>> /mboards/0/xbar/DDC_0/args/1/input_rate/type >>> /mboards/0/xbar/DDC_0/args/1/input_rate/value >>> /mboards/0/xbar/DDC_0/args/1/output_rate >>> /mboards/0/xbar/DDC_0/args/1/output_rate/type >>> /mboards/0/xbar/DDC_0/args/1/output_rate/value >>> /mboards/0/xbar/DDC_0/args/1/fullscale >>> /mboards/0/xbar/DDC_0/args/1/fullscale/type >>> /mboards/0/xbar/DDC_0/args/1/fullscale/value >>> /mboards/0/xbar/DDC_0/args/1/scalar_correction >>> /mboards/0/xbar/DDC_0/args/1/scalar_correction/type >>> /mboards/0/xbar/DDC_0/args/1/scalar_correction/value >>> /mboards/0/xbar/DDC_0/legacy_api >>> /mboards/0/xbar/DDC_0/legacy_api/0 >>> /mboards/0/xbar/DDC_0/legacy_api/0/rate >>> /mboards/0/xbar/DDC_0/legacy_api/0/rate/value >>> /mboards/0/xbar/DDC_0/legacy_api/0/rate/range >>> /mboards/0/xbar/DDC_0/legacy_api/0/freq >>> /mboards/0/xbar/DDC_0/legacy_api/0/freq/value >>> /mboards/0/xbar/DDC_0/legacy_api/0/freq/range >>> /mboards/0/xbar/DDC_0/legacy_api/1 >>> /mboards/0/xbar/DDC_0/legacy_api/1/rate >>> /mboards/0/xbar/DDC_0/legacy_api/1/rate/value >>> /mboards/0/xbar/DDC_0/legacy_api/1/rate/range >>> /mboards/0/xbar/DDC_0/legacy_api/1/freq >>> /mboards/0/xbar/DDC_0/legacy_api/1/freq/value >>> /mboards/0/xbar/DDC_0/legacy_api/1/freq/range >>> /mboards/0/xbar/FFT_0 >>> /mboards/0/xbar/FFT_0/noc_id >>> /mboards/0/xbar/FFT_0/input_buffer_size >>> /mboards/0/xbar/FFT_0/input_buffer_size/0 >>> /mboards/0/xbar/FFT_0/mtu >>> /mboards/0/xbar/FFT_0/mtu/0 >>> /mboards/0/xbar/FFT_0/registers >>> /mboards/0/xbar/FFT_0/registers/sr >>> /mboards/0/xbar/FFT_0/registers/sr/FFT_RESET >>> /mboards/0/xbar/FFT_0/registers/sr/FFT_SIZE_LOG2 >>> /mboards/0/xbar/FFT_0/registers/sr/MAGNITUDE_OUT >>> /mboards/0/xbar/FFT_0/registers/sr/FFT_DIRECTION >>> /mboards/0/xbar/FFT_0/registers/sr/FFT_SCALING >>> /mboards/0/xbar/FFT_0/registers/sr/FFT_SHIFT_CONFIG >>> /mboards/0/xbar/FFT_0/registers/rb >>> /mboards/0/xbar/FFT_0/registers/rb/RB_FFT_RESET >>> /mboards/0/xbar/FFT_0/registers/rb/RB_MAGNITUDE_OUT >>> /mboards/0/xbar/FFT_0/registers/rb/RB_FFT_SIZE_LOG2 >>> /mboards/0/xbar/FFT_0/registers/rb/RB_FFT_DIRECTION >>> /mboards/0/xbar/FFT_0/registers/rb/RB_FFT_SCALING >>> /mboards/0/xbar/FFT_0/registers/rb/RB_FFT_SHIFT_CONFIG >>> /mboards/0/xbar/FFT_0/ports >>> /mboards/0/xbar/FFT_0/ports/in >>> /mboards/0/xbar/FFT_0/ports/in/0 >>> /mboards/0/xbar/FFT_0/ports/out >>> /mboards/0/xbar/FFT_0/ports/out/0 >>> /mboards/0/xbar/FFT_0/args >>> /mboards/0/xbar/FFT_0/args/0 >>> /mboards/0/xbar/FFT_0/args/0/spp >>> /mboards/0/xbar/FFT_0/args/0/spp/type >>> /mboards/0/xbar/FFT_0/args/0/spp/value >>> /mboards/0/xbar/FFT_0/args/0/shift >>> /mboards/0/xbar/FFT_0/args/0/shift/type >>> /mboards/0/xbar/FFT_0/args/0/shift/value >>> /mboards/0/xbar/FFT_0/args/0/direction >>> /mboards/0/xbar/FFT_0/args/0/direction/type >>> /mboards/0/xbar/FFT_0/args/0/direction/value >>> /mboards/0/xbar/FFT_0/args/0/scaling >>> /mboards/0/xbar/FFT_0/args/0/scaling/type >>> /mboards/0/xbar/FFT_0/args/0/scaling/value >>> /mboards/0/xbar/FFT_0/args/0/otype >>> /mboards/0/xbar/FFT_0/args/0/otype/type >>> /mboards/0/xbar/FFT_0/args/0/otype/value >>> /mboards/0/xbar/FFT_0/args/0/reset >>> /mboards/0/xbar/FFT_0/args/0/reset/type >>> /mboards/0/xbar/FFT_0/args/0/reset/value >>> /mboards/0/xbar/FFT_0/args/0/magnitude_out >>> /mboards/0/xbar/FFT_0/args/0/magnitude_out/type >>> /mboards/0/xbar/FFT_0/args/0/magnitude_out/value >>> /mboards/0/time >>> /mboards/0/time/now >>> /mboards/0/time/pps >>> /mboards/0/time/cmd >>> /mboards/0/time_source >>> /mboards/0/time_source/value >>> /mboards/0/time_source/options >>> /mboards/0/rx_codecs >>> /mboards/0/rx_codecs/A >>> /mboards/0/rx_codecs/A/name >>> /mboards/0/rx_codecs/A/gains >>> /mboards/0/tx_codecs >>> /mboards/0/tx_codecs/A >>> /mboards/0/tx_codecs/A/name >>> /mboards/0/tx_codecs/A/gains >>> /mboards/0/gpio >>> /mboards/0/gpio/INT0 >>> /mboards/0/gpio/INT0/SRC >>> /mboards/0/gpio/INT0/CTRL >>> /mboards/0/gpio/INT0/DDR >>> /mboards/0/gpio/INT0/OUT >>> /mboards/0/gpio/INT0/ATR_0X >>> /mboards/0/gpio/INT0/ATR_RX >>> /mboards/0/gpio/INT0/ATR_TX >>> /mboards/0/gpio/INT0/ATR_XX >>> /mboards/0/gpio/INT0/READBACK >>> /mboards/0/rx_dsps >>> /mboards/0/rx_dsps/0 >>> /mboards/0/rx_dsps/0/stream_cmd >>> /mboards/0/rx_dsps/0/freq >>> /mboards/0/rx_dsps/0/freq/value >>> /mboards/0/rx_dsps/0/freq/range >>> /mboards/0/rx_dsps/0/rate >>> /mboards/0/rx_dsps/0/rate/value >>> /mboards/0/rx_dsps/1 >>> /mboards/0/rx_dsps/1/stream_cmd >>> /mboards/0/rx_dsps/1/freq >>> /mboards/0/rx_dsps/1/freq/value >>> /mboards/0/rx_dsps/1/freq/range >>> /mboards/0/rx_dsps/1/rate >>> /mboards/0/rx_dsps/1/rate/value >>> /mboards/0/tx_dsps >>> /mboards/0/tx_dsps/0 >>> /mboards/0/tx_dsps/0/freq >>> /mboards/0/tx_dsps/0/freq/value >>> /mboards/0/tx_dsps/0/freq/range >>> /mboards/0/tx_dsps/0/rate >>> /mboards/0/tx_dsps/0/rate/value >>> /mboards/0/tx_dsps/1 >>> /mboards/0/tx_dsps/1/freq >>> /mboards/0/tx_dsps/1/freq/value >>> /mboards/0/tx_dsps/1/freq/range >>> /mboards/0/tx_dsps/1/rate >>> /mboards/0/tx_dsps/1/rate/value >>> /mboards/0/rx_subdev_spec >>> /mboards/0/tx_subdev_spec >>> [INFO] [E300] Loading FPGA image: >>> /home/root/newinstall/usr/share/uhd/images/usrp_e3xx_fpga_idle_sg3.bit... >>> [INFO] [E300] FPGA image loaded >>> >>> The failure output I got from running the python script shows that it >>> can't find "/mboards/0/xbar/gain_0/args/0/gain/value" and when I look at >>> the tree, there is no value instantiated by the probe. It only looks like >>> the furthest that the probe goes down in the mboards is >>> "/mboards/0/xbar/gain_0/args/0". I am assuming its something in the >>> arguments file not getting loaded, but everything appears ok to me on >>> glance in that XML file. >>> >>> Regards, >>> Jon >>> >>> On Thu, Nov 21, 2019 at 4:49 PM EJ Kreinar <ejkrei...@gmail.com> wrote: >>> >>>> Okay, great... >>>> >>>> You might want to try increasing the log level. Export >>>> UHD_LOG_CONSOLE_LEVEL=trace or debug and try to make sure the correct xml >>>> file is getting applied to the block correctly. >>>> >>>> There's also something like a "--tree" parameter in the uhd_usrp_probe >>>> so try running the probe with the tree option to print out the device tree >>>> and look for the arguments assigned to your new block. >>>> >>>> Let's see if any of that helps figure out what's going on... >>>> EJ >>>> >>>> On Thu, Nov 21, 2019, 4:01 PM Jonathan Lockhart <jlockhar...@gmail.com> >>>> wrote: >>>> >>>>> Also, when I compiled from the OOT directory for ARM, I used this >>>>> command, which I pieced together from the RFNoC build guide, and the >>>>> release-4 guide for cross-compiling gr-ettus. >>>>> >>>>> cmake >>>>> -DCMAKE_TOOLCHAIN_FILE=~/rfnoc/src/gnuradio/cmake/Toolchains/oe-sdk_cross.cmake >>>>> -DCMAKE_INSTALL_PREFIX=/usr >>>>> -DUHD_FPGA_DIR="/home/jon/rfnoc/src/uhd/fpga-src/" ../ >>>>> >>>>> Regards, >>>>> Jon >>>>> >>>>> On Thu, Nov 21, 2019 at 3:48 PM Jonathan Lockhart < >>>>> jlockhar...@gmail.com> wrote: >>>>> >>>>>> Greetings EJ, >>>>>> >>>>>> So, from the tutorial, they have you edit the gain.xml file, and this >>>>>> is what I have for it. >>>>>> >>>>>> <?xml version="1.0"?> >>>>>> <!--Default XML file--> >>>>>> <nocblock> >>>>>> <name>gain</name> >>>>>> <blockname>gain</blockname> >>>>>> <ids> >>>>>> <id revision="0">B7DD64941A952AAC</id> >>>>>> </ids> >>>>>> <!-- Registers --> >>>>>> <registers> >>>>>> <setreg> >>>>>> <name>Gain</name> >>>>>> <address>128</address> >>>>>> </setreg> >>>>>> </registers> >>>>>> <!-- Args --> >>>>>> <args> >>>>>> <args> >>>>>> <name>gain</name> >>>>>> <type>double</type> >>>>>> <value>1.0</value> >>>>>> <check>GE($gain, 0.0) AND LE($gain, 32767.0)</check> >>>>>> <check_message>Invalid Gain!</check_message> >>>>>> <action> >>>>>> SR_WRITE("GAIN", IROUND($gain)) >>>>>> </action> >>>>>> </args> >>>>>> </args> >>>>>> <!--One input, one output. If this is used, better have all the >>>>>> info the C++ file.--> >>>>>> <ports> >>>>>> <sink> >>>>>> <name>in0</name> >>>>>> <type>sc16</name> >>>>>> </sink> >>>>>> <source> >>>>>> <name>out0</name> >>>>>> <type>sc16</name> >>>>>> </source> >>>>>> </ports> >>>>>> </nocblock> >>>>>> >>>>>> There is an args value and it is declared as gain. >>>>>> >>>>>> So from there, I followed your second suggestion and tried to find >>>>>> where it was installed when I did the cross compile. It was not placed in >>>>>> the "GRC_BLOCKS_PATH" of "/share/gnuradio/grc/blocks" like the default >>>>>> RFNoC blocks. It was instead placed in "/share/uhd/rfnoc/bocks" so I >>>>>> added >>>>>> that to the setup.env file, included below. >>>>>> >>>>>> LOCALPREFIX=~/newinstall/usr >>>>>> export PATH=$LOCALPREFIX/bin:$PATH >>>>>> export LD_LOAD_LIBRARY=$LOCALPREFIX/lib:$LD_LOAD_LIBRARY >>>>>> export LD_LIBRARY_PATH=$LOCALPREFIX/lib:$LD_LIBRARY_PATH >>>>>> export PYTHONPATH=$LOCALPREFIX/lib/python2.7/site-packages:$PYTHONPATH >>>>>> export PKG_CONFIG_PATH=$LOCALPREFIX/lib/pkgconfig:$PKG_CONFIG_PATH >>>>>> export >>>>>> GRC_BLOCKS_PATH=$LOCALPREFIX/share/gnuradio/grc/blocks:$GRC_BLOCKS_PATH >>>>>> export UHD_RFNOC_DIR=$LOCALPREFIX/share/uhd/rfnoc/ >>>>>> export UHD_IMAGES_DIR=$LOCALPREFIX/share/uhd/images >>>>>> export >>>>>> GRC_BLOCKS_PATH=$LOCALPREFIX/share/uhd/rfnoc/blocks:$GRC_BLOCKS_PATH >>>>>> >>>>>> Unfortunately, after re-sourcing the setup.env, I still get the same >>>>>> message. >>>>>> >>>>>> File "rfnoc_myGain_usrp.py", line 223, in <module> >>>>>> main() >>>>>> File "rfnoc_myGain_usrp.py", line 212, in main >>>>>> tb = top_block_cls(fpga_path=options.fpga_path, >>>>>> rx_gain=options.rx_gain, rx_digital_gain=options.rx_digital_gain, >>>>>> rx_freq=options.rx_freq, host_ip_addr=options.host_ip_addr) >>>>>> File "rfnoc_myGain_usrp.py", line 117, in __init__ >>>>>> self.tutorial_gain_0.set_arg("gain", rx_digital_gain) >>>>>> File >>>>>> "/home/root/newinstall/usr/lib/python2.7/site-packages/tutorial/tutorial_swig.py", >>>>>> line 315, in set_arg >>>>>> return _tutorial_swig.gain_sptr_set_arg(self, *args) >>>>>> RuntimeError: LookupError: Path not found in tree: >>>>>> /mboards/0/xbar/gain_0/args/0/gain/value >>>>>> >>>>>> I looked at some of your examples (which have been very helpful to >>>>>> get me this far) from what I believe is your github someone linked me. >>>>>> Everything appears to match what it should, for what gain is trying to >>>>>> accomplish. >>>>>> >>>>>> Regards, >>>>>> Jon >>>>>> >>>>>> On Thu, Nov 21, 2019 at 3:27 PM EJ Kreinar <ejkrei...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> Hi Jon, >>>>>>> >>>>>>> The rfnoc "nocscript" xml definition can create arguments and attach >>>>>>> to the device tree like you are trying to set there (it's not compiled >>>>>>> directly, but rather created dynamically from the xml definition) >>>>>>> >>>>>>> Recommended debugging... >>>>>>> 1. Check your OOT gain block xml (in rfnoc/blocks) and make sure it >>>>>>> has a "gain" field in the "args" list. You'll also want to make sure it >>>>>>> writes your desired register, but I don't think you're even getting >>>>>>> that far >>>>>>> 2. Make sure the block xml is installed on the e310 embedded prefix >>>>>>> and is found at run time during uhd_usrp_probe and when running your >>>>>>> application. If it's not in the right place or not attaching to your >>>>>>> block >>>>>>> then it won't create the gain argument >>>>>>> >>>>>>> I'm guessing it's one of those two possibilities... >>>>>>> EJ >>>>>>> >>>>>>> On Thu, Nov 21, 2019, 3:19 PM Jonathan Lockhart via USRP-users < >>>>>>> usrp-users@lists.ettus.com> wrote: >>>>>>> >>>>>>>> Greetings, >>>>>>>> >>>>>>>> I was able to get the ARM cross compile working. I removed the >>>>>>>> build directory and re-sourced the dev environment and then the >>>>>>>> cross-compile used the -mfloar=hard flag. Not sure what caused the >>>>>>>> issue >>>>>>>> earlier and why it wasn't picking it up. >>>>>>>> >>>>>>>> Now I have a different issue. So I have completed this guide: >>>>>>>> https://kb.ettus.com/Getting_Started_with_RFNoC_Development >>>>>>>> >>>>>>>> I modified the GNURadio just a bit so that the output from gain was >>>>>>>> placed on a ZMQ push, and the graphics were on the host to graph the >>>>>>>> signal >>>>>>>> (seen in the screenshots below). >>>>>>>> >>>>>>>> [image: Screenshot from 2019-11-21 15-06-33.jpg] >>>>>>>> >>>>>>>> [image: Screenshot from 2019-11-21 15-010-44.jpg] >>>>>>>> >>>>>>>> However, when I run the top file for the USRP, I am running into >>>>>>>> this error. >>>>>>>> >>>>>>>> Traceback (most recent call last): >>>>>>>> File "rfnoc_myGain_usrp.py", line 223, in <module> >>>>>>>> main() >>>>>>>> File "rfnoc_myGain_usrp.py", line 212, in main >>>>>>>> tb = top_block_cls(fpga_path=options.fpga_path, >>>>>>>> rx_gain=options.rx_gain, rx_digital_gain=options.rx_digital_gain, >>>>>>>> rx_freq=options.rx_freq, host_ip_addr=options.host_ip_addr) >>>>>>>> File "rfnoc_myGain_usrp.py", line 117, in __init__ >>>>>>>> self.tutorial_gain_0.set_arg("gain", rx_digital_gain) >>>>>>>> File >>>>>>>> "/home/root/newinstall/usr/lib/python2.7/site-packages/tutorial/tutorial_swig.py", >>>>>>>> line 315, in set_arg >>>>>>>> return _tutorial_swig.gain_sptr_set_arg(self, *args) >>>>>>>> RuntimeError: LookupError: Path not found in tree: >>>>>>>> /mboards/0/xbar/gain_0/args/0/gain/value >>>>>>>> >>>>>>>> No where else in building GNURadio scripts and .bit files does this >>>>>>>> "/mboards" arise, and I have looked through my verilog file for gain >>>>>>>> (gain.v) and it is correct per the instructions in the linked guide, >>>>>>>> and I >>>>>>>> built the python and gnuradio hook exactly as the instructions stated >>>>>>>> to. >>>>>>>> >>>>>>>> Anyone have an troubleshooting ideas b/c I am currently at a loss. >>>>>>>> It did past the test bench they have you build with no issues. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Jon >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Nov 20, 2019 at 3:21 PM Jonathan Lockhart < >>>>>>>> jlockhar...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Greetings, >>>>>>>>> >>>>>>>>> I am having some issues completing the RFNOC build tutorial on the >>>>>>>>> Ettus E312. The reference documentation is using an X3xx series >>>>>>>>> radio, and >>>>>>>>> from the final python script it appears to be running the GNR script >>>>>>>>> natively on the host. I built the exact script from the KB but when >>>>>>>>> running >>>>>>>>> on the radio it fails stating it can't "import tutorial." I realized >>>>>>>>> all >>>>>>>>> the files that were installed were placed on the host but not cross >>>>>>>>> compiled for the E3xx using the SDK and ARM cross compile tool. I >>>>>>>>> tried to >>>>>>>>> complete this task, but unfortunately the compilation dies here. >>>>>>>>> >>>>>>>>> /home/jon/rfnoc/oe/sysroots/armv7ahf-vfp-neon-oe-linux-gnueabi/usr/include/gnu/stubs.h:7:11: >>>>>>>>> fatal error: gnu/stubs-soft.h: No such file or directory >>>>>>>>> # include <gnu/stubs-soft.h> >>>>>>>>> ^~~~~~~~~~~~~~~~~~ >>>>>>>>> compilation terminated. >>>>>>>>> >>>>>>>>> Now I did find the stubs-soft.h file in the libc6-dev-armel-cross >>>>>>>>> in the apt repo. I installed it and tried to cp the file into the >>>>>>>>> /home/jon/rfnoc/oe/sysroots/armv7ahf-vfp-neon-oe-linux-gnueabi/usr/include/gnu/ >>>>>>>>> location but it still doesn't like that. I verified that on my echo >>>>>>>>> $CC >>>>>>>>> that the -mfloat is set to hard as shown here. >>>>>>>>> >>>>>>>>> jon@jon-OptiPlex-9020:~/rfnoc/src/rfnoc-tutorial$ echo $CC >>>>>>>>> arm-oe-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard >>>>>>>>> -mfpu=neon >>>>>>>>> --sysroot=/home/jon/rfnoc/oe/sysroots/armv7ahf-vfp-neon-oe-linux-gnueabi >>>>>>>>> >>>>>>>>> So I am not sure why the gain module in the tutorial is looking >>>>>>>>> for the soft file. >>>>>>>>> >>>>>>>>> If anyone has experience in porting their OOT modules over to the >>>>>>>>> E-series of radios I would appreciate the help. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Jon >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> 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