BladeRF RX overrun

Discussions related to schematic capture, PCB layout, signal integrity, and RF development
Post Reply
eduemon
Posts: 9
Joined: Mon May 27, 2024 1:51 am

BladeRF RX overrun

Post by eduemon »

Hi everyone,
I am currently working on a radar development by using 2 bladeRF. I transmitted a signal using the 1st bladeRF and received its echo through the 1st bladeRF and 2nd bladeRF RX ports. I am using GNU radio to design the radar block. To control the 1st bladeRF (for Tx and one Rx) I used the "Osmocom Sink" and "Osmocom Source". To control the 2nd bladeRF, I used the "bladeRF source" block. I could see the signal transmitted and received by the 1st BladeRF. However, I could not any signal received by the 2nd bladeRF. When I check the GNU radio terminal, I saw this log and at the end of it, it says an overrun has occurred on my 2nd bladeRF.

Code: Select all

Executing: /usr/bin/python3 -u /media/dragon/8DCC-447A/gbsar_dragonOS/grc/experiment/bladerf_pulse_PRN_v07.py

gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.4.0
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya 
[bladeRF common] init: DEBUG: entering initialization
[bladeRF source] init: Opening Nuand bladeRF with device identifier string '*:instance=1'
[bladeRF source] Device: Nuand bladeRF 2.0 Serial # a893...657a FW v2.4.0 FPGA v0.15.0
[bladeRF source] init: DEBUG: Feature not provided. Feature left on DEFAULT
[bladeRF source] init: DEFAULT feature enabled
[bladeRF source] init: DEBUG: Sample format not provided. SC16 Q11 set by default
[bladeRF source] init: Buffers: 512, samples per buffer: 20480, active transfers: 32
[WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:553] _rfic_host_set_gain_mode: automatic gain control not valid for TX channels
[WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:522] _rfic_host_get_gain_mode: automatic gain control not valid for TX channels
[bladeRF source] bladerf_source_c: [WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:522] _rfic_host_get_gain_mode: automatic gain control not valid for TX channels
RX1 gain mode set to '1'
[WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:553] _rfic_host_set_gain_mode: automatic gain control not valid for TX channels
[WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:522] _rfic_host_get_gain_mode: automatic gain control not valid for TX channels
[bladeRF source] bladerf_source_c: [WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:522] _rfic_host_get_gain_mode: automatic gain control not valid for TX channels
RX2 gain mode set to '1'
[bladeRF source] bladerf_source_c: DEBUG: initialization complete
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.4.0
built-in sink types: uhd hackrf bladerf soapy redpitaya file 
[bladeRF common] init: DEBUG: entering initialization
[bladeRF sink] init: Opening Nuand bladeRF with device identifier string '*:instance=1'
[bladeRF sink] Device: Nuand bladeRF 2.0 Serial # a893...657a FW v2.4.0 FPGA v0.15.0
[bladeRF sink] init: DEBUG: Feature not provided. Feature left on DEFAULT
[bladeRF sink] init: DEFAULT feature enabled
[bladeRF sink] init: DEBUG: Sample format not provided. SC16 Q11 set by default
[bladeRF sink] init: Buffers: 512, samples per buffer: 20480, active transfers: 32
[bladeRF sink] bladerf_sink_c: DEBUG: initialization complete
[WARNING @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:522] _rfic_host_get_gain_mode: automatic gain control not valid for TX channels
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,in_clk=ONBOARD,out_clk=False,use_dac=False,dac=10000,xb200=none,tamer=internal,sampling=internal,lpf_mode=disabled,smb=0,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,in_clk=ONBOARD,out_clk=False,use_dac=False,dac=10000,xb200=none,tamer=internal,sampling=internal,lpf_mode=disabled,smb=0,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.25.11696
[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 011: Nuand bladeRF 2.0, serial 447f424dd38145db8f6a2d4403fca6ac
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/libusb.c:581] USB port reset succeeded for bladeRF 447f424dd38145db8f6a2d4403fca6ac
[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:293] Read Firmware version: 2.4.0-git-a3d5c55f
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:299] Capability mask before FPGA load: 0x0000007f00000000
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:401] Found SPI flash manufacturer: WINBOND.
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:404] Found SPI flash device: W25Q32JV (32 Mbit).
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:452] SPI flash total size = 32 Mbit
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:453] SPI flash page size = 256 bytes
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:454] SPI flash erase block size = 65536 bytes
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:455] SPI flash number of pages = 16384
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf1/flash.c:456] 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.15.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:586] nios_ina219_write: Wrote 0x8000 to addr 0x00
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:573] nios_ina219_read: Read 0x399f from addr 0x00
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:586] 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:586] 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:281] Default tuning mode: Host
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2330] bladerf2_set_tuning_mode: New tuning mode: Host
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2380] bladerf2_set_tuning_mode: Initializing Host RFIC control
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:85] _rfic_host_initialize: initializating
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:106] _rfic_host_initialize: ad9361 initialized @ 0x600b458dd7c0
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:154] _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:817] nios_ad56x1_vctcxo_trim_dac_write: Wrote 0x1e3b
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:805] nios_ad56x1_vctcxo_trim_dac_read: Read 0x1e3b
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2612] trim DAC is enabled
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:805] nios_ad56x1_vctcxo_trim_dac_read: Read 0x1e3b
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2645] saving current trim DAC value: 0x1e3b
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:817] nios_ad56x1_vctcxo_trim_dac_write: Wrote 0xc000
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000801
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:843] nios_adf400x_write: Wrote 0x00000064 to addr 0x00
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:843] nios_adf400x_write: Wrote 0x00006000 to addr 0x01
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:843] nios_adf400x_write: Wrote 0x001f8090 to addr 0x02
[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 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:805] nios_ad56x1_vctcxo_trim_dac_read: Read 0xc000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2612] trim DAC is disabled
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:805] nios_ad56x1_vctcxo_trim_dac_read: Read 0xc000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:2649] restoring old trim DAC value: 0x1e3b
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:817] nios_ad56x1_vctcxo_trim_dac_write: Wrote 0x1e3b
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:207] _bladerf2_initialize: complete
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1175] Clearing RX1 retune queue.
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1197] RX1 operation duration: 0
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1175] Clearing TX1 retune queue.
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:1197] 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:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000001
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:3012] bladerf_set_bias_tee: rffe_control_write f8000001
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c:3012] bladerf_set_bias_tee: rffe_control_write f8000001
[bladeRF source] Device: Nuand bladeRF 2.0 Serial # 447f...a6ac FW v2.4.0 FPGA v0.15.0
[bladeRF source] init: DEFAULT feature enabled
[bladeRF source] init: 16bit mode enabled
[bladeRF source] init: Buffers: 512, samples per buffer: 4096, 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:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000001
[bladeRF source] bladerf_source_c: DEBUG: initialization complete
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:351] 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:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000001
[bladeRF sink] start: DEBUG: starting sink
[bladeRF source] start: DEBUG: starting source
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:351] check_total_sample_rate: active_channels=1, rate_accum=8191999, maximum=80000000
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:351] check_total_sample_rate: active_channels=1, rate_accum=8191999, maximum=80000000
[DEBUG @ host/libraries/libbladeRF/src/board/bladerf2/rfic_host.c:302] _rfic_host_enable_module: reg value unchanged? (f8011005)
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:351] check_total_sample_rate: active_channels=2, rate_accum=16383998, maximum=80000000
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:429] nios_config_read: Read 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/backend/usb/nios_access.c:440] nios_config_write: Wrote 0x00000001
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:351] check_total_sample_rate: active_channels=2, rate_accum=16383998, maximum=80000000
[VERBOSE @ host/libraries/libbladeRF/src/board/bladerf2/common.c:351] check_total_sample_rate: active_channels=3, rate_accum=24575997, maximum=80000000
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:446] sync_rx: Worker is idle. Going to reset buf mgmt.
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:467] sync_rx: Reset buf_mgmt consumer index
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:482] sync_rx: Worker is now running.
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:446] sync_rx: Worker is idle. Going to reset buf mgmt.
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:467] sync_rx: Reset buf_mgmt consumer index
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:482] sync_rx: Worker is now running.
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync.c:1016] sync_tx: Worker is now running.
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 106
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 138
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 186
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 218
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 250
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 282
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 314
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 346
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 362
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 394
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 426
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 458
[DEBUG @ host/libraries/libbladeRF/src/streaming/sync_worker.c:101] RX overrun @ buffer 506
Can someone help me to overcome this problem?
Thank you very much.

P.S. I have made sure that both BladeRF work well by testing them separately.
motioncapital
Posts: 1
Joined: Thu Jul 25, 2024 12:53 am

Re: BladeRF RX overrun

Post by motioncapital »

An overrun in your second bladeRF indicatesgeometry dash that the device is unable to process incoming data fast enough, causing data loss. Here are a few steps you can take to troubleshoot and potentially resolve this issue:

1. Use a high-speed USB 3.0 port.
2. Update firmware and drivers.
3. Lower the sample rate.
4. Increase buffer size in GNU Radio.
5. Run bladeRF devices in separate processes.
6. Increase thread priority in GNU Radio.
7. Monitor system resources.

If none of these steps resolve the issue, providing more detailed logs or specific configurations used in your GNU Radio setup could help in diagnosing the problem further.
eduemon
Posts: 9
Joined: Mon May 27, 2024 1:51 am

Re: BladeRF RX overrun

Post by eduemon »

Thank you for the suggestion.

Best regards.
Post Reply