Hi Jeff,
I use burst mode all the time (mostly on N310 but X310 as well). I
usually prefer a `packet_length` tag instead of SOB --> EOB. As Marcus
mentioned, as soon as the first sample goes into the USRP sink, you
start transmitting and need to sustain your sample rate. To ensure that
you provide enough samples, I'd recommend to start with a vector source
and a defined signal. Or use a PDU with a PDU to tagged block to control
the frequency of your individual packets.
A sine wave with increasing amplitude is probably a very useful signal.
And I assume you're aware that bursts should be preceeded and followed
by some zero values to ensure everything is in a steady state as soon as
your real data is transmitted. The proposed signal would be really
useful to debug these issues.
Cheers
Johannes
On 21.01.21 19:34, Jeff S via USRP-users wrote:
Here's an output of a sine wave which replaced the spikey one:
I think that shows what I believe you were explaining, that the SOB/EOB
doesn't work like I thought. I was using them as packet identifiers and
assumed the USRP would wait for the whole packet to begin transmission,
but your description seems to indicate that tx_sob turns the radio on
and tx_eob turns the radio off (maybe a simplification?) and just
streams whatever it sees during that time. And during that time, the
buffer may be empty because data isn't produced fast enough.
The time between the segments of the sine wave show the delay from one
call of the work function to the next. There is a delay within the
source that slows the output of the data, and since I thought the
SOB/EOB combination would only transmit after the EOB was received, I
did not think it would be a problem. It obviously is.
I now have to think of a way to do that with random length data. Maybe
add a tx_time to provide some delay before transmission?
Jeff
------------------------------------------------------------------------
*From:* Marcus Müller <marcus.muel...@ettus.com>
*Sent:* Thursday, January 21, 2021 10:29 AM
*To:* Jeff S <e070...@hotmail.com>; usrp-users <usrp-users@lists.ettus.com>
*Subject:* Re: [USRP-users] SOB/EOB Burst Mode on X310 Splitting Signal
Hi Jeff,
thanks for clarifying!
Yes, that should work. Also, your GR version definitely has support for
SOB/EOB.
Generally, I'd expect this to work; only misconception I see is that the
Sink doesn't
start sending when it sees the EOB; it starts sending at SOB, and stops
expecting and
sending samples to the USRP at EOB.
Could you try replacing your very "spikey" signal with something like a
sine, so to see
whether we might be seeing turn of/off behaviour?
Best regards,
Marcus
On 21.01.21 16:34, Jeff S wrote:
Thanks, Marcus.
Of course, I forgot the important version information. I'm currently using
v3.7.13.5. We
are also doing some RFNoC work, which we had some issues upgrading a while
back, so we
were holding off until it matured more. I'll ask our team if they want to try
and upgrade
to 3.8 again.
I'm sure my description wasn't clear, so I'll try and clarify a little better
based on
your feedback.
I created the Random Source, and it is sending approximately 10,000 samples to
the UHD
USRP Sink as one message, with a tx_sob at the start and a tx_eob at the end.
My thought
was that the sink would not transmit anything until the EOB was received. The
way
GNURadio seems to be running, I'm getting [noutput_items == 4096], so it takes
three calls
to the work function to deliver all 10K samples of one message to the Sink. I
only want
one burst from the sink of those 10K samples. What I am receiving seems to be
three
transmissions that make up the one sample. The length of the three
transmissions seem to
correspond to the value of noutput_items I was seeing.
The mention of 100 ms between bursts was only indicating how fast the modulator
was being
requested to transmit a single message. So if I only requested one message,
there would
have been one group of three signals seen in the Rx signal.
Hope that clarified what I was trying to convey a little better.
Regards,
Jeff
------------------------------------------------------------------------------------------
*From:* Marcus Müller <marcus.muel...@ettus.com>
*Sent:* Thursday, January 21, 2021 9:06 AM
*To:* Jeff S <e070...@hotmail.com>; usrp-users <usrp-users@lists.ettus.com>
*Subject:* Re: [USRP-users] SOB/EOB Burst Mode on X310 Splitting Signal
Hi Jeff,
which version of GNU Radio are you using? Judging by the looks of your flow
graph it's the
(now legacy) 3.7, but *if* I remember correctly (it's really been a while), the
SOB/EOB
functionality appeared *somewhen* in 3.7.x; it might be worth trying your exact
same
application in GNU Radio 3.8 (or 3.9).
Conceptually, it's important to note that after tx_sob you need to supply the
full burst
of samples: I think you're doing that, but then again, you say you get three
data bursts
100 ms apart, so I'm not sure about that, to be honest. The USRP sink can't
guess that you
want three bursts of samples to be sent as one; it starts streaming as fast as
you supply
it data after the SOB, and will tell you you're late or too slow at supplying
data (tG/U
printed to your console) if you don't give it 10 million samples a second,
until it gets
an SOB.
Best regards,
Marcus
On 21.01.21 15:53, Jeff S via USRP-users wrote:
I am attempting to use burst mode on an X310. I'm generating a random signal
from one
X310 and receiving it on another. My simple flowgraph is:
I can see the tx_sob and tx_eob tags, set to true, from the time sink:
where I verify that I can see the EOB, followed by a new SOB in the next
message (both set
to true, according to
https://www.gnuradio.org/doc/doxygen/classgr_1_1uhd_1_1usrp__sink.html
<https://www.gnuradio.org/doc/doxygen/classgr_1_1uhd_1_1usrp__sink.html>
<https://www.gnuradio.org/doc/doxygen/classgr_1_1uhd_1_1usrp__sink.html
<https://www.gnuradio.org/doc/doxygen/classgr_1_1uhd_1_1usrp__sink.html>>).
But when I am
receiving the signal, the message seems to be broken up into three different
transmissions
instead of one burst:
I'm transmitting a message every 100 ms, which seems to correspond to the start
of the
three messages.
Analyzing the modulator in a debugger indicates that there are three times that
the work
function is called to build the message, which may correspond to the three
messages seen
in the signal, but I'm not sure why the tx_sob and tx_eob tags are not being followed.
Maybe I may just have a major misunderstanding of how burst mode works.
Any ideas on what I may be doing wrong?
Thanks,
Jeff
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/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
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com