Once again about heading

Krakensdr is a very interesting product. But a few important things are necessary for users.
One of the confusing things is heading. Many users have asked a question about this.
All the software developers’ decisions for Raspberry Pi and Android were based on the need for a car to move. But today is the middle of 2025. GNSS models with the heading function have appeared on the market. I bought a GNSS modul UM982 and two spiral antennas GNSS HX-901 (or two spiral antennas GNSS HA-609). If these antennas are placed at a distance of 1 meter, the module is able to provide heading with very high accuracy.The UM982 module is easily configured using the PC software. I have configured NMEA output of messages like $GNRMC and messages like $GNHDT. Next, connect the UART on GPIO header inc 8/10 (GPIO 15/14) Raspberry Pi 5.
The GPSD service normally receives these messages.



So what’s the problem? Why can’t you make changes to the program to directly transfer these heading values to the web interface and to the Androin application?
P.S.: I have not activated all other messages in the UM982 module.They are not required for this experiment…

I continued experimenting, and imitated a message like $GNHDM. Again, the GPSD service receives my messages well and recognizes the magnetic track. But this data is also not transmitted to the web interface and to the Android application. This means that any magnetic compass will not work with the krakensdr. If the truth heading $GNHDT and the magnetic track $GNHDM are well received by the GPSD service, but this data is not transmitted to the web interface and to the android application, how else can this data be transmitted to the web interface and to the android application???

I’ve read all the forum posts about heading. All the recommendations and tips are something like this- we don’t know which compass to use, we’re not sure if the GPSD service will work with your GPS and your compass. Now that it is clear that the GPSD service accepts both “true heading” and “magnetic heading”, what else can be done to ensure that heading is transmitted from raspberry pi 5 ?

Yes compasses haven’t been implemented in the KrakenSDR software yet. It’s something on the todo list though. But if GPSD now natively supports compasses then this makes the job much easier.

Unfortunatley until we get to that on the list, it would be up to you to create the code to support your device.

Greetings to all kraken users. The discussion about heading and the magnetic compass is already very old. But this issue remains unresolved. So I solved this problem on my own. This is not a ready-to-use solution. I’ve never used raspberry pi before, and I’ve never written python code. Nevertheless, in two days I was able to figure it out enough to do it my way. In short, I had to programmatically replace the field in the NMEA sentence. I took the data from the “heading” field of $GNHDT (or $GNTHS), and inserted this data into the “track” field of $GNRMC. Next to the file "kraken_sdr_signal_processor.py " added two lines and changed one line. Now, using the compass described at the beginning of this topic, I get the “heading” change in the Android app. I am very pleased with the result, and now I will try to output this data to the web interface. I will also try to use $GNTHS directly without replacing fields in $GNRMC.

1 Like

News No. 2
This device is very promising. And it needs to be called something on the forum. From now on, I will refer to the device as DATHFK (dual antenna true heading for kraken). This device is the most promising for heading. Magnetic compasses have many disadvantages, and I personally won’t talk about them anymore. Now, adding magnetic compass support for kraken is no longer of interest to me. I will continue to try to improve the way krakensdr works with DATHFK. As for the hardware, I’ll call it DATHFK_hard. Everything related to the software part, I will call DATHFK_soft.
P.S. If I make a mistake in something, or offer harmful advice, I ask the respected moderator to report it.

News No. 3.
Today I was working on improving DATHFK_soft. My concept is to completely abandon the “track” when the car is moving and use only True Heading. Now, regardless of the movement of the car, there will always be the correct heading.Today’s work on DATHFK_soft has brought the following results. True Heading is now transmitted to both the web interface and the Android app. So far, everything is working well, and no bugs have been detected (in fact, there are always bugs, maybe I’ll find them later).When I have free time, I will continue to work on DATHFK_hard and DATHFK_soft. I have a work plan for the device and possibly in the future for other additions such as “Pickle button for jammer hunting”…

My equipment…

test transmitter


kraken antennas J-pole 433MHz

Two spiral GNSS antennas on a magnetic base.

DATHFK device prototype

Kraken SDR

I am very, very interested in this.

No problems. I will spend more time to simplify and minimize the design. And of course, for everyone who wants to, I will give information on how to do this and publish the scheme and firmware.

2 Likes

Greetings to all KRAKEN users. I have finished the DATHFK experiments. Everything is working fine for me at the moment. Unfortunately, I do not have the necessary programming qualifications for Linux and Python, and therefore an intermediate microcontroller is used in my device to create a modified NMEA message. To do this, I chose raspberry pi pico RP2040. Before publishing all the files for DATHFK, I suggested to repeat the build and test my device to a Kraken user from the USA. If everything goes well, then by the middle of September 2025 I will publish my files for everyone who wants to replicate this device. In the meantime, I went on vacation. Good luck to everyone.

1 Like

A really working prototype of DATHFK (there are no two GNSS antennas in the photo).

I ordered the parts to assemble the device in a compact form.

Today I recorded a short video about the work of DATHFK. Unexpectedly for me, the Kraken SDR android application with my DATHFK started working normally in the android simulator (windows computer). Previously, I was unable to run the app normally in the simulator.

Greetings to all KRAKEN users..
At the moment, I have not yet received feedback from a kraken user from the USA (repeat and test DATHFK). However, I decided to open access to the file folder for review (I promised earlier that by the middle of September).There is enough information in these files for DIY enthusiasts. You can start viewing the file DATHFK step by step.

A new feature DATHFK.
I used the PICO W RP2040 (wifi & bluetooth) and new firmware for PICO W RP2040.
DATHFK now transmits (at the same time) modified NMEA RMC messages in three ways:

  • UART for Kraken SDR operation.
  • USB port for PC (any GPS application on PC, for example: Google Earth, OZI Explorer for Windows or something else).
  • Bluetooth for use as BT GPS (any smartphone maps App through the virtual BT port or Google Earth on PC or OZI Explorer on PC or something else).

Thus, DATHFK works both as an external GPS and as an accurate course indicator for various applications.
The firmware for PICO W RP2040 with the BT GPS function has not yet been uploaded to the folder.
I’m still waiting for the details to assemble the device into a compact form.

The details have arrived.The assembly to the compact form is finished. It remains to make two transparent lids.

This is the entire DATHFK suite. Two antennas, UM982 module with Pico RP2040 microcontroller, cable for connection to Pi5.

The assembly is finished. I’m not planning any hardware changes yet. The program is also completely satisfied so far. I’ve solved the problems with HEADING for myself.

2 Likes

Yesterday I received a review from a Kraken user from the USA (beta tester). He was able to assemble and test DATHFK. This means that using my files published above, you can assemble a working device if you are a DIY enthusiast. As for the independent device report..If the beta tester wishes this, he will post his report here himself.

1 Like

I’m the “USA Beta Tester” for the DATHFK, and I am thrilled to report that it works. What it does is use two GPS antennas; one determines the vehicle’s location, and the other determines the heading or direction the vehicle is pointing. While the Kraken app does an excellent job of this when the vehicle is moving, after you come to a stop, it loses its bearings, and either starts randomly jumping around, or it defaults to pointing north. Because the Kraken app plots the bearing on the map in relation to the direction it thinks the array is pointing, any errors in the array direction lead to corresponding errors in where the app plots the signal as being.

The DATHFK solves this problem, and gives you an extremely accurate (1/10th degree) heading all the time, moving or stationary. I leave my Kraken running in my vehicle from 8am to 8pm, even while I’m at work. When stationary, the direction/heading data is rock solid.

I’m hunting a person who is mobile, with a low powered transmitter, and who is active at random times from very different locations. I drive around, stop, and monitor over and over again. Before having this, every time I parked my truck, I would have to get out my phone and a map program to get my Lat/Lon coordinates, and then get out of the truck to take a compass bearing for the direction it was facing, and then enter these readings into the Kraken app. For places I went on a regular basis, I kept notes, so I didn’t have to take new readings every time, but this meant that every stop required several minutes of time setting up the Kraken, and I often made 5-10 stops in a day.

I’ve been using it 6-10 hours a week for the past two weeks, and 3-5 hours a week for the two weeks prior to that. It pretty much worked right out of the box so to speak.

I had to solder header pins onto the circuit boards and crimp some cables to connect the devices, program the Pi Pico and UM982 GPS Module, burn the custom RPi5 image on a SD card, and assemble the PCBs into an enclosure. I beat my head against a wall for almost a week trying to get the device to get a GPS fix before realizing that I’d totally forgotten to program the UM982!

You will need a Windows PC to program the UM982, but not for direction finding.

There is one bug that still needs to be worked out. On the Kraken app map, there are several pieces of information that are shown: First is one’s location, second is the DOA lobes, third is the bearing lines to the transmitter if you have it set to plot the log file, and fourth are the various direction and heading lines.

The bug is that if the Kraken is not detecting any signals above the squelch threshold, only your location point updates on the map, and the DOA lobes, bearing lines and log file plots stay at the last place it detected a signal at. So, you can drive 5 miles, and it will look like you haven’t moved.

My solution to this is to quickly key up my hand held radio; as soon as the Kraken sees the signal, it updates all the data to the new location.

I have parts on order to build two more setups for my partners, and I’ll post updates when I get them working.