PA8W's
Radio Direction Finding Technology
MapApp: The Android app for plotting RDF bearings on a map.
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!
MapApp:
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
and tablets.
For this purpose I developed an Android application: MapApp.
The nice thing is that the 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 new 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
highly improved server performance:
MapApp6_240729.apk
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 an ongoing 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 it 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 foxhunt 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 things work:
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 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
exactly 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:
A total of 10 bearings can be save. When you reach 10,
the next save action wil overwrite the oldest saved bearing because the oldest bearing will probably have lost their importance.
And 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 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:
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, and Magenta, 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...)
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.
When desired,
the bearings of any remote station can be saved by
holding its marker for a second.
The Settings
screen:
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.
Older
MapApp versions: 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 will 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 prevent any
mistakes Version 240614 and higher have a text input filter.
so you can only input characters a-z, A-Z and 0-9 for your ID and for
Remote Stations.
Anything else will be removed by the filter.
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: Just empty the
textbox and MapApp will use the default server!
In
the second textbox you can change your remote ID, like your callsign or
any unique name. (3 or more characters, no spaces)
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.
Again,
hit
the Apply
Button to enter
your input and in the right column you will see the name for this
station pop up.
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...
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 in sequence.
A higher time interval means less internet traffic, so lower data
consumption (which is very low anyways...), and slower refresh of all
data.
If you want to stop displaying remote stations simply delete all remote
stations in
the textboxes and hit the Apply
button again.
The text to the right of each textbox should disappear
completely to show that you succesfully removed them.
Textbox number 7 accepts the lenght of your bearing lines. (Not the
remote
ones, those 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".
Hardware:
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!)
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.