Category: Applications

Decoding Meshtastic in Realtime with an RTL-SDR and GNU Radio

Over on his YouTube channel, Aaron, creator of DragonOS and WarDragon has uploaded a video showing how it is possible to decode Meshtastic with an RTL-SDR and GNU Radio project called Meshtastic_SDR

If you weren't aware of it, Meshtastic is software that enables off-grid mesh network based communications and can run on cheap LoRa hardware. The mesh based nature of the system means that communications can be received over long distances, without any infrastructure, as long as there are sufficient Meshtastic nodes in an area that are able to route the message to the destination node. One example application of Meshtastic is to use it as a mesh-based text messaging system. This might be useful for teams of hikers, pilots, or skiiers who operate in remote areas without cell phone coverage.

In the video, Aaron shows how to install the Meshtastic GNU Radio software on DragonOS (Linux), and how to run the GNU Radio flowgraph and Python decoder script. Later in the video Aaron shows some test text messages being received by the software.

The Meshtastic_SDR project can also be used to transmit Meshtastic messages with an appropriate TX-capable SDR.

WarDragon Real-Time Decoding Meshtastic w/ GNU Radio & SDR (RTLSDR v3)

An Atmega328 + SI5351 Based WSPR Beacon

Thank you to Ihar Yatsevich for writing in and sharing with us his open-source WSPR beacon project. The WSPR beacon consists of a custom PCB with ATMega328 microcontroller, GPS module, single transistor amplifier, and Si5351 with TCXO.

The result is a very simple, portable WSPR beacon that can be heard all over the world. However, it appears that no band filters are built into this, so you will need to add a bandpass filter for the WSPR band that you are using.

WSPR (Weak Signal Propagation Reporter) (pronounced "whisper") is an amateur radio digital HF mode designed to be decodable even if the signal is received with very low power. Because of this design, even low-power transmitters can be received from all over the world. It can also be used to help determine HF radio propagation conditions as WSPR reception reports are typically automatically uploaded to wsprnet.

If you are interested, Ihar has written about his project in more detail over on Reddit

Ihar's Microcontroller Based WSPR Beacon
Ihar's Microcontroller Based WSPR Beacon

Artemis 4 Released: Offline Signal Identification Database

Back in 2019 we posted about the release of Artemis 3, an open-source multi-platform program that makes searching through the Signal Identification Wiki offline possible and easy to do.

Recently Artemis 4 has been released which is an entire rewrite of the code, resulting in some substantial improvements, and paving the way for future features like machine learning based identification. Author Marco Dalla Tiezza writes:

  • Artemis was initially designed to provide an offline solution for consulting the library of signals provided by the community on sigidwiki, but the database was formerly a simple .csv with all its limitations. Now the database is a proper relational sqlite which is much easier handled and offers many other possibilities like: additional fields (for example, each frequency of a signal can contain a description and this is true for every single parameter), faster db operations (for example, filtering signals is done by a simple query), increased extensibility due to the fact that new fields/parameters can be introduced in the future or by the user itself.
  • The only searchable database with Artemis 3 was the Sigid wiki database.Now, with Artemis 4, users can create their own custom databases, enter an arbitrary number of signals and parameters, attach documents or any useful information, and export it by sharing it with their friends.
  • The documentation has been completely revised to be as clear as possible and to be able to take the user from installation to advanced use of the program by giving instructions on how they can contribute to the project. DOCUMENTATION
  • As usual, the program provides a real-time interface to be able to track space weather in near real-time, but now this module is more focused on RF propagation such as meteor scatter, EME, sporadic E, aurora spots, DRAP, aurora forecasts and many more (we are actively adding useful descriptors).
  • Artemis 4 now relies on the PySide 6 graphics framework, which not only allows for a modern and newer, user-customizable GUI but also allows for less use of third-party libraries to run the program.
  • Given the flexibility and especially the modularity of the new software, it is very likely that signal analysis functions will be introduced in the future (such as automatic recognition of signals via machine learning/neural network or simpler ones like FFT for obtaining ACF from an audio file, etc.)
  • The homepage of the project (https://www.aresvalley.com) as been updated as well and there you can see some screenshots or directly download the software to give it a try.

If you weren't aware, the Signal Identification Wiki (sigidwiki) is our sister site, which we started a few years ago to collect and catalog various types of signals that an SDR user might see and hear on the airwaves. The idea is that a user could search the database to learn about and identify unknown signals. Over time it has grown significantly, now over 500 known signals with both waterfall images and sound samples available in the database. We have since handed over the operation of the Wiki to the community, with Carl Colena taking on the lead.

Artemis 4 Screenshot

SignalsEverywhere: Build an RTL-SDR Based OP25 Radio Scanner with a Mobile Control Head Android App

Welcome back to Sarah from the SignalsEverywhere YouTube channel who has recently returned to producing videos from a hiatus. In her latest video, Sarah shows off her new OP25 Mobile Control Head Android App which allows you to implement a full P25 digital radio scanner at a fraction of the cost of a commercial digital scanner. In the past, Sarah had released a similar application written for the Raspberry Pi but has decided to shift her focus to writing an equivalent Android app that is less clunky and can be deployed for a lower cost. 

The app controls and displays information from the OP25 software that runs on a Raspberry Pi with RTL-SDR connected. It works by using a server application on the Raspberry Pi that manipulates the OP25 instance and its configuration files.

Sarah writes:

The application is a wrapper for OP25 that uses a raspberry pi and an android device to provide users with a mobile control head for their OP25 P25 scanner setup. Currently it's just a basic application but I'll be adding features like automatic site switching, etc.

OP25MCH: https://github.com/SarahRoseLives/OP25MCH

There is also a separate application I call the OP25Display which is just a display for a users existing OP25 instance.

OP25Display: https://github.com/SarahRoseLives/op25display

Build Your Own Digital Radio Scanner With OP25 Mobile Control Head App

uSDR Software Updated to V1.7.0

Thank you to Viol for writing in and letting us know that his uSDR software has recently been updated to V1.7.0. The uSDR software (not to be confused with the unrelated uSDR hardware) is a lightweight general-purpose multimode program for Windows that supports the RTL-SDR, Airspy, BladeRF, HackRF, LimeSDR, and other SDR radios.

Viol highlights the latest features added in the 1.7.0 update below:

  • Fobos SDR frontend native support, the very new SDR from RigExpert
  • bladeRF API v2.5.0 support, oversampling mode up to 122.88 MHz sample rate (do not forget to update FX3 firmware)
  • advanced IQ playback mode, precise timing and streaming
  • improved DSP routines and memory management, minimized CPU load
  • excellent ruler tool for spectrum frequency and amplitude measurements
uSDR Updated to Version 1.7.0. Images shows FobosSDR support.
uSDR Updated to Version 1.7.0. Images shows FobosSDR support.

SDR# Version 1920 Released

A few days ago SDRSharp version 1920 was released. SDRSharp (SDR#) is a popular Windows program that is affiliated with Airspy SDR dongles, but is compatible with RTL-SDR and various other SDRs as well. The latest version gets rid of the relatively resource heavy Telerik UI library and replaces it with a much lighter weight library.

The author of SDR#, @lambdaprog, notes that v.1920 reduces memory usage by 85% and CPU utilization by 50%. The new version also improves scalability for high sample rates and number of spectrum slices and improves plugin compatibility. Several AOR brand SDRs are also now supported in v.1920.

On the note regarding improved plugin compatibility, we've noticed that in the v.1920 update the IF Average plugin has begun working again. The IF Average plugin is used for Hydrogen line radio astronomy experiments. In the past we had to use older versions of SDR# to make it work. We have updated our Hydrogen line tutorial to reflect this.

Gypsum: A Software-Defined GPS Receiver written in Python + A Writeup on How it Was Made

Thank you to RTL-SDR.COM reader Lee. who found a recently released program called "gypsum" which enables an RTL-SDR or HackRF to be used as a GPS Receiver when combined with a GPS antenna. Phillip Tennen, the author of Gypsum notes that Gypsum can obtain a fix within 60 seconds from a cold start and that it has no dependencies apart from numpy. We want to note that it appears that Gpysum has no live decoding ability yet, as it works from pre-recorded GNU Radio IQ files.

In the past, we've shown in a tutorial how GPS can be received and decoded with GNSS-SDRLIB and RTKLIB on Windows. The new Gypsum software should work on Linux and MacOS too.

What's more, Phillip has written an incredible 4-part writeup on how Gypsum was implemented from scratch. In the write-up, Phillip introduces GPS and explains how it can even work with such weak signals that appear below the thermal noise floor. He then goes on to explain how the detected signal is decoded and turned into positional information, and how challenging it was to propagate the accurate timing information that calculating a solution requires. The write-up is presented with clear visualizations to help readers intuitively gain an understanding of the advanced concepts involved.

Gypsum GPS Satellite Tracking Dashboard GUI
Gypsum GPS Satellite Tracking Dashboard GUI

Using a LimeNET Micro to Implement an Amateur Radio DMR Tier III Trunked Radio Base Station

Thank you to Adrian Musceac (author of QRadioLink) for submitting his article about how he implemented an amateur radio DMR Tier III Trunked Radio Base Station with a LimeNet-Micro software-defined radio. DMR Tier III is a digital voice trunked radio system that employs Time Division Multiple Access (TDMA) technology. Tier III is largely based on Tier II, but adds trunking abilities which enable efficient channel access and resource allocation.

The LimeNET Micro is a software defined radio based on the LimeSDR, but it has some upgraded specifications such as an embedded Raspberry Pi Compute Module 3+ that make it easier to deploy as a base station.

Adrian writes:

The Tier III extension (trunked radio) to the DMR standard is defined and specified by the European Telecommunications Standards Insititute (ETSI) in the TS 102 361-4 document.

The project uses LimeNet-Micro, LimeSDR-mini or Ettus USRP hardware to set up  such a base station for experimental and amateur radio digital voice communications purposes. The core components of this project are MMDVM, MMDVMHost (both under the form of forks supporting communication via ZeroMQ and pseudo-TTY), GNU Radio, DMRGateway, QRadioLink and the DMR trunked radio controller GUI.

Since DMR trunked radio is not very well known and used in the amateur radio world, I hope this will bring some new information to amateurs interested in these digital voice communication technologies. All code used is available as free and open source software (FOSS). A demo of the project used with real world amateur radio communications can be found on the page.

DMR Tier III system software architecture
DMR Tier III system software architecture