UmSITE Quick Start

How to's



1. Branch release set for UmTRX

Source Branch
UHD maint
UHD-Fairwaves master
Osmo-trx fairwaves/master
libosmocore master
libosmo-abis master
libosmo-sccp master
libosmo-netif master
openBSC fairwaves/master
osmoBTS fairwaves/master
(run ./configure --enable-trx at the installation process )





















2. UmTRX firmware

If you are presently using an older UmTRX-specific fork of the main UHD codebase (UHD version 003.004) and would like to be up and running with the new driver (for UHD version 003.008 and later), you must first upgrade the firmware on your UmTRX.

in this order:

1. Use the old monolithic driver to upgrade both the production and safe firmware

2. Reboot the UmTRX

3. Remove the old UHD fork

4. Install latest UHD from ettus and UmTRX module

Warning: moving to the new driver first and then attempting to upgrade the firmware may brick your UmTRX!

1. Install old monolithic Fairwaves UHD (branch* old_master)

- Firmware upgrade

Binary firmware releases can also be found in the GitHub repo, in the images directory.

A utility provided by UHD-Fairwaves.


Provided that everything downloaded without any issues you can now proceed with updating. You must ensure that the power source and Ethernet connection with the UmTRX is stable during these operations!

The commands are:


    $ ./umtrx_net_burner.py ??addr=192.168.10.2 ??fw=umtrx_txrx_uhd.bin ??erase
    $ ./umtrx_net_burner.py ??addr=192.168.10.2 ??fpga=u2plus_umtrx_v2.bin
    $ ./umtrx_net_burner.py ??addr=192.168.10.2 ??fpga=u2plus_umtrx_v2.bin ??overwrite-safe
    $ ./umtrx_net_burner.py ??addr=192.168.10.2 ??fw=umtrx_txrx_uhd.bin

detailed instruction how to: umtrx.org

2. Reboot (power up/down) UmTRX for the final step of firmware loading

3. Remove old UHD (003.004)

    aptitude purge libuhd-dev libuhd003 uhd uhd-host

4. Install latest UHD from ettus and UmTRX module. Follow the steps below described in UHD installation chapter.

Run:

    uhd_usrp_probe

to verify that correct version of uhd is installed and UmTRX with the new firmware detected properly.

Summary: old UHD -> new firmware -> new UHD


2. UHD Driver

A host driver is provided by UHD plus a loadable module that adds UmTRX support.

If you already have a reasonably recent UHD install that was built with module support, you may only need to build and install the UmTRX module. However, at the time of writing the binary downloads from Ettus were built without this option enabled. See below for details.

We provide instructions for Linux users only, but the driver should work under Windows and MacOS X as well.

Installation

UmTRX driver is a loadable module for the UHD library, so the main UHD library is required for the UmTRX driver to operate. Loading UmTRX driver allows any of the myriad of UHD applications to work with UmTRX just like with any other UHD compatible device. Below we describe how to install the UHD library and UmTRX module for it.

The UHD version supported by the current UmTRX driver is 003.008.

NOTE: The binary downloads from Ettus have module support disabled and does not work with UmTRX.

If you are an Ubuntu user, you can download UHD library built with loadable modules support from Josh Blum PPA:

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:guruofquality/pothos
Building form source

For UHD build and installation details see the UHD Wiki.

UmTRX module

Once UHD has been installed the UmTRX module must be built and installed.

Go to master branch of the UHD-Fairwaves repository,

$ git clone https://github.com/fairwaves/UHD-Fairwaves.git
$ cd UHD-Fairwaves/host
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install

NOTE: that if build fails with a boost-related error, a more recent version of this may need to be installed.


4. Osmo-TRX rebuild (optional)

NOTE: This is required, If you have already installed Osmocom software before you update UHD.

After the UHD update for 003.008, Osmo-TRX doesn't work! In terms of the new UHD version, an Osmo-TRX rebuild is required.

go to:

/fairwaves-tools/deps/osmo-trx

and run

autoreconf -fi
./configure
make -j4
sudo make install

5. How Freeswitch connects to LCR

Freeswitch talk to LCR through the SIP protocol

path: etc/lcr/interface.conf

Freeswitch IP

<remote ip>[:<remote port>]

LCR IP

<local ip>[:<local port>]

6. How to set up a MultiBTS

  • BSC: osmo-nitb 172.30.1.10
  • BTS1: osmo-bts-1 172.30.1.11
  • BTS2: osmo-bts-2 172.30.1.12

BTS configuration

There are two parameters which should be set correctly in BTS configuration:

  • 1. ipa unit-id - each BTS should have unique ipa unit-id

  • 2. oml remote-ip - BSC ip address

path: etc/osmocom/osmo-bts.cfg

BTS1 configuration

bts 0
 band GSM900
 ipa unit-id 1801 0
 oml remote-ip 172.30.1.10
 rtp jitter-buffer 0
 paging lifetime 0
 gsmtap-sapi bcch
 gsmtap-sapi ccch
 gsmtap-sapi rach
 gsmtap-sapi agch
 gsmtap-sapi pch
 gsmtap-sapi sdcch
 gsmtap-sapi pacch
 gsmtap-sapi pdtch
 gsmtap-sapi sacch
 fn-advance 20
 ms-power-loop -10
 timing-advance-loop
 trx 0
  rxgain 12
  power 0
 trx 1
  rxgain 12
  power 0

BTS2 configuration

bts 1
 band GSM900
 ipa unit-id 1802 0
 oml remote-ip 172.30.1.10
 rtp jitter-buffer 0
 paging lifetime 0
 gsmtap-sapi bcch
 gsmtap-sapi ccch
 gsmtap-sapi rach
 gsmtap-sapi agch
 gsmtap-sapi pch
 gsmtap-sapi sdcch
 gsmtap-sapi pacch
 gsmtap-sapi pdtch
 gsmtap-sapi sacch
 fn-advance 20
 ms-power-loop -10
 timing-advance-loop
 trx 0
  rxgain 12
  power 0
 trx 1
  rxgain 12
  power 0

BSC configuration

There are three parameters which should be checked in BSC configuration:

  • 1. ip.access unit_id - you should set the same unit id in the BSC as well as in BTS, each BTS should have unique ipa unit-id

  • 2. base_station_id_code - should be unique in location area <0-63>

  • 3. neighbor-list mode automatic

path: etc/osmocom/openbsc.cfg

BSC configuration

!
! OpenBSC (UNKNOWN) configuration saved from vty
!!
password foo
!
line vty
 no login
!
e1_input
 e1_line 0 driver ipa
 e1_line 0 port 0
 no e1_line 0 keepalive
network
 network country code 1
 mobile network code 1
 short name Fairwaves
 long name Fairwaves
 auth policy accept-all
 location updating reject cause 13
 encryption a5 0
 neci 1
 paging any use tch 0
 rrlp mode none
 mm info 1
 handover 1
 handover window rxlev averaging 10
 handover window rxqual averaging 1
 handover window rxlev neighbor averaging 10
 handover power budget interval 6
 handover power budget hysteresis 3
 handover maximum distance 9999
 timer t3101 10
 timer t3103 0
 timer t3105 0
 timer t3107 0
 timer t3109 4
 timer t3111 0
 timer t3113 60
 timer t3115 0
 timer t3117 0
 timer t3119 0
 timer t3122 10
 timer t3141 0
 dtx-used 0
 subscriber-keep-in-ram 0
 bts 0
  type sysmobts
  band GSM900
  cell_identity 0
  location_area_code 1
  base_station_id_code 63
  ms max power 15
  cell reselection hysteresis 4
  rxlev access min 0
  periodic location update 30
  radio-link-timeout 32
  channel allocator ascending
  rach tx integer 9
  rach max transmission 7
  channel-descrption attach 1
  channel-descrption bs-pa-mfrms 5
  channel-descrption bs-ag-blks-res 1
  ip.access unit_id 1801 0
  oml ip.access stream_id 255 line 0
  neighbor-list mode automatic
  gprs mode none
  no force-combined-si
  trx 0
   rf_locked 0
   arfcn 74
   nominal power 23
   max_power_red 0
   rsl e1 tei 0
    timeslot 0
     phys_chan_config CCCH+SDCCH4
     hopping enabled 0
    timeslot 1
     phys_chan_config SDCCH8
     hopping enabled 0
    timeslot 2
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 3
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 4
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 5
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 6
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 7
     phys_chan_config TCH/F
     hopping enabled 0
  trx 1
   rf_locked 0
   arfcn 84
   nominal power 23
   max_power_red 0
   rsl e1 tei 0
    timeslot 0
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 1
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 2
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 3
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 4
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 5
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 6
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 7
     phys_chan_config TCH/F
     hopping enabled 0
 bts 1
  type sysmobts
  band GSM900
  cell_identity 0
  location_area_code 1
  base_station_id_code 62
  ms max power 15
  cell reselection hysteresis 4
  rxlev access min 0
  periodic location update 30
  radio-link-timeout 32
  channel allocator ascending
  rach tx integer 9
  rach max transmission 7
  channel-descrption attach 1
  channel-descrption bs-pa-mfrms 5
  channel-descrption bs-ag-blks-res 1
  ip.access unit_id 1802 0
  oml ip.access stream_id 255 line 0
  neighbor-list mode automatic
  gprs mode none
  no force-combined-si
  trx 0
   rf_locked 0
   arfcn 111
   nominal power 23
   max_power_red 0
   rsl e1 tei 0
    timeslot 0
     phys_chan_config CCCH+SDCCH4
     hopping enabled 0
    timeslot 1
     phys_chan_config SDCCH8
     hopping enabled 0
    timeslot 2
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 3
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 4
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 5
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 6
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 7
     phys_chan_config TCH/F
     hopping enabled 0
  trx 1
   rf_locked 0
   arfcn 122
   nominal power 23
   max_power_red 0
   rsl e1 tei 0
    timeslot 0
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 1
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 2
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 3
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 4
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 5
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 6
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 7
     phys_chan_config TCH/F
     hopping enabled 0

7. How to change unit ID

Find the ipa unit-id <new-UNIT-ID> 0 line in osmo-bts.cfg file. Change only this value <new-UNIT-ID>

NOTE: ipaccess-config utility doesn't work with OsmoBTS/OpenBSC/UmTRX. It only works with ip-access hardware. Do not use it.

8. How to get GPRS up

osmo-pcu has to be installed:

git clone git://git.osmocom.org/osmo-pcu
cd osmo-pcu/
autoreconf -i
./configure
make
cd ..

GPRS configuration can be configured through the VTY telnet interface. Refer to osmocom for details

9. UmTRX 2.2 Box STL file

Here is the 3D box model for the UmTRX 2.2

Google disk

OnShape

10. UmDESK displaying problem

Small inch monitors might have a displaying problem with a console mode resolution.

in order to disable Linux Kernel Framebuffer for this graphics driver

just add

blacklist gma500_gfx

line to

/etc/modprobe.d/blacklist-framebuffer.conf

11. How to disable a second TRx

In order to disable a second channel follow these steps bellow:

1.Remove TRx 1 configuration in /etc/osmocom/openbsc.cfg

    trx 1
     rf_locked 0
     arfcn 20
     nominal power 23
     max_power_red 0
     rsl e1 tei 0
    timeslot 0
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 1
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 2
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 3
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 4
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 5
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 6
     phys_chan_config TCH/F
     hopping enabled 0
    timeslot 7
     phys_chan_config TCH/F

also remove

trx 1
  rxgain 12
  power 0

in etc/osmocom/osmo-bts.cfg

2.change value -c 2 on -c 1 in /etc/sv/osmo-bts/run

and -t 2 on -t 1 in /etc/sv/osmo-trx/run

3.restart services

sudo sv restart osmo-bts osmo-trx osmo-nitb

12. How to set TRx output power

Runtime output power control is not implemented yet, but you can set the default output power through the EEPROM

Write into UmTRX EEPROM correct value "dcdc_r"

  • dcdc_r=0 about 1W of output power.
  • dcdc_r=188 about 3W of output power.

Values between 0 and 188 will gradually change output power.

Use

usrp_burn_mb_eeprom

standart utility from Ettus UHD, default path:

/usr/local/lib/uhd/utils/

If this path does not match with your system, run

locate usrp_burn_mb_eeprom

to find it either way clone UHD-Fairwaves

To set dcdc_r in EEPROM:

usrp_burn_mb_eeprom --values "pa_dcdc_r=0"

To check the current EEPROM value:

usrp_burn_mb_eeprom --values "pa_dcdc_r"

To overwrite EEPROM value you can set the environment variable for osmo-trx:

$ UMTRX_PA_DCDC_R=0 osmo-trx -c 2 -s 4

osmo-trx start script is located in /etc/sv/osmo-trx/run

NOTE: Real time output power control is available, see instruction 5.5 BTS Configuration of the software configuration manual

13. Jitter Buffer

Osmo-bts has a fixed 100ms jitter buffer by default. You can change the value "rtp jitter-buffer" in osmo-bts.cfg file stored at etc/osmocom/

Also FreeSWITCH Jitter buffer can be activated