A MMDVM is usually a computing device running multiple radios, each of which is used for a separate channel with it's own filters and power amplifier hardware. Each channel can run a separate protocol if desired.
However in order to save on radio hardware, Adrian wanted to use his LimeSDR as the radio hardware in his MMDVM system. The LimeSDR is a transceiver which has enough bandwidth to implement several channels just by itself. To do this Adrian uses his MMDVM-SDR software.
His implementation runs multiple instances of MMDVM-SDR, one instance for each channel. Then a GNU Radio flowgraph with LimeSDR block connects to each of these instances, transferring data between GNU Radio and MMDVM-SDR via ZeroMQ or TCP sockets. The bulk of Adrian's post explains the architecture in detail. Adrian writes:
The setup can transmit 7 digital carriers in 200 kHz occupied spectrum, and each radio channel can be assigned to a different mode or digital voice network as configured in MMDVMHost.
This is based on the work of Jonathan Naylor G4KLX and Rakesh Peter (r4d10n).
Adrian also notes that this is still a work in progress and there are still several limitations including high latency and issues with filtering, overload and poor channel rejection.
The new pricing is at quite a premium over the original LimeSDR Mini which released in 2017 for US$139, and the standard LimeSDR which released in 2016 for US$249. However we of course must to take into account the extreme inflation of electronic parts pricing that has occurred over the past few years.
Lime Micro have also noted that the standard LimeSDR has also now been discontinued due to the same supply shortages. The standard LimeSDR had 2x2 RX/TX channels and was capable of a bandwidth of up to 61.44 MHz. In comparison, both versions of the LimeSDR Mini are a 1x1 channel product with 40 MHz of bandwidth.
The LimeSDR Mini 2.0 is almost identical to the LimeSDR Mini 1.0, both still making use of the LMS7002 RF transceiver as the main chip and using the same overall design. The only change is an upgrade to the FPGA, which replaces the Intel MAX 10 16k logic gate FPGA with a significantly more capable Lattice ECP5 44k logic gate FPGA.
Given the new pricing, people on the lookout for a new hacker/research/experimenter SDR in this price range might want to consider this brief comparison to find the best suited SDR for your needs:
LimeSDR Mini 2.0- US$399
1x1 channels, 40 MHz bandwidth, 10 MHz to 3.5 GHz, 12-bits.
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.
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.
On this weeks SignalsEverywhere episode, Sarah demonstrates and shows us how to use the SDR++ Server, which was released as a beta earlier this year. SDR++ Server is similar to software like rtl_tcp, and Spyserver as it allows us to connect to a remote networked SDR like an RTL-SDR. Compared to rtl_tcp and Spyserver however, SDR++ Server has a huge advantage in that it is compatible with almost any SDR, and enables the full range of control options for RTL-SDRs.
In the video Sarah shows us how to activate the SDR++ server module and how to connect to a remote RTL-SDR running the SDR++ server on a Raspberry Pi. She goes on to show how to connect to other SDRs running on the Raspberry Pi as well, such as the SDRplay RSP Duo, LimeSDR, Airspy R2 and Airspy HF+ Discovery. Finally she goes on to show how to set up the server on Windows and a Raspberry Pi.
Between the LimeSDR Mini 1.0 and the 2.0, there appear to be no major changes apart from the Intel Max 10 FPGA with 16k logic gates being replaced by the larger Lattice ECP5 FPGA with 44k logic gates. Lime Micro notes
Not only is the ECP5 more readily available than the Intel MAX10 FPGA used in the previous design, but it has an extensive set of open source tools and a great community of developers.
Recently on Twitter @arvedviehweger (Arved) has tweeted that he has successfully received images from the Russian Arctic monitoring satellite known as ARKTIKA-M1, via it's X-band downlink at 7865 MHz. We've reached out to Arved and he's provided the following information on his setup and how he's receiving and decoding the images.
My first good picture from the ARKTIKA-M1 satellite on 7865 MHz!
It appears that the satellite downlink is a lot stronger now which allows me to finally get a clean decode. I really hope it will stay that way! pic.twitter.com/qy7HDA2uAP
The Arktika-M1 satellite is a Russian weather satellite which operates in a HEO orbit. It was launched in February 2021 and has downlinks on multiple bands. The main payload downlink for the imagery is on 7865 MHz (which is also known as the lower X-Band). The satellite only transmits imagery on the X-Band at the moment, it is currently unknown whether it will ever transmit any image data on L-Band.
For Amateur reception that means having access to X-Band RF gear. It usually consists of a low noise pre-amplifier and a downconverter to convert 7865 MHz down to a lower frequency for easier reception with a high bandwidth SDR such as the LimeSDR, a USRP etc.
In my personal setup I use a surplus pre-amplifier made by MITEQ (around 36dB of gain, 1dB NF), my own self-made DK5AV compact X-Band downconverter and a LimeSDR-USB.
My L-Band gear is now mounted on top of my X-Band gear which allows me to do both at the same time 🙂 I will probably try that on FY3B in the future. pic.twitter.com/SFdy04EwuT
The L-Band gear is mounted on top (helix and the pre-amp behind it) and the X-Band gear is right below. From left to right you can see the feed, the downconverter (silver box) and the LNA (mounted to a heatsink and a fan). Recording is done with a LimeSDR-USB running at a sample rate of 50 MSPS. The satellite transmits every 15 minutes once it reaches its apogee, each transmission including the idle period lasts for about 10 minutes. Some pictures of the idle transmission and the actual data transmission can be found in this Tweet, [noting that Idle = more spikes, actual data looks weaker]:
Depending on the geographical location a rather large satellite dish is also required for Arktika-M1. Reception reports all over Europe clearly show that the satellite has a beamed antenna (similar to ELEKTRO-L2).
In my setup I can get away with a 2.4m prime focus dish (made by Channel Master) in North Eastern Germany. It produces around 9 - 10 dB of SNR in the demod of @aang254’s excellent SatDump software. Anything above 5dB will usually result in a decode but since the satellite does not have any FEC you will need more than that for a clean picture. (Image of SNR in Satdump)
MMDVM is firmware that normally runs on an ARM microcontroller board such as the Arduino Due, and is designed to be interfaced with hardware radios via the microcontrollers built in ADC and DAC hardware.
In order to use an SDR instead of physical hardware radios, Adrian's article describes how a fork of MMDVM called MMDVM-SDR is used in his system as this allows the code to run on a normal Linux computer with an SDR. GNU Radio running on Adrian's own QRadioLink software is then used to create software ADC/DAC interfaces for the SDR and MMDVM-SDR to interface with, as well as providing a user interface.
We recently came across the LibreCellular project which is aiming to make it easy to implement 4G cellular networks with open source software and low cost SDRs. The project appears to be in the early stages, and seems to be focusing on deploying and modifying existing open source 4G basestation software known as srsRAN which will be used with a particular combination of hardware in order to create a reliable and easy to set up 4G basestation solution.