The idea behind the article is to introduce people to SDR from a shortwave listening point of view, so high performance HF SDRs like the Airspy HF+, Elad FDM-S2 and WinRadio Excalibur are discussed. Thomas notes that these SDRs can perform as well as traditional DX-grade receivers that can cost two to three times more. He also explains what advantages SDR's bring to the shortwave radio listening hobby. This may be a good article to show those still using older hardware radios that haven't yet converted to the SDR world.
The article is currently part one of a three part series, with parts two and three to be released in October and November.
As expected, the AIR-T is not a cheap with it coming in at US$5,699, and this is with a 10% discount off the MSRP. However, the AIR-T is likely to be more of interest to high end industry and university researchers who have research money to spend. Also, compared to Ettus E310/N310 and LimeNET Mini SDRs which have built in non-GPU based computing platforms and similar SDR performance, the AIR-T could be seen as reasonably priced assuming that the software and drivers for it are decent. In the future we expect to see the price of similar SDR-AI development boards eventually reduce down to hobbyist level prices.
The basic idea behind the AIR-T is to combine a 2x2 MIMO SDR transceiver with a NVIDIA Jetson TX2 GPU that can be used to run artificial intelligence (AI) software fast. They will include software that will allow GNU Radio and Python code to be easily ported to the GPU architecture.
Why build tomorrow’s tech with yesterday’s signal processing tools? The Artificial Intelligence Radio - Transceiver (AIR-T) is a fully integrated, single-board, artificial intelligence equipped, software defined radio platform with continuous frequency coverage from 300 MHz to 6 GHz. Designed for new engineers with little wireless experience to advanced engineers and researchers who develop low-cost AI, deep learning, and high-performance wireless systems, AIR-T combines the AD9371 RFIC transceiver providing up to 2 x 2 MIMO of 100 MHz of receiving bandwidth, 100 MHz of transmitting bandwidth in an open and reprogrammable Xilinx 7 FPGA, with fast USB 3.0 connectivity.
The AIR-T has custom and open Ubuntu software and custom FPGA blocks interfacing with GNU Radio, allowing you to immediately begin developing without having to make changes to existing code. With 256 NVIDIA cores, you can develop and deploy your AI application on hardware without having to code CUDA or VHDL. Freed from the limited compute power of a single CPU, with AIR-T, you can get right to work pushing your telecom, defense, or wireless systems to the limit of what’s possible.
The SDR transceiver chip used is a Analog Devices 9371. This is a high end chip that can be found on high end SDR hardware like USRPs. If you're interested we had a post about decapping the AD9361 recently, which is a similar chip. It provides 2x2 MIMO channels, with up to 100 MHz RX bandwidth and 250 MHz TX bandwidth. The NVDIA Jetson TX2 is a GPU 'supercomputer' module specifically designed for AI processing. Many AI/machine learning algorithms, such as neural networks and deep learning run significantly faster on GPU type processors when compared to more general CPU's.
These are not cheap chips with the AD9371 coming in at over US$250 each, and the Jetson TX2 coming in at US $467. Although we don't know what sort of bulk discounts the AIR-T manufactures could get. But it will be certain that the AIR-T will not be for the budget minded.
The board is still awaiting release of it's crowdfunding round, and you can sign up to be notified of when the project launches on their Crowd Supply page.
The melding of AI and the RF spectrum will be common in the future, and a development board like this is one of the first steps. Some of the interesting use cases that they present are pasted below:
From Wi-Fi to OpenBTS, use deep learning to maximize these applications. By pairing a GPU directly with an RF front-end it eliminates the need of having to purchase an additional computer or server for processing. Just power the AIR-T on and plug in a keyboard, mouse, and monitor and get started. Use GNURadio blocks to quickly develop and deploy your current or new wireless system. For those who need more control, talk directly with the drivers using Python or C+. And for those superusers out there, the AIR-T is an open-platform, so you can program the FPGA and GPU directly.
Communicating past Pluto is hard. With the power of a single-board SDR with an embedded GPU, the AIR-T can certainly prove out concepts before you launch them into space. Reduce development time and costs by adding deep learning to your satellite communication system.
There is an endless number of terrestrial communication systems with more being developed every day. As the spectral density becomes more congested, AI will be needed to maximize these resources. The AIR-T is well-positioned to easily and quickly help you prototype and deploy your wireless system.
The AIR-T allows you to demodulate a signal and apply deep learning to the image, video, or audio data in one integrated platform. For example, directly receiving a signal that contains audio and peforming speech recognition previously required multiple devices. The AIR-T integrates this into one easy to use package. Whatever your application is, from speech recognition to digital signal processing, the integrated NVIDIA GPU will jump start your applications.
For many communications and radar applications once the signal is collected it must be sent to an off-board computer for additional processing and storage. This consumes valuable time. The AIR-T eliminates this. From its inception, it was designed to process signals in real-time and eliminate unnecessary latency.
Several new software defined radio talks have been released on YouTube this week from the big European 2018 Friedrichshafen Ham Radio Convention which just finished this month. The full list of 14 new videos can be found on the Software Defined Radio Academy YouTube channel. Below are two of our favorites:
The OVI40 / UHSDR Project, Developing An Open Standalone SDR
OVI40 is an Open Source standalone homewbrew SDR TRX project (VLF to 2m), developed with the aim of being modular and future-proof. The talk describes the hardware and the UHSDR software including a discussion on the evolution from the "single-system" software used for the well-known mcHF (initially written by Chris, M0NKA and Clint KA7OEI) to the multi-SDR approach in the UHSDR software project.
DF8OE, DB4PLE, DL2FW, DD4WH: The OVI40 / UHSDR Project - Part 1 and 2
András Retzler, HA7ILM: Let's code a simple receiver in C
For using SDR in amateur radio applications, it is easier to use existing receiver software, or create GNU Radio flowgraphs with pre-build blocks. On the contrary, in the do-it-yourself spirit of amateur radio, this talk will guide you through the steps of implementing a simple AM/FM/SSB receiver from scratch, in plan old C, in order to get a deeper understanding of what happens actually under the hood in popular SDR software. The talk builds on the author's learning experience of creating the open source CSDR command line tool, which is used for DSP in the OpneWebRX web based SDR receiver.
András Retzler, HA7ILM: Let's code a simple receiver in C
Analog Devices has recently released a new text book for free called "Software-Defined Radio for Engineers, 2018". This is an advanced university level text book that covers communication systems theory as well as software defined radio theory and practice. The book uses the PlutoSDR as reference hardware and for practical examples. The PlutoSDR is Analog Devices $150 RX/TX capable SDR that was released about a year ago.
The objective of this book is to provide a hands-on learning experience using Software Defined Radio for engineering students and industry practitioners who are interested in mastering the design, implementation, and experimentation of communication systems. This book provides a fresh perspective on understanding and creating new communication systems from scratch. Communication system engineers need to understand the impact of the hardware on the performance of the communication algorithms being used and how well the overall system operates in terms of successfully recovering the intercepted signal.
This book is written for both industry practitioners who are seeking to enhance their skill set by learning about the design and implementation of communication systems using SDR technology, as well as both undergraduate and graduate students who would like to learn about and master communication systems technology in order to become the next generation of industry practitioners and academic researchers. The book contains theoretical explanations about the various elements forming a communication system, practical hands-on examples and lessons that help synthesize these concepts, and a wealth of important facts and details to take into consideration when building a real-world communication system.
The companion site for the book which contains links to complimentary online lectures, slides, and example MATLAB code can be found at https://sdrforengineers.github.io. MATLAB is a very powerful programming language and toolset used by scientists and engineers. MATLAB is not a cheap tool, but there is a home user licence available for a more reasonable price. To do some of the exercises in the book you'll probably at least require the core MATLAB plus the Communications System Toolkit which is an extra add on.
SDR# plugin developer Eddie Mac has again released a new plugin for SDR# called "SDR# Plugin Manager". This plugin is designed to make it easy to install, remove and re-order other SDR# plugins. Also included is a repository browser. This is a repository of many known SDR# plugin links which can be used to download and install a plugin with a simple click of a button.
If you are interested in programming your own plugins, Eddie also offers the following advice which he posted in our forum:
A good place to get started programming plugins is to download the express version of .NET (free for personal use) and install at least the C# pack. Then go to the Airspy website and download Youssef's zipped examples on coding plugins. While they are not documented you can use them as an example of the steps involved.
If you know a bit of c++ that is great it should be a good spring board to learn C#. In fact, you can even program simple plugins (like my tuner knob) in Visual Basic. Both C# and VB.NET compile to Common Language Run time anyway so to SDR# it's not much difference. The only caveat is that if you want to create any plugins to do processing on signals of any sort you MUST use C# as it supports the data types SDR# uses and VB does not. As well, VB does not allow unsafe code which C# can be instructed to allow.
Another great resource for learning to program plugins for SDR# is GitHUb and another great place is Andrej Mohar's website where he actually has a tutorial and an good explanation of the plugin coding process. You can find it here http://www.andrej-mohar.com/plugin-basics-for-sdr
If you would like an example of a "stencil" as you call it - a template, I would be happy to share a template in both VB and C# for you to use to start to learn. However, I would suggest begginning with C# from the start.
The basics of it is that the "plugin" is actually in interface that is called while SDR# loads. The "Plugins.xml" file tells SDR# what your dll is called and what the name of the plugin is. Once it has initialized your plugin, SDR# sharp asks the plugin for a "panel" control which contains the controls for your plugin. In also returns to you a "control" object interface that allows you to receive notifications of program value changes or to set program values. There are more complex things you can do but the basics are simple.
Over on his blog Ajoo has posted a very comprehensive introduction to the technical concepts behind RTL-SDR, as well as any other SDR in existence. His post first goes through the basic communications theory and mathematical concepts required to understand the technical concepts behind software defined radio. He then goes on to specifically discuss the RTL-SDR and how it works internally, mentioning what the major components do and providing useful block diagrams.
In part II of his introduction he moves on to the software. Here he starts to explain a bit about librtlsdr and how the RTL-SDR drivers and codebase is put together. Further on he explains higher level software such as rtl_test, rtl_fm, rtl_sdr, the pyrtlsdr wrapper and how it could be used to demodulate FM.
If you're looking at diving deeper into SDR theory then Ajoo's posts are excellent starting points. Note that the theory explanations come at about an undergraduate University level of complexity, and thus these posts are mostly for people wanting a deeper understanding of SDR. To simply use an RTL-SDR to receive signals such a deep level of understanding is not required.
In a future post which is not yet available, Ajoo will introduce GNU Radio and show how to demodulate FM signals. It appears his goal is to work his way to an understanding of how GPS L1 signals work.
The plugin includes controls for setting the demodulation mode, changing the FFT display settings, a direct frequency entry text box, frequency stepper buttons, an SNR level meter, squelch controls, analog/digital preset buttons, screen grabber controls, and time slot selectors for the TETRA decoder plugin. The analog/digital preset buttons are quite interesting as they allow you to set presets for either analog or digital signals. For example for a digital signal you could set the preset to use NFM demodulation, and to launch the DSD+ application automatically.
More information about this and Eddie's other plugins can be found on his site, and on this forum post.