Tagged: gnu radio

Running GR-GSM and IMSI Catcher on a Raspberry Pi 4 with Dragon OS

DragonOS is a ready to use Ubuntu Linux image that comes preinstalled with multiple SDR software packages. The creator Aaron also runs a YouTube channel showing how to use the various packages installed. 

In his latest video Aaron tests his Pi64 image with GR-GSM and IMSI Catcher running with the GNU Radio 3.10 platform on a Raspberry Pi 4. He tests operation with an RTL-SDR and LimeSDR.

GR-GSM is a GNU Radio based program capable of receiving and analyzing mobile GSM data. We note that it cannot decode actual messages without additional information about the encryption key, but it can be interesting to investigate the metadata. GSM is mostly outdated these days, but still used in some areas by some older phones and devices. IMSI Catcher is a script that will record all detected GSM 'IMSI' numbers received by the mobile tower which can be used to uniquely identify devices.

Short video setting up and testing GR-GSM on DragonOS Pi64 w/ GNU Radio 3.10 and the RTL-SDR. The current DragonOS Pi64 build has GNU Radio 3.8 and all the necessary tools to accomplish what's shown in this video. If you'd like to test the build shown in this video, it's temporarily available here until I finish and put it on Source Forge.

https://drive.google.com/drive/u/1/fo...

A LimeSDR and DragonOS Focal's Osmo-NITB-Scripts was used to create the GSM900 lab environment. The RTL-SDR was able to see and decode the GSM900 network and although only briefly shown in the video, the IMSI Catcher script works.

Here's the fork used for this video and for testing. There's also a pull request on the main GR-GSM repo for this code to be added.

https://github.com/bkerler/gr-gsm

DragonOS Pi64 Testing GR-GSM + IMSI Catcher w/ GNU Radio 3.10 (RTLSDR, Pi4, LimeSDR, OSMO-NITB)

New GNU Radio Beginners Tutorials Available

A new set of beginners tutorials for the GNU Radio platform have been released on the GNU Radio Wiki.  GNU Radio is an open source development toolkit for signals processing and is commonly used to build software demodulators and decoders for Software Defined Radios including the RTL-SDR.

The tutorials lead you through topics such as understanding flowgraphs, creating custom Python blocks, using DSP blocks, GNU Radio core mechanics, modulation and demodulation and more.

We are pleased to announce a new set of beginner-level tutorials, as well as a new tutorials landing page, you can check them out here

A big thank you to NumFOCUS for sponsoring the work and to Matt from wavewalkerdsp who did the bulk of the work!

These beginner-level tutorials walk a new user through starting GRC and creating a simple flowgraph, all the way up to creating custom blocks and using tags and message passing.

We would like to create follow-up tutorials that the GNU Radio community needs so please leave feedback in the Discuss tab of the main Tutorials page, here are some suggestions:

  • Do you have ideas for future tutorials you’d like to see made?
  • What doesn’t make sense in GNU Radio, or what is hard to understand?
  • Where are the sticking points? What is hard to remember?
  • What is hard to use?
  • Are there any points in the current tutorials you’d like to see in more detail?
  • What would you change about the tutorials?

You can also access the tutorials using the Tutorials link on the left hand sidebar of the GNU Radio wiki, from any page.

GNU Radio Tutorial Topics

If you're interested in these tutorials you might also want to check out Michael Ossmann's set of video tutorials for the HackRF, which features GNU Radio usage heavily.

GNU Radio Conference 2021 Talks Now Available on YouTube

The GNU Radio YouTube channel has recently finished uploading the talks from GRCon21, this years annual GNU Radio Conference. GNU Radio is an open source development toolkit for signals processing and is commonly used to build software demodulators and decoders for Software Defined Radios.

The GNU Radio conference talks are generally about cutting edge SDR research topics and the YouTube playlist contains 67 videos covering a gambit between what changes have been made in new releases of GNU Radio to presentations and demonstrations focusing on topics such as reverse engineering smart power meters and 5G cell detection among many others.

Some of the talks from this years conference that we found most interesting include:

GRCon21 - Keynote: Joe Gibbs Racing Team

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