Friday, April 24, 2026

USRP B210 Dual-Channel 30.72 Msps: Underflows in GRC, but benchmark_rate works fine

Hi,

I am working on a 5G PRS localization project and encountering persistent Underflow issues when attempting to transmit at 30.72 Msps using both channels on a USRP B210.

The Setup:

  • Hardware: USRP B210 connected via USB 3.0.
  • Host PC: Dell G15 Laptop (13th Gen Intel(R) Core(TM) i7-13650HX (20 cores), 64 GB RAM).
  • OS: Ubuntu 22.04.
  • Software: GNU Radio 3.10.7.0, UHD 4.1.0.5.

The Experiment: I am transmitting a 5G PRS signal (mu=1, 30kHz SCS) with a slot-level TDM pattern (alternating between Ant A and Ant B). The frames are pre-calculated and zero-padded to exactly 307,200 samples (10ms @ 30.72 MHz) to ensure perfect timing alignment.

The Flowgraph:

Uploaded Image

The Problem: Despite these optimizations, I get immediate and constant Underflows. However, when I run the official UHD benchmark tool: benchmark_rate --args="type=b200" --channels="0,1" --tx_rate 30.72e6 It completes successfully without a single dropped packet.

My Questions: Since benchmark_rate works, it seems the hardware/USB controller is physically capable of this rate. Why does the GNU Radio flowgraph fail even with a simple File Source -> USRP Sink architecture? Are there specific buffer or scheduler tunings in GRC that I am missing to handle 2x2 MIMO at the 30.72 Msps limit?

Any advice or insights would be greatly appreciated.

Best regards,

Yunxi Chen

No comments:

Post a Comment