PA8W's Radio Direction Finding Technology

MapApp: The Android app for plotting RDF bearings.

Attention, new server!
Starting may 26, 2024 I've setup a new server for bearing uploads/downloads.
Please download the latest version of MapApp to get the right settings automatically!

With a small BlueTooth hardware addition to the RDF41/42/43 radio direction finders
we can wirelessly export bearing data to BlueTooth devices like phones or tablets.
For this purpose I developed an Android application: MapApp.
The nice thing is that this upgrade is no more than a hardware addition for all exisiting models RDF41/42/43.
Only the pre-2021 RDF43mono version needs a firmware update.

So with the BlueTooth module you can use your Android cellphone or Android Tablet
(with BT and preferrably GPS for mobile use!) to plot your bearings on a map.
And your RDF can still export bearings to your PC via USB cable.
Even simultaneous use of a PC running RDF-Mapper and an Android running MapApp works fine.

MapApp-6 Features:
Imports RDF Bearings from your RDF41/42/43 using BlueTooth.
Bearing lines can also be added manually, without any RDF or BlueTooth!

10 Bearing lines can be saved temporarily by tapping a button.

MapApp can upload its bearings to the Remote RDF server
and it can download and plot the bearings of three remote RDF stations.
It also offers audio notifications when a remote bearing comes in.

Two operating modes:
Fixed Mode: For a fixed station, bearings are plotted referring to north.
Mobile Mode: The app calculates the direction you are driving to and then adds the imported bearings to that heading.
So the plotted bearing lines on the map are true.
In Mobile mode the app also produces a track line that shows exactly where you have been hunting.

Home Position, the Track and all user settings are automatically stored on your device.

Free download:


Latest version with improved input checker:


Permissions needed: Nearby Devices, Location(GPS) and in older Android versions: Storage.
Note that you should first manually set the app permissions before you start the app!
(Giving permission in a popup after startup doesn't reliably do the job on my Android!)

Disclaimer: In spite of thorough testing, MapApp is still an amateur project:
Installing and using it is entirely at your own risk.
It is free for personal use only.

When you open MapApp for the first time MapApp will ask you to type in your callsign or any phantasy name you can think off.
It will use this unique identification to write your bearings to the server, so you can share your bearings with your direction finding friends.
You can change this name in Settings any time you want.
Make sure you share this name only with radio direction finding buddies that are supposed to see your bearings.
Are you having a foxhut with those same buddies now as opponents? Then change your name first to prevent them using your bearings!

Now let's go and find out how it all works:

An Android app plotting radio direction finder bearings on a map

This first screenshot shows the app right after a normal power-up.
We are in Fixed mode, in which North is the zero degrees reference.
The red marker (that's you!) will be somewhere in the Netherlands.

Set a Home position in fixed mode:

Let's try to set our Home position:
First  use the 
- button to zoom out.
Then swipe the map to your area.
Use the 
+ button to zoom in closer and closer.
Once you see your home position hit the
Home button and tap your home position on the map.
Now you see the red marker move to that position.
No hassle with GPS numbers, and next time your MapApp will start up with your home position in the center.

Now hold your finger at least one second at a point north or south of your home position:
You will see a red line appear, turning black after a second:
You have now created a manual bearing line starting at your home position.
The exact bearing angle you entered can be found in the green status bar above the map.
Bearings received over BlueTooth from your RDF will be displayed the same way.

Save a bearing:

The bearing you just plotted can be saved by hitting the
Save Bearing button: It will turn into a fatter blue line.
Now, hold your finger at another point on the map to plot a new bearing.
The saved blue line will stay visible and the new bearing line will appear.
Save that one too using the
Save Bearing button.
That's how simple it works.
Now let's delete a saved bearing:
Hold your finger EXACTLY on a saved bearing line for at least one second: It will disappear.
It may need a little practice, but I chose this method to make it hard to delete a bearing line accidentally.

Below picture shows how saved bearings during your car drive can reveil the transmitters approximate position:

The Android app for plotting Radio Direction Finder bearings.

In total 10 bearings can be saved, when you go beyond that, the oldest one will be overwritten,
since it is not very useful to fill your map with numerous pointless bearing lines...

Select you RDF's BlueTooth:

The Select BT button will open a list of available Bluetooth devices, so you can pick "PA8W RDF"
(Before powering up MapApp you will have to pair the BT device to your phone! Password is 1234)

If you try to connect to a wrong BT device, or the RDF is not powered on or out of BT-range,
your Android may start showing (and repeating!) time-out warnings.
Simply shut off MapApp an retry when you are in close vicinity to your powered-on RDF!

In case an established BT connection is lost, the app will try to re-connect automatically.
Get close to the RDF to reliably re-connect. 

Switch to Mobile Mode:

Hit the
Mode button to go into mobile mode in which your driving direction (=heading) is the zero degrees reference.

And then hit the
Follow button so your position will stay centered on the map.
(You can switch Follow on and off at will.)

The Android app for plotting Radio Direction Finder bearings.

The orange status bar tells us we're in Mobile Mode and the GPS managed to get a lock.
(First time the App will have asked for permission to use your Location/GPS)
It also says Speed Low:

In Mobile Mode the app calculates the Heading of your vehicle by comparing the two latest GPS fixes.
A received RDF bearing will be added to the Heading, so that it is plotted on the map at the right angle.
To achieve the best accuracy, your speed should be higher than approx. 4 meters per second or 9 miles per hour.

Below that speed GPS heading errors may degrade overall accuracy.
Therefore MapApp will plot no bearings at speeds below a set minimum.
This minimum speed can be user set between 0,5 and 10 meters per second.
The lowest setting may come in handy when your'e hunting by boat or any other slower means of transport.

Also be aware that -for good reasons- GPS and my RDF's react slow to sudden changes.
So a curvy road is not the best environment to get the best accuracy.

In Mobile mode MapApp ads a track line on the map, so you can see exactly which part of an area you have been cruising:

The Android app for plotting Radio Direction Finder bearings.

Only once every 10 seconds a new track position is calculated, which is sufficient to
help your situational awareness in unknown areas.
The Track will automatically be saved on your Android, so after closing and re-opening the app the track will remain visible until you manually reset it in the settings screen.

When you're hunting mobile you may want to stop and do a manual scan with a yagi and compass.
You can manually add that found bearing on the map:
So, stop at a suitable spot, then switch from Mobile to Fixed mode:
Your current mobile position will be copied as temporary Home position.
Then you can manually add and save your bearing (like I explained earlyer) and switch back to Mobile mode to resume your journey.

Maybe it's time to team up with your fellow hunters:

The next screenshot shows markers in Red,  Cyan, Magenta and Yellow, all with their bearing lines.
The Red marker is you, but the others are remote station bearings downloaded from the bearing server.

(You enter the desired remote stations in Settings. We will get to that in a minute...)

The Android app for plotting Radio Direction Finder bearings.

When you tap on a Marker, a pop-up label will tell you the name of that remote station and how old (in seconds, minutes or hours) that upload is.
So you can check whether the remote station is still providing useful information.

The three blue lines are saved bearing lines of the remote station
called Beacon:
I already explained how you save your own bearings by hitting the Save Bearing button.
Additionally, the bearings of an assisting remote station can be saved by holding its marker for a second.

The Settings screen:

The Android app for plotting Radio Direction Finder bearings.

The left hand column shows 8 text boxes plus the yellow Apply button.
Simply tap on one of these text boxes to enter your preferences.
The results of your entries will be visible in the right hand column.

Warning: Enter visible characters only!
Typing in your callsign may trigger Google keyboard to suggest your callsign and you may be tempted to tap on that suggestion.
This however may add one or more invisible tokens!
And MapApp looks for EXACT matches to display a remote station on the map.
So you have to avoid invisible tokens to make sure that no mistakes are made and a known remote station can't be found!

To make it less likely to make mistakes Version 240614 has an improved text filter
so you can only input characters a-z, A-Z and 0-9 for your ID and those of Remote Stations.

In the top textbox you can enter the Server Address.
Tap the box and it will go full width to enable you to enter a pretty long server address.
Make sure that you type in a valid address, otherwise you will get warnings that no contact could be established.
Then hit the
Apply Button to enter your input.
The address you entered will be visible in the right hand column.
(Escape: Leaving the textbox empty will force the app to take the default server :)

In the second textbox you can change your remote ID, like your callsign or any unique name. (3 or more characters!)
After each input, hit the Apply Button to really enter your input.

The third, fourth and fifth textbox accept the names of remote stations you want to plot on the map.
hit the Apply Button to enter your input and in the right column you will see the name for this station.
If the station name doesn't appear in the right colomn the station doesn't exist (yet) on the server or you have no internet connection.
The station name is case sensitive so you may as well have made a mistake there or have a non-visible character added...

Textbox number 6 accepts Data Interval in seconds, the "heartbeat" of the system, which is 1 by default.
In this case, every single second your bearing plot will be refreshed and the server actions (read remote1, 2, and 3, and maybe a save) will be performed.

A higher time interval means less internet traffic, so lower data consumption, and slower refresh of all data.

If you want to stop downloading simply delete all remote stations in the textboxes and hit the Apply button again.
The text to the right of each button should disappear completely to show that you succesfully removed them.

Textbox number 7 accepts the lenght of your bearing lines. (Not the remote ones, these are determined by the remote station!)
200km is default, but if you only hunt earthbound transmitters 50km will do fine as well.

Textbox number 8 accepts the Minimum Speed for acceptance of a bearing AND for plotting your track in Mobile Mode.
Default is 5 meter per second. The user can set this value to 0,5 up to 10.
So, only if you go faster than the set speed, new bearing lines will be plotted and your trajectory will be plotted in black on the map.
Low speed settings may result in less accurate heading calculation and therefore less accurate bearing lines.
5 meter per second is a good value when you are hunting by car.

The right column has two additional buttons:

The Reset Track button does exactly what you would expect:
It deletes the entire Track you may have recorded in Mobile Mode.

And Return to Map is also quite obvious...

Audio Notications are added since sept. 2023:
Every 10 seconds the app checks whether a new remote bearing is received and if that is the case it gives you an audio alert like :  "Remote One".


Let's focus on the hardware addition now:
We need a programmed BlueTooth module, which I can provide.
(It has to be custom-programmed because otherwise a Firmware update of your specific RDF would be necessary)

Below drawing shows how to wire it up in your RDF.

In case of an Arduino UNO (RDF41) it works exactly the same.

The BT module can be wired to the pins of the interface PCB, or even easyer: Directly to the back of the Arduino.

(use a well grounded soldering iron to prevent Electro-Static discharge damage!)

The Android app for plotting Radio Direction Finder bearings.

In a metal enclosure, it is good practice to tape the BT-module to the 12V power supply line, close to the DC entrance.
The power supply line will leak enough RF energy of the BT-module to the outside world to give you a few meters of coverage to your Android device.

Cheers, PA8W.