First of all, please see known limitations.
You need to have two antennas connected: one for RX, another for TX. Both antennas should be chosen for a proper frequency band, otherwise the distance will be limited. Also, it's strongly recommended to use a band-pass filter for TX in order to avoid interference.
Note: There is a bug of USRP B2X0 hardware, which affects the burst transmission quality. It appears when both transmission and reception are performed of the same side of device. To mitigate this, please use an attenuator or antenna with some resistance between the active pin and ground.
Finally, connect your SDR hardware and make sure it's working.
Check available configuration options:
$ grgsm_trx --help ... TRX interface specific -i --remote-addr Set remote address (default 127.0.0.1) -p --base-port Set base port number (default 6700) Radio interface specific -a --device-args Set device arguments -s --sample-rate Set sample rate -g --rx-gain Set RX gain (default 30) -G --tx-gain Set TX gain (default 10) --rx-antenna Set RX antenna (default RX2) --tx-antenna Set TX antenna (default TX/RX) --ppm Set frequency correction (default 0)
If you already have another transceiver runing, e.g. OsmoTRX, choose a different TRX base port. Keep in mind that a single transceiver process occupies six UDP ports at the same time.
Choose proper RX / TX antennas and corresponding gain values depending on your device. TX gain requires more attention and should be set depending on your environment and antennas used. Feel free to use a spectrum browser, such as GQRX or osmocom_fft, for measuring the proper values.
PPM value is typically measured at runtime, so no need to specify it manually.
$ grgsm_trx --rx-gain 30 --tx-gain 80 linux; GNU C++ version 4.8.5; Boost_105500; UHD_003.010.002.000-0-122bfae1 License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. [i] Init Radio interface -- Detected Device: B200 -- Operating over USB 3. -- Initialize CODEC control... -- Initialize Radio control... -- Performing register loopback test... pass -- Performing CODEC loopback test... pass -- Setting master clock rate selection to 'automatic'. -- Asking for clock rate 16.000000 MHz... -- Actually got clock rate 16.000000 MHz. -- Performing timer loopback test... pass -- Setting master clock rate selection to 'manual'. -- Asking for clock rate 26.000000 MHz... -- Actually got clock rate 26.000000 MHz. -- Performing timer loopback test... pass -- Asking for clock rate 26.000000 MHz... OK [i] Init CTRL interface [i] Init complete
At this step transceiver is ready.
The trxcon application¶
As we don't use Calypso-based phones, the osmocon application is useless here. Instead, you need to run another application called trxcon. You should use the same TRX base port as specified to transceiver.
$ cd osmocom-bb/src/ $ host/trxcon/trxcon License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. <0001> l1ctl_link.c:235 Init L1CTL link (/tmp/osmocom_l2) <0003> trx_if.c:646 Init transceiver interface <0005> sched_trx.c:112 Init scheduler <0000> trxcon.c:277 Init complete
See help details.
At this step you should be able to run the higher layer applications.
For example, run ccch_scan:
$ cd osmocom-bb/src/ $ cd host/layer23/src/misc/ $ ./ccch_scan -i 127.0.0.1 -a <ARFCN>
It should synchronize with a BTS on specified ARFCN, and start decoding BCCH messages.