Tagged: gnu radio

FutureSDR: An Async SDR Framework Implemented in Rust

FutureSDR is an experimental open source SDR framework (similar to GNU Radio) that is being developed by Bastian Bloessl. The idea behind the framework is that it is implemented in Rust, which is a programming language that supports async (asynchronous) code. The end result to the user should be faster, more portable and lower latency digital signal processing (DSP) code. The framework is still in the early stages with there being very few DSP blocks available, but as per his blog new blocks are slowly being implemented by contributors. 

Bastian has created a presentation introducing the framework. It will only be interesting to programmers, and DSP coders, but it shows the possible software engineering improvements that we could see applied to SDR DSP code in the future. 

Features
An experimental asynchronous SDR runtime for heterogeneous architectures that is:

  • Extensible: custom buffers (supporting accelerators like GPUs and FPGAs) and custom schedulers (optimized for your application).
  • Asynchronous: solving long-standing issues around IO, blocking, and timers.
  • Portable: Linux, Windows, Mac, WASM, Android, and prime support for embedded platforms through a REST API and web-based GUIs.
  • Fast: SDR go brrr!

Overview
FutureSDR supports Blocks with synchronous or asynchronous implementations for stream-based or message-based data processing. Blocks can be combined to a Flowgraph and launched on a Runtime that is driven by a Scheduler. It includes:

  • Single and multi-threaded schedulers, including examples for application-specific implementations.
  • Portable GPU acceleration using the Vulkan API (supports Linux, Windows, Android, …).
  • User space DMA driver for Xilinx Zynq to interface FPGAs.

Reminder: GNU Radio Conference 2021 to be held Sept 20-24 with Virtual and In-Person Events

Just a reminder than GNU Radio Conference 2021 (GRCON21) will be going ahead on Sept 20 - 24 with virtual and in-person events. It is free to register for virtual attendance and you will be able to view all talks live via streaming. If you wish to attend workshops virtually, the registration fee is $50. All links for YouTube live streaming can be found on the virtual attendance page as well. Be sure to use the YouTube "set reminder" feature to be notified when the streams begin.

GNU Radio Conference (GRCon) is the annual conference for the GNU Radio project and community, and has established itself as one of the premier industry events for Software Radio. It is a week-long conference that includes high-quality technical content and valuable networking opportunities. GRCon is a venue that highlights design, implementation, and theory that has been practically applied in a useful way. GRCon attendees come from a large variety of backgrounds, including industry, academia, government, and hobbyists.

The yearly GNU Radio Conference (GRCon) is a conference all about the development of GNU Radio and projects based on GNU Radio. GNU Radio is an open source digital signal processing (DSP) toolkit which is often used in cutting edge radio applications and research to implement decoders, demodulators and various other SDR algorithms. 

Check out the list of upcoming talks here to see if there is anything that interests you, and perhaps check out last years GRCon20 video playlist too

Decoding Voyager 1 Telemetry with GNU Radio

Daniel Estévez often posts on his blog about advanced SDR and radio experiments he's worked on. In a recent post he describes how he decoded telemetry from the Voyager 1 spacecraft using GNU Radio. As Voyager 1 is so far away, and the signal so weak, a rather large scale 100 meter dish is required to receive Voyager 1. So he uses publicly available recorded data received by the Green Bank Telescope in 2015.

Using GNU Radio he first converts the telescope's data file discarding most of the 187.5 MHz recorded bandwidth, then decimates the signal allowing the very weak carrier and data subcarriers to be seen in the resulting high resolution FFT plot. Daniel notes how most of the power is spent in the carrier, allowing ground stations to more easily detect the signal and at least measure doppler to determine the spacecrafts trajectory. The rest of the post explains how the carrier is tracked, how to correct for doppler and phase shifts, how to demodulate the data, apply error correction, and finally decode the data packet.

While not something we can easily listen to directly, it is amazing that we can all be NASA engineers right at home with GNU Radio and tutorials like this.

Voyager 1's Spectrum. Strong carrier in the middle, and two data subcarriers.

Decoding Multiple Pager Transmissions Simultaneously with GNU Radio

A few weeks ago we posted about "LikWidChz"'s work on using GNU Radio to channelize multiple NRSC-5 HD-Radio transmissions for simultaneous decoding with GNU Radio and an RTL-SDR. He has now also submitted a way to channelize pager traffic. He writes:

Quite a while ago I wanted to decode pager traffic, specifically Flex. When I started doing some basic poking around I figured out that there were multiple pager transmissions going on at once. Thinking about GnuRadio and its ability to chop up signal.. I was curious if anyone tried to decode them all at once.. I didn't get a whole lot of answers on the subject and It didn't seem like people used GnuRadio to pass MultiMonNG data.. I had my work cut out for me.

In my area all of the flex transmissions were between 928Mhz and 932Mhz and quite strong... You don't need much of an antenna to RX these transmissions. A simple wire of appropriate length will do nicely.

My plan was to design a graph and tune into the center of the range I was interested in and somehow channelize it. The remaining steps are required to format the data to allow MultiMonNG to process that audio stream. This is done a couple times depending on how many you want to decode in parallel. Have fun!

This this zip file we have uploaded his GRC file, and his full PDF description of the flowgraph. Again we note that to get in touch with the author you can log on #gnuradio and ##rtlsdr on freenode IRC and fine him under the nickname "LikWidChz".

Channelizing Pager Signals in GNU Radio

Decoding NRSC5 HD Radio with GNU Radio and a HackRF

Thank you to "LikWidChz" for submitting his tutorial on receiving and decoding multiple NRSC5 (HD Radio) channels with the help of GNU Radio, a HackRF and the NRSC5 decoder. He writes:

I wanted a way to utilize GnuRadio for working with HD radio. There are no decoder blocks from within GnuRadio to perform this decoding without an external application. This write up is how I was able to split up some signal and supply NRSC5 what it requires to perform the decode.

My goal was to capture some slice of spectrum and "channelize it" so I can perform multiple HD radio decodes at once.

In this linked zip file we have uploaded his GRC file, and his tutorial PDF, which fully explains each GNU Radio block used, and how to use the NRCS5 decoder along with the flowgraph. He also notes that if anyone wants to get in touch with him he is idling on IRC in #gnuradio and ##rtlsdr on freenode under the nickname "LikWidChz".

Channelizing NRSC5 in GNU Radio

GNU Radio Amateur Radio Meeting: A Look at Project 25 (P25) Digital Radio

Over on their YouTube channel GNU Radio have uploaded a recent talk by Aaron Rossetto titled "A Look at Project 25 (P25) Digital Radio". The talk explains the North American public safety P25 system in great depth, and is a good watch for anyone looking into details on how the system works in a deeply technical way. He later shows some examples of his P25 decoding and recording setup. Slides can be found here, and the video is posted below.

Agenda: In this presentation, I will introduce Project 25 digital radio, with a strong emphasis on its use in North American public safety trunked radio systems, and to describe experiments monitoring and decoding P25 traffic using GNU Radio code.

  • What is Project 25?
  • A brief introduction to trunked radio
  • Diving into the P25 protocol
    • Modulation
    • Packet framing and encapsulation
    • Packet types
  • GNU Radio and P25 decoding experiments
Amateur Radio Meetup: P25 Trunked Radio

Building an 11.2 GHz Radio Telescope with an Airspy and 1.2m TV Satellite Dish

In the past we've posted several times about how 1.42 GHz Hydrogen Line amateur radio telescopes used with RTL-SDRs or other SDRs for Hydrogen line observations of the galaxy. Recently Hackaday ran a post highlighting a project from "PhysicsOpenLab" describing an 11.2 GHz radio telescope that uses an Airspy SDR as the receiver.

Celestial bodies emit radio waves all across the radio spectrum and typically observations can be made anywhere between 20 MHz to 20 GHz. Choosing an optimal frequency it is a tradeoff between antenna size, directivity and avoiding man made noise. For these reasons, observations at 10-12 GHz are most suitable for amateur radio telescopes.

The posts by PhysicsOpenLab are split into two. The first post highlights the hardware used which includes a 1.2m prime focus dish, and 11.2 GHz TV LNB, a wideband amplifier, a SAW filter, a bias tee, and the Airspy SDR. The LNB converts the 11.2 GHz signal down to 1.4 GHz which can be received by the Airspy. Once at 1.4 GHz it's possible then to use existing commercial filters and amplifiers designed for Hydrogen line observations.

The second post explains the GNU Radio based software implementation and the mathematical equations required to understand the gathered data. Finally in this post they also graph some results gathered during a solar and lunar transit.

Finally they note that even a 1.2m dish is quite small for a radio telescopic, but it may be possible to detect the emissions from the Milky Way and other celestial radio sources such as nebulae like Cassiopeia A, Taurus A and Cygnus A a radio galaxy.

A 11.2 GHz 1.2m Amateur Radio Telescope with GNU Radio and Airspy

GNU Radio 3.9.0.0 Released

GNU Radio is an open source digital signal processing (DSP) toolkit which is often used in cutting edge radio applications and research to implement decoders, demodulators and various SDR algorithms. Version 3.9.0.0 has recently been released. Below is part of the release text, but please see the official release post for the full list of changes

The future is not set, there is no fate but what we make for ourselves. In this very spirit, GNU Radio 3.9 packs a whole bunch of power when it comes to transforming the way GNU Radio and its ecosytem can be developed in the future.

You’ll find the release tags and signed tarballs now on github, and later on gnuradio.org/releases/gnuradio.

Not only did we have great progressions from old dependencies that proved to be all too problematic (SWIG, Python2), but also did we see an incredibly influx of people actively working on how maintainable this code base is. This will nurture the project for years to come.

All in all, the main breaking change for pure GRC users will consist in a few changed blocks – an incredible feat, considering the amount of shift under the hood.