Frequency hopping TX using python

Discussions related to embedded firmware, driver, and user mode application software development
Post Reply
lezard
Posts: 4
Joined: Wed Sep 27, 2023 10:02 am

Frequency hopping TX using python

Post by lezard »

Hello

With the inpiration of this thread (viewtopic.php?p=6789), I've been able to implement a fast frequency hopping TX. I am scheduling frequency retune and transmit small burst.

Image

First chalenge was the limitation of the retune queue of 16 , I kept a circular reference of each timestamp I retune.
When a BLADERF_ERR_QUEUE_FULL occur while scheduling the next frequency retune, I can not just sleep a little and try again, the result is broken.

Instead I get_timestamp:

- get_timestamp from the device
- I compare with the first element of the circular list.
- If current timestamp is before the first in the list, retry
- else: bladerf_schedule_retune

I get the timestamp again and again until the current is after the first element. At this point, it is telling us that there are less than 15 scheduled retune requests. Or maybe the queue is empty...

Every time we are looking for the timestamp, it is adding delay. This delay is not fixed and there is a chance a longer delay occured and the scheduling won't be syncronized. I suspect it has happenned here:

Image

Is there another way in python to schedule retune without having to get timestamp ?

In this example, I add a 2500 timestamps after the schedule retune and I schedule the next retune by adding 10692 to the timestamp. 10692/2500 = 4.2768
With this screenshot, I measured 100 pixels for the first 2500 timestamp, the schedule of the next retune is 10692 timestamp later, it should be approx. 428 pixels later.

Image

Why the next retune does not happen at the timestamp I asked for ?
Post Reply