BladeRF: Difference between revisions
No edit summary |
|||
| (7 intermediate revisions by the same user not shown) | |||
| Line 17: | Line 17: | ||
The underlying FPGAs are not fully utilized by the radio software itself, and can thus be extended by the user. Additional products include the [https://www.nuand.com/product/hf-vhf-transverter/ XB-200] LF/MF/HF/VHF transverter for lower-range work, the [https://www.nuand.com/product/amplifier/ XB-300] amplifier/LNA, and the [https://www.nuand.com/product/xb-gpio-gpio-expansion-board/ XB-100] GPIO expansion board. These only work with the x115/x40. | The underlying FPGAs are not fully utilized by the radio software itself, and can thus be extended by the user. Additional products include the [https://www.nuand.com/product/hf-vhf-transverter/ XB-200] LF/MF/HF/VHF transverter for lower-range work, the [https://www.nuand.com/product/amplifier/ XB-300] amplifier/LNA, and the [https://www.nuand.com/product/xb-gpio-gpio-expansion-board/ XB-100] GPIO expansion board. These only work with the x115/x40. | ||
The [https://github.com/Nuand/bladeRF libbladeRF] repository contains the sources necessary for working with bladeRF. Clone this repository with the <tt>--recursive</tt> option to acquire submodules. FPGA blobs can be acquired at [http://www.nuand.com/fpga_images/ Nuand's site]. No kernel driver is necessary; libbladeRF works directly with USB devices using libusb. | The [https://github.com/Nuand/bladeRF libbladeRF] repository contains the sources necessary for working with bladeRF. Clone this repository with the <tt>--recursive</tt> option to acquire submodules. FPGA blobs can be acquired at [http://www.nuand.com/fpga_images/ Nuand's site] (copy them to <tt>/usr/local/etc/Nuand/bladeRF</tt> to have them autoloaded). No kernel driver is necessary; libbladeRF works directly with USB devices using libusb. The underlying [https://github.com/analogdevicesinc/libad9361-iio libad9361] from Analog Devices can be used to manipulate the AD9361 aboard the bladeRF 2.0. | ||
==Preparing the FPGA== | ==Preparing the FPGA== | ||
| Line 54: | Line 54: | ||
Board: Nuand bladeRF 2.0 (bladerf2) | Board: Nuand bladeRF 2.0 (bladerf2) | ||
Serial #: | Serial #: ****** 128-bit hex ****** | ||
VCTCXO DAC calibration: 0x1fff | VCTCXO DAC calibration: 0x1fff | ||
FPGA size: 49 KLE | FPGA size: 49 KLE | ||
| Line 67: | Line 67: | ||
bladeRF> | bladeRF> | ||
</pre> | </pre> | ||
As noted above, the FPGA bitstreams can be downloaded from Nuand's website. On Debian-derived machines, they're also available via e.g. the <tt>bladerf-fpga-hostedxa4</tt> package. FX3 USB controller bitstreams are likewise available from Nuand, or from the Debian package <tt>bladerf-firmware-fx3</tt>. The FPGA must be loaded each time the device is powered up, but this can be [https://github.com/Nuand/bladeRF/wiki/FPGA-Autoloading performed automatically] by libbladeRF. | |||
==Using the hardware== | |||
<pre> | |||
bladeRF> print | |||
RX1 Bandwidth: 18000000 Hz (Range: [200000, 56000000]) | |||
RX2 Bandwidth: 18000000 Hz (Range: [200000, 56000000]) | |||
TX1 Bandwidth: 18000000 Hz (Range: [200000, 56000000]) | |||
TX2 Bandwidth: 18000000 Hz (Range: [200000, 56000000]) | |||
RX1 Frequency: 2400000000 Hz (Range: [70000000, 6000000000]) | |||
RX2 Frequency: 2400000000 Hz (Range: [70000000, 6000000000]) | |||
TX1 Frequency: 2400000000 Hz (Range: [47000000, 6000000000]) | |||
TX2 Frequency: 2400000000 Hz (Range: [47000000, 6000000000]) | |||
Tuning Mode: Host | |||
RX1 AGC: Disabled | |||
RX2 AGC: Disabled | |||
Clock reference: none | |||
Clock input: Onboard VCTCXO | |||
Clock output: Disabled | |||
RX1 RSSI: preamble = 0 dB, symbol = -51 dB | |||
RX2 RSSI: preamble = 0 dB, symbol = -51 dB | |||
Loopback mode: none | |||
RX mux: BASEBAND - Baseband samples | |||
RX FIR Filter: normal (default) | |||
TX FIR Filter: bypass (default) | |||
Gain RX1 overall: 60 dB (Range: [-15, 60]) | |||
full: 71 dB (Range: [-4, 71]) | |||
Gain RX2 overall: 60 dB (Range: [-15, 60]) | |||
full: 71 dB (Range: [-4, 71]) | |||
Gain TX1 overall: 56 dB (Range: [-23.75, 66]) | |||
dsa: -90 dB (Range: [-89.75, 0]) | |||
Gain TX2 overall: 56 dB (Range: [-23.75, 66]) | |||
dsa: -90 dB (Range: [-89.75, 0]) | |||
RX1 sample rate: 30720000 0/1 (Range: [520834, 61440000]) | |||
RX2 sample rate: 30720000 0/1 (Range: [520834, 61440000]) | |||
TX1 sample rate: 30720000 0/1 (Range: [520834, 61440000]) | |||
TX2 sample rate: 30720000 0/1 (Range: [520834, 61440000]) | |||
Bias Tee (RX1): off | |||
Bias Tee (RX2): off | |||
Bias Tee (TX1): off | |||
Bias Tee (TX2): off | |||
Current VCTCXO trim: 0x1fff | |||
Stored VCTCXO trim: 0x1fff | |||
Hardware status: | |||
RFIC status: | |||
Tuning Mode: Host | |||
Temperature: 26.3 degrees C | |||
CTRL_OUT: 0xf8 (0x035=0x00, 0x036=0xff) | |||
Power source: USB Bus | |||
Power monitor: 4.772 V, 0.55 A, 2.62 W | |||
RF routing: | |||
RX1: RFIC 0x0 (A_BAL ) <= SW 0x0 (OPEN ) | |||
RX2: RFIC 0x0 (A_BAL ) <= SW 0x0 (OPEN ) | |||
TX1: RFIC 0x0 (TXA ) => SW 0x0 (OPEN ) | |||
TX2: RFIC 0x0 (TXA ) => SW 0x0 (OPEN ) | |||
bladeRF> | |||
</pre> | |||
==Tips== | |||
* With gqrx as of 2019-08, I couldn't initialize the BladeRF until I deleted <tt>~/.config/gqrx</tt>, even when selecting "initialize configuration file". It did finally work. | |||
==Further Reading== | |||
* My [[SDR]] page | |||