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.
Thank you to Sajjad Golchin Poor for writing in and letting us know about his success with getting Osmo-FL2K to run in WMWare Workstation Pro. Osmo-FL2K is a driver that enables very cheap VGA dongles to work as a SDR transmitter. Previously in our initial first tests with the FL2K-SDR we discovered that it wouldn't connect to a Virtual Box virtual machine, but theorized that it might work in the commercial (non-free) version of VMWare as that has known working USB3.0 support. Regarding his tests in VMWare, Sajjad writes:
...I started working with Virtualbox but as you said the USB 3.0 drivers have some problems and cannot disconnect dongle from the host and attach back to the guest.
So I went for VMWare Workstation Pro 14 and after booting the GNU radio live image and attaching the dongle and installing the drivers it worked perfectly at transmitting WBFM on the virtual machine. For permanent use of dongle I downloaded and installed Ubuntu 16.04 latest version and it is working flawlessly right now on the VMWare.
Something that I realized during my test was that the maximum achievable sample rate in VMWare environment is a little bit lower (by Max. 10Ms/s) than what was expected but I guess it is ok for most applications. (it may be because of VMWare USB 3.0 drivers.)
Another thing that I came up with was that some sample buffers may drop during the delivering process to FL2K and it can ruin the whole transmission process. for example, when I was transmitting WBFM after a few minutes it stopped transmitting without any warning/error in the console and the machine thought that it is delivering the samples right to the device. It happened to me both in the VMWare environment and GNU radio live bootable so it might be a software issue.
Sajjad also that he's able to achieve sample rates of at least 145 MS/s in VMWare, but that maximum rate that it locks at always seems to vary between 145 - 157 MS/s
We have been wondering if anyone else has been successful in getting an FL2K dongle to run smoothly in a virtual environment? If you have please post in the comments.
Examples of compatible Osmo-FL2K USB to VGA Adapters.
moRFeus is a low cost wideband signal generator and frequency mixer. It can be used to generate a tone anywhere from 85 MHz to 5400 MHz, and can also be used as a frequency mixer, allowing you to implement upconverters and downconverters. In past posts we've reviewed and seen it being used as a PC based signal generator with open source GUI's, downconverter, CW generator, and most recently as a tracking generator for measuring filters and antenna VSWR.
Currently Outernet are having a half price sale on the moRFeus. Normally it's US $199, but now with the coupon code "rtlsdrblog" it's only US $99. The sale only lasts until Saturday 09 June 2018, so get in fast if you want one.
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.
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:
Open GQRX and connect the dongle and required RF components for the test (shown below).
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).
In the GQRX GUI ensure that the "Remote control via TCP" button is pressed in. (Looks like two computer screens).
Edit the Python script and choose the frequency range that you'd like to scan by setting variable FREQ_MIN and FREQ_MAX.
In a terminal run "sudo python morfeus_scalar.py".
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
But first connect just the moRFeus, attenuator and RTL-SDR together.
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.
Run an initial calibration scan with morfeus_scalar.py. Save the results in out.txt into a spreadsheet.
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.
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.
Over on YouTube OM0ET has shown how he uses his RTL-SDR for measuring crystals. While working on his home made HF 6-band SSB transceiver, OM0ET needed a way to measure the frequency of some 8 MHz crystals that he needed for his IF filter.
To perform the measurement he simply inserts the crystal into a homemade oscillator circuit, and measures the output with an RTL-SDR V3 operating in direct sampling mode. With the measurements he's able to figure out if the crystal is actually working in the first place, and secondly determine an accurate frequency measurement.
RTL-SDR USB receiver - cheap tool for matching crystals
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.
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.
In a post uploaded last month we noted that Outernet was selling off some of their old L-Band satellite antennas cheaply. Nils Schiffhauser (DK8OK) decided to take advantage of the sale and bought one. Now Nils has created a blog post that shows how he's been able able to decode 12 L-Band AERO channels simultaneously with the Outernet L-band antenna, an Airspy R2 and SDR-Console V3. AERO is the satellite based version of aircraft ACARS, and it's L-band signals contain short ground to air messages like weather reports and flight plans. Multiple channels are often in use at any one time.
To achieve this Nils uses the multi-channel tuning capabilities of SDR-Console V3, which allows him to open up 12-channels, each tuned to a different AERO frequency. He then opens up 12 instances of the AERO decoder known as JAERO, and then uses VB-Cable to pipe the audio from each channel into a JAERO instance. Nils writes that the key to making JAERO run with multiple instances is to install JAERO into different folders on your PC, and give each JAERO.exe a unique file name like JAERO_1.exe.
He collects all the data into a program called Display Launcher and Nils notes that the whole set up has been stable digesting 54,000 messages over the last 24 hours.
Inspired by a low flying aircraft that kept waking his cat in the morning, Simon Aubury decided to use an RTL-SDR and ADS-B tracking software dump1090 to determine which plane was the culprit. This is all now standard stuff, however, Simon's software implementation and management of the received ADS-B data is quite unique, as he uses Apache Kafka, KSQL and Kibana as his tools for processing and visualizing the ADS-B data.
Apache Kafka is a 'distributed streaming platform', and KSQL enables real time processing of the data from Kafka. Kibana is a data visualization tool. Essentially these technologies are just ways to manage, process and digest in a human readable way large amounts of real time data coming into a database.
So with some clever database coding Simon was able to create a constantly updating dashboard in Kibana that plots aircraft positional heat maps, displays data such as spotted airlines and destination frequencies in a text cloud, and displays aircraft height data in a line graph. Finally using a database lookup and his gathered data Simon was able to determine that an A380 aircraft flying over his house was waking his cat in the morning.