Skip to the content.

srsLTE

4x Taoglas TG.55.8113W SMA antennas, 600 MHz - 6 GHz Datasheet

Nuand BladeRF 2.0 xA4 (USB 3.x) Datasheet

Workstation specs: AMD R9 3950X, AMD RX5700XT 50th Anniversary Edition, 32 GB Crucial 3200 MHz DDR4, 1 TB Samsung 970 Evo NVMe (PCI-E Gen 3)

Ubuntu 20.04 LTS

srsLTE: Source

BladeRF: Source

packages: cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libusb-0.1-0 libusb-0.1-0-dev

Disclaimer: The fork of srsLTE needed to set the flag ‘upperLayerIndication-r15 : true’ and to request NRBands in the UE cap are is not public nor shared here. Ongoing efforts are being made to publish support for 3GPP Rel15 in the srsLTE public repository. Credit to olkitu and HandyMenny for providing me with the required source for this project. Nevertheless this guide is still valid for launching srsLTE with the BladeRF, just without NR support.

Step 1: Prepare the build environment:

Install all required build dependencies via apt, git clone the srsLTE repository to a suitable location

Step 2: Build BladeRF
git clone https://github.com/Nuand/bladeRF.git
cd bladeRF
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
Step 3: Update the BladeRF firmware and load an FPGA image

Upgrade the firmware

bladeRF-cli -f /home/user/Downloads/bladeRF_fw_latest.img

Load the FPGA image to the SPI for automatic loading on powerup

bladeRF-cli -L /home/user/Downloads/hostedxA4-latest.rbf

Power cycle the unit

Step 3: Build srsLTE:
git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
Step 4: Configure srsLTE:

Copy the example configuration files to /etc

sudo -i
mdkir -p /etc/srslte/
cp /usr/local/share/srslte/epc.conf.example /etc/srslte/epc.conf
cp /usr/local/share/srslte/user_db.csv.example /etc/srslte/user_db.csv
cp /usr/local/share/srslte/enb.conf.example /etc/srslte/enb.conf
cp /usr/local/share/srslte/rr.conf.example /etc/srslte/rr.conf
cp /usr/local/share/srslte/sib.conf.example /etc/srslte/sib.conf
cp /usr/local/share/srslte/drb.conf.example /etc/srslte/drb.conf
Modify the epc.conf to suit your needs. Fields I’ve modified are:
Modify the enb.conf to suit your needs. Fields I’ve modified are:
Add the SIM card information to user_db.csv

This assumes you already have a programmable USIM, USIM card reader/writer, and software i.e. GRSIMWrite.

Set the MCC-MNC (PLMN) of the SIM card to match that of the EPC, in this case 001-01. Generate an IMSI based on that PLMN of 001-01. Copy down the KI (key), IMSI, and OPC values.

Enter those into your user_db.csv:

Step 5: Launch the EPC (evolved packet core)
sudo srsepc

If successful, you will see something like this:

--  Software Radio Systems EPC  ---

Reading configuration file /etc/srslte/epc.conf...
HSS Initialized.
MME S11 Initialized
MME GTP-C Initialized
MME Initialized. MCC: 0xf001, MNC: 0xff01
SPGW GTP-U Initialized.
SPGW S11 Initialized.
SP-GW Initialized.
Received S1 Setup Request.
S1 Setup Request - eNB Name: srsenb01, eNB id: 0x19b
S1 Setup Request - MCC:001, MNC:01, PLMN: 61712
S1 Setup Request - TAC 7, B-PLMN 0
S1 Setup Request - Paging DRX 2
Sending S1 Setup Response
Step 5: Launch the eNB (eNodeB)
sudo srsenb

If successful, you will see something like this:

Built in Release mode using commit 66c4beeb on branch 19.9.0.

---  Software Radio Systems LTE eNodeB  ---

Reading configuration file /etc/srslte/enb.conf...
Opening 1 RF devices with 2 RF channels...
Opening bladeRF...
Set RX sampling rate 1.92 Mhz, filter BW: 1.92 Mhz
Setting frequency: DL=731.5 Mhz, UL=701.5 MHz
set TX frequency to 731500032
set RX frequency to 701500030
Setting Sampling frequency 11.52 MHz

==== eNodeB started ===
Type <t> to view trace
Set RX sampling rate 11.52 Mhz, filter BW: 9.22 Mhz
Setting manual TX/RX offset to 27 samples
Step 6: Insert SIM card in your UE and attach

eNB EPC