Kraken Keeps Disconnecting

My Kraken, which has been working fine for a while, now keeps disconnecting either immediately after starting up, or as soon as it detects a signal. These signals are not too high power and thus overloading the kraken. Its running on a Pi5, and I’ve tried with the correct rated power supplies, as well as higher wattage ones.

Can anyone offer any support up, I’m planning on reflashing the Pi5, however I don’t want to have to reflash it image regularly.

If the reflash doesn’t help, check the logs and please go through these steps 07. KrakenSDR Troubleshooting · krakenrf/krakensdr_docs Wiki · GitHub.

It’s very odd that you say it’s disconnecting after a signal is detected though.

It seems to happen, when the POST or RDF mapper is selected to go to my own server with web socket attached.

Reflash did not help. And have been looking through the log files for errors.

Are you using RDF mapper? What sort of server are you running?

Might be an exception caused by a bad connection.

I’m currently trying to connect it to my own php server. Would appreciate any knowledge oh how the save.php file should look as far as what the kraken post request looks like. Because to me it looks like it should work just capturing the post request?

If you’re using RDF Mapper’s system you can just copy their save.php file exactly and it should work. I can’t give their code out publically as RDF mapper isn’t open source (tho it’s just a simple line piece of code).

I don’t need to know how their save file works, but I do need to know what the kraken is POSTing to the save file. As it doesnt seem to take a normal POST request?

Seems to be a software issue. I kind of need some help with this ASAP as this has been holding me up for weeks now and I need to get my mapping server working!

Any time I set it to FULL POST or RDF Mapper I get:


Exception in thread Thread-1:
Traceback (most recent call last):
  File "/home/krakenrf/miniforge3/envs/kraken/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/home/krakenrf/krakensdr_doa/krakensdr_doa/_sdr/_signal_processing/kraken_sdr_signal_processor.py", line 853, in run
    self.latitude, self.longitude, int(DOA_str), self.heading
ValueError: invalid literal for int() with base 10: '323.0'```

No POST is actually sent, it seems to erroring before it gets to it.  But it only has that issue when in that setting.

You might be on an old code version. I see that there is a fix already in our latest version of the code. Basically, just change:

int(DOA_str)

to

int(float(DOA_str))

@krakenrf_carl

I’ve fixed the FULL POST so that it now works. I had to change if doa_result_log: to if doa_result_log.size > 0.


elif self.DOA_data_format == "Full POST":
    time_elapsed = time.time() - self.rdf_mapper_last_write_time
    if time_elapsed > 1:  # reuse RDF mapper timer, it works the same
        self.rdf_mapper_last_write_time = time.time()

        myip = "127.0.0.1"
        try:
            myip = json.loads(requests.get("https://ip.seeip.org/jsonip?").text)["ip"]
        except Exception:
            pass

        message = ""
        if doa_result_log.size > 0:
            doa_result_log = doa_result_log + np.abs(np.min(doa_result_log))
            for i in range(len(doa_result_log)):
                message += ", " + "{:.2f}".format(doa_result_log[i])

        post = {
            "id": self.station_id,
            "ip": myip,
            "time": str(self.timestamp),
            "gps_timestamp": str(self.gps_timestamp),
            "lat": str(self.latitude),
            "lng": str(self.longitude),
            "gpsheading": str(self.heading),
            "speed": str(self.speed),
            "radiobearing": DOA_str,
            "conf": confidence_str,
            "power": max_power_level_str,
            "freq": str(write_freq),
            "anttype": self.DOA_ant_alignment,
            "latency": str(self.latency),
            "processing_time": str(self.processing_time),
            "doaarray": message,
            "adc_overdrive": self.adc_overdrive,
            "num_corr_sources": self.number_of_correlated_sources[0],
            "snr_db": self.snrs[0],
        }

        try:
            self.pool.apply_async(requests.post, args=[self.RDF_mapper_server, post])
        except Exception as e:
            print(f"NO CONNECTION: Invalid Server: {e}")```

Thanks, but the fix I mentioned didn’t work?