I'm happy this is working for you, David. So do I understand correctly, that the adding tx_time finally made the MIMO case work?
I'd never done burst transmission with multiple USRP outputs. I'm not totally surprised but I wasn't sure what would happen. Maybe someone from Ettus can comment on this? Since UHD is trying to do time alignment in the multi_usrp class, what happens to time alignemt in the non-continuous-streaming case if you *don't* include a tx_time tag? -John On Thu, Oct 16, 2014 at 7:23 AM, David Halls <david.ha...@toshiba-trel.com> wrote: > John thanks for all your help, this works, although it is necessary to > add ‘tx_sob’ and ‘tx_eob’ tags (or certainly it is for those not using the > latest gr-uhd). > > > > If you are using MIMO it is more complicated, as you have to add a > ‘tx_time’ tag as well. This is not obvious how to generate in a tx flow > graph. > > > > My solution was to use a UHD source (the same address as the tx USRP), > which generates rx_time, I then created a block which reads in this rx_time > tag and sends it as a message to a block just before my UHD sink which > converts this to a tx_time based on the number of bursts sent, and the > burst interval that I desire. > > > > As I am using MIMO, i.e. multiple USRPs in one UHD sink, I also had to use > multiple USRPs in the UHD source to produce the rx_time (although the > multiple rx_times will be equal). > > > > > > > > *From:* John Malsbury [mailto:jmalsbury.perso...@gmail.com] > *Sent:* 15 October 2014 20:03 > > *To:* David Halls > *Cc:* Matt Ettus; GNURadio > *Subject:* Re: [Discuss-gnuradio] Source Block - Flow Control > > > > Hmmmm.. I've never done burst transmissions with a 2x MIMO case. That may > or may not put a minor wrinkle in things. Let's go for the gusto and try > this anyway... > > (or were you not looking for a burst transmission?) > > > This assumes you're using a relatively recent (past couple months?) build > of UHD and GR. > > 1. Produce some data as a PDU. The quickest is to use a message > strobe into a random PDU generator. If you want data you control, use a > message strobe with something like this as the message value: > > > > pmt.cons(pmt.to_pmt({}),pmt.init_u8vector(payload_size,[0x55]*payload_size)) > > Of course, you'd ultimately replace this fixed or random data with > your own PDU-producing block. Or maybe use some clever python inside or > outside the flowgraph. > 2. Use PDU-to-stream block, make sure the length tag name matches > whatever UHD is using downstream (this is a parameter in the uhd sink now). > 3. Put that stream through your modulator. > 4. I think there's a block that multiplies the value of the length in > the length tag. set this to the interpolation factor of your modulator and > put it somewhere in the chain. If this block does not have one, borrow the > one from gr-mac. "burst_tagger" > <https://github.com/jmalsbury/gr-mac/blob/master/lib/burst_tagger_impl.cc> > > In summary: > > *Message Strobe -> Random PDU -> PDU to Stream -> Modulator -> > [see how the constellation works]* > > Give it a shot. If it doesnt work, give a brief try with the SISO case. > > You'll want to add some leading/trailing samples to flush FIR-filters and > such for the full frame to get out of the USRP unscathed. We can address > this next... > > -John > > > > On Wed, Oct 15, 2014 at 11:47 AM, David Halls < > david.ha...@toshiba-trel.com> wrote: > > Hi John, > > > > I have been trying at this all day! Not familiar with the async message > stuff, I have tried putting ‘sleep()’ in the source block, I have tried a > throttle outside it and even discarding the first X items just before the > UHD sink to flush the buffer away. > > > > This all causes weird underflows and things at the USRP and results in a > horrible looking constellation at the RX (I am transmitting 2x1 MISO which > requires perfect TX sync). This is exactly the behaviour, I think, that > Matt warned of!! > > > > Could you give me a bit more of an idea of how to even do the simpler > idea, that I had thought of… I need to basically trigger the source at > certain intervals. How does the message queue interact with the block, does > the program flow jump to ‘parse_header_data_msg()’ automatically when a > message arrives? > > > > DH > > > > *From:* John Malsbury [mailto:jmalsbury.perso...@gmail.com] > *Sent:* 14 October 2014 23:42 > *To:* David Halls > *Cc:* Matt Ettus; GNURadio > > > *Subject:* Re: [Discuss-gnuradio] Source Block - Flow Control > > > > In the implementation I have in mind, the upstream logic didn't make > decisions on when the data generating block should generate data per se... > Instead, the upstream block provided feedback on the number of packets > received by the USRP (via the old async message block). With this feedback > and knowledge of the interpolation steps between itself and the USRP, the > data generating block could throttle its own output to achieve a specified > latency [on the order of 10's of ms]. > > I think using a simpler scheme of triggering with an async message would > be a more convenient place to start though... What do you think, David? > > > -John > > > > On Tue, Oct 14, 2014 at 3:23 PM, David Halls <david.ha...@toshiba-trel.com> > wrote: > > Hi John, > > > > Nice to hear from you. > > > > Perhaps in a similar fashion to Martin's HPD block; I can pass a message > back from later in the flow graph to indicate when to release a packet from > the source? > > > > David > > > > -------- Original message -------- > > From: John Malsbury > > Date:2014/10/14 23:08 (GMT+00:00) > > To: David Halls > > Cc: Matt Ettus ,GNURadio > > Subject: Re: [Discuss-gnuradio] Source Block - Flow Control > > > > David, > > Perhaps you can use an async message to trigger the blocks output? > > In some applications that require filler between valid data frames, I've > seen people throttle based off of the number and size of received messages > at the USRP. > > -John > > > > > > On Tue, Oct 14, 2014 at 3:02 PM, David Halls <david.ha...@toshiba-trel.com> > wrote: > > That sounds promising. The only thing is that the data *is* valid from > time zero, but I just want to send the values from my source block, say > once per second. > > > > What can I use to block in my block, just not produce any items for some > period of time or a number of calls? and is there anyway to know when I > can stop blocking? What will fill the buffers further down the chain? > > > > thanks, > > > > David > > > > -------- Original message -------- > > From: Matt Ettus > > Date:2014/10/14 22:56 (GMT+00:00) > > To: David Halls > > Cc: Jeff Long ,GNURadio > > Subject: Re: [Discuss-gnuradio] Source Block - Flow Control > > > > > > No, if you don't have anything useful to output in a source block, you can > (and should) block while you wait. If you have something useful, but not > as much as requested, you can output only what you have. There is no need > to generate filler in GNU Radio. > > > > Matt > > > > > > On Tue, Oct 14, 2014 at 2:43 PM, David Halls <david.ha...@toshiba-trel.com> > wrote: > > Matt, > > > > In my source block I can limit the calls to the DB ok, but I will still > need to output something from the block, won't I? This will then propagate > and fill the buffers? > > > > Thanks, > > > > David > > > > -------- Original message -------- > > From: Matt Ettus > > Date:2014/10/14 19:09 (GMT+00:00) > > To: Jeff Long > > Cc: GNURadio > > Subject: Re: [Discuss-gnuradio] Source Block - Flow Control > > > > > > Jeff, > > > > If there is a hardware device like a USRP in the chain, then you should > not use a throttle block. What you are seeing is the initial startup > burst. When everything starts up, all the buffers are empty, and GNU Radio > will generate data until something backs up. Once they fill up, you are > seeing the rate settle down. This is all normal. > > > > If you really need to rate limit what gets requested of the database > during the initial transient (which I don't recommend), you should do that > within your source block. > > > > Matt > > > > > > On Tue, Oct 14, 2014 at 10:56 AM, Jeff Long <willco...@gmail.com> wrote: > > Should have mentioned ... set the throttle rate just slightly higher than > what the chain would consume at steady state when all the buffers are > filled and the USRP is transmitting. How well this works depends on what > the rest of the chain looks like. > > - Jeff > > > > On 10/14/2014 05:52 PM, Jeff Long wrote: > > Use a throttle block immediately after your source block, setting the > vector size to match your source. > > - Jeff > > On 10/14/2014 04:34 PM, David Halls wrote: > > Dear All, > > I am wondering how to add some flow control to a source block, so that > it doesn’t fire out items so quickly. > > Later stages of my flow graph are slowed by various bits of processing > and combining, before transmission via USRP, with bursts being > transmitted every few seconds. > > What happens is that the block fires out 1,000s of vectors, and then > seems to slow down and settle into sync with the rest of the flow graph > after a few seconds. As my source block is reading in from a Database, I > want to slow this initial rate significantly. > > The block outputs vectors of bytes (v_len=144). Any ideas? > > Regards, > > David > > --------------------------------------------------------------- > > David Halls Ph.D. > > Research Engineer > > Toshiba Research Europe Limited > > 32 Queen Square, Bristol, BS1 4ND, UK > > Tel: +44 (0) 117 906 0790 > > > ------------------------------------------------------------------------ > > NOTE: The information in this email and any attachments may be > confidential and/or legally privileged. This message may be read, copied > and used only by the intended recipient. If you are not the intended > recipient, please destroy this message, delete any copies held on your > system and notify the sender immediately. > > Toshiba Research Europe Limited, registered in England and Wales > (2519556). Registered Office 208 Cambridge Science Park, Milton Road, > Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl > > > > ------------------------------------------------------------------------ > This email has been scanned for email related threats and delivered > safely by Mimecast. > For more information please visit http://www.mimecast.com > ------------------------------------------------------------------------ > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > ------------------------------ > > > NOTE: The information in this email and any attachments may be > confidential and/or legally privileged. This message may be read, copied > and used only by the intended recipient. If you are not the intended > recipient, please destroy this message, delete any copies held on your > system and notify the sender immediately. > > Toshiba Research Europe Limited, registered in England and Wales > (2519556). Registered Office 208 Cambridge Science Park, Milton Road, > Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl > > ------------------------------ > > This email has been scanned for email related threats and delivered safely > by Mimecast. > For more information please visit http://www.mimecast.com > ------------------------------ > > > > > ------------------------------ > > > NOTE: The information in this email and any attachments may be > confidential and/or legally privileged. This message may be read, copied > and used only by the intended recipient. If you are not the intended > recipient, please destroy this message, delete any copies held on your > system and notify the sender immediately. > > Toshiba Research Europe Limited, registered in England and Wales > (2519556). Registered Office 208 Cambridge Science Park, Milton Road, > Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl > > ------------------------------ > > This email has been scanned for email related threats and delivered safely > by Mimecast. > For more information please visit http://www.mimecast.com > ------------------------------ > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > ------------------------------ > > > NOTE: The information in this email and any attachments may be > confidential and/or legally privileged. This message may be read, copied > and used only by the intended recipient. If you are not the intended > recipient, please destroy this message, delete any copies held on your > system and notify the sender immediately. > > Toshiba Research Europe Limited, registered in England and Wales > (2519556). Registered Office 208 Cambridge Science Park, Milton Road, > Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl > > ------------------------------ > > This email has been scanned for email related threats and delivered safely > by Mimecast. > For more information please visit http://www.mimecast.com > ------------------------------ > > > > > ------------------------------ > > > NOTE: The information in this email and any attachments may be > confidential and/or legally privileged. This message may be read, copied > and used only by the intended recipient. If you are not the intended > recipient, please destroy this message, delete any copies held on your > system and notify the sender immediately. > > Toshiba Research Europe Limited, registered in England and Wales > (2519556). Registered Office 208 Cambridge Science Park, Milton Road, > Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl > > > ------------------------------ > > This email has been scanned for email related threats and delivered safely > by Mimecast. > For more information please visit http://www.mimecast.com > ------------------------------ > > > > ------------------------------ > > NOTE: The information in this email and any attachments may be > confidential and/or legally privileged. This message may be read, copied > and used only by the intended recipient. If you are not the intended > recipient, please destroy this message, delete any copies held on your > system and notify the sender immediately. > > Toshiba Research Europe Limited, registered in England and Wales > (2519556). Registered Office 208 Cambridge Science Park, Milton Road, > Cambridge CB4 0GZ, England. Web: www.toshiba.eu/research/trl > > > > ------------------------------ > This email has been scanned for email related threats and delivered safely > by Mimecast. > For more information please visit http://www.mimecast.com > ------------------------------ >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio