sdrangel/plugins/samplemimo/bladerf2mimo
..
CMakeLists.txt
bladerf2mimo.cpp
bladerf2mimo.h
bladerf2mimogui.cpp
bladerf2mimogui.h
bladerf2mimogui.ui
bladerf2mimoplugin.cpp
bladerf2mimoplugin.h
bladerf2mimosettings.cpp
bladerf2mimosettings.h
bladerf2mimowebapiadapter.cpp
bladerf2mimowebapiadapter.h
bladerf2mithread.cpp
bladerf2mithread.h
bladerf2mothread.cpp
bladerf2mothread.h
readme.md

readme.md

BladeRF 2.0 micro (v2) MIMO plugin

Introduction

This MIMO plugin sends and receives its samples to/from a BladeRF2 device. It handles both input (Rx) and output (Tx) streams synchronously. There is no option to synchronize Rx with Tx streams.

Build

As with other BladeRF plugins this plugin will be built only if the BladeRF host library is installed in your system. If you build it from source and install it in a custom location say: /opt/install/libbladeRF you will have to add -DBLADERF_DIR=/opt/install/libbladeRF/include to the cmake command line.

Note that libbladeRF v2 with git tag 2018.10-rc1 should be used (official release) thus:

  • The FX3 firmware version should be v2.3.1
  • The FPGA image version should be v0.9.0

The FPGA .rbf file should be copied to the folder where the sdrangel binary resides. You can download FPGA images from here

The BladeRF Host library is also provided by many Linux distributions (check its version) and is built in the SDRangel binary releases.

Interface

BladeRF2 MIMO plugin GUI

1. Rx/Tx settings selection

Use this combo to target UI to Rx or Tx streams for Rx/Tx specific items.

2. Stream settings selection

Use this combo to target UI to stream 0 or stream 1 for stream specific items.

3. Rx/Tx spectrum display selection

Use this combo to select Rx or Tx side for main spectrum display.

4. Stream spectrum display selection

Use this combo to select stream 0 or stream 1 for main spectrum display.

5. Start/Stop Rx

This button controls the start/stop of the Rx subsystem.

6. Start/Stop Tx

This button controls the start/stop of the Tx subsystem.

7. Record button

  • Left click: record baseband I/Q stream toggle button (inactive: waiting for synchronous streams recording)
  • Right click: choose record file

8. Center frequency

This controls the center frequency of Rx or Tx subsystems in kHz depending on the Rx/Tx settings selection (1). This frequency can effectively be different for Rx and Tx but is the same for both Rx or both Tx streams.

9. LO ppm correction

Use this slider to adjust LO correction in ppm. It can be varied from -20.0 to 20.0 in 0.1 steps and is applied in software. This applies to the oscillator that controls both the Rx and Tx frequency therefore it is not dependent on Rx/Tx or stream selection.

10. DC auto correction options

This button controls the local DSP DC auto remove DC component.

11. IQ auto correction options

This button controls the local DSP auto make I/Q balance. The DC correction must be enabled for this to be effective.

12. Analog filter bandwidth

This is the analog filter bandwidth in kHz that applies to Rx or Tx streams. Minimum and maximum values are adjusted automatically and are the same for Rx and Tx subsystems ranging from 200 kHz to 56 MHz.

13. Transverter mode open dialog

This button opens a dialog to set the transverter mode frequency translation options. The details about this dialog can be found here

14. Device sample rate / Baseband sample rate input toggle

Use this toggle button to switch the sample rate input next (15) between device sample rate and baseband sample rate input. The button shows the current mode:

  • SR: device sample rate input mode. The baseband sample rate (7A) is the device sample rate (15) divided by the decimation or multiplied by the interpolation factor (17).
  • BB: baseband sample rate input mode. The device sample rate (7A) is the baseband sample rate (15) divided by the decimation or multiplied by the interpolation factor (17).

15. Host/Device sample rate

This controls the sample rate between Host and Device in both directions. Effectively ADC and DAC run on the same sample rate.

16. Baseband center frequency position relative the the BladeRF center frequency

Possible values are:

  • Cen: the decimation operation takes place around the BladeRF Rx center frequency Fs
  • Inf: the decimation operation takes place around Fs - Fc.
  • Sup: the decimation operation takes place around Fs + Fc.

With SR as the sample rate before decimation Fc is calculated as:

  • if decimation n is 4 or lower: Fc = SR/2^(log2(n)-1). The device center frequency is on the side of the baseband. You need a RF filter bandwidth at least twice the baseband.
  • if decimation n is 8 or higher: Fc = SR/n. The device center frequency is half the baseband away from the side of the baseband. You need a RF filter bandwidth at least 3 times the baseband.

17. Decimation (Rx) or Interpolation (Tx) factor

For Rx streams the I/Q stream from the BladeRF ADC is downsampled by a power of two before being sent to the passband.

For Tx strams the baseband stream is interpolated by this value before being sent to the BladeRF device.

Possible values are increasing powers of two: 1 (no decimation or interpolation), 2, 4, 8, 16, 32, 64.

18. Lock both streams gains

When engaged this applies the same gain with value control (20) to both streams (Rx or Tx)

19. Gain mode

This is the gain mode control that differs between Rx and Tx streams:

  • Rx:
    • automatic: AGC with default behavior
    • manual: Manual. Use control (20) to adjust gain
    • fast: fast AGC
    • slow: slow AGC
    • hybrid: hybrid AGC
  • Tx::
    • automatic: Manual actually. Use control (20) to adjust gain

20. Manual gain setting

This sets the gain manually per stream or for both streams if (18) is engaged.

21. Bias Tee

This sets the bias tee on all Rx or Tx ports.