Skip to content

MIMO rx streaming overflows a lot #26

@guruofquality

Description

@guruofquality

So its not clear as to how the API is being used wrong, but for very low rates, every other call is reporting an overflow

  • Running a simple rate testing loop (which works great on single channel up to very high rates), I get overflow messages every other call to sync_rx() and the timestamp is 0x1234432112344321 every other call as well.

SoapySDRUtil --rate=1e6 --direction=RX --channels="0,1"

[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 1016
[NOTICE] md.timestamp = 0x3
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 508
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x3fb
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x5f7
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x7f3
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x9ef
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0xbeb
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
  • If I force the num_samples passed to bladerf_sync_rx() to be 508 (the value actual_count returns), then I don't get the overflows, but every other time is 0x1234432112344321

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions