-
Notifications
You must be signed in to change notification settings - Fork 459
Getting Started: XB200 Transverter Board
This page provides an overview of the XB-200 and provides some information on its use.
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
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.
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.
- 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.
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.
The general procedure for using the XB-200 programmatically, via libbladeRF is as follows:
- With an open device handle, enable support for the XB-200 via:
bladerf_expansion_attach(dev, BLADERF_XB_200) - Select the desired filter bank for the RX and TX paths. For example, to configure the RX module to use the 149-159MHz filter:
bladerf_xb200_set_filterbank(dev, BLADERF_MODULE_RX, BLADERF_XB200_144M)- See the bladerf_xb200_filter enumeration for other options.
- Specify that the XB-200 mixer path should be used:
bladerf_xb200_set_path(dev, BLADERF_MODULE_RX, BLADERF_XB200_MIX)- To tune to the "normal" bladeRF ranges, bypass the XB-200 mixer by using the BLADERF_XB200_BYPASS value with the above function.
To tell the CLI that the XB-200 has been attached, simply run the command xb attach 200. This will expand the frequency range that the board is able to tune.
At this time, the filterbank selection is not easily changed in the CLI. The set xb_gpio command has to be used to manually select the filterbank and there is no current way to automatically follow the tuned frequency.
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.
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