Saturday, April 8, 2023

Reducing Latency with BladeRF

Hi,

I'm following the advice of Matt Ettus in GR CON 19 to reduce the overall latency of my transmitter using BladeRF. No matter what max tags in flight and tagging interval I use, the flow graph would run for some time and then stop. 
For troubleshooting, I printed the messages coming out from the "Tags to Message" block. I can see the "latency_strobe" tags printed during the initialization of the bladeRF. However, once the bladeRF starts transmitting (sync_tx starts working), the flow stops.

Any idea what the problem could be?

Below is my flowgraph


and below are the consol message:


[bladeRF sink] start: DEBUG: starting sink
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000801
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000801
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:343] check_total_sample_rate: active_channels=1, rate_accum=2000000, maximum=80000000
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {0})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {800})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {1600})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {2400})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {3200})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {4000})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {4800})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {5600})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {6400})))
************************************
******* MESSAGE DEBUG PRINT ********
((({latency_strobe} . {7200})))
************************************
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:1001] sync_tx: Worker is now running.
[DEBUG @ host/libraries/libbladeRF/src/backend/usb/libusb.c:1426] Non-blocking buffer submission requested, but no transfers are currently available.


** Note: the last message saying "non-blocking buffer submission requested" would always appear. If I remove the latency manager, that message would appear and the workflow would run normally.

--
Ahmad Oweis

No comments:

Post a Comment