On Thu, 2020-11-12 at 13:25 -0500, Marcus D. Leech wrote: > On 11/11/2020 11:11 PM, Dustin Widmann wrote: > > Hi Marcus > > > > I've given this a try, unfortunately I'm running into a problem > > with > > that. I've always gotten strange crashes with UHD 3.15 with this > > codebase (probably my fault, but I'm not sure why yet). > > I can collect around ~200 datapoints-ish (about 20-ish retunes of > > the > > receiver), before it crashes with one of these errors: > > > > ***** > > terminate called after throwing an instance of 'uhd::io_error' > > what(): EnvironmentError: IOError: [0/DDC_1] sr_write() failed: > > EnvironmentError: IOError: Block ctrl (CE_04_Port_70) no response > > packet - AssertionError: bool(buff) > > in uint64_t ctrl_iface_impl<_endianness>::wait_for_ack(bool, > > double) > > [with uhd::endianness_t _endianness = uhd::ENDIANNESS_BIG; uint64_t > > = > > long unsigned int] > > at /home/sdrdev/uhd-3.15/host/lib/rfnoc/ctrl_iface.cpp:151 > > > > [1] 193504 abort (core dumped) LD_LIBRARY_PATH=/opt/qt- > > 5.15.1/lib:/opt/uhd-3.15/lib:/opt/boost-1.74.0/lib > > ***** > > > > ***** > > Receiver error: "ERROR_CODE_TIMEOUT" , continuing... > > 21:45:08.166 ## default.fatal ## static void > > UhdSdrVna::uhdLogger(), > > uhdsdrvna.cpp:866 > > [x300_fw_ctrl.cpp:53] [X300] 192.168.40.2: x300 fw communication > > failure #1 > > EnvironmentError: IOError: x300 fw poke32 - reply timed out > > [1] 193622 abort (core dumped) > > ***** > > > > Each time it errors out, a hard reset of the device is required, > > else > > it will error out immediately after the application is restarted > > with > > the second error above. This makes automation difficult. > > Nevertheless, > > I've run it several times focusing on areas that looked problematic > > in > > the previous dataset. Many (not all) of those problematic areas > > seemed > > unproblematic here, though they were only tried once so its > > difficult > > to say for sure. On the other hand, frequencies that were giving me > > invalid results before (no tone at the expected IF frequency on one > > or > > both of the channels, cell background color highlighted red in the > > attached files) are still problematic here however. > > > > https://u.pcloud.link/publink/show?code=XZ7KnzXZgqYQElUagKRRKSfugQPJ4yy65ToX > > > > Dustin > > > > > Sigh, OK, so let's stick with UHD 4.0. > > I'll note that given the numbers you've provided, you're only > observing > for about 10 samples/frequency. That's not enough time > for the hardware to "settle"--at least given the 100Msps you're > using. The command-time for tuning is the time at which > tuning will be *initiated*--there'll be some latency due to things > like SPI/I2C bus latency, and the vagaries of analog hardware > changing equilibrium, PLLs locking into place, etc. > >
Marcus et al., 10 samples/frequency? No, I'm collecting about 2^17 samples for each datapoint (gives a frequency resolution of about 763Hz, which is probably overkill for my purposes, but I've noticed I get consistent results this way and it seems to be faster than using smaller FFTs and doing averaging). Roughly what I've been doing is this: ** start a tx streamer in a separate thread that is always running ** start a rx streamer in a separate thread that is always running (discard if not currently collecting samples i.e. most of the time) ** for each frequency where I want to measure **** Tune the TX **** Tune the RX (if needed) ****** timed command 100ms in future ****** issue tune command ****** timed command 350ms in future ****** issue tune command again ****** wait for 600ms. for timed commands to be issued and RX/TX to settle **** if the RX wasn't tuned, wait for 50ms for TX to settle **** collect one FFT worth of samples (2^17 in this case) **** process that data Dustin _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com