Tagged: direction finding

Networked Radio Direction Finding with KerberosSDR and RDFMapper

We've just uploaded a short Python script to GitHub that allows radio direction bearings from a KerberosSDR to be used with the RDF Mapper software created by Jonathan Musther. RDF Mapper is a (~US$25) program that was initially written for the RDF42, a kit based doppler direction finding system. RDFMapper runs on Windows/MacOS and Linux.

KerberosSDR is our experimental 4-Tuner Coherent RTL-SDR product made in collaboration with Othernet. It can be used for applications such as radio direction finding and passive radar. Currently it's available for US$149 on the Othernet store.

The RDF Mapper software allows you to upload bearings from multiple devices distributed around a city to a public RDF server, and view all the bearings on any internet connected PC. This can allow you to quickly triangulate the location of a transmitter.

Normally you would use RDFMapper combined with an RDF42 to upload bearings, but we've written a simple script that can be used to upload bearings generated by a KerberosSDR onto the server. The RDFMapper software can then be used to visualize those bearings.

The script is based on Python, and can run directly on the Pi 3/4 or Tinkerboard that is running the KerberosSDR, or on another PC that can see the KerberosSDR bearing server if you prefer.

Instructions are available on the GitHub page. Simply set unique station names for each of your distributed units, entry your lat/lon and fixed direction bearing. Then on the RDF Mapper software open the 'Web upload/download' tab and add the unique station ID name. All the other tabs for connecting to a GPS and serial port can be ignored, as those are used for the RDF42.

This script will only work for stationary KerberosSDR units as the lat/lon is fixed. If you want to try radio direction finding in a vehicle, we recommend using our Android App for a better experience. If there is interest, we may also add support for the Android app to upload to an RDFMapper server for mobile bearing uploads. 

Notes: RDFMapper runs on the system's default browser and it needs to run in either Chrome or Firefox to work. IE does not work. It also appears that Jonathan processes orders manually, so we just want to note that there may be a delay between payment and receiving the software.

RDF Mapper Software. Data from networked units.
RDF Mapper Software. Plotting bearing data from networked units.

Measuring Traffic in a Neighborhood with KerberosSDR and Passive Radar

KerberosSDR is our four tuner coherent RTL-SDR product made in collaboration with Othernet. With KerberosSDR applications like radio direction finding and passive radar are possible, and our free open source demo software helps to make it easier to get started exploring these applications. In this post we explore how a simple passive radar setup can be used to measure how busy a neighborhood is in terms of vehicular traffic.

KerberosSDR is currently available from the Othernet store for US$149.95, and the setup guide is available at www.rtl-sdr.com/ksdr.

Passive radar makes use of already existing strong 'illuminator' signals such as broadcast FM, DAB, digital TV and cellular. When these signals reflect off a moving metallic object like an aircraft or vehicle, it distorts the signal slightly. By comparing the distorted signal to a clean signal we can determine the distance and speed of the object causing the reflection. Wide reaching digital signals like DVB-T and DAB are often the best illuminators to use. Wideband cellular signals can also be used to detect more local targets.

In a simple passive radar system we use two directional antennas such as Yagi's. One Yagi points towards the broadcast tower and receives the clean non-distorted reference signal. This is known as the reference channel. A second Yagi points towards the area you'd like to monitor for reflections, and this is called the surveillance channel.

In our setup we point the reference channel Yagi towards a 601 MHz DVB-T transmitter roughly 33 km away. A second Yagi is placed on a vantage point overlooking a neighborhood. The Yagi's used are cheap DVB-T TV Yagi's that can be found in any electronics or TV retail store (or on Amazon for ~$30 - $60 USD).  In the software we used a bandwidth of 2.4 MHz and adjusted the gains for maximum SNR.

It is important that the surveillance channel is isolated from the reference signal as much as possible. We improve the isolation simply by placing a metal sheet next to the surveillance Yagi to block the reference DVB-T signal more. Note that putting the antennas outside will obviously result in much better results. These walls and windows contain metal which significantly reduce signal strength. We also added our RTL-SDR Blog wideband LNA to the surveillance channel powered by a cheap external bias tee to improve the noise figure of the surveillance channel.

KerberosSDR Passive Radar Setup
KerberosSDR Passive Radar Setup
Surveillance Antenna View
Surveillance Antenna View

The resulting passive radar display shows us a live view of objects reflecting. Each dot on the display represents a moving vehicle that is reflecting the DVB-T surveillance signal. In the image shown below the multiple colored objects in the left center are vehicles. The X-Axis shows the distance to the object, and the Y-Axis shows the doppler speed. Both axes are relative to the observation location AND the transmit tower location.

Vehicles on the Passive Radar Display
Vehicles on the Passive Radar Display

When there are more moving cars on the road during the day and rush hours, there are more blips seen on the passive radar display. Larger vehicles also produce larger and stronger blips. By simply summing the matrix that produces this 2D display, we can get a crude measurement of how busy the neighborhood is, in terms of cars on the road since reflections are represented by higher values in the matrix. We logged this busyness value over the course of a day and plotted it on a graph.

The resulting graph is as you'd intuitively expect. At 6AM we start to see an increase in vehicles with people beginning their commute to work. This peaks at around 8:30AM - 9am with parents presumably dropping their kids off to the neighborhood school which starts classes at 9AM. From there busyness is relatively stable throughout the day. Busyness begins to drop right down again at 7PM when most people are home from work, and reaches it's minimum at around 3am.

Traffic Busyness detected with KerberosSDR Passive Radar
Traffic Busyness detected with KerberosSDR Passive Radar

One limitation is that this system cannot detect vehicles that are not moving (i.e. stuck in standstill traffic). Since the doppler speed return will be zero, resulting in no ping on the radar display. The detection of ground traffic can also be distorted by aircraft flying nearby. Aircraft detections result in strong blips on the radar display which can give a false traffic result.

It would also be possible to further break down the data. We could determine the overall direction of traffic flow by looking at the positive and negative doppler shifts, and also break down busyness by distance and determine which distances correspond to particular roads. In the future we hope to be able to use the additional channels on the KerberosSDR to combine passive radar and direction finding, so that the the blips can actually be directly plotted on a map.

If you want to try something similar on the KerberosSDR software edit the RD_plot function in the _GUI/hydra_main_window.py file, and add the following simple code before CAFMatrix is normalized. You'll then get a log file traffic.txt which can be plotted in excel (remember to convert Unix time to real time and apply a moving average)

CAFMatrixSum = np.sum(CAFMatrix)
trafficLog = open("traffic.txt", "a")
logString = str(round(time.time())) + "," + str(round(CAFMatrixSum)) + "\r\n"

SignalsEverywhere: Driving around with KerberosSDR and Locating a P25 Transmitter

On this weeks episode of SignalsEverywhere, host Corrosive tests out our KerberosSDR coherent RTL-SDR unit for radio direction finding. If you didn't already know KerberosSDR is our experimental 4x Coherent RTL-SDR product. With it, coherent applications like radio direction finding (RDF) and passive radar are possible. Together with the KerberosSDR direction finding Android app it is possible to visualize the direction finding data produced by a KerberosSDR running on a Pi3/Tinkerboard.

In the video Corrosive uses the KerberosSDR together with the recently updated companion Android app to determine the location of a P25 control channel. By driving around with the app constantly collecting data he's able to pinpoint the location within about 15 minutes.

If this interests you, we also have some more driving demo videos available here.

Direction Finding With Kerberos SDR

In addition to his video, Corrosive has also created a very useful calculator that can be used to calculate the required antenna spacing for a circular or linear direction finding array that can be used with the KerberosSDR.

KerberosSDR App Update: Heatmap + Precise TX Localizing & Turn by Turn Navigation Demo Videos

We have just released an updated version of the KerberosSDR Android direction finding app. If you didn't already know KerberosSDR is our experimental 4x Coherent RTL-SDR product. With it, coherent applications like radio direction finding (RDF) and passive radar are possible. Together with the KerberosSDR direction finding Android app it is possible to visualize the direction finding data produced by a KerberosSDR running on a Pi3/Tinkerboard.

The KerberosSDR hardware is currently in preorder status on Indiegogo for the second production batch, and we expect it to be ready to ship out this month. If you preorder then you'll be able to purchase a KerberosSDR at a reduced price of USD$130. After shipping for batch two begins the price will rise to USD$150.

The new version of the KerberosSDR Android app adds the following features:

  1. Heatmap Grid Plotting
  2. Precise TX location pinpointing when enough data points are gathered
  3. Turn by turn navigation to the RDF bearing direction / TX location
  4. Bearing moving average smoothing

To understand what these features are, we've released two demo videos showing them in action. In the first video we use the new features to find an 858 MHz TETRA transmitter, and in the second video we find a 415 MHz DMR transmitter. The first video explains the new features so we recommend watching that first.

KerberosSDR Radio Direction Finding: Heatmap + Auto Navigation to Transmitter Location Demo 1

KerberosSDR Radio Direction Finding: Heatmap + Auto Navigation to Transmitter Location Demo 2

Upcoming KerberosSDR Software Updates: Automatically Estimate TX Location and Navigate There

KerberosSDR is our 4x Coherent RTL-SDR that we've developed together with Othernet. It can be used for tasks such as direction finding and passive radar. KerberosSDR was successfully crowdfunded over on Indiegogo, and the first batch has already been shipped. Currently we are taking discounted pre-orders for a second production batch on Indiegogo. Please note that the discounted pricing will expire when we ship, which according to the manufacturing schedule should be next month, so please get in quick if you're interested!

If you'd like to back the KerberosSDR project and purchase a unit, please see our Indiegogo page.

Below are some recent updates to the project:

Android App Software Improvements

The Android App allows a KerberosSDR user to drive around in a car, collecting angle of arrival data for a signal. Driving around and collecting multiple data points solves the multipath issue. In a single location it is possible for a signal's direction of arrival to be skewed or incorrect as it can bounce off multiple surfaces and appear to be arriving from a wrong direction. If we collect data from many locations, we can average out the multipath.

We've recently been working on improvements to the direction finding capabilities of the KerberosSDR, and in particular to our free Android App which records and plots data from the KerberosSDR server. We are still testing and finalizing these new features, but hope to release the updated app before the end of this month.

Recently added features to the app include:

  • Added the ability to determine the estimated location of a transmitter, providing there has been sufficient data collected.
  • Added a heatmap grid of the collected data which can be used to determine where most angle lines cross. Can take into account RF power data too.
  • Added the ability for the software to automatically navigate you to the estimated TX location via MapBox GPS turn by turn navigation.

Bellow are screenshots showing some of the new features. In this experiment we located an 858 MHz TETRA transmit tower. Initially the app will navigate you to the edge of the grid, in the direction that most DoA lines are pointing to. When there is sufficient data to be able to confidently pinpoint the TX location, it will begin navigating you to the estimated location. In the screenshots the placemarker represents the known location of the transmitter, and the circles indicate the location estimated from direction finding.

Below is screenshots from a 415 MHz DMR tower that we located with KerberosSDR. The antenna array was purposely kept small, with a diameter of only 12cm. Even with the small antenna array we were able to pinpoint the transmitter down to about 100 - 200 meters.

The app should also now be able to handle intermittent signals, via a squelch filtering function, although this has not been fully tested yet.

In order to navigate you must have a 3G/4G data plan on your phone, and your phone must have the ability to create a WiFi hotspot. The KerberosSDR server running on a Pi 3 or similar will then automatically connect to a WiFi hotspot named "KerberosSDR" running on your phone and provide data to the app via WiFi.

Batch 2 Manufacturing Updates

Batch 2 production is in full swing, and at the moment we're expecting completion by mid August. This batch will ship directly from China, so we should be able to ship them off fairly quickly rather than needing to first wait for them to arrive in the USA.

Magnetic Whip Antennas

We have been disappointed that it has been difficult to find low cost but good quality magnetic whip antennas to use with KerberosSDR and vehicles. The quality of antennas used in direction finding equipment can matter, as any signals leaking into the coax, or radiation pattern skew can affect results. We are working on sourcing some high quality magnetic whip antennas that have good ground coupling. These will be sold at a reasonable price on our store.

Future Updates

We are still working on improving the server software further too and future updates will include things like the ability to notch out unwanted signals during phase calibration, a simplified DoA set up wizard, an improved buffering scheme so that additional data and processing gain can be applied, and more.

The Raspberry Pi 4 looks to be an excellent candidate to be used with the KerberosSDR. We will begin releasing ready to use images for the Pi 4 in the future.


Every sale of a KerberosSDR helps fund further developments to the software and possible future iterations of the hardware. So we'd like to thank all backers once again!

LimeSDR Angle of Arrival Experiments at 145 MHz

Two J-Poles used in LimeSDR Angle of Arrival Experiments.
Two J-Poles used in LimeSDR Angle of Arrival Experiments.

Together with some Spanish amateur radio operators, Daniel Estevez performed an experiment with the goal of detecting the angle of arrival of meteor reflections coming from the GRAVES radar at 143.05 MHz.

The GRAVES radar at 143.05 MHz is often used by amateur radio astronomers as a way to detect the echos of meteors entering the atmosphere. The basic idea is that meteors leave behind a trail of ionized air which is reflective to RF energy. This RF reflective air can reflect the signal from the powerful GRAVES space radar in France, allowing the radar signal to be briefly received from far away. Detecting the angle of arrival from these reflections could help determine where the meteor entered the atmosphere.

Their experiments used a pair of J-Pole antennas and a LimeSDR receiver. The LimeSDR has two channels and can receive the signal coherently from both channels. The phase difference in the received signals from the two antennas can then be measured, and the angle of arrival calculated.

In their testing the first tested with 145 MHz amateur radio satellites. Unfortunately due to the low elevation of the antennas and multipath from terrain obstructions an angle could not be calculated. In a second experiment they tried receiving terrestrial APRS signals. With APRS they were successful and were able to determine the angle of arrival from multiple stations. Unfortunately for GRAVES meteor echoes they were not entirely successful, citing multipath issues due to houses, and the need for a clear view of the horizon.

We note that it may be possible to perform similar experiments with our KerberosSDR coherent RTL-SDR unit.

KerberosSDR Direction Finding with Android App Demo and Tutorial

Over on our YouTube channel we've uploaded a short video that gives a tutorial and demo of the KerberosSDR being used as an RF direction finding system in a car. If you weren't aware, KerberosSDR is our recently released 4x Coherent RTL-SDR which can be used for tasks such as direction finding and passive radar. KerberosSDR was successfully crowdfunded over on Indiegogo, and we have recently completed shipments to all backers. Currently we are taking discounted pre-orders for a second production batch on Indiegogo.

In the video we use a Raspberry Pi 3 B+ running the KerberosSDR image as the computing hardware. The Pi 3 is connected to a high capacity battery pack. It is important to use a high quality battery pack that can output 3A continuously as this is required for the Raspberry Pi 3 B+ to run without  throttling. The battery pack we used has multiple outputs so we also power the KerberosSDR with it.

Once powered up we connect to the KerberosPi WiFi hotspot, and then browse to the web interface page. We then tune the KerberosSDR to a TETRA signal at 858 MHz, perform sample and phase calibration, set the decimation and FIR filtering, and then enable the direction finding algorithm. At this point we enter the Android app and begin direction finding and logging our data.

After driving for a few minutes we stop and check the logfile and find that the majority of the bearing lines point in one direction. With this info, a drive in the direction of the bearing points to gather more data is performed. Once additional data was gathered we open the log file up again, and see where all the bearing lines cross. Where they cross indicates the location of the 858 MHz transmitter. The heatmap data also gives us a second confirmation that the transmitter is located where we think.

NOTE: Some of the features shown in the video like the heatmap, confidence settings and plot length settings are not yet released in the current version of the app. They will be released next week.

Full instruction on using the KerberosSDR are available at rtl-sdr.com/ksdr.

KerberosSDR Direction Finding With Android App Demo and Tutorial

KerberosSDR Batch One End of Stock, Batch Two Preorders Available

If you weren't aware, KerberosSDR is our recently released 4x Coherent RTL-SDR which can be used for tasks such as direction finding and passive radar. KerberosSDR was successfully crowdfunded over on Indiegogo, and we have recently completed shipments to all backers. Currently there is only about 20 units of the batch one production left in stock.

We are currently offering discounted preorders for batch two units on Indiegogo which we expect will be ready to ship in July or hopefully earlier. If you are interested, please order soon to avoid missing out as the price will be raised again once we are shipping. Batch two will be the same as batch one except for some minor changes. For example we have decided to convert the microUSB port into a USB-C port as we have found that there are many very poor quality microUSB cables on the market which could cause issues for users. USB-C cables are generally of a higher quality.

More information about KerberosSDR is available on the Indiegogo page.

KerberosSDR Updates

Since our last post on this blog about KerberosSDR we have made some enhancements to the software.

  • The KerberosSDR code is now fast enough to run at 1-2 Hz update rates for direction finding and passive radar on a Raspberry Pi 3 B+.
  • There is now a web interface, so the KerberosSDR can be controlled via a WiFi hotspot and internet browser. Useful for use on the Pi 3 and Tinkerboard.

For future updates we are currently working on several new features:

  • Filters to remove low confidence DoA results on the Android app.
  • A secondary heatmap type display on the Android app based on signal strength, for two direction finding indications.
  • Methods to determine the center of multiple bearing intersection points.
  • Further enhancements to processing speed, possible improved results from processing gain and possible better accuracy from improved DoA algorithms.

Within the next few weeks we will also release full tutorial videos that will show how to set up and use the KerberosSDR for direction finding and passive radar with a Raspberry Pi 3 or Tinkerboard. If you prefer a text based explanation we already have a guide up at rtl-sdr.com/ksdr.

Below is an image that demonstrates the KerberosSDR direction finding Android app. A user of KerberosSDR has also submitted two of his own screenshots that show that he was able to determine the location of a GSM transmitter with a linear antenna array.

KerberosSDR Direction Finding Results
KerberosSDR Direction Finding Results. Multiple data points collected during a drive, with bearings pointing towards the TX tower (red marker). Circular array of whip antennas used at freq. 858 MHz.