Forum: GNU Radio Underrun in usrp causes corrupted packages

Posted by "Pär Särnblad" <par.sarnblad@gmail.com> (Guest)
on 2012-10-10 21:22
(Received via mailing list)
Hi

I've been messing around with the benchmark rx and rx examples to make
digital voice communication using codec2. I am using a message queue
between the audio rx - codec path and the main loop that is adding 
packet
number and callsigns to the package before sending it on to the tx path.

All works well until I uses a transmission rate higher than then 
audiopath
generates because the usrp gets a underrun, and that is expected. What I
didn't expect is that the packages that are sent is corrupted when there 
is
a underrun.Is this due to problems with not pushing data through the 
usrp
and things gets stalled there? The package block is padding for usrp .
Should I use the eof flag? How do I solve this problem?

What I want to do is have a queue with different packages and be able to
mix voice and data transmissions.

Also, the codec2 block is really outdated but have a working build of 
the
current version and I will submit that when I have tested things out and
fixed a block or blocks to handle different bitrates.

/P
Posted by Josh Blum (Guest)
on 2012-10-10 21:52
(Received via mailing list)
On 10/10/2012 12:21 PM, Pr Srnblad wrote:
> a underrun.Is this due to problems with not pushing data through the usrp
> and things gets stalled there? The package block is padding for usrp .
> Should I use the eof flag? How do I solve this problem?
>

In general, there should be some padding and and EOB tag at the end your
packet/burst to flush it through the DUC chain and to tell the DUC chain
that there will be no more samples.

> What I want to do is have a queue with different packages and be able to
> mix voice and data transmissions.
>
> Also, the codec2 block is really outdated but have a working build of the
> current version and I will submit that when I have tested things out and
> fixed a block or blocks to handle different bitrates.
>

I highly recommend that you take a look at the pre-cog project. Its
specifically aimed at solving problems like this. You should be able to
channelize different data sources through the simple MAC layer.

https://github.com/buoyboy/pre-cog/wiki

-josh
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.