← View All Updates
Aug 10, 2017

XTRX Software Status Update

Most of the updates so far were related to hardware design progress, but hardware is nothing without software, so it’s time for a software update. Sergey has been putting massive amount of work into making sure XTRX software is high performance, flexible and stable. And making sure all most popular applications are supported.

General architecture notes

  • XTRX software is implemented in a modular way to support a variety of interfaces between an XTRX and a PC. Primary interface we’re focusing on right now is PCIe.
  • All RF parameters tuning and calibration is done on a host. Thanks to PCIe bus low latency this doesn’t affect performance while making it much easier/faster to develop.

Max/min transfer speed

Numbers bellow are not theoretical and are based on real tests. A test is assumed correct if it sustains the speed for at least 5 min without any underruns/overruns. Tests are run under RT priority.

Connection type PCIe x2 Gen1
Raw speed 4 Gbps
TX only max sustained rate 192 MB/s
RX only max sustained rate 417 MB/s
TX+RX (same rate) 160+160 MB/s
TX+RX (RX rate is 2x higher) 160+320 MB/s

Current streaming limitations

  • RX: Minimal samplerate is ~400 kSps, but we can reduce it to ~100 kSps using 4x decimation on the host.
  • TX: Minimal samplerate is 2.5 MSps by the FPGA MMCM spec, but for some chips we can get it down to 2.0-2.1 MSps. With the host interpolation we can get it further down to ~500-625 kSps.
  • Both RX and TX single DMA buffer is limited to 32768 bytes. This requires strict timing and sample rates more 25 MSPS have bad performance when an application is not run under the realtime priority (a lot of underruns / overruns).

Platform support

C/NT – Compiles, but hasn’t been tested
WIP – Work in progress, no actual test are done

Platform PCIe
Linux x86_64 Full
Linux i386 C/NT
Linux arm (32-bit) C/NT
Linux Aarch64 (ARM 64-bit) C/NT
Windows i386 WIP
Windows x86_64 WIP
Other Not planned

Applications support

Native XTRX API support

Application Description Support level
gr-osmosdr XTRX support for GNU Radio Full
SoapySDR Plugin to SoapySDR Basic functions
osmo-trx 2G GSM Transceiver Only 1 TRX for now
Amarisoft LTE 4G ENB - PCIe/USB Only FDD for now
kalibrate Freq calibration using 2G BTS Full
srsUE/srsLTE LTE eNB & UE Compiles, runs

Other applications which have been tested with non-native API

  • GnuRadio (SoapySDR) — Ok
  • gqrx (gr-osmosdr) — Ok
  • LTE_fdd_dl_scan from OpenLTE (gr-osmosdr) — not working! (std::bad_alloc)

Applications which haven’t been tested yet (wait list)

  • OpenBTS-UMTS (needs adoption)
  • LTE_fdd_enb from OpenLTE (needs adoption)

Wire streaming types

  • Primary/default streaming type is 16-bit MIMO/SISO to accommodate for 12-bit ADC/DAC resolution, possible decimation gain and fit into an integer number of bytes.
  • We expect that some application won’t need full 12 bits of the dynamic range and can use 8-bit streaming mode to save on processing power and bus bandwidth. This mode is supported for both SISO and MIMO modes, but is currently implemented only in the receive direction.
  • For receive applications which care about achieving maximum bandwidth without loosing dynamic range we’re working on 12-bit transfer mode for MIMO. Non-integer number of bytes per sample makes it significantly harder and more CPU intensive, so we plan to support it only for the MIMO receive mode where we hit bus bandwidth limits with 16-bit samples.
Mode Tx Rx
MIMO 16-bit Yes Yes
MIMO 12-bit No WIP
MIMO 8-bit Planned Yes
SISO 16-bit Yes Yes
SISO 12-bit No No
SISO 8-bit Planned Yes

This project is launching soon.

Coming Soon



Ask a Question

Have a question not answered in the description above or in the Updates?

Ask Fairwaves a Question or Browse the Crowd Supply Guide



Fairwaves make rural mobile coverage profitable. We have built a unique technology that significantly lowers the cost of deploying and operating mobile networks in rural regions. Fairwaves is gaining a footprint in the telecommunications space by helping Mobile Network Operators (MNO) to roll out mobile networks to reach up-to 1.6 billion new customers.

Alexander Chemeris


Sergey Kostanbaev

Software & Firmware Development

Andrey Sviyazov

Hardware Design

Albert Gardiner


Andrey Bakhmat


Andy Avtushenko


Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: