UmTRX » sdr https://umtrx.org The industrial grade dual-channel wide-band SDR transceiver Mon, 14 Oct 2019 11:37:46 +0000 en-US hourly 1 http://wordpress.org/?v=3.6 Journey to GSM. Part 3. Finding GSM Signal https://umtrx.org/journey-to-gsm-part-3-finding-gsm-signal/?utm_source=rss&utm_medium=rss&utm_campaign=journey-to-gsm-part-3-finding-gsm-signal https://umtrx.org/journey-to-gsm-part-3-finding-gsm-signal/#comments Mon, 04 Jul 2016 14:21:11 +0000 Dmitry Klyuykov http://umtrx.org/?p=850 In the third article of the series we will try to find GSM signal.

First of all, we need to design a signal processing algorithm. The GNU Radio package contains a frontend graphical interface designated for design signal processing flow graphs that may ease our work. It could be found in Application Center with GRC name, which means GNU Radio Companion. GRC automatically creates python programs for the required SDR blocks.

Let’s start with adding of USRP Source from UHD tab to the workspace of GRC. USRP Source is the abstraction layer that allows communication with a hardware. It produces digital signal which will be consumed by the next blocks in our flow graph. The source block tells our SDR to turn on receive mode.

The next block we are going to add is QT GUI FFT Sink under Instrumentation tab. This one helps to visualize the frequency components. To connect the blocks, just click on the «out» of the Source and then on the «in» of the FFT Sink. USRP Source title changed color from red to black, which means that output properly connected with input of the next block. If QT GUI FFT Sink title is still red, then probably we have WX GUI enabled in Generate Options (top block). If we change that option to the QT, the FFT Sink will also become black. QT (http://www.qt.io/) and WX (https://www.wxwidgets.org/) just different libraries with graphical user interface elements.

It’s necessary to increase sample rate in samp_rate variable to be able to register the GSM signal. 1 million would be enough. Let us also create another variable center_freq to be able to change the central frequency in one place. Now we can set center_freq in both blocks and change it in Variable block if needed.

Our lab Base Transceiver Station (BTS) transmits downlink signals at 949.8 MHz and receives uplink signals at 904.8 MHz. If you don’t know exactly GSM frequencies transmitted near you, you may scan them using GNU Radio uhd_fft tool or software like gqrx (http://gqrx.dk/).

4

We will listen at 949.8 MHz first to catch some broadcast channel signals.

5

Push «Execute the flow graph» button to catch some radio waves!

6

Here it is! The downlink GSM signal at 949.8 MHz.

]]>
https://umtrx.org/journey-to-gsm-part-3-finding-gsm-signal/feed/ 0
Journey to GSM. Part 2. Installation https://umtrx.org/journey-to-gsm-part-2-installation/?utm_source=rss&utm_medium=rss&utm_campaign=journey-to-gsm-part-2-installation https://umtrx.org/journey-to-gsm-part-2-installation/#comments Thu, 16 Jun 2016 15:32:37 +0000 Dmitry Klyuykov http://umtrx.org/?p=801 To begin with the exercise, we need to install hardware and software components. First of all, we need to be sure that our computer and SDR board know each other. For that purpose, it’s necessary to install Universal Software Radio Peripheral (USRP) Hardware Driver (UHD) and UmTRX module to that driver on our machine. UHD is the device driver provided by Ettus Research for use with the USRP product family. UmTRX driver is a loadable module for the UHD library. 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 (The UHD version supported by the current UmTRX driver is 003.008) and UmTRX module for it.

We will use Ubuntu 14.04 for our purposes. Basically, it’s possible to use any Ubuntu system, but we tested everything on 14.04 and guarantee that it will work fine. UHD library built with loadable modules support could be downloaded from Josh Blum’s PPA. Thus, we need to open Terminal and enter:

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

Python-software-properties provides the add-apt-repository binary, which is necessary to install a new ppa (Personal Package Archive, is a collection of software not included in Ubuntu by default, https://help.launchpad.net/Packaging/PPA) easily. Pothos repository contains a proper UHD package for UmTRX. Update the cache of the Software Center repository:

$ sudo apt-get update

To install UHD driver from that repository, we should open Ubuntu Software Center. From drop-down menu of All Software button choose Pothos and scroll down until «uhd» package appears. That’s the one we need to install.

PothosUHD

It’s also possible follow the standard procedure described in the UHD build guide to build it from the source (http://files.ettus.com/manual/page_build_guide.html).

Once UHD has been installed the UmTRX module must be built and installed over it. We have just installed Ubuntu 14.04 so some necessary software for building UmTRX module is abscent. It’s easy to get, though!

$ sudo apt-get install git
$ sudo apt-get install libboost-all-dev
$ sudo apt-get install build-essential
$ sudo apt-get install cmake

Git is a widely used version control system for software development. Boost is a set of libraries for the C++ programming language that provide support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading image processing, regular expressions, and unit testing. The build-essentials is a reference for all the packages needed to compile a debian package. It generally includes the gcc/g++ compilers an libraries and some other utilities.

We are ready to install UmTRX module right now:

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

In this part we cloned Fairwaves repository to the local folder, created a folder for the installation and built the module. To install the driver with a package:

$ cpack
$ sudo dpkg -i umtrx_*.deb

We highly recommend to use Josh Blum’s UHD driver as we based the development of UmTRX driver on it.

It is suitable moment to setup and boot UmTRX board to ensure if the installation went correctly.

The UmTRX Lab Package includes a power supply, GPS antenna and pigtail wires for GSM antennas. The user have to take care of assembly and cooling. A 3-pin mains lead is required.

1

Cooling is necessary and the heat generated must be dissipated in a stable manner in order to avoid permanent damage of the UmTRX. Cooling using fans is easy to implement but is mostly suited to indoor use. Two fans may be connected via the connectors X17 (FAN1) and X18 (FAN2). FAN1 is constantly powered and FAN2 is automatically switched on/off by U35 (MAX6665ASA45) when the temperature is around 45°C. The maximum DC current of FAN2 must be less than 400mA.

TX and RX antennas should be selected according to the application. Damage may occur if UmTRX is set to transmit without a suitable 50 ohm load connected! We will use antennas from the box.

As we plugged power and cooling, we need to connect our board to computer via ethernet cable directly or via switch. For now, UmTRX does not support 100M Ethernet and it will not be recognized if your computer does not support gigabit Ethernet. Though, if your PC ethernet port supports only 100 Mbit/s, you may use 1GBit/s network switch. By default UmTRX has a static IP address 192.168.10.2/24, so it is recommended to set your computer’s IP address to 192.168.10.3/24.

It’s easy to check, if UmTRX and UHD were installed properly:

$ uhd_find_devices

If the result was like that, we made everything right:

2a

We may also probe the properties of the attached device:

$ uhd_usrp_probe 192.168.10.2

3a

The output of the command shows different properties of our UmTRX, such as driver version and channel settings.

The next step is installation of GNU Radio package into our Ubuntu system. We recommend to use build-gnuradio script as it would allow to install the latest version of the package and not to overwrite our existing UHD driver. Create a folder in your /home to avoid any issues with file permissions.

$ wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio prereqs gitfetch gnuradio_build

We are using additional parameters prereqs, gitfetch and gnuradio_build to check if our prerequisite software is installed (and install it if necessary), copy the installation files to created folder and build GNU Radio only, without UHD driver. The process takes about 2 hours, so please be patient.

To have more options in experiments with SDR, it’s helpful to install Osmocom GNU Radio Blocks (http://sdr.osmocom.org/trac/wiki/GrOsmoSDR). By using the OsmoSDR block we can take advantage of a common software API in our application(s) independent of the underlying radio hardware.

$ git clone git://git.osmocom.org/gr-osmosdr
$ cd gr-osmosdr
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

So, the script finished it’s work and we are ready to have some fun with GNU Radio!

]]>
https://umtrx.org/journey-to-gsm-part-2-installation/feed/ 0
Journey to GSM. Part 1. Introduction https://umtrx.org/journey-to-gsm-part-1-introduction/?utm_source=rss&utm_medium=rss&utm_campaign=journey-to-gsm-part-1-introduction https://umtrx.org/journey-to-gsm-part-1-introduction/#comments Thu, 16 Jun 2016 15:29:32 +0000 Dmitry Klyuykov http://umtrx.org/?p=795 In this series of articles with the codename “Journey to GSM”, we would like to familiarize any IT enthusiast with the technology we use everyday – Global System for Mobile communications (GSM). The main purpose of these articles is to introduce and demystify GSM and Software Defined Radio (SDR) technologies to a wide audience of IT professionals.

SDR-scheme

Software Defined Radio is a radio system which performs the required signal processing in software instead of using dedicated integrated circuits in hardware. The advantage of that approach is that since software can be easily replaced in the radio system, the same hardware can be used to create many kinds of equipment for many different radio standards. Therefore, one SDR can be used for a variety of applications. SDR is a technology that makes IT and Telecommunications closer to each other.

Basically, our system should consist of two parts: computer with software and SDR transceiver. There are plenty of SDR transceivers: UmTRX, USRP, HackRF, BladeRF, etc. Which one to choose?
As we are going to work with GSM, it would be wise to choose SDR that was created with consideration of GSM specifications. There is such SDR solution on the market. It is named UmTRX and was developed in Fairwaves.

UmTRX is based on the open source hardware (Altium Designer schematic and board layout files are made available under the Creative Commons Attribution-ShareAlike 3.0 Unported license) and can be deployed using open source software (for example, GNU RadioOsmocom family of open source projects), therefore it benefits from being part of an ever-growing ecosystem of complementary hardware and software for mobile communications. UmTRX was developed to be used as a transceiver for OpenBTS and OsmoBTS GSM base stations considering GSM specifications, but due to its SDR nature it could be used for many other applications as well. It operation based on the Ettus UHD driver. UmTRX has its own GPS clock (26 MHz Voltage Controlled Temperature Compensated Crystal Oscillator) and industrial grade components (such as Lime Microsystems Multi-band Multi-standard Transceiver with Integrated Dual DACs and ADCs LMS6002D). UmTRX has two independent channels, so one can operate on two different frequencies. As it works in different environment conditions all over the world, like hot climate of Africa and high humidity of tropical islands, we can be sure it will work on our table.

As we decided our hardware option, we need to choose our first application. Let’s try to investigate GSM signals using our UmTRX.

We are going to use GNU Radio software to build that project. GNU Radio (https://gnuradio.org) is a free and open-source software development toolkit that provides signal processing blocks to implement software radios. You can use it to write applications to receive data out of dial streams or to push data into digital streams, which is then transmitted using hardware. GNU Radio has filters, channel codes, synchronisation elements, equalizers, demodulators, vocoders, decoders, and many other elements which are typically found in radio systems. More importantly, it includes a method of connecting these blocks and then manages how data is passed from one block to another.

Our hardware part needs to receive radio frequency (RF) analog signals and transform them into the digital form using Analog-to-Digital Converter (ADC). UmTRX system should do that job easily. As for software part, digital signal processing (DSP) is where GNU Radio has a plenty of tricks.

]]>
https://umtrx.org/journey-to-gsm-part-1-introduction/feed/ 0
Embedded version of UmTRX is finally available for everyone https://umtrx.org/embedded-version-of-umtrx-is-finally-available-for-everyone/?utm_source=rss&utm_medium=rss&utm_campaign=embedded-version-of-umtrx-is-finally-available-for-everyone https://umtrx.org/embedded-version-of-umtrx-is-finally-available-for-everyone/#comments Fri, 10 Jun 2016 18:09:44 +0000 Dmitry Klyuykov http://umtrx.org/?p=701 After more than a year of rigorous internal testing we’re happy to announce start of public sales of UmTRX 2.3.1 – the only widely available Software Defined Radio (SDR) designed specifically for telecom applications.

UmTRX231

Our goal from the beginning – when we made the first UmTRX design in 2011 – was to create an SDR which meets all rigid technical and legal requirements for telecommunication equipment. And make sure it has a reasonable cost, so e.g. you don’t have to spend extra $600-$900 for a GPS Disciplined Oscillator (GPSDO) after you already spend $700-$800 on an SDR – hence all UmTRX come with a built-in GPS. Our original focus was on 2G/GSM, but with up to 30.72 MSPS UmTRX 2.3.1 handles 3G/UMTS and 4G/LTE just as well.

It took us 5 hardware revisions to get to UmTRX 2.2 which was the first UmTRX we were happy with. We’ve built UmDESK desktop BTS based on UmTRX 2.2 and it found many users since it was introduced in 2013.

With the experience we obtained building the UmDESK, we set the bar higher – to create a lightweight and inexpensive outdoor base station.

This led us to start on a new UmTRX design with a goal to make it more compact and suitable for embedded environment; the UmTRX 2.3.1 was born!

It’s now used in all our outdoor UmSITE base stations which are deployed on all continents except Antarctica and are suitable for both Siberia-cold and Sahara-hot temperatures (see UmSITE temperature tests).

 BackPlate

Why UmTRX 2.3.1?

UmTRX 2.3.1 is a compact dual-channel SDR built for embedded systems suitable for industrial, outdoor, harsh and remote environments. It is designed as a base station transceiver and thus has specific features required for this like power amplifier and external RF front-end control ports.

If you’re looking for a cheap high-bandwidth SDR, LimeSDR is probably the best choice right now, if you’re looking for a high tuning range, USRP B2x0 is what you need, but if you’re building a telecom grade or embedded or outdoor system, UmTRX 2.3.1 is the only option right now.

We’ve put together a comparison table of the most popular SDR boards capable of full duplex operation, required to run a base station. Receive only or half-duplex SDRs like HackRF or rtl-sdr are not included into this table for this reason.

 
USRP B2x0
bladeRF
LimeSDR
UmTRX 2.2
UmTRX 2.3.1
Tuning range70 MHz - 6 GHz300 MHz - 3.8 GHz30 MHz - 3.8 GHz300 MHz - 3.8 GHz300 MHz - 3.8 GHz
Sampling rate12-bit 61.44 MSPS12-bit 40 MSPS12-bit 61.44 MSPS12-bit up to 40 MSPS (13 MSPS default)12-bit up to 40 MSPS (13 MSPS default)
RF bandwidthup to 56 MHzup to 28 MHzup to 61.44 MHzup to 28 MHzup to 28 MHz
Embeddednonononoyes
Industrial temperature rangenononoyesyes
Channels1 (2 on the same frequency for B210)12 (same frequency only)2 (independent frequency)2 (independent frequency)
Power amplifier control and monitoringnonononoyes
Temperature sensorsnononoyesyes
Price$686 - $1,119 + $636 (for GPSDO)$415$299$950$1300
Price per channel$560 - $715 + $636 (for GPSDO)$415$150$475$650
Frequency stability2 ppm1 ppm2.5 ppm0.1 ppm [3] without GPS lock, <0.01 ppm with GPS lock0.1 ppm [3] without GPS lock, <0.01 ppm with GPS lock
GPS synchronizationAddon (+$636)nonoon boardon board
InterfaceUSB3USB3USB3Gigabit EthernetGigabit Ethernet
Max output power10 dBm6 dBm10 dBm20 dBm @ 900 MHz, 17 dBm @ 1800 MHz20dBm
Osmocom and OpenBTS supportyesyesnoyesyes
OpenBTS-UMTSyesnonoyesyes

UmTRX 2.3.1 vs UmTRX 2.2

UmTRX 2.3.1 use the same key technologies and thus should be very familiar for existing UmTRX users. It is also dual-channel SDR transceiver based on two LMS6002D chips, equipped with an onboard GPS and using Gigabit Ethernet as a communication interface. The same UHD host driver and even the same FPGA firmware is used for both boards. At the same time UmTRX 2.3.1 features a number of improvements and new features important for embedded environments and for building complete base stations.

Main differences between UmTRX 2.3.1 and UmTRX 2.2 include:

  • Flat 100mW output power up to 4GHz.

  • Only pinhead connectors for optimal space usage.

  • Durable yet compact MCX connectors instead of U.FL in UmTRX 2.2.

  • Smaller size: 128x95mm vs 159.5×99.5mm for UmTRX 2.2.

  • Connectors for power amplifiers with software regulated power supply voltage and output power and VSWR monitoring.
  • Better power efficiency thanks to updated DC/DC converter circuitry.

  • Most tantalum capacitors replaced with MLCC for higher MTBF.

  • Improved heat dissipation thanks to 90% copper filled bottom side and better mounting holes placement (pictured above with a mounting aluminium plate).

  • Better RF performance thanks to RF channels shielding, dedicated ultra-low noise LDO for LMS6002 chips and clocking circuits, DC/DC converter synchronization to RF sampling clock.

  • Input and DC/DC output voltage monitoring ADCs.

  • True remote board control through the Ext Panel connector, including full board power down.

  • RS232 debug port instead of USB in UmTRX 2.2 for higher reliability.

  • Up to 40 MSPS RF sampling rate with an external clock (limited to 30.72 MSPS over the wire aggregate sampling rate due to 1GbE bandwidth) compared to up to 20 MSPS in UmTRX 2.2.

  • Few other minor changes to improve robustness.

More information

You can find more information about UmTRX 2.3.1 in its datasheet.

Where to buy

Please go to our web-shop for small orders or contact us for volume pricing.

]]>
https://umtrx.org/embedded-version-of-umtrx-is-finally-available-for-everyone/feed/ 0