Nothing beats the doctor's office effect. In case anyone else has been looking for this I just got it:
in c++: : stream_cmd.stream_now = false; //true; //change this line stream_cmd.time_spec = radio_ctrl->get_time_now()+1.5; //or prob. less rx_stream->issue_stream_cmd(stream_cmd); //existing line the thing that was confusing to me was that the radio owns time and the rx_stream understands that time. I would have thought that the streamer would own the time. in Gnuradio: after the last of the streamer stuff and before QT stuff self.uhd_rfnoc_streamer_radio_0.set_command_time(self.uhd_rfnoc_streame r_radio_0.get_time_now()+uhd.time_spec_t(.1)) The thing that was confusing to me here was that I don't know where the equivalent of issue_stream_cmd happens in grc so didn't know where to put this but this works. Does anyone know of a way to get gnuradio-companion to add this line? Now I'm keeping an editor window open, pasting the new line back in every time I mess with the flowgraph, and running the python from the command line. It's similar to what I have to do to get rfnoc siggen working. I'd bet that it wouldn't be too hard for someone who understands grc to get it to add these lines. I thought of using the "import" block but that puts the line at the very top before the streamer is defined. On Thu, 2019-12-05 at 16:47 +0000, d.des wrote: > I'm trying to process multi-channel RFNoC streams in Gnuradio but > would > settle for using the c++ API if necessary. I'm using just one of the > two TwinRX card in an X310. The simplest example of the alignment > issue > is seem by comparing 2-channel recordings made at a 1 MHz sample rate > on an aperiodic pulsed signal: > > (1) 2-channel usrp->ddc->two file sinks > and > (2) 2-channel RFNoC radio->DDC->two file sinks > > The usrp example records time-synchronized data regardless of "Synch" > option built into the block (internal or gps). The RFNoC example, > however, shifts one of the outputs by 10s of microseconds. This seems > like quite a trick since I'm sure that the TwinRX is delivering the > samples synchronized. I thought that it might be something in the > file > streaming so I tested with a stock addsub block that works correctly > in > the testbench. If I connect > > radio->DDC->addsub->two file sinks > > and compare data from addsub and a separate receiver I can see that > the > sum and difference signals are obviously ingesting out-of-sync data. > This confirms that the random delay is being added between the RFNoC > DDC and addsub blocks, letting Gnuradio transport off the hook. > > I've searched a lot and seen suggestions to use timed commands but > haven't figured out how how to do that in RFNoC with Gnuradio (even > editing Python). I'm also having no luck with creating a 2-channel > c++ > recorder based on rfnoc_rx_to_file.cpp: it fails with "Invalid recv > stream command - stream now on multiple channels in a single streamer > will fail to time align." but I can't figure out how to get or set > the > streamer time without a usrp object. > > > I'm using UHD 3.14.1 because I'm also working with E310s but could > update if necessary. _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com