# Precise transmit scheduling

**URL:** <https://www.ruby-forum.com/t/precise-transmit-scheduling/198654>\
**Category:** GNU Radio\
**Created:** [November 4, 2010, 10:35pm UTC](https://www.ruby-forum.com/t/precise-transmit-scheduling/198654 "2010-11-04T22:35:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![okkezSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@okkezSS](https://www.ruby-forum.com/u/okkezSS)\
**Post date:** [November 4, 2010, 10:35pm UTC](https://www.ruby-forum.com/t/precise-transmit-scheduling/198654/1 "2010-11-04T22:35:19Z")

</div>

* * *

Discuss-gnuradio mailing list  
removed\_email\_address@domain.invalid  
[http://lists.gnu.org/mailman/listinfo/discuss-gnuradio](http://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

---

<div class="post-metadata">

**Author:** ![Yan\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/3e96dc/32.png) [@Yan\_N](https://www.ruby-forum.com/u/Yan_N)\
**Post date:** [November 4, 2010, 11:12pm UTC](https://www.ruby-forum.com/t/precise-transmit-scheduling/198654/2 "2010-11-04T23:12:20Z")

</div>

On Thu, Nov 4, 2010 at 5:33 PM, Yan N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> How can I scheduling the transmitter by sending several bits of the
> 
> Sincerely,  
> Yan

I am also very interested in this. I have had some success by using  
gr.message\_source, and having a python thread that periodically pushes  
new  
data into the system by putting it on the message queue. Transmitter  
auto\_tr  
is enabled so that when the usrp runs out of data it turns off the  
transmit  
until the next message arrives. Scheduling at the python level seems  
very  
rough, with intervals varying ~+/- 1ms without tuning each time, and  
~+/-  
10ms when tuning before each burst. I was under the impression that  
calling  
set\_rx\_freq() to tune just the DUC rather than usrp.tune() should be  
faster/more responsive, but I haven’t seen this to be true…

Any scheduling / hopping tips would be greatly appreciated!

-Steven

---

<div class="post-metadata">

**Author:** ![Yan\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/3e96dc/32.png) [@Yan\_N](https://www.ruby-forum.com/u/Yan_N)\
**Post date:** [November 5, 2010, 12:40am UTC](https://www.ruby-forum.com/t/precise-transmit-scheduling/198654/3 "2010-11-05T00:40:44Z")

</div>

> > 
> 
> I am also very interested in this. I have had some success by using  
> gr.message\_source, and having a python thread that periodically pushes new  
> data into the system by putting it on the message queue. Transmitter auto\_tr  
> is enabled so that when the usrp runs out of data it turns off the transmit  
> until the next message arrives. Scheduling at the python level seems very  
> rough, with intervals varying ~+/- 1ms without tuning each time, and ~+/-  
> 10ms when tuning before each burst. I was under the impression that calling  
> set\_rx\_freq() to tune just the DUC rather than usrp.tune() should be  
> faster/more responsive, but I haven’t seen this to be true…

Im not sure how gr-usrp handles the tuning. If it helps, the UHD tuning  
interface will allow you to tune elements individually or as a complete  
chain. So you can tune the overall frequency, or just tweak the DSP  
frequency. Its all brought up into python FWIW.

[http://www.ettus.com/uhd\_docs/doxygen/html/structuhd\_1\_1tune\_\_request\_\_t.html](http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1tune __request__ t.html)

> Any scheduling / hopping tips would be greatly appreciated!

I am going to make a overload of the UHD USRP source that pushes packet  
decoration (such as time, freq, sample rate) onto a message queue. An  
upstream block will pop off the queue as it runs its work() function.

Now, this could be done in reverse with a message queue feeding into a  
UHD USRP sink with timestamp information. And there you have timed,  
scheduled transmission of packets.

Now, the problem being, this only is possible with USRP2 as USRP1 does  
not currently support timestamped transmission and reception.

-Josh

---

<div class="post-metadata">

**Author:** ![Yan\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/3e96dc/32.png) [@Yan\_N](https://www.ruby-forum.com/u/Yan_N)\
**Post date:** [November 10, 2010, 5:52pm UTC](https://www.ruby-forum.com/t/precise-transmit-scheduling/198654/4 "2010-11-10T17:52:16Z")

</div>

* * *

Discuss-gnuradio mailing list  
removed\_email\_address@domain.invalid  
[http://lists.gnu.org/mailman/listinfo/discuss-gnuradio](http://lists.gnu.org/mailman/listinfo/discuss-gnuradio)
