Amarisoft components are compatible with following UHD devices:
Compatibility have been tested up to UHD 3.x versions
You have two ways to install the TRX driver for the UHD compatible RF frontends:
Notes:
There are two automatic methods available.
Both are only available on Fedora and Ubuntu distribution.
If you are using Amarisoft OTS install, i.e using the install.sh script provided with your Amarisoft software components, you’ll be asked during process to select proper RF frontend model.
To start your automatic install, use the following command where <path> is the path to the directory where you have already installed your LTE component (eNB or UE) and type should be set to enb or ue accordingly.
./install <path> <type>
Then, inside <path>, select your frontend model:
./config/rf_select.sh <model>
Where <model> can be n2x0, b2x0, x3x0 or n3x0.
Follow Ettus documentation to install UHD driver: https://files.ettus.com/manual/page_build_guide.html.
As Amarisoft provides UHD TRX driver source code, you need to compile it locally.
You need development package to be installed as explained on Ettus webpage.
Then just type:
make
This will create a trx_uhd.so that you need to copy inside your Amarisoft component (eNB or UE) directory.
Config files are located inside config.ue and config.enb directories. Depending on the component you want to use copy the proper directory inside your Amarisoft component config subdirectory:
cp -r config.xx <path>/config/rf_driver
Note that destination name must be rf_driver.
The following properties are available:
argsString. Set the UHD specific arguments (they are defined in the UHD documentation).
syncOptional string. Select the synchronization type. none is the
default value and selects the internal clock. external selects
an external clock and PPS. mimo selects the N2x0 MIMO
cable. external_clock selects an external clock but keeps the
internal PPS.
dl_sample_bitsOptional integer (default = 16). Se the number of bits per DL sample. Allowed values are 8, 12 or 16.
ul_sample_bitsOptional integer (default = 16). Se the number of bits per UL sample. Allowed values are 8, 12 or 16 (Use 8 bits carefully).
tx_subdevOptional string. Sets tx subdev as specified in UHD API.
rx_subdevOptional string. Sets rx subdev as specified in UHD API.
The radio front end must be connected to one gigabit Ethernet port (don’t use a switch to connect them to avoid potential packet losses).
If you have 2 radio frontends for MIMO setup you may connect second device to first one using MIMO cable or connect it to another gigabit Ethernet port (MIMO cable remains necessary).
192.168.10.1
255.255.255.0
4000
Verify that you can ping the USRP device. Its default IP address is
192.168.10.2:
ping 192.168.10.2
The large MTU size is needed to use Jumbo frames which optimizes the Ethernet bandwidth.
For following steps, you should change network stack buffer sizes (Run as root):
sysctl -w net.core.rmem_max=50000000 sysctl -w net.core.wmem_max=1048576
uhd_usrp_probe --args addr=192.168.10.2
It should print the various capabilities of the USRP device. You can send and receive some baseband samples to test the speed of the Ethernet connection:
/usr/share/uhd/examples/benchmark_rate --args \
addr=192.168.10.2,send_frame_size=3972,recv_frame_size=3972 \
--tx_rate 12500000 --rx_rate 12500000 --duration 30
NB: you may find benchmark_rate there:
The test runs during 30 seconds. There should be no error, overflow nor underflow.
root in this order:
uhd_cal_rx_iq_balance --verbose --args addr=192.168.10.2 uhd_cal_tx_iq_balance --verbose --args addr=192.168.10.2 uhd_cal_tx_dc_offset --verbose --args addr=192.168.10.2
It takes a few minutes for each command.
The USRP B200/B210 are supported, but on some PCs the USB3 interface does not work reliably. Moreover, there are still evolutions in the corresponding UHD driver.
We recommend the following steps to try it:
uhd_usrp_probe
/usr/share/uhd/examples/benchmark_rate --args master_clock_rate=11.52e6 \
--tx_rate 11520000 --rx_rate 11520000 --duration 30
The test runs during 30 seconds. There should be no error, overflow nor underflow.
NB: You should take a look at configuration file in config/b2x0 as it may require
some changes depending on desired bandwidth.
The USRP X300/X310 are supported. The setup is very similar to the N200/N210. The UHD driver version >= 3.7.0 must be installed. The X3x0 has a specific support for LTE sample rates.
NB: You should take a look at configuration file in config/x3x0 as it may require
some changes depending on desired bandwidth.