I'm attempting to setup a BladeRF 2 micro in GNU Radio with two receive channels, but running into some issues. Using the bladeRF source from gr-bladerf, everything works as expected when the number of channels is 1. But when this is set to 2, no samples are received (FFT plots are all 0) and after ~30 seconds a message about RX overrun appears in the console.
Both channels stream concurrently with no problems from the Soapy and osmocom sources, so I suspect I have misconfigured something in the bladeRF source block, or built the library incorrectly.
Any pointers appreciated... thanks
Install details:
3.10.12.0 (Python 3.13.5) from Debian package repository
gr-iqbal and gr-osmosdr built from source
Output log from GNU Radio:
Code: Select all
Args: numchan=2,metadata=False,bladerf=0,verbosity=verbose,feature=default,sample_format=16bit,fpga=,fpga-reload=False,use_ref_clk=False,ref_clk=10000000,buflen=32768,buffers=2048,in_clk=ONBOARD,out_clk=False,use_dac=False,dac=10000,xb200=none,tamer=internal,sampling=internal,lpf_mode=disabled,smb=38400000,dc_calibration=LPF_TUNING,trigger0=False,trigger_role0=master,trigger_signal0=J51_1,trigger1=False,trigger_role1=master,trigger_signal1=J51_1,bias_tee0=False,bias_tee1=False
Args: numchan=2,metadata=False,bladerf=0,verbosity=verbose,feature=default,sample_format=16bit,fpga=,fpga-reload=False,use_ref_clk=False,ref_clk=10000000,buflen=32768,buffers=2048,in_clk=ONBOARD,out_clk=False,use_dac=False,dac=10000,xb200=none,tamer=internal,sampling=internal,lpf_mode=disabled,smb=38400000,dc_calibration=LPF_TUNING,trigger0=False,trigger_role0=master,trigger_signal0=J51_1,trigger1=False,trigger_role1=master,trigger_signal1=J51_1,bias_tee0=False,bias_tee1=False
[bladeRF common] init: DEBUG: entering initialization
[bladeRF source] init: Opening Nuand bladeRF with device identifier string '*:instance=0'
[DEBUG @ host/libraries/libbladeRF/src/devinfo.c:278] Instance: 0
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/libusb.c:642] Using libusb version: 1.0.28.11946
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/libusb.c:519] Found a bladeRF (idx=0)
[DEBUG @ host/libraries/libbladeRF/src/backend/usb/libusb.c:189] Bus 002 Device 005: Nuand bladeRF 2.0, serial c50499d8e69b4a73ae19e8d7cc0c0051
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/libusb.c:581] USB port reset succeeded for bladeRF c50499d8e69b4a73ae19e8d7cc0c0051
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 0
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:304] Read Firmware version: 2.6.0-git-09c82087
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:310] Capability mask before FPGA load: 0x0000007f00000000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:358] Size of a host<->FPGA message: 8192 bytes
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:628] Found SPI flash manufacturer: WINBOND.
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:631] Found SPI flash device: W25Q32JV (32 Mbit).
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:696] SPI flash total size = 32 Mbit
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:697] SPI flash page size = 256 bytes
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:698] SPI flash erase block size = 65536 bytes
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:699] SPI flash number of pages = 16384
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:700] SPI flash number of erase blocks = 64 pages
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 2
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 1
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 1
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:125] Read FPGA version: 0.16.0
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:131] Capability mask after FPGA load: 0x000000ff00001abc
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:615] nios_ina219_write: Wrote 0x8000 to addr 0x00
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:602] nios_ina219_read: Read 0x399f from addr 0x00
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:615] nios_ina219_write: Wrote 0x019f to addr 0x00
[DEBUG @ host/libraries/libbladeRF/src/driver/ina219.c:70] Configuration register: 0x019f
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:615] nios_ina219_write: Wrote 0xa000 to addr 0x05
[DEBUG @ host/libraries/libbladeRF/src/driver/ina219.c:82] Calibration register: 0xa000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/common.c:288] Default tuning mode: Host
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2444] bladerf2_set_tuning_mode: New tuning mode: Host
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2494] bladerf2_set_tuning_mode: Initializing Host RFIC control
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:242] _rfic_host_initialize: initializating
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:261] _rfic_host_initialize: ad9361 initialized @ 0x21c9a480
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:298] _rfic_host_initialize: initialization complete
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 2
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 1
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:846] nios_ad56x1_vctcxo_trim_dac_write: Wrote 0x1eef
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:834] nios_ad56x1_vctcxo_trim_dac_read: Read 0x1eef
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2727] trim DAC is enabled
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:834] nios_ad56x1_vctcxo_trim_dac_read: Read 0x1eef
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2760] saving current trim DAC value: 0x1eef
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:846] nios_ad56x1_vctcxo_trim_dac_write: Wrote 0xc000
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:467] nios_config_write: Wrote 0x00000801
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:872] nios_adf400x_write: Wrote 0x00000064 to addr 0x00
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:872] nios_adf400x_write: Wrote 0x00006000 to addr 0x01
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:872] nios_adf400x_write: Wrote 0x001f8090 to addr 0x02
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000801
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:467] nios_config_write: Wrote 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:834] nios_ad56x1_vctcxo_trim_dac_read: Read 0xc000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2727] trim DAC is disabled
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:834] nios_ad56x1_vctcxo_trim_dac_read: Read 0xc000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2764] restoring old trim DAC value: 0x1eef
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:846] nios_ad56x1_vctcxo_trim_dac_write: Wrote 0x1eef
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:217] _bladerf2_initialize: complete
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1204] Clearing RX1 retune queue.
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1226] RX1 operation duration: 0
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1204] Clearing TX1 retune queue.
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1226] TX1 operation duration: 0
[bladeRF source] init: FPGA is already loaded. Set fpga-reload=False to force a reload.
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:467] nios_config_write: Wrote 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:467] nios_config_write: Wrote 0x00000001
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:3127] bladerf_set_bias_tee: rffe_control_write f8000001
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:3127] bladerf_set_bias_tee: rffe_control_write f8000001
[bladeRF source] Device: Nuand bladeRF 2.0 Serial # c504...0051 FW v2.6.0 FPGA v0.16.0
[VERBOSE @ host/libraries/libbladeRF/src/bladerf.c:2130] Enabling feature DEFAULT
[bladeRF source] init: DEFAULT feature enabled
[bladeRF source] init: 16bit mode enabled
[bladeRF source] init: Buffers: 2048, samples per buffer: 32768, active transfers: 32
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 0
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/usb.c:106] Changing to USB alt setting 1
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:467] nios_config_write: Wrote 0x00000001
[bladeRF source] bladerf_source_c: DEBUG: initialization complete
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:1127] bladerf2_set_sample_rate: enabling 4x decimation/interpolation filters
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:359] check_total_sample_rate: active_channels=0, rate_accum=0, maximum=80000000
[bladeRF source] start: DEBUG: starting source
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:456] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:467] nios_config_write: Wrote 0x00000001
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:188] FX3 firmware 2.6.0 GPIF buffer size: 8192
[DEBUG @ host/libraries/libbladeRF/src/streaming/async.c:69] FX3 firmware 2.6.0 GPIF buffer size: 8192
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:404] Enabling both RX channels. MIMO layout configured.
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:359] check_total_sample_rate: active_channels=2, rate_accum=2000000, maximum=80000000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:404] Enabling both RX channels. MIMO layout configured.
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:461] _rfic_host_enable_module: reg value unchanged? (f8028283)
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:223] RX overrun @ buffer 2016
[bladeRF source] stop: DEBUG: stopping source
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:408] Disabling both RX channels. MIMO layout configured.
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:408] Disabling both RX channels. MIMO layout configured.
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:461] _rfic_host_enable_module: reg value unchanged? (f8000201)