Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Tree [13df10] master /
History



File Date Author Commit
LTE_fdd_dl_file_gen 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
LTE_fdd_dl_file_scan 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
LTE_fdd_dl_scan 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
LTE_fdd_enodeb 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
LTE_file_recorder 2013-12-02 Ben Wojtowicz Ben Wojtowicz [1f119c] Version 0.10.2: Added support for bladeRF in LT...
cmake 2013-12-02 Ben Wojtowicz Ben Wojtowicz [1f119c] Version 0.10.2: Added support for bladeRF in LT...
cmn_hdr 2012-08-19 Ben Wojtowicz Ben Wojtowicz [fd98d8] Version 0.6.1: Added SIB2, SIB3, SIB4, and SIB8...
liblte 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
libtools 2013-08-29 Ben Wojtowicz Ben Wojtowicz [9d8cd1] Version 0.9.0: Updated to support GnuRadio 3.7,...
octave 2014-04-13 Ben Wojtowicz Ben Wojtowicz [58ed23] Version 0.12.1: Pulled in patches from Astrasel...
AUTHORS 2014-04-13 Ben Wojtowicz Ben Wojtowicz [58ed23] Version 0.12.1: Pulled in patches from Astrasel...
CMakeLists.txt 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
COPYING 2012-03-26 Ben Wojtowicz Ben Wojtowicz [801f34] first release with gnuradio c support
ChangeLog 2014-06-18 Ben Wojtowicz Ben Wojtowicz [13df10] Version 0.14.0: Split LIBLTE_MSG_STRUCT into bi...
NEWS 2012-03-26 Ben Wojtowicz Ben Wojtowicz [801f34] first release with gnuradio c support
README 2014-05-06 Ben Wojtowicz Ben Wojtowicz [07a28f] Version 0.13.0: Added MAC control element handl...

Read Me

This directory contains the openLTE source code.  For support, please
subscribe to openlte-discuss@lists.sourceforge.net.  Details can be
found at sourceforge.net/projects/openlte/.

The directory structure for the project is:
octave                Octave test code
cmn_hdr               Common header files
liblte                C++ library of commonly used LTE functions
cmake                 Files needed for cmake
LTE_fdd_dl_file_scan  A gnu-radio LTE FDD DL file scanner application
LTE_fdd_dl_file_gen   A gnu-radio LTE FDD DL file generator application
LTE_fdd_dl_scan       A gnu-radio LTE FDD DL scanner application that
                      currently supports rtl-sdr, hackrf, USRP B2X0,
                      and bladeRF hardware
LTE_file_recorder     A gnu-radio LTE file recording application that
                      currently supports rtl-sdr, hackrf, USRP B2X0,
                      and bladeRF hardware
LTE_fdd_enodeb        An LTE FDD eNodeB application that currently
                      supports URSP B2X0 hardware

openLTE is dependant on the following:
1) GNU Radio
2) GrOsmoSDR
3) rtl-sdr
4) UHD
5) HackRF
6) bladeRF

To build the C++ and python code use the following:

  $ mkdir build
  $ cd build
  $ cmake ../
  $ make

To install the C++ and python code use the following:

  $ mkdir build
  $ cd build
  $ cmake ../
  $ make
  $ sudo make install

All testing was performed against the following configuration:
- Intel Core i5-2557M
- Ubuntu 12.04
- GNU Radio 3.7.2
- GrOsmoSDR 0.1.1
- rtl-sdr 0.5
- UHD 3.6.0-1
- HackRF 0.2
- bladeRF 0.9.0

##################
#  FILE SCANNER  #
##################
To use the installed C++ and python code for the file scanner,
set the PYTHONPATH env variable to
<python_install_dir>/dist-packages/gnuradio/
for instance /usr/local/lib/python2.7/dist-packages/gnuradio/
and make sure that /usr/local/lib is added to /etc/ld.so.conf
and that LD_LIBRARY_PATH is set to /usr/local/lib (export
LD_LIBRARY_PATH=/usr/local/lib).  Then run LTE_fdd_dl_file_scan.py
and specify a recorded LTE file as the input. For example:

  $ LTE_fdd_dl_file_scan.py lte_file.bin

To see a list of options, use the -h option:

  $ LTE_fdd_dl_file_scan.py -h

To change the input file data type (int8 or gr_complex), use the
-d/--data-type option:

  $ LTE_fdd_dl_file_scan.py -d int8 lte_file.bin

For int8 data type, the recorded LTE file must be interleaved signed
8-bit I and Q samples.  For the gr_complex data type, the recorded
LTE file must be sequential gr_complex I/Q samples.  Files recorded
with LTE_file_recorder or generated with LTE_fdd_dl_file_gen can be
scanned with this application.

####################
#  FILE GENERATOR  #
####################
To use the installed C++ and python code for the file generator,
set the PYTHONPATH env variable to
<python_install_dir>/dist-packages/gnuradio/
for instance /usr/local/lib/python2.7/dist-packages/gnuradio/
and that LD_LIBRARY_PATH is set to /usr/local/lib (export
LD_LIBRARY_PATH=/usr/local/lib).  Then run LTE_fdd_dl_file_gen.py
and specify an output file for the LTE fdd downlink signal.
For example:

  $ LTE_fdd_dl_file_gen.py lte_file.bin

To see a list of options, use the -h option:

  $ LTE_fdd_dl_file_gen.py -h

To change the output file data type (int8 or gr_complex), use the
-d/--data-type option:

  $ LTE_fdd_dl_file_gen.py -d gr_complex lte_file.bin

For int8 data type, the generated LTE file contains interleaved
signed 8-bit I and Q samples.  For the gr_complex data type, the
generated LTE file contains sequential gr_complex I/Q samples.
Files generated with this application can be scanned with
LTE_fdd_dl_file_scan.

#############
#  SCANNER  #
#############
To use the installed C++ live scanner, make sure LD_LIBRARY_PATH
is set to /usr/local/lib (export LD_LIBRARY_PATH=/usr/local/lib),
plug in rtl-sdr, hackrf, USRP B2X0, or bladeRF hardware, run
LTE_fdd_dl_scan, and connect (via telnet, nc, etc) to the control
port at port number 20000.  Scan parameters can be changed and
scan results can be observed on the control port.  For a list of
parameters simply type help on the control port.

###################
#  FILE RECORDER  #
###################
To use the installed C++ file recorder, make sure LD_LIBRARY_PATH
is set to /usr/local/lib (export LD_LIBRARY_PATH=/usr/local/lib),
plug in rtl-sdr, hackrf, USRP B2X0, or bladeRF hardware, run
LTE_file_recorder, and connect (via telnet, nc, etc) to the
control port at port number 25000.  Recording parameters can be
changed on the control port.  For a list of parameters simply type
help on the control port.  Files recorded using hackRF, USRP B2X0,
or bladeRF hardware are recorded using a sample rate of 15.36MHz.
Files recorded with all other hardware are recorded using a sample
rate of 1.92MHz.  All files recorded with this application can be
scanned with LTE_fdd_dl_file_scan.

############
#  ENODEB  #
############
To use the installed C++ eNodeB, make sure LD_LIBRARY_PATH is set
to /usr/local/lib (export LD_LIBRARY_PATH=/usr/local/lib), plug in
USRP B2X0 hardware, run LTE_fdd_enodeb, and connect (via telnet, nc,
etc) to the control port at port number 30000.  eNodeB parameters
can be changed on the control port.  For a list of parameters simply
type help on the control port.  A MAC and above level PCAP trace is
output to /tmp/LTE_fdd_enodeb.pcap.
NOTES: This application has been tested at 1.4, 3, and 5MHz
bandwidths.  Higher bandwidths are supported and performance may
vary based on processing hardware.
WARNINGS: By using this application you risk disruption of service in
a public network, even if you are not directly interfering with the
radio transmissions.  This is a criminal act in most countries, and a
much more serious offense than a simple violation of radio spectrum
regulaions.  It is highly recommended to use this application only
with antennas and test UEs inside an RF Shielded Enclosure (Faraday
Cage).

############
#  OCTAVE  #
############
To use the octave code, run the top level octave .m files:
lte_fdd_dl_transmit.m and lte_fdd_dl_receive.m.  If multiple
transmit antennas are used, the outputs need to be combined
before input to the receiver.