srsLTE and LimeSDR Mini

Great news!

I was finally able to get srsLTE up and running without any errors (calibration of Tx/Rx, clock, etc.). For reference, I followed the following the below post mostly, but am using 19.12 for srsLTE instead of the latest release.

I have obtained and programmed a SIM card as well, and placed the parameters in the user_db.csv file in the .config/srslte folder. Also, when I check for networks, I can see the one from the LimeSDR Mini! However, my only problem is that when I select the network on the phone, it doesn’t connect, and the srseNB doesn’t show attaching of any UE. srseNB config is below:

#####################################################################

srsENB configuration file

#####################################################################

#####################################################################

eNB configuration

enb_id: 20-bit eNB identifier.

mcc: Mobile Country Code

mnc: Mobile Network Code

mme_addr: IP address of MME for S1 connnection

gtp_bind_addr: Local IP address to bind for GTP connection

s1c_bind_addr: Local IP address to bind for S1AP connection

n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100)

tm: Transmission mode 1-4 (TM1 default)

nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4)

#####################################################################
[enb]
enb_id = 0x19B
mcc = 117
mnc = 07
mme_addr = 127.0.1.100
gtp_bind_addr = 127.0.1.1
s1c_bind_addr = 127.0.1.1
n_prb = 50
#tm = 4
#nof_ports = 2

#####################################################################

eNB configuration files

sib_config: SIB1, SIB2 and SIB3 configuration file

note: when enabling mbms, use the sib.conf.mbsfn configuration file which includes SIB13

rr_config: Radio Resources configuration file

drb_config: DRB configuration file

#####################################################################
[enb_files]
sib_config = sib.conf
rr_config = rr.conf
drb_config = drb.conf

#####################################################################

RF configuration

dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)

tx_gain: Transmit gain (dB).

rx_gain: Optional receive gain (dB). If disabled, AGC if enabled

Optional parameters:

dl_freq: Override DL frequency corresponding to dl_earfcn

ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set)

device_name: Device driver family.

Supported options: “auto” (uses first found), “UHD”, “bladeRF”, “soapy” or “zmq”.

device_args: Arguments for the device driver. Options are “auto” or any string.

Default for UHD: “recv_frame_size=9232,send_frame_size=9232”

Default for bladeRF: “”

time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay

from antenna to timestamp insertion.

Default “auto”. B210 USRP: 100 samples, bladeRF: 27.

#####################################################################
[rf]
#dl_earfcn = 1200
#dl_earfcn = 0
#dl_earfcn = 2750
#dl_freq = 1240010000
#ul_freq = 1200
tx_gain = 80
rx_gain = 40

#dl_earfcn = 6200
#tx_gain = 56
#rx_gain = 38
#device_name = soapy
device_args = rxant=LNAH,txant=BAND1

#device_name = auto

For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:

USRP B210: num_recv_frames=64,num_send_frames=64

And for 75 PRBs, also append “,master_clock_rate=15.36e6” to the device args

For best performance when BW<5 MHz (25 PRB), use the following device_args settings:

USRP B210: send_frame_size=512,recv_frame_size=512

#device_args = auto
#time_adv_nsamples = auto

Example for ZMQ-based operation with TCP transport for I/Q samples

#device_name = zmq
#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6

#####################################################################

Packet capture configuration

MAC Packets are captured to file in the compact format decoded by

the Wireshark mac-lte-framed dissector and with DLT 147.

To use the dissector, edit the preferences for DLT_USER to

add an entry with DLT=147, Payload Protocol=mac-lte-framed.

For more information see: https://wiki.wireshark.org/MAC-LTE

Please note that this setting will by default only capture MAC

frames on dedicated channels, and not SIB. You have to build with

WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want

SIB to be part of the MAC pcap file.

S1AP Packets are captured to file in the compact format decoded by

the Wireshark s1ap dissector and with DLT 150.

To use the dissector, edit the preferences for DLT_USER to

add an entry with DLT=150, Payload Protocol=s1ap.

mac_enable: Enable MAC layer packet captures (true/false)

mac_filename: File path to use for packet captures

s1ap_enable: Enable or disable the PCAP.

s1ap_filename: File name where to save the PCAP.

#####################################################################
[pcap]
#enable = false
#filename = /tmp/enb.pcap
#s1ap_enable = false
#s1ap_filename = /tmp/enb_s1ap.pcap

#####################################################################

Log configuration

Log levels can be set for individual layers. “all_level” sets log

level for all layers unless otherwise configured.

Format: e.g. phy_level = info

In the same way, packet hex dumps can be limited for each level.

“all_hex_limit” sets the hex limit for all layers unless otherwise

configured.

Format: e.g. phy_hex_limit = 32

Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all

Logging levels: debug, info, warning, error, none

filename: File path to use for log output. Can be set to stdout

to print logs to standard output

file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.

If set to negative, a single log file will be created.

#####################################################################
[log]
all_level = warning
all_hex_limit = 32
filename = /tmp/enb.log
file_max_size = -1

[gui]
enable = false

#####################################################################

Scheduler configuration options

max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)

pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified)

pdsch_max_mcs: Optional PDSCH MCS limit

pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified)

pusch_max_mcs: Optional PUSCH MCS limit

min_nof_ctrl_symbols: Minimum number of control symbols

max_nof_ctrl_symbols: Maximum number of control symbols

#####################################################################
[scheduler]
#max_aggr_level = -1
#pdsch_mcs = -1
#pdsch_max_mcs = -1
#pusch_mcs = -1
#pusch_max_mcs = 16
#min_nof_ctrl_symbols = 1
#max_nof_ctrl_symbols = 3

#####################################################################

eMBMS configuration options

enable: Enable MBMS transmission in the eNB

m1u_multiaddr: Multicast addres the M1-U socket will register to

m1u_if_addr: Address of the inteferface the M1-U interface will listen for multicast packets.

mcs: Modulation and Coding scheme for MBMS traffic.

#####################################################################
[embms]
#enable = false
#m1u_multiaddr = 239.255.0.1
#m1u_if_addr = 127.0.1.201
#mcs = 20

#####################################################################

Channel emulator options:

enable: Enable/Disable internal Downlink/Uplink channel emulator

– AWGN Generator

awgn.enable: Enable/disable AWGN generator

awgn.snr: Target SNR in dB

– Fading emulator

fading.enable: Enable/disable fading simulator

fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)

– Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2

Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period

delay.enable: Enable/disable delay simulator

delay.period_s: Delay period in seconds.

delay.init_time_s: Delay initial time in seconds.

delay.maximum_us: Maximum delay in microseconds

delay.minumum_us: Minimum delay in microseconds

– Radio-Link Failure (RLF) Emulator

rlf.enable: Enable/disable RLF simulator

rlf.t_on_ms: Time for On state of the channel (ms)

rlf.t_off_ms: Time for Off state of the channel (ms)

– High Speed Train Doppler model simulator

hst.enable: Enable/Disable HST simulator

hst.period_s: HST simulation period in seconds

hst.fd_hz: Doppler frequency in Hz

hst.init_time_s: Initial time in seconds

#####################################################################
[channel.dl]
#enable = false

[channel.dl.awgn]
#enable = false
#snr = 30

[channel.dl.fading]
#enable = false
#model = none

[channel.dl.delay]
#enable = false
#period_s = 3600
#init_time_s = 0
#maximum_us = 100
#minimum_us = 10

[channel.dl.rlf]
#enable = false
#t_on_ms = 10000
#t_off_ms = 2000

[channel.dl.hst]
#enable = false
#period_s = 7.2
#fd_hz = 750.0
#init_time_s = 0.0

[channel.ul]
#enable = false

[channel.ul.awgn]
#enable = false
#n0 = -30

[channel.ul.fading]
#enable = false
#model = none

[channel.ul.delay]
#enable = false
#period_s = 3600
#init_time_s = 0
#maximum_us = 100
#minimum_us = 10

[channel.ul.rlf]
#enable = false
#t_on_ms = 10000
#t_off_ms = 2000

[channel.ul.hst]
#enable = false
#period_s = 7.2
#fd_hz = -750.0
#init_time_s = 0.0

#####################################################################

Expert configuration options

pusch_max_its: Maximum number of turbo decoder iterations (Default 4)

pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)

nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3)

metrics_period_secs: Sets the period at which metrics are requested from the eNB.

metrics_csv_enable: Write eNB metrics to CSV file.

metrics_csv_filename: File path to use for CSV metrics.

pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance.

tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)

rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds).

max_prach_offset_us: Maximum allowed RACH offset (in us)

eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1).

eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0).

#####################################################################
[expert]
#pusch_max_its = 8 # These are half iterations
#pusch_8bit_decoder = false
#nof_phy_threads = 3
#metrics_period_secs = 1
#metrics_csv_enable = false
#metrics_csv_filename = /tmp/enb_metrics.csv
#pregenerate_signals = false
#tx_amplitude = 0.6
#rrc_inactivity_timer = 30000
#max_prach_offset_us = 30
#eea_pref_list = EEA0, EEA2, EEA1
#eia_pref_list = EIA2, EIA1, EIA0

##########################################################

If anyone has any suggestions to finally get the network up and running, I would be very grateful.

Thanks.

Also, srseNB output below:

srslte@srslte-ThinkPad-E590:~$ sudo srsenb

Built in Release mode using commit d045213fb on branch master.

— Software Radio Systems LTE eNodeB —

Reading configuration file /home/srslte/.config/srslte/enb.conf…
Opening 1 RF devices with 1 RF channels…
Soapy has found device #0: addr=24607:1027, driver=lime, label=LimeSDR Mini [USB 3.0] 1D588EFA1918BF, media=USB 3.0, module=FT601, name=LimeSDR Mini, serial=1D588EFA1918BF,
[INFO] Make connection: ‘LimeSDR Mini [USB 3.0] 1D588EFA1918BF’
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] RX LPF configured
Set Rx bandwidth to 2.50 MHz
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Set Tx bandwidth to 5.00 MHz
[INFO] Filter calibrated. Filter order-2nd, set to 50 MHz
[INFO] TX LPF configured
Set Tx bandwidth to 50.00 MHz
Available device sensors:

  • clock_locked
  • lms7_temp
    Available sensors for Rx channel 0:
  • lo_locked
    [INFO] Tx calibration finished
    [INFO] Rx calibration finished
    State of gain elements for Rx channel 0 (AGC not supported):
  • TIA: 9.00 dB
  • LNA: 30.00 dB
  • PGA: -4.00 dB
    State of gain elements for Tx channel 0 (AGC not supported):
  • PAD: 45.00 dB
  • IAMP: 0.00 dB
    Rx antenna set to LNAH
    Tx antenna set to BAND1

Warning burst preamble is not calibrated for device lime_mini. Set a value manually

Setting frequency: DL=1805.0 Mhz, UL=1710.0 MHz
[INFO] Selected TX path: Band 2
Setting Sampling frequency 11.52 MHz

==== eNodeB started ===
Type to view trace
[INFO] RX LPF configured
Set Rx bandwidth to 8.64 MHz
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 8.64 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Set Tx bandwidth to 8.64 MHz
[INFO] Filter calibrated. Filter order-2nd, set to 50 MHz
[INFO] TX LPF configured
Set Tx bandwidth to 50.00 MHz

Warning TX/RX time offset has not been calibrated for device lime_mini. Set a value manually

[INFO] Tx calibration finished
[INFO] Rx calibration finished

There are fixes specifically for LimeSDR hardware in srsLTE 20.10, along with fixes in Lime Suite 20.10 that will be important to srsLTE users. Hence I would recommend that you use these and not previous versions.

1 Like

Thanks Andrew for your feedback. I assume that would be the case, but for some reason the errors I get with the latest versions seem to cause more issues than they fix. It’s not just calibration of TX/RX, the eNB refuses to even start for some instances I’ve installed!

I have another question; if I set the desired parameters and calibrate on LimeSuiteGUI, and it works fine, is it possible to get those same parameters to run on srsLTE? I feel like there should be a way to have the parameters unchanged, but from what I observe, srsLTE modifies them to its requirements upon running the eNB, and this causes the re-calibration errors.

Can you share details, please. To address potential issues resulting from the gains being set so low that it causes calibration failures, we have introduced a build time option in Lime Suite 20.10.

-DENABLE_NEW_GAIN_BEHAVIOUR=true

You would need to rebuild Lime Suite with this option. It’s not the default and packages don’t configure for this either.

Also you should configure srsLTE with:

-DUSE_LTE_RATES=true

Yes, when the SDR is closed and re-opened it will reset. A mechanism similar to what you suggest is sometimes used with other stacks, whereby Lime Suite GUI is used to save register configuration to an INI file, which is then loaded by the application. However, this is somewhat opaque and the srsLTE developers are not keen on such an approach. I would personally also prefer that we try to address this via API configuration and in a more transparent manner.

A good starting point would be the latest versions of software, with above options configured at build time. Following which we can look at any outstanding issues.

Ok I’m rebuilding the software from scratch again. When I run the script to build with the new gain behavior, I don’t get any indication of a response besides the normal cmake script. Is that fine? Also, I want to enable the GUI in the installation, is there a similar script to run?

srslte@srslte-ThinkPad-E590:~/LimeSuite/builddir$ cmake -DENABLE_NEW_GAIN_BEHAVIOUR=true …
– The C compiler identification is GNU 7.5.0
– The CXX compiler identification is GNU 7.5.0
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Enabling native optimizations
– Looking for pthread.h
– Looking for pthread.h - found
– Looking for pthread_create
– Looking for pthread_create - not found
– Check if compiler accepts -pthread
– Check if compiler accepts -pthread - yes
– Found Threads: TRUE
– Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
– Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
– Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
– Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Success
– Found libusb-1.0:
– - Includes: /usr/include/libusb-1.0
– - Libraries: /usr/lib/x86_64-linux-gnu/libusb-1.0.so
– USB_INCLUDE_DIRS: /usr/include/libusb-1.0
– USB_LIBRARIES: /usr/lib/x86_64-linux-gnu/libusb-1.0.so
– USB_INCLUDE_DIRS: /usr/include/libusb-1.0
– USB_LIBRARIES: /usr/lib/x86_64-linux-gnu/libusb-1.0.so
– Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS)
– wxWidgets_DEFINITIONS:
– wxWidgets_INCLUDE_DIRS:
– wxWidgets_LIBRARIES:
– Could NOT find Gnuplot (missing: GNUPLOT_EXECUTABLE)
– Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY OPENGL_INCLUDE_DIR)
– Could NOT find FLTK (missing: FLTK_LIBRARIES FLTK_INCLUDE_DIR)
– Found Git: /usr/bin/git (found version “2.17.1”)
– Module LMS7Support configured with version: 20.10.0-1480bfea
– octave-config not found (need liboctave-dev), disabling LimeSuiteOctave

– ######################################################
– ## LimeSuite enabled features
– ######################################################

  • LimeSuiteHeaders, The lime suite headers
  • LimeSuiteLibrary, The lime suite library
  • ConnectionFX3, FX3 Connection support
  • ConnectionFTDI, FTDI Connection support
  • ConnectionXillybus, PCIE Xillybus Connection support
  • LimeSuiteExamples, LimeSuite library API examples
  • LimeRFE, LimeRFE support
  • LimeUtilCommand, Command line device discovery utility
  • LimeQuickTest, LimeSDR-QuickTest Utility
  • SoapySDRLMS7, SoapySDR bindings for LMS7

– ######################################################
– ## LimeSuite disabled features
– ######################################################

  • ConnectionEVB7COM, EVB+COM Connection support
  • ConnectionSTREAM_UNITE, STREAM+UNITE Connection support
  • ConnectionRemote, Remote Connection support for testing
  • ConnectionSPI, Rasp Pi 3 SPI Connection support
  • LimeSuiteGUI, GUI Application for LimeSuite
  • LimeSuiteDocAPI, LMS API Doxygen documentation
  • LimeSuiteDesktop, LimeSuite freedesktop integration
  • LimeSuiteOctave, LimeSuite Octave integration

– Install prefix: /usr/local
– Build timestamp: 2020-11-12
– Lime Suite version: 20.10.0-g1480bfea
– ABI/so version: 20.10-1
– Configuring done
– Generating done
– Build files have been written to: /home/srslte/LimeSuite/builddir

You just need to make sure you have the required dependencies installed and looking at the output, you are missing a few, which you should install via your package manager (development files for each also and not just the libraries).

@Wisaam how did you get on with release 20.10?

Hi Andrew,

With the latest versions and the additional CMake inputs, I now have no errors when running the script.

However, I cannot detect the network on the COTS UE. I’ve tried multiple devices, and several bands (1, 3, 8, 20). I’ve even tried varying the MCC+MNC values (standard 90170 and others).

Any suggestions?

It may be that there is a frequency error. You could use an external reference and we have tested with this model:

http://www.leobodnar.com/shop/index.php?main_page=product_info&cPath=107&products_id=234

However, it does mean making modifications to the SDR and once this is done you will always have to use an external reference. For more details, see:

https://wiki.myriadrf.org/LimeSDR-Mini_v1.2_hardware_description#Clock_Distribution

It is also not uncommon to find that some COTS UEs just will not see the network regardless.

In addition to trying different bands, you could also try different number of PRB (bandwidth). It can be a bit of a case of trial and error.

Dear Andrew,

I have finally done it. I did a timeshift and recompiled everything for the 100th time, and the below steps seem to have worked. I was able to connect a device (Sony Xperia Z5) to the internet through the Limesdr Mini using srsLTE. The same devices and the standard DL frequency worked. I’m not sure what I did differently this time, but I will post the exact steps below for anyone who was following the topic. Next steps: initiate a call. Thanks for the continued support!

#INSTALL SOAPYSDR DEPENDENCIES
1 sudo add-apt-repository -y ppa:pothosware/framework
2 sudo add-apt-repository -y ppa:pothosware/support
3 sudo add-apt-repository -y ppa:myriadrf/drivers
4 sudo apt-get update
5 sudo apt-get install pothos-all -y
6 sudo apt-get install python-pothos -y
7 sudo apt-get install python3-pothos -y
8 sudo apt-get install pothos-python-dev -y
9 sudo apt-get install soapysdr-tools -y
10 sudo apt-get install python-soapysdr python-numpy -y
11 sudo apt-get install python3-soapysdr python3-numpy -y
12 sudo apt-get install soapysdr-module-remote soapysdr-server -y
13 sudo apt remove limesdr0.6-module-audio -y
14 sudo apt install soapysdr-module-all -y
15 sudo add-apt-repository -y ppa:myriadrf/drivers
16 sudo apt-get update

#INSTALL LIMESUITE DEPENDENCIES
17 sudo apt-get install git g++ cmake libsqlite3-dev
18 sudo apt-get install libsoapysdr-dev libi2c-dev libusb-1.0-0-dev
19 sudo apt-get install libwxgtk3.0-dev freeglut3-dev

#INSTALL LIMESUITE
20 git clone https://github.com/myriadrf/LimeSuite.git
21 cd LimeSuite
22 mkdir builddir && cd builddir
23 cmake -DENABLE_NEW_GAIN_BEHAVIOUR=true …/
24 make -j4
25 sudo make install
26 sudo ldconfig
27 cd
28 cd LimeSuite/udev-rules
29 sudo ./install.sh

#ENSURE SOAPY PICKS UP LIMESDR
30 SoapySDRUtil --probe

#INSTALL SRSLTE DEPENDENCIES
31 cd
32 sudo apt-get install libsoapysdr-dev cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig+±dev libsctp-dev git build-essential -y

#INSTALL SRSLTE
33 git clone https://github.com/srsLTE/srsLTE.git
34 cd srsLTE
35 mkdir build
36 cd build
37 cmake -DUSE_LTE_RATES=true
38 cmake -DUSE_LTE_RATES=true …/
39 make
40 sudo make install
41 sudo ldconfig
42 sudo srslte_install_configs.sh user

#SET CPUS TO PERFORMANCE MODE
43 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
44 echo “performance” | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
45 echo “performance” | sudo tee /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
46 echo “performance” | sudo tee /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
47 echo “performance” | sudo tee /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
48 echo “performance” | sudo tee /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
49 echo “performance” | sudo tee /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor
50 echo “performance” | sudo tee /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
51 echo “performance” | sudo tee /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor

#RUN MASQUERADING SCRIPT TO ALLOW IP FORWARDING (DEFAULT DESTINATION)
52 sudo apt install net-tools
53 route
54 sudo ./srsepc_if_masq.sh wlp5s0

3 Likes

That’s good to hear and thanks for sharing.

1 Like

Initiating calls with srsLTE sounds great. We would need an IMS with P-CSCF, Asterisk, ISIM cards maybe, wireshark…

@andrewback does this ring a bell to you? Do you know about projects related to VoLTE and srsLTE? It would be a great help.
@Wisaam happy to go crazy and puzzle over it.

Sure, so obviously srsLTE provides a minimal EPC, but using Open5GS would give a bit more flexibility. There is a tutorial here using another SDR, which could easily be adapted.

Then Kamailio could be used for IMS:

There is also a project being spun up to package all this and with automated testing etc. The objective being to make it as easy as possible to create a standalone private LTE network with VoLTE support. Further details will be shared here in the new year.

2 Likes

I have some question Wisaam because I always have also trouble on installing it :

  1. Is it possible also to share the conf file indeed enb.cfg; sib.cfg; rr.conf; drb.conf indeed about n_prb and earfcn and rx_gain and tx_gain on enb.conf?
  2. What is the distribution of OS that you use ? is it ubuntu 18.04.3 ?
  3. When is the timeshift that you use?

I have some question Wisaam because I always have also trouble on installing it :

  1. Is it possible also to share the conf file indeed enb.cfg; sib.cfg; rr.conf; drb.conf indeed about n_prb and earfcn and rx_gain and tx_gain on enb.conf?
  2. What is the distribution of OS that you use ? is it ubuntu 18.04.3 ?
  3. When is the timeshift that you use?
1 Like

Hello dast,

  1. I have not modified most of those files yet, the only parameters i changed are the MCC and MNC values in enb.conf and epc.conf (901 and 70). tx_gain = 80 and rx_gain = 40, the default values. Also for the earfcn, the value is commented in the enb.conf file, so it is defaulting to the parameter in rr.conf (dl_earfcn = 3350).
  2. Ubuntu 18.04.5 LTS
  3. I timeshift to a point after I installed all the major system updates + SoapySDR (step 16 above) before the installation of LimeSuite dependencies.

Thank’s for replying :

  1. so you are note sure for the causes of why the first experimentation doesn’t run and why this last one run?
  2. Did you use n_prb = 15 or n_prb = 25 or n_prb = 50 for the configuration enb.conf?
  3. Is it possible to have the history by taping command “history” on terminal, if it’s possible?
  1. Maybe certain updates caused it to pass or fail, or the order of installation of packages.
  2. 50 prb
  3. That’s how I retrieved the above steps actually

Thank’s, i will try ! other questions if possible

  1. on the enb.cfg, what’s the device_name and device_args or they will be commented ?
  2. how about stability of the connection? Doesn’t the phone disconnect after launching broswer and seeing video for a long duration?