OpenBTS: UHD Devices¶
- OpenBTS: UHD Devices
As of December 2011, UHD device support and related features are merged into the mainline repository. New and current users of OpenBTS-UHD are encouraged to start with or migrate to the mainline version P2.8 of OpenBTS. OpenBTS-UHD is currently maintained only by backporting relevant patches from mainline.
OpenBTS versions prior to P2.8 only support the USRP1 in the classic configuration with dual RFX900/1800 daughterboards. OpenBTS-UHD is a rewrite of substantial parts of the OpenBTS version 2.6 transceiver code along with additional outside patches. All devices, with the exception of the USRP1, utilize the UHD driver from Ettus Research. Because of the ability to timestamp samples, the USRP1 implementation does not use UHD and is based on a driver from GNU Radio.
OpenBTS-UHD includes all functionality of the mainline 2.6 public version plus the following additional features.
- Supports all Ettus Research products
- Embedded device support with the E100 (ARM Cortex-A8)
- Non-RFX daughterboards such as the WBX, SBX, DBSRX, and DBSRX2
- Single daughterboard (WBX, SBX, or RFX) usage
- Allows for external reference signal (on supported devices) for highly precise timing
- Transmit and receive gain control on non-52 MHz clocked devices
- Additional patches not merged into the mainline repository
For running OpenBTS on the E100, please see the dedicated OpenBTS/E100 page.
For running OpenBTS with a USRP1 in single board or non-RFX configuration see the OpenBTS/ExpandedDboard page.
OpenBTS-UHD source code is managed with git. The repository tracks and merges in changes from the mainline OpenBTS repository.
git clone git://github.com/ttsou/openbts-uhd.gitor
git clone http://github.com/ttsou/openbts-uhd.git
A generated tarball is also available for download.
All USRP devices except USRP1 require UHD driver and firmware to work with OpenBTS and should be build with the following commands:
./bootstrap ./configure make
USRP E100 also use UHD driver and firmware, but requires special handling. See the dedicated OpenBTSE100 page about building for USRP E100.
USRP1 requires the following commands to build OpenBTS-UHD for it:
./bootstrap ./configure --with-usrp1 make
For non-traditional daughter board setup for USRP1 see the dedicated page USRP1 Expanded Daughterboard Support.
For general build details, see the main OpenBTS/BuildingAndRunning page.
OpenBTS includes separate transceiver implementations for devices that can and cannot a support sample rate that is a multiple of the native GSM 270.833 kHz symbol rate. Informally, these two implementations are known as the 64 MHz and 52 MHz transceivers in reference to the two common clocking configurations of the URSP1 - note that other USRP devices may not necessarily operate at those clock rates, but the naming remains. Though separate, most of the code is similar between the two versions with exception of a sample rate conversion component in the 64 MHz implementation.
- USRP2, N210, and N200 require the 64 MHz transceiver with host based resampling. Fractional sample rates required for the 52 MHz implementation are not supported.
- E100 requires the 52 MHz transceiver because of resource limitations.
- USRP1 can use either the 64 MHz or 52 MHz transceiver depending the clock configuration.
- USRP1 and USRP2 have clock stabilities around 20 parts per million. The USRP1 can be reclocked at 52 MHz with modification, and the USRP2 clock can be locked to a stable external 10 MHz reference.
- The N200, N210, E100, E110 and B100 include an on-board TCXO with stability within a few parts per million, which is sufficient for OpenBTS to work with some mobile phones. It's still recommended to lock them to a stable external 10MHz reference to achieve stable performance.
External 10MHz reference¶
The front panel 10MHz reference input of certain devices (USRP2, N210, N200) can be used to improve stability of the internal oscillator. Currently, this capability can only be set at compile time. To enable the front panel reference, edit the following file.
Frequency Offset estimation¶
OpenBTS-UHD is under active development. Currently known issues can be found on the github page.