XTRX – A Fairwaves tiny SDR

High performance Software Defined Radio in a tiny miniPCIe format. Embedded applications, massive MIMO, IoT, 4G/5G and space ships.



07 – XTRX pinout

First of all – the project is not dead. ūüôā We decided to spend a bit more time optimizing RF performance to make sure we don’t disappoint you.

Meantime, some people are already¬†adding support for XTRX into their future products, so we’ve prepared an XTRX pinout to facilitate this development.

Add XTRX support into your next product as well!

UPD May 4, 2017: Uploaded rev7 of the pinout datasheet with minor corrections.

XTRX rev3 pinout (click to download pdf)
XTRX rev3 pinout (click to download pdf)

06 – MIMO and independent receive/transmit

We often get asked how many receive and transmit chains does XTRX have and whether you can tune them to different frequencies, so I decided to clarify this once and for all.

XTRX is a 2×2 MIMO transceiver, which means that Continue reading “06 – MIMO and independent receive/transmit”

05 – Update & 33—Ā3 Talk: Lessons learnt in building a low latency, high throughput PCIe based SDR


We recently gave a talk and a workshop at 33rd Chaos Communication Congress aka 33C3 on funny and not so funny issues one faces while building a high performance SDR. If you missed 33C33, video recordng of the presentation is available here (and slides are attached here).

When we prepared the talk, we listed all challenges Sergey had while debugging PCIe, but the list went so long that we had to move it to a separate workshop. So this talk was focused on more generic issues without going deep into PCIe internals, which I hope will be interesting for a wider audience working on SDR devices and aiming to achieve maximum performance.


We know the blog has been silent for a while, but the talk shows some of the challenges we have been facing in getting¬†the most out of XTRX. And the significant effort that is being put¬†into making a solid product which “just works” – as far as it’s possible with SDR of course ūüôā .

At this moment we’re very close to place an order for the next prototyping run which (if no new¬†critical bugs shows up) will be available for selected early adopters.

Stay tuned!





04 – First prototypes

XTRX in hands

Just got the first batch of test boards. Feels really good to hold them. Onto the testing.

03 – First Batch of PCBs!


First prototype PCBs are ready for assembly at our fab! Can’t wait to get our hands on the prototypes.

Meantime Andrey Sviyazov has¬†found the first hardware bug, so we know where¬†will have¬†a wire on the prototypes! (every device prototype should have a wire or it’s no fun) We have an RF switch to switch bands and we connected it to 1.8V control lines. But according to its documentation:

VHIGH = 2.5 V to VDD
VLOW = 0 to 0.8 V
Any state other than described in this Table places the switch into an undefined state.


PS¬†SMT (Surface-mount technology) is a technology used to populate bare PCBs with SMD (surface-mount device) components – basically, a robot¬†putting components on a board and soldering in an oven. XTRX don’t have any through-hole components, – all components are SMD – which means it will be assembled by a robot without any manual soldering. An important optimization for mass production.

PPS – You don’t need a robot if you are resourceful – see



02 – SPI is now working

So while we’re waiting for the first test run of the boards to be manufactured, I have been working on advancing the software side of things.

Check out the below video where Alexander walks through the¬†development rig and demonstrates a “Hello World” app¬†– using SPI to control the LMS7002M¬†chip and generate a sine wave. While sounds easy, it actually requires the whole stack to work in coordination as control commands travel through Linux userspace => Linux kernel module =>¬†PCIe => FPGA => SPI¬†=> LMS7002M.

Next steps are now to get I/Q data transfer up using DMA transfer over PCIe. Stay tuned.

UPD: See pages 14-16 of the LMS7002M data sheet for the details of the LMS7 SPI interface.


Blog at

Up ↑