FPGAs are incredibly versatile, and one thing that a lot of people like to use them for is to make low-cost SDR boards. Indeed, there are many projects that do exactly that. Here’s a quick look at some of them that you can use as a base for your own work and projects.
The FPGA-TX is a piece of software that provides SDR transmit capabilities for FPGAs. It works in a similar fashion to the more well-known RPiTX, and it uses the GPIO pins to generate transmissions. This is a crude, simple way of generating transmissions – and it will need analog filtering to clean up the signal, but you can use that method to create almost any form of RF transmission using a comparatively inexpensive set of hardware. Combine it with something like the RTL-SDR dongle and you have an affordable SDR set-up.
The FPGA-TX project can be used with a number of affordable FPGAs, including the Digilent CMOD A7 and the Nexys 4, which are both priced at around $75. For that price, it’s hard to argue.
FPGA-TX supports AM, FM, USB, LSB, Wideband FM and FP Stereo. The project uses Linux, and you will need filters and amplifiers. Note, however, that you will need to make sure that you are fully compliant with the laws for radio in your area – the FCC guidelines for the operation of low-powered stations are incredibly strict and if you’re found to be in violation of them then you could be faced with some tremendously steep penalties.
The FreeSRP is, as the name suggests, a free and open source SDR which was made by a teenager as a passion project. He was inspired to make it because there were no affordable SRPs to fit in between the narrow bandwidth HackRF and the higher end, but correspondingly significantly more expensive, USRPs. The Hack RF costs $300, and the more expensive SDRs tend to be priced at the range of over $700. Why spend that much money when you can use something like Analog Devices’ AD9364 to make your own?
Since the FreeSRP was released, other makes have come up with more user-friendly offerings such as the LimeSDR – but the FreeSRP still serves a valuable space in the maker market, as it is affordable, and it is also a godo educational experience.
The FreeSRP is based around the Xilinx Artix 7 FPGA from www.directics.com, and it has an Cypress EZ-USB FX3 as its USB interface, as well as the AD9364 transceiver. The entire package was designed using Altium Designer – which is one of the few non open-source elements to this whole kit. Altium Designer is proprietary, but the ease of use of the system compared to open source alternatives made it something that was worth selecting anyway.
The board is quite compact, in spite of having around 300 components. End-users can purchase the board if they would like to try it, and don’t want to have to go through the painstaking process of making it by hand.
Understanding SDR Receiver Technology
SDR technology is used to allow software, or programmable hardware, to manage radio communications. The definition of an SDR, according to IEEE, is a radio which has some of its physical layer functions defined in software. Any digital waveforms will be converted back into analog form using something called a DAC.
There are many potential implementations of this – Application Specific Integrated Circuits can manage SDR functions, as can general purpose microprocessors. The appeal of the Field Programmable Gate Array is that it is such a versatile board, and therefore it can be used for numerous functions. FPGAs are usually programmed using a language such as VHDL which appears on the surface to be similar to traditional software programming languages but is focused more on execution in parallel.
SDR has been around since the early 90s, and it now supports both digital and analog methods of radio, and can be used for a range of different communication standards. Radio is not just “the radio that we listen to” – there are radio communications used to power cell phones, and radio is important for vehicles, computers, etc. Traditional hardware radios have some issues in terms of ‘tuning’ them, and can be frustrating to use – in addition, they may become obsolete as new standards come out. Analog radios operate within fixed frequencies, bandwidths, and modulation types.
A good SDR is reconfigurable – allowing multiple standards for communication to be run on a single piece of generic hardware. This means that you can add new features or capabilities to an existing system, within reason, though software changes. The SDR can be programmed with new waveforms and protocols, and you can use it for multi-mode, multi-band features.
An SDR receiver would consist of an antenna, an RF front end with a local oscillator, and an analog to digital convertor in the intermediate frequency stage. the IF samples the signal, and then passes it on to the baseband section which is powered by the FPGA hardware and does the work of the output.
Most FPGAs operate in the 50-200mhz range, although there are some that operate at higher speeds than that. They are typically slower than GPPs, however. Their versatility makes them appealing, as does their small size and the comparatively low power consumption.
GNU Radio is a great example of building a low cost SDR from an FPGA – it is based entirely on low-cost components, and it helps users to understand and make use of the radio spectrum. It is licensed under the GNU GPL version 3, and it allows users to develop high-throughput radios with ease using Python or C . It can be used for sensors, amateur radio transceivers and more.
Another option is the High Performance Software Defined Radio – this is another open source project which uses the USB 2.0 interface for communication, and high-speed ADCs and DACs. The modular approach means it can be modified to suit many projects.