Oh! I suspect you want...
<args> <arg> ... </arg> </args> (Rather than two nested "args") That ought to do it... EJ On Fri, Nov 22, 2019, 11:55 AM Jonathan Lockhart <jlockhar...@gmail.com> wrote: > 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