Category: Other

The Artificial Intelligence Radio – Transceiver

Over on Crowd funding site Crowd Supply, a new SDR product is currently awaiting release of its crowd funding stage. The proposed product is called the AIR-T, which stands for Artificial Intelligence Radio - Transceiver. The basic idea behind the board 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.

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:

Wireless

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.

Satellite Communications

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.

Ground Communications

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.

Video/Image/Audio Recognition

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.

Pattern Recognition

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.

Software Defined Radio Talks from the Friedrichshafen Ham Radio Convention

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
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
András Retzler, HA7ILM: Let's code a simple receiver in C

Software Defined Radio for Engineers: Free University Level Text Book with PlutoSDR Examples

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.

The full book can be purchased as a Hardcover from Amazon, or downloaded freely online as a PDF.

If you're interested in a similar book, there is also the free DesktopSDR book which uses RTL-SDR dongles for the practical examples.

SDR For Engineers Book
SDR For Engineers Book

CrowPi: Raspberry Pi Experimenters Kit Review (With RTL-SDR and RPiTX Tests)

CrowPi is a Raspberry Pi all-in-one experimenters kit that is currently crowd funding on Kickstarter. The idea behind CrowPi is to combine a touchscreen, various sensors, actuators and interfaces into a clutter free kit mounted on a PCB in an easy to carry hard shell case. It's mostly intended to be used in STEM learning environments, however it could also be used for rapid prototyping of Raspberry Pi based ideas, or simply as a portable computer. 

The CrowPi
The CrowPi

The kit has 4 days left on Kickstarter and has already met its minimum goal. Pledging $1,169 HKD (~USD $150) gets you the basic kit which does not include a Raspberry Pi. Higher pledge levels (up to US$250) get you models that include a Raspberry Pi as well as extras such as a 5V power supplies, earphones, heatsinks, keyboards, game controllers etc. Shipping of the units is expected to commence in July.

Elecrow, the Shenzhen based company behind CrowPi kindly sent us a free kit for an honest review. While not directly related to RTL-SDR or RF, we thought that there might be several applications that might make the CrowPi kit useful for prototyping some simple low cost RF based ideas. For example:

  • Prototyping IoT based modules that use the RTL-SDR as a receiver. For example receiving a 433 MHz ISM signal and writing received information to the LCD/LED array or activating the relay.
  • Similarly, using FL2K-SDR or RPiTX to transmit a signal when a sensor is activated, or to transmit telemetry from that sensor (e.g. distance data from the ultrasonic sensor, humidity levels from the DH11 sensor, or light levels from the light sensor)
  • Using an RTL-SDR to prototype an ADS-B plane camera tracker using the two servo module interfaces.

To get an idea of what's packed into the CrowPi, the kit includes the following modules:

  • Everything that came with our CrowPi Demo Kit (Except the Raspberry Pi)
    Everything that came with our CrowPi Demo Kit (Except the Raspberry Pi)
    1920 x 1080 Capable HDMI 7" Touch Screen
  • LCD Module
  • 8x8 Matrix LED
  • Breadboard
  • 4 character 7-seg LED
  • Vibration motor
  • Light Sensor
  • Buzzer
  • Sound Sensor
  • Motion Sensor
  • Ultrasonic Sensor
  • Servo Interface
  • Step Motor Interface
  • UART
  • Tilt Sensor
  • IR Sensor
  • Touch Sensor
  • DH11 Humidity Sensor
  • Relay
  • Matrix of buttons
  • RFID Module

With our kit we also received:

  • 2x GPIO Flex Cables
  • 1x Stepper Motor
  • 1x Servo
  • 1x Charger
  • 1x IR diode
  • 1x NFC Tag
  • 1x Mini HDMI for the Raspberry Pi Zero
  • 1x IR Remote control

Setup, Initial Testing and Thoughts

Setup: Setup was simple and consisted of downloading their customized Raspberry Pi image onto an SD card, connecting the Raspberry Pi to the HDMI, USB and GPIO pins, and then powering it up using the power jack on the CrowPi Board. A user manual is available for download.

Initial Testing: CrowPi provide a set of lessons that show how to use each of the modules on the board. All modules also have Python code examples that are ready to run as soon as you boot up. Immediately after booting up we were able to run their demo code which allowed us to test all the various sensors, print text to the LCD module, activate the 7-seg display, and actuate a servo and stepper motor. 

The tutorials are easy to understand and provide a good basic rundown of the sensors. You will need to have some basic Python skills to understand the Python code however.

Thoughts: The CrowPi is built sturdy, and is definitely easy to use. The touch screen is bright and clear. It is capable of running in 1080P mode, but is a bit too small and hard on the eyes to use at this resolution. We kept the screen in 720P mode. In order to use the Raspberry Pi, you'll need to plug in a USB keyboard and mouse which is not included in the basic kit. A wireless keyboard/mouse combo is ideal. There appear to be speaker holes next to the monitor, but it seems that our demo model is the basic model which does not include built in speakers. The kit is impressive looking and appears to be priced reasonably for what you get.

RTL-SDR and RF Testing

Unfortunately when it came to run the RTL-SDR we instantly ran into a problem. With the one 5V 3A power supply running the Pi, HDMI Screen and modules, it seems that there just isn't enough power budget left over to run the RTL-SDR which draws about 270 - 290 mA current. The RTL-SDR connects fine, but when trying to run GQRX, the Pi 3 shuts down. To get around this problem we have to connect a second power supply directly to the Raspberry Pi 3's input. After doing this the board and kit runs smoothly with the RTL-SDR. Using a powered USB hub would also work.

RPiTX is software for the Raspberry Pi that allows you to transmit RF signals directly via PIN12 or PIN7 from the GPIO ports. On CrowPi PIN12 is already connected to the buzzer, and PIN7 is connected to the humidity sensor. Using PIN12 causes the buzzer to sound, so we tried PIN7. Even though it's connected to the humidity sensor, it doesn't seem to mind the GPIO bit flipping going on. The traces within the board and cable radiate sufficiently to transmit signals strongly enough to use within a room, so no external antenna is needed. Use of PIN7 can be activated in RPiTX by using the "-c 1" flag.

Using our Replay Attacks with an RTL-SDR, Raspberry Pi and RPiTX tutorial, we copied  the signal from the remote control of a 433 MHz alarm/door bell, and used RPiTX to replay the signal. Then by modifying some of the supplied CrowPi Python code we were able to get the doorbell to sound on a touch of the touch sensor, activation of the sound sensor and via activation the RFID sensor. We could see the CrowPi being used as a general tool for learning how to prototype simple IoT or home automatic devices. The video below shows a brief demonstration. 

It would have been nice if these RPiTX GPIO pins could have been exposed, and not connected to a sensor, but the developers of the board had probably not heard of RPiTX as the goal is for a more general classroom application.

CrowPi Demo
CrowPi Demo

Conclusion

If you're looking to get kids or STEM students/hobbyists interested in what Raspberry Pi's can do, then this kit couldn't make it simpler. The single board and briefcase design makes the whole thing very tidy and portable and the kit looks and feels sturdy and professional. If you know a kid interested in electronics, then this kit would make a great present.

You could probably purchase all the components cheaper individually, but at the end of the day an all-in-one kit just makes sense as it is a lot tidier, and much easier to get up and running quickly.

For RF experiments, it's possible to use the RTL-SDR with the minor annoyance of having to connect two power supplies or use a powered USB hub. RPiTX also functions fine on the device and can be used to transmit an RF signal on activation of any one of the sensor modules. This could easily be used to prototype simple home automation or IoT ideas.

Osmocom now accepting Donations

Osmocom, the team behind the original RTL-SDR driver project, the Osmo-FL2K discovery, OP25, gr-osmosdr, gr-gsm and various other open source cellular phone projects is now accepting monetary donations. If you weren't already aware, it was the efforts of Antti Palosaari and Eric Fry who made the original tests on DVB-T dongles, and then Osmocom who wrote the first RTL-SDR driver and software that is still currently used in the RTL-SDR project today. If you're interested, there is a full write up on the history or RTL-SDR at the bottom of rtlsdr.org.

Recently Osmocom have begun accepting donations via Open Collective. They write

The Osmocom project (if you count its predecessor OpenBSC) have been running for close to 10 years, creating a large number of Open Source projects related to mobile communications. We have never needed nor wanted any legal entity for it. It's a pure/classic FOSS project, open to contributions from anyone.

Until today, you could only contribute in one of the following forms:

  • by writing code (bug fixes, new features, etc) and submitting it (which means you need to be a developer)
  • by writing documentation / improving the wiki
  • helping other users on the mailing lists, IRC, or in other forums
  • donating cellular equipment (which many don't have)
  • hiring a freelancer or a company to write code and contribute to Osmocom on your behalf 
  • buying products or services from companies who dedicate lots of work to Osmocom

However, we've repeatedly getting requests from some individuals who wanted to contribute to the project in an easy way, even if they are not a developer, and/or don't have time, and/or don't have the size of a budget to fund development of entire new features or sub-systems.

Today, Osmocom announces that we have joined Open Collective in order to enable you to make financial contributions, either one-off or recurring.

We'll be using the funds (if we get any!) according to our funding policy outlined at https://opencollective.com/osmocom/expenses/new# in order to pay for expenses such as hosting costs for our servers / IT infrastructure, travel funding for the annual developer conferences, etc. Any and all expenses paid from those funds will be visible on the OpenCollective website. You cannot ask for more transparency than that :)

Thanks in advance for your kind assistance!

So if you've ever enjoyed the RTL-SDR project, and how much it's improved your access to the RF spectrum, please consider donating via Open Collective or contributing back in other ways. Donations may help Osmocom to continue making new and interesting discoveries, such as Steve M's amazing FL2K-SDR discovery that was released back in April this year.

Controlling moRFeus over a Network Connection

Thank to LamaBleu for submitting news about his new software for the moRFeus signal generator and frequency mixer called moRFeus_listener. The software allows you to remotely control a moRFeus device via Telnet, TCP/UDP or HTTP. This could be used to control the moRFeus in a similar way to the short script that we used for generating a tracking tone in our previous tutorial on using measuring filters and antenna VSWR with the moRFeus.

LamaBleu also shared his results with using the harmonics of the moRFeus to generate a signal well past it's upper frequency limit of 5.4 GHz. He writes that by using the third harmonic is was able to generate a CW signal at 10.8 GHz and that tones up to harmonic 11 seem to work well. 

Using an RTL-SDR and moRFeus as a Tracking Generator to Measure Filters And Antenna VSWR

The Outernet moRFeus

As Outernet is currently having a sale and selling their their moRFeus product at only US $99 (see next post for details - or simply use coupon code "rtlsdrblog" on their checkout - valid until Saturday 09 May 18), we thought that we'd show an interesting use for the moRFeus when combined with an RTL-SDR.

Outernet's moRFeus is a signal generator and frequency mixer that can be controlled either by it's built in LCD screen, or via software on a Windows or Linux PC. It can generate a clean low phase noise tone anywhere between 85 to 5400 MHz. Because it can be computer controlled it is possible to use moRFeus as a tracking generator for characterizing filters and measuring antenna SWR. A tracking generator is just a signal generator that can be set to output at the same frequency that the measurement receiver is tuned to.

In the past we've posted a tutorial showing how to use a wideband noise source for measuring filters and antenna SWR. However, if available, a tracking generator is usually preferred over a noise source. A wideband noise source outputs high power at all frequencies, and so can easily overload an RTL-SDR causing reduced dynamic range and accuracy in measurements. This is especially the case when measuring bandstop filters as they pass all frequencies, apart from a small blocking band. Since so much noise gets through to the dongle, dynamic range is reduced.

This post shows how to use the moRFeus as a tracking generator together with an RTL-SDR for making RF measurements. This could be called a scalar network analyzer. The set up uses GQRX and a Python script, but in the future it is possible that someone may develop a standalone app.

Equipment Required

  1. A directional coupler like the minicircuits ZFDC-20-5, or an RF Bridge with 50 Ohm dummy load.
  2. moRFeus or other computer controllable wideband signal generator.
  3. An RTL-SDR
  4. A ~20dB attenuator

Since the output of the moRFeus is quite strong, an attenuator is required to keep signal levels low enough to not overload the RTL-SDR.

The cheapest RF bridge we've found is available on eBay for about $7. With an RF Bridge you'll need a 50 Ohm dummy load as well to connect to the 'REF' port. Directional couplers seem to work more accurately however, and second hand minicircuits ones can often be found on eBay. A $2 TV 'tap' is also a directional coupler, and may also work, although we have not tested this.

Software Setup

In this tutorial we're using the method first described by 'LamaBleu' in his post to the Outernet forums. The method uses Linux and involves reading power levels from the RTL-SDR by using GQRX and it's remote telnet connection capabilities. The telnet command "F freq" can be used to change frequency in GQRX, and the command "l" can be used to read out the current power level in dbFS.

To control moRFeus we use Outernet's official "morfeus_tool",  which is a command line based tool.

A basic Python script was written to set the frequency in moRFeus and GQRX at the same time. After a 500 ms settling time the power level is measured and recorded in a CSV file, then the script iterates to the next frequency. We iterate at 1 MHz intervals.

If you have a moRFeus and want to try this project out, copy and paste the script from pastebin, and name the file morfeus_scalar.py. Place the morfeus_scalar.py file and the morfeus_tool_linux_x32 tool into the home folder.

To get the software started:

  1. Open GQRX and connect the dongle and required RF components for the test (shown below).
     
  2. Set the RTL-SDR gain to zero or just low enough so that the signal doesn't cause overload (moRFeus signal levels are fairly high).
     
  3. In the GQRX GUI ensure that the "Remote control via TCP" button is pressed in. (Looks like two computer screens).
     
  4. Edit the Python script and choose the frequency range that you'd like to scan by setting variable FREQ_MIN and FREQ_MAX.
     
  5. In a terminal run "sudo python morfeus_scalar.py".
     
  6. When the script completes you'll have a file "out.txt" which is a CSV file of frequency and signal power levels.

Characterizing Filters

To characterize a filter (find the response of a filter) simply connect the system like so:

moRFeus Filter Test
moRFeus Filter Test
  1. But first connect just the moRFeus, attenuator and RTL-SDR together.
     
  2. In GQRX increase the gain until just a few dB before the RTL-SDR overloads and starts showing signal images. This will maximize the available dynamic range.
     
  3. Run an initial calibration scan with morfeus_scalar.py. Save the results in out.txt into a spreadsheet.
     
  4. Connect the filter in the RF chain, and then run a second scan with morfeus_scalar.py. Save the results into another column in the spreadsheet.

  5. Subtract the calibration scan results from the filtered results. Plot the resulting values using the spreadsheet software. This will show the response of the filter.

Download Example Spreadsheet (.xls) (.ods)

Continue reading

An Update on the PantronX Titus II SDR

The PantronX Titus II is a yet-to-be-released portable Android tablet based SDR that we've been following since 2016. The device will feature a 100 kHz - 2 GHz tuning range, and software that focuses on HF digital DRM decoding, as well as DAB on VHF. 

Thomas from the excellent SWLing blog got curious about the Titus II as he had not heard any updates from the team in a while, so he emailed them requesting an update. Mike from PantronX wrote the following reply:

As you might be aware, we have joined up with Fraunhofer to include their MMPlayer app standard on Titus–what a difference a professional decoder, for both analog, DRM(+), and DAB(+), makes! MMPlayer is full featured even including reliable one way file downloads with DRM.

We are attempting also to license HD to include on the app for North America, making a truly worldwide receiver. Some deficiencies in our version of Android have caused issues as well as MMPlayer. All of which have caused delays leading to some serious business decisions – as you can imagine. You are correct that broadcasters have made large orders that will be fulfilled first. There are units in the field testing and such and continuing resolution of the software issues.

One of the issues that folks seem to have a hard time understanding is that we can not just build a few hundred or even thousands of units. Our minimum run is 10,000pcs! To do that everything has to be 100% – including the software. We simply will not ship units that are not 100%. Titus works, MMPlayer works – its that last 5% that takes the most time to resolve. These facts preclude any incremental production attempts. All that being said, we are very hopeful that the first production run is ready by last quarter of this year.

The Titus II
The Titus II