How to create a nanoBTS multi-TRX setup
In order to configure an ip.access nanoBTS multi-TRX setup, you will need
- at least two nanoBTS (let's say you have N units, where 1 < N < 5)
- N-1 TIB cables (see section below how to make them)
- N-1 RF cables (see section below)
- N RJ45 cables
- N PoE capable Ethernet ports at a switch
The TIB connectors
As you may have noticed, the nanoBTS has two connectors called TIB-in and TIB-out. TIB refers to the Timing Interface Bus, a proprietary interface to synchronize the various nanoBTS units in a multi-TRX setup.
While upon first sight they may appear to be RJ-45, they are in fact not. Careful inspection will show that while they have the same width as RJ-45, they do actually have two extra pins (one on each side), making it a 10pin connector. The official designation for those connectors is RJ-69.
The corresponding plugs and 10pin cables are relatively hard to come by. In Germany you can order them from http://www.segor.de/
Unfortunately, the RJ-69 sockets in the nanoBTS are not standard, but have a dent on the right side (right of the connectors nose). We have not been able to find a source for the matching plugs, so we resort to milling part of the standard RJ-69 plug away.
You will need two RJ-69 (10pin RJ-45) connectors for each cable. I suggest you buy some extra, in case you break one during mounting or milling.
Milling the RJ-69 connector
We don't really have any mechanical specifications for the connectors. Simply use a small milling tool to remove parts of the tip of the plug until it fits into the socket.
FIXME: picture of milled plug
Crimping the RJ-69 connectors
The crimping is the same like crimping RJ-45 connectors. Any standard crimping tool should work - with the exception that the two additional pins will not be pushed into the wire but still stand out.
We have used a screwdriver to manually push those two pins into the plug. Be careful not to damage the plug nor hurt yourself!
Please crimp one connector to each side of the cable, resulting in a 1:1 mapping of the colors. (FIXME: Picture)
Completing the physical setup
You will designate one BTS as the master, and all others as slave.
Start from the master TIB-out, connect it to the first slave TIB-in. Connect the first slave TIB-out with the second slave TIB-in. Do not create a loop, but simply a chain from one unit to another.
Configuring the Unit IDs
In a multi-TRX setup, the ip.access Unit IDs have to be set in a way that the Site-ID and BTS-ID portions are equal, while the TRX-ID increments. So for example:
- 1800/0/0 -- master BTS of multi-TRX setup
- 1800/0/1 -- first slave of multi-TRX setup
- 1800/0/2 -- second slave of multi-TRX setup (if any)
- 1800/0/3 -- third slave of multi-TRX setup (if any)
In order to set the Unit ID's accordingly, you can use the ipaccess-config tool.
In the following example, we configure the Unit IDs of two BTS. The '-r' is for restarting the BTS after the Unit ID change:
./ipaccess-config -u 1800/0/0 -r 192.168.100.120 ./ipaccess-config -u 1800/0/1 -r 192.168.100.190
If we run ipaccess-find after the BTS have restarted, you will see something along the lines of the following output:
MAC Address='00:02:95:11:11:11' IP Address='192.168.100.120' Unit ID='1800/0/0' Location 1='' Location 2='BTS_NBT131G' Equipment Version='165a029_55' Software Version='168a302_v142b13d0' Unit Name='nbts-00-02-95-11-11-11' Serial Number='00111111' MAC Address='00:02:95:22:22:22' IP Address='192.168.100.190' Unit ID='1800/0/1' Location 1='' Location 2='BTS_NBT131G' Equipment Version='165a029_55' Software Version='168a302_v142b13d0' Unit Name='nbts-00-02-95-22-22-22' Serial Number='00222222'
The slave TRX will have a green blinking light (indicating OML connection is up), despite your OpenBSC not even running yet. The reson for this seems to be the fact that the slave TRX connect their OML link to the master TRX and not the BSC!
On OpenBSC, you simply configure one BTS (with unit ID of the master TRX) and N number of TRX in that BTS. No special action required.
An example configuration file is attached to this page.
You run OpenBSC as usual. The master BTS will establish the OML link, then the master TRX will establish its RSL link, followed by the slave TRX RSL links.
./osmo-nitb <000d> input/ipaccess.c:632 accept()ed new OML link from 192.168.100.120 <000d> input/ipaccess.c:237 Identified BTS 1800/0/0 <0005> bsc_init.c:736 bootstrapping OML for BTS 0 <000d> input/ipaccess.c:694 accept()ed new RSL link from 192.168.100.120 <000d> input/ipaccess.c:237 Identified BTS 1800/0/0 <0004> bsc_init.c:897 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 871 using MCC=1 MNC=1 LAC=1 CID=0 BSIC=63 TSC=7 <000d> input/ipaccess.c:694 accept()ed new RSL link from 192.168.100.190 <000d> input/ipaccess.c:237 Identified BTS 1800/0/1 <0004> bsc_init.c:897 bootstrapping RSL for BTS/TRX (0/1) on ARFCN 873 using MCC=1 MNC=1 LAC=1 CID=0 BSIC=63 TSC=7