Nuand / bladeRF

bladeRF USB 3.0 Superspeed Software Defined Radio Source Code
http://nuand.com
Other
1.13k stars 455 forks source link

issue with setting the samplerate of both RX channels to 61.44M #912

Open timelord109 opened 1 year ago

timelord109 commented 1 year ago

hello

I'm using bladeRF-cli and i'm trying to set the bladeRF sample rate to 61.44M in both RX channels. I'm executing the following script

set frequency rx1 2.45G set frequency rx2 2.45G set samplerate rx1 61.44M set samplerate rx2 61.44M set bandwidth 56M set bitmode 16 rx config file=fifo.bin format=bin channel=1,2 n=0 timeout=10000 rx start rx wait

I get the following warning:

[WARNING @ host/libraries/libbladeRF/src/board/bladerf2/common.c:356] The total sample throughput for the 2 active channels, 122 Msps, is greater than the recommended maximum sample throughput, 80 Msps. You may experience dropped samples unless the sample rate is reduced, or some channels are deactivated. i'm using a fifo to plot the samples in the Gnuradio GUI and i get the following results that shows that the signal is corrupted
Capture 16bits

does it mean that we cannot use both rx channel at the same time with a sample rate that is 61Msps each ? if it is not the case. is-it possible to do it without changing the bitmode to 8 bits? N.B: i'm trying not to use new feature where you set the bitmode to 8 bits because it can create issue in term of accuracy and precision

timelord109 commented 1 year ago

i forgot to mention that i'm using a synthétiser to générate a singe tone in both channels input. and that i get the correct result when i set bitmode to 8

rghilduta commented 1 year ago

2x receive should work without an issue. Can you please retry the bladeRF-cli commands without running "set bitmode". Also, please post the output of "info" in bladeRF-cli, is it reporting "Speed" as "Superspeed" ?

maurokenny commented 1 year ago

Hi @rghilduta, we haven't use set bitmode and we are in SuperSpeed

bladeRF> info

  Board:                    Nuand bladeRF 2.0 (bladerf2)
  Serial #:                 9f064e6dea2xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  VCTCXO DAC calibration:   0x205b
  FPGA size:                49 KLE
  FPGA loaded:              yes
  Flash size:               32 Mbit
  USB bus:                  2
  USB address:              33
  USB speed:                SuperSpeed
  Backend:                  libusb
  Instance:                 0
timelord109 commented 1 year ago

as you can see we don't use bitmode, we also tried to use different versions of libbladeRF with always the same response

rthomp10 commented 1 year ago

I'm having trouble reproducing the issue on my end, although there is a chance that the issue is sourced from dropped samples.

Below is a +15.36MHz CW into RX1 and RX2 with channel 1 and 2 enabled through the cli.

image

set frequency rx1 2.45G
set frequency rx2 2.45G
set samplerate rx1 61.44M
set samplerate rx2 61.44M
set bandwidth 56M

rx config file=result2.bin format=bin channel=1,2 n=10000
rx start
rx wait

In a circumstance where I'm looping back with 2xTX channels to 2xRX channels at 61.44MHz, we'll see the result of USB packet congestion. Dropped samples in this circumstance is expected but serves as a potential root cause indicator.

image

set loopback rfic_bist
set frequency tx1 2.45G
set frequency tx2 2.45G
set frequency rx1 2.45G
set frequency rx2 2.45G
set samplerate tx1 61.44M
set samplerate tx2 61.44M
set samplerate rx1 61.44M
set samplerate rx2 61.44M
set bandwidth 56M

rx config file=result2.bin format=bin channel=1,2 n=10000 timeout=10000
tx start
rx start
rx wait
tx stop
MutluAYDIN23 commented 1 year ago

As far as I can see from comments the only the difference in the code is between "n=0 timeout=10000" and "n=10000 timeout=10000".

I think processing power is the cause of this. Maybe trying with a more powerful PC (maybe instead of a laptop) can be answer. Hope this can help.

righthalfplane commented 1 year ago

When I get signal corruption it is almost always caused by overloading the system - try cutting the gains to 1/4 of what you are using and see if that helps.