$14,180 raised

of $75,000 goal


days left





Pledge Now


Support Us!

Support the FreeSRP project! You will receive all the latest updates on the campaign and will be mentioned as a supporter on the FreeSRP website.



A fully assembled FreeSRP software-defined radio and the USB 3.0 cable needed to connect it to your computer.


Laser-cut Acrylic Case

A clear case that can easily be assembled from four layers of laser-cut acrylic and four screws, providing physical protection for your FreeSRP.


Antenna Kit

Choose some antennas to go with your FreeSRP. The standard antenna kit contains two TG.10.0113 multiband dipole antennas (698 MHz - 960 MHz, 1710 MHz - 2690 MHz), but you can choose to replace one or both of the standard antennas with FXUB66 ultra-wideband antennas that work from 700 to 6000 MHz.


FreeSRP 10-pack

10 fully assembled FreeSRPs! Also includes 10 USB 3.0 cables.


Funding ends on May 19, 2017 at 04:59 PM PDT (11:59 PM UTC)

An open source software defined radio covering 70 MHz to 6 GHz with an on-board FPGA and USB 3.0 port.

As Featured In


"[Lukas'] goal was to design something that fit somewhere in between the $300 HackRF and the higher end and more pricey USRP radios."



"Lukas started his epic SDR-from-scratch build when he was 16. Projects like this aren’t completed overnight. (He’s now 18. We’re impressed.)"

The FreeSRP is an open-source (hardware and software) platform for software-defined radio that is affordable, high performance, compatible with existing SDR software such as GNU Radio, and includes an expansion port for hardware add-ons.

The FreeSRP comes in a small, portable form factor (7 cm x 11 cm) that can be completely powered from USB. FreeSRP streams acquired signals to a computer in real-time over USB 3.0.

What is software-defined radio?

A software-defined radio (SDR) digitizes received signals as early on in the signal chain as possible. This delegates as much signal processing as possible to dynamically reconfigurable software, so the hardware does not limit what types of wireless transmission protocols can be received or transmitted. This makes it possible to both receive and transmit a wide variety of signals. The FreeSRP’s frequency range of 70 MHz to 6 GHz covers most interesting radio signals, and the high bandwidth and sample rate of up to 61.44 million samples per second allows experimentation even with high data-rate protocols such as WiFi or LTE.

Because virtually all of the processing is done on the computer the FreeSRP is connected to, the FreeSRP’s hardware does not limit what kind of signals you can receive and transmit. Implementing various communication protocols can be done purely in software, so you can do anything from analyzing Bluetooth traffic (at all levels from the raw received signal to fully decoded packets) to developing your own, completely custom wireless protocol for your next project.

Therefore, software-defined radio is an essential tool for:

  • Debugging communication problems between wireless devices: an SDR will allow you to see exactly what is being transmitted
  • Developing new communications protocols: an SDR makes it possible to prototype the protocol entirely in software, but test it under real conditions and communicate with real hardware
  • Security research and reverse-engineering: access the raw data being sent over RF, and experiment with different decoding techniques

The FreeSRP balances a useful and powerful set of specifications with an affordable price and a compact form factor ideal for field use.

Features & Specifications

I started working on the FreeSRP in 2015 because I needed a flexible tool for debugging my radio-enabled electronics prototypes, and because I wanted to learn more about RF and the devices surrounding me. This means the FreeSRP has been built from the beginning as a development and educational tool, providing features most useful for electronics hobbyists and enthusiasts as well as professional developers working on new wireless devices or security research.

High Resolution, High Bandwidth

  • Transceiver: Analog Devices AD9364
  • Center Frequency: 70 MHz - 6 GHz
  • Maximum Analog Filter Bandwidth: 56 MHz
  • Sample Rate: 61.44 MSPS
  • Resolution: 12 bit

The extremely wide frequency range goes up to 6 GHz. This means you can experiment with devices using the 5.8 GHz ISM band. As the 2.4 GHz band becomes congested, more devices are starting to use the 5.8 GHz band; the FreeSRP will allow you to communicate with these cutting edge devices.

The high sample rate and bandwidth is essential to capture frequency hopping transmitters and modern, high data-rate protocols.

Receive and Transmit at the Same Time

  • Channels: One receiver, one transmitter; full-duplex
  • Maximum Transmit Power: 50 mW at 2.4 GHz

An external amplifier is included in the transmitter signal path of the FreeSRP, which significantly improves its range.

Extensive Processing power and Connectivity options

  • FPGA: Xilinx Artix 7 (XC7A50T-1FTG256)
  • Connectivity: Two SMA RF connectors; USB 3.0 micro B; high-speed digital expansion port; 5 V tolerant GPIO

The FreeSRP has a 0.1 inch header with eight 5 V tolerant, general purpose input/output pins. The voltage at which these pins operate can be configured from 1.8 to 5 V, so you can hook up FreeSRP to other embedded devices. This can be especially useful when correlating digital signals on the device under test with the RF signals it emits.

The high speed expansion connector will allow for more complex hardware add-ons. For example, an Ethernet interface or an LCD screen could be added in the future.

Mature software ecosystem

  • Software compatibility: GNU Radio; open-source libraries and example code available

The FreeSRP is fully compatible with GNU Radio, and prebuilt software packages are available for Ubuntu.

Convenient form factor

  • Dimensions: 70 mm x 108 mm
  • Powered directly from USB

The small form factor makes the FreeSRP convenient to carry around and use in the field. You don’t need to lug anything else either, since all FreeSRP needs for power is a USB port.

Using FreeSRP

FreeSRP is easy to set up on any Linux system. The FreeSRP library is being packaged for various Linux distributions – on Ubuntu, it’s already available as a PPA from Launchpad. Currently, it is not supported on Windows, but the FreeSRP library’s code is being kept as platform independent as possible and will be ported to Windows in the future.

GNU Radio Compatibility

In GNU Radio, the FreeSRP is supported through the gr-osmosdr block. This means it works with popular applications such as the user-friendly gqrx SDR receiver and is straightforward to implement into your GNU Radio signal processing flow graphs.

Libraries and Utilities

It is very easy to integrate the FreeSRP C++ library into your own software. You also have access to command-line utilities:

  • freesrp-ctl, which can be used to upload firmware and FPGA bitstreams to the FreeSRP
  • freesrp-io, which can be used to stream data out of and into the FreeSRP

Example: freesrp-io and baudline

As freesrp-io can output to stdout, it’s very easy to set it up to stream samples into other applications. For example, it works flawlessly with Baudline:

`freesrp-io -f929.7e6 -b1e6 -g30 -o- | baudline -stdin -channels 2 -quadrature -format le16 -samplerate 1000000`

This command will pipe samples at 1 MHz bandwidth and a gain of 30 dB with a center frequency of 929.7 MHz into Baudline.

Open Source

For the FreeSRP to be a true software radio platform, every component must be open, well documented, and easy to modify. This is why we’ve made the complete hardware, firmware, FPGA design and PC software all open source. By making clean, straightforward code a priority, integrating the FreeSRP into custom software and hardware is easy and painless.


The FreeSRP library, libfreesrp, is already available on GitHub. In GNU Radio, the FreeSRP is supported through a custom fork of the widely used gr-osmosdr library. Currently, this fork is freely available on GitHub, and the changes to gr-osmosdr that add FreeSRP support will be merged into the original gr-osmosdr project soon.

In GNU Radio, using the FreeSRP as a signal source or sink is as easy as placing the gr-osmosdr block in your flowchart. In your custom C++ applications, initializing the FreeSRP, setting transceiver parameters, and starting to receive or transmit data all are straightforward commands which can be done in about five lines of code.

Hardware, Firmware, and FPGA Design

The complete hardware designs will be available as PDF schematics and Gerber files or in a completely editable form through Altium CircuitMaker before this campaign ends. Since CircuitMaker is proprietary software that requires the Windows operating system, the designs will be remade in the open-source KiCad in the near future.

Firmware for the FX3 ARM processor and the FPGA design for the Artix 7 FPGA are already fully functional, but they have not been published yet as they are undergoing significant cleanup to improve efficiency and readability of the code. They will be published before the end of the campaign.


Frequency Range Bandwidth Resolution Duplex Hardware Expansion Open Source Price range
FreeSRP 70 MHz - 6 GHz 61.44 MHz 12 bit Full Yes Full hardware, FPGA design, firmware and software $420
HackRF 10 MHz - 6 GHz 20 MHz 8 bit Half Yes Full hardware, firmware, and software $299
USRP B200 70 MHz - 6 GHz 61.44 MHz 12 bit Full No Schematics, firmware, and software $796
BladeRF 300 MHz - 3.8 GHz 40 MHz 12 bit Full Yes Schematics, FPGA design, firmware, and software $420
LimeSDR 100 kHz - 3.8 GHz 61.44 MHz 12 bit Full (MIMO) No Full hardware, firmware, and software $299

RF Performance

The FreeSRP is currently being analyzed for RF performance. Final results will be published as soon as they are available. Meanwhile, this section will compile the most relevant specifications for the transceiver, amplifier, baluns, and switches.

Receiver: AD9364

Check out the Analog Devices AD9364 datasheet for more detailed information.

Frequency Band Parameter Min Typ Max Unit Comments
800 MHz Noise Figure 2 dB At maximum Rx gain
IIP2 40 dBm At maximum Rx gain
IIP3 -18 dBm At maximum Rx gain
LO Leakage -122 dBm At Rx front-end input
Modulation EVM -42 dB
Gain 0 74.5 dB Adjustable
2.4 GHz Noise Figure 3 dB At maximum Rx gain
IIP2 45 dBm At maximum Rx gain
IIP3 -14 dBm At maximum Rx gain
LO Leakage -110 dBm At Rx front-end input
Modulation EVM -42 dB
Gain 0 72.0 dB Adjustable
5.5 GHz Noise Figure 4 dB At maximum Rx gain
IIP2 42 dBm At maximum Rx gain
IIP3 -17 dBm At maximum Rx gain
LO Leakage -95 dBm At Rx front-end input
Modulation EVM -37 dB
Gain 0 65.5 dB Adjustable

Receiver: Baluns and Switch

The FreeSRP uses three different baluns to adapt the single-ended input from the antenna to the differential inputs on the AD9364 transceiver. The AD9364 provides three selectable inputs, so the FreeSRP switches the balun it uses depending on the frequency range it is operating in. The baluns used are the Anaren BD3150N50100AHF, the Anaren BD1631J50100AHF, and the Coilcraft JA4220-AL. A Skyworks SKY13317-373LF is used to switch the input to one of the three baluns.

Transmitter: AD9364

Check out the Analog Devices AD9364 datasheet for more detailed information.

Frequency Band Parameter Min Typ Max Unit Comments
800 MHz Noise Floor -157 dB 90 MHz offset from carrier. Before external amplifier.
OIP3 23 dBm
Carrier Leakage -50 dBc At 0 dB attenuation
Modulation EVM -40 dB
2.4 GHz Noise Floor -156 dB 90 MHz offset from carrier. Before external amplifier.
OIP3 19 dBm
Carrier Leakage -50 dBc At 0 dB attenuation
Modulation EVM -40 dB
5.5 GHz Noise Floor -152 dB 90 MHz offset from carrier. Before external amplifier.
OIP3 17 dBm
Carrier Leakage -50 dBc At 0 dB attenuation
Modulation EVM -36 dB

Transmitter: Baluns and Switch

The FreeSRP’s transmitter output is configured similarly to the receiver input: it uses one of two different baluns depending on the frequency range. For the transmitter, the Anaren BD3150N50100AHF and the Coilcraft JA4220-AL baluns are used. They are switched using a Skyworks SKY13335-381LF RF switch.

Transmitter: Amplifier

A Mini Circuits PGA-102+ amplifier is also included. This provides an additional 10 to 14 dB of gain on the transmitter output.

Reference Oscillator

A 40 MHz Epson FA-20H40.0000MF10Z-K3 crystal oscillator provides the main clock for the FreeSRP’s transceiver. The AD9364 can trim its frequency if better absolute frequency accuracy is required.

Manufacturing Plan

The FreeSRP has been through four revisions. I am currently evaluating the performance of the latest revision, which will be very close to, or identical with the production version.

I have decided on a PCB manufacturer and an assembly company and a small test batch is being manufactured now. This will help validate manufacturability of the design and serve as a test of the assembler’s capabilities. Based on these results, tweaks will be made to the final production version, if necessary.

Risks & Challenges

Having worked on the project for about two years, and having gone though four hardware revisions, I am confident in the technical quality of the design. The FreeSRP integrates with GNU Radio and works flawlessly with most packages and examples I tested (such as gr-ieee802-15-4 or gr-gsm), even though they were not designed with the FreeSRP in mind.

Major risks and challenges therefore lie in manufacturing: optimizing component sources to minimize lead time and cost, working with the manufacturer to achieve a reliable process, and testing every unit’s performance. The small batch that is being manufactured now will help ensure all possible manufacturing issues are detected well before getting the first production batches built, minimizing the risk of manufacturing issues.

Frequently Asked Questions

Q: Can the FreeSRP be used with Windows out of the box?

Q: Currently, the FreeSRP is being tested on Ubuntu, using GNU Radio, and the software can be run on Linux. While the libraries required to interface with the FreeSRP are being written to be as platform-agnostic as possible, Windows support is currently not a priority.

Q: Is the FreeSRP appropriate for users with little experience in SDR, programming, or Linux and GNU Radio?

A: Users should be comfortable installing and using Linux. If you use Ubuntu or an Ubuntu-based Linux distribution, everything required to use the FreeSRP can easily be installed from prebuilt packages. If you use a different Linux distribution, you will have to compile some libraries yourself. Please read the Getting Started page first and make sure you are comfortable with the installation procedure.

GNU Radio Companion is an application that provides a graphical user interface for creating signal processing flowcharts. It comes with many tutorials and examples that work with FreeSRP with minimal modifications. Additionally, there are many GNU Radio-based applications that work with the FreeSRP out of the box. Therefore, the FreeSRP is a good platform for getting started with SDR; while programming is a useful skill that will allow you to do many interesting experiments with your FreeSRP, it is not required.

Q: Does the FreeSRP work with USB 2.0?

With the current version of the software, sending and receiving signals requires a USB 3.0 connection. However, this is not a hardware limitation, and upcoming versions of the software are likely to add support for sending and receiving at a lower bandwidth over USB 2.0. In the meantime, please ensure your computer supports USB 3.0 if you want to use the FreeSRP as soon as it becomes available.

Ask a Question

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

Ask Lukas Lao Beyer a Question or Browse the Crowd Supply Guide


Lukas Lao Beyer

Software development and electronics have been my hobbies for years. Now, I’m studying Electrical Engineering and Computer Science at MIT. My projects are software and electronics related, and I like to keep them completely open-source so anyone can freely modify and redistribute them or use them as inspiration

Lukas Lao Beyer

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