Skip to content

Getting Started: XB200 Transverter Board

murrayma edited this page Jul 16, 2015 · 45 revisions

This page provides an overview of the XB-200 and provides some information on its use.

Table of Contents

Introduction

The XB-200 transverter board is a block up-down converter that expands the bladeRF’s lower frequency range, allowing the bladeRF to be used in HF/VHF applications.

The RX and TX paths each have a set of 3 filters, at the 50MHz-54MHz (6 meter) band, 149MHz-159MHz (2 meter) band, and 206-235MHz (includes 1.25m) bands. There are also pairs of SMA connectors that will let users plug their own band filters into the RF path.

The XB-200 mates to the top of the bladeRF as follows. (There is only one possible orientation)

  • XB-200 U20 to bladeRF U74
  • XB-200 J5 to bladeRF J61
  • XB-200 J6 to bladeRF J60
For additional information, please see:

Hardware

Architecture

The transverter was meant to extend the range of the bladeRF without impairing the current frequency capabilities. As such, the transverter has a bypass path as well as a mixed path. The bypass path just connects the antenna port to the IF port directly without any modification to the signal.

The mixed path first has a filterbank for selectivity filtering. This filterbank consists of 4 separate paths: 50MHz filter, 144MHz filter, 222MHz filter and a custom filter. The custom filter can be put in line using the filter SMA connections on the transverter.

Each of the filters was designed to try to notch the terrestrial FM band as much as possible. To be able to receive normal FM, the simplest way is to put an SMA jumper in the custom path (i.e., between the RX/TX FILT and FILT-ANT SMA connectors).

The block converter stage uses an ADF4351 to produce a 1248MHz high-side injection tone. The mixing frequency was chosen because of it being about 3x higher than the 300MHz highest frequency we want to use and we can run the ADF4351 in integer-N mode, reducing spurs which may have resulted from a fractional-N mode of operation. The output of the ADF4351 is always divided by 2x, so 38.4MHz*32.5 = 1248MHz.

Since high side injection is used, the LMS6002D on the bladeRF is tuning to 1248MHz - (desired frequency). Moreover, there is a spectral inversion that is occurring due to the choice of high-side injection. The LMS6002D is programmed to swap I and Q on the data bus being presented to the FPGA to correct for the flip.

SMA Connectors

There are 10 SMA connectors on the XB-200. Below are brief descriptions of each.

RX

  • RXIF (J3): RX Intermediate Frequency. Connect this to the bladeRF RX port (J53) via an SMA cable.
  • RXANT (J12): RX Input. Connect an antenna here.
  • RXFILT (J8): Mixer-side of the RX custom filter path. Connect this directly to RXFILT-ANT to use no filter, or connect this to one end of your custom filter, and the other end of your filter to RXFILT-ANT.
  • RXFILT-ANT (J9): Antenna-side of the RX custom filter path.
  • ADC (J14): This SMA exposes the direct ADC sampling path (skipping the LMS6002). This can also be accessed without the XB-200 via J61 on the bladeRF.
TX
  • TXIF (J1): TX Intermediate Frequency. Connect this to the bladeRF TX port (J54) via an SMA cable.
  • TXANT (J2): TX output. Connect an antenna here. When not transmitting, it is recommended to keep a dummy load or attenuator on this port.
  • TXFILT (J11): Mixer-side of the TX custom filter path. Connect this directly to TXFILT-ANT to use no filter, or connect this to one end of your custom filter, and the other end of your filter to TXFILT-ANT.
  • TXFILT-ANT (J10): Antenna-side of the TX custom filter path.
  • DAC (J15): This SMA exposes the DAC direct sampling path (skipping the LMS6002). This can also be accessed without the XB-200 via J60 on the bladeRF.

Important Note: Removal of R62 and R63

Resistors R62 and R63 on the XB-200 were populated for early production boards.

Unfortunately, this causes unbalanced loading on the analog signals feeding the RF chain and will severely degrade performance. It is highly recommended to remove R62 and R63 on the XB-200 if they are populated.

These resistors may be found slightly above the J15 DAC SMA connector, and are near the pins of J6 (image, schematic).

GPIO ports

GPIO pins are exposed on the XB-200 via J1, J13, and J16. libbladeRF API calls to manipulate these pins are a work in progress.

TO DO: provide jumper pinout and FPGA pin associations. From page 7 of XB200 Schematic:

J7

1 GPIO3
2 GPIO4
3 VCCIO_R
4 VCCIO_R
5 GPIO1
6 GPIO2

J13

1 GPIO6
2 GPIO8
3 Ground
4 Ground
5 VCCIO_R
6 GPIO5

J16

1 GPIO9
2 GPIO10
3 GPIO11
4 GPIO12
5 GPIO13
6 GPIO14

Software Support

This section is intended to provide information regarding support for the XB-200 in various pieces of software. Please keep libbladeRF first, but feel free to add or stub out programs you'd like to see more information for.

libbladeRF

The general procedure for using the XB-200 programmatically, via libbladeRF is as follows:

bladeRF-cli

To tell the CLI that the XB-200 has been attached, simply run the command xb 200 enable 200. This will expand the frequency range that the board is able to tune.

To select RX or TX filter banks, use the command xb 200 filter <rx|tx> <50|144|222|custom auto_1db|auto_3db.

"50" refers to the 50-54 MHz (6 meter) band, "144" refers to the 144-148 MHz (2 meter) band, and "222" refers to the 222-225 MHz (1.25 meter) band. Technically, the filter associated with the "222" options covers 206-235 MHz.

The "custom" option enables the custom filter bank path.

The "auto_1db" and "auto_3b" options instruct libbladeRF to automatically select the appropriate filterbank based upon the filters' 1dB and 3dB points based upon the current device frequency. Outside of these regions, the custom filter path will be selected.

gr-osmosdr

As of commit 9cb023, gr-osmosdr supports natively the XB-200. Note that the way to enable the board has changed slightly from the previous patched method, so be sure to read the next section very carefully and make appropriate modifications to the device string.

Enabling the XB-200 and Selecting Filters

To enable the XB200 in software that utilizes gr-osmosdr, add xb200 to the source/sink arguments string. By default, the filter bank selected will automatically tune with the tuned frequency at the 1dB points. Therefore, you must have the FILT and FILT-ANT connected through a filter, or directly connected together (no filter).

If you wish to select one of the other filter paths, append one of the following to the source/sink arguments string:

  • xb200=50M
  • xb200=144M
  • xb200=222M
  • xb200=auto
    • This option will select an appropriate filter path based upon the selected center frequency with 1dB corners. This is the default if no filter is selected.
  • xb200=auto3db
    • This option will select an appropriate file path based upon the selected center frequency with 3dB corners.
  • xb200=custom

Below is an example device string that enables the XB-200 and selects the 144MHz - 148MHz filter:
bladerf=0,xb200=144M

GQRX

As this utilizes gr-osmosdr, you can simply follow the information in the previous section regarding the device arguments.

SDR#

The bladeRF can be used with SDR# via a plugin written by Jean-Michel Picod. Follow the instructions on his GitHub page, and feel free to discuss/comment/ask questions about the plugin in Jean-Michel's forum thread.

SDR-Radio

The current beta version (v2.3 build 1990 at the time of writing) of SDR-Radio assumes an XB-200 is attached, and performs the necessary calls to enable it.

If you do not have an XB-200 attached, this behavior causes a clock signal to be driven to the expansion port, which may introduce undesired artifacts. To avoid this, you can build your own modified bladeRF.dll with a change that replaces this line in bladerf.c with status = 0; to prevent the expansion board enable from taking place. You may then copy your modified DLL to the SDR-Radio installation directory, replacing the existing bladeRF.dll (which you should first back up).

Clone this wiki locally