I’ve been trying for a couple weeks to get my KrakenSDR working reliably in the car and I’m facing numerous problems.
For my initial attempt I manually compiled and installed the software using the wiki guide on a Linux Mint 20.3 laptop.
Everything seemed to go ok, and upon issuing kraken_doa_start.sh I’m able to connect to localhost:8080 and it says the KrakenSDR is connected and I get bearings on the DOA screen. But the Android app on the phone never shows any bearings. I can also get to the server settings pages from the phone, so networking between the phone and laptop is working fine.
The only thing I see possibly wrong is nothing is listening on port 8081 on the laptop, which is where I think the phone gets the bearings, right? The kraken_doa_start.sh says it started on both 8080 and 8081, but netstat shows nothing listening on 8081.
Ok, so I decide to get a Pi 5 to solve the problem. I install the June 2024 image. I seem to get everything working on the bench. I move it all to the car.
The KrakenSDR now constantly connects/disconnects from the pi in the car (the blue LEDs just flash randomly). After $100 worth of new cables, power bricks, and car chargers I come to the conclusion the problem appears to be coming from the inverter I’m using in the car to run the pi’s plug-in 5V 5A power supply. And apparently nobody on the planet sells a battery pack or car charger that will put out 5A at 5V that the pi 5 needs. Everybody else’s high power products that I just bought apparently use higher voltage on USB for that much power. They’ll only do 3A max at 5V. If you want 25W it needs to be at 9V or 12V. The pi complains about limited power and just randomly shuts down with any other <5A power source. It won’t stay connected to the KrackenSDR when using the 5A supply on the 120V inverter. It works fine plugged into an extension cord from the house to the car in the driveway. (The laptop/krakensdr combo works fine on the inverter in the car - just no bearings)
For the limited time I can keep the pi running on either the power brick or car charger 3A supply before it randomly shuts down I’ve managed to get everything to work.
Could this just be because you are not moving? By default the app will pause bearings when you are stationary to avoid bad GPS heading data. If you want it to show bearings while you are stationary, you can change the logging setting in the settings to “Log Everything”.
For power in your car, do you have a cigarette lighter port? Instead of using an inverter a cigarette USB-C adapter should work fine. There are ones that have USB-C and USB-A ports, and the USB-C port can put out 60W or more.
For the Pi 5 you don’t actually need 5V/5A. The 5A requirement is just needed only if you are powering stuff via the USB ports on the Pi. In the Kraken’s case, it has its own power supply, and it draws zero power from the Pi 5 USB ports. So a 5V/3A supply is fine. Raspbian might show a message indicating that USB power is limited, but that doesn’t affect us.
I was moving during the tests with the laptop. I went out for a 20 minute drive and it never showed a single bearing while listening to the local NWS weather station.
On the laptop I see this:
$ netstat -an | grep :808
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Going to localhost:8081/DOA_value.html in a web browser gets “This site can’t be reached”
On the pi I see this:
$ netstat -an | grep :808
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Going to localhost:8081/DOA_value.html in a web browser gives me DOA data.
Is there a log file that might give some startup or error information on why 8081 isn’t listening on the laptop?
For the pi 5, my concern isn’t so much with the power messages the pi OS is displaying. The problem is the power indicator turns red and the Pi shuts down randomly when using those supplies.
On the pi I’ve tried various cig lighter chargers and power bricks. I’m testing further. I have a new 5A supply on the way.
You are using localhost on your laptop, which means that you are trying to connect to a server on your laptop, which doesn’t exist. You have to connect to the IP Address of the krakensdr. If you are on a standard WiFi network you can also just use the hostname “krakensdr:8081/DOA_value.html”
When in the car, are you using the mobile hotspot on your phone? If you’re on the mobile hotspot you have to input the IP Address of your KrakenSDR into the app. It will not work with the hostname, because hostname resolution does not work over mobile carriers.
I don’t think I can solve all your problems, but here are a few tips that might get you over a couple of hurdles.
Power: I use a Raspberry Pi 4, so a 5V @ 3A was supply was enough. This one worked great for me, and unlike the others I tried, it was RF quiet. Go to amazon and search for B0779D7DFG. This powers both my RaspberryPi 4, the KrakenSDR, and my cell phone. However per the spec’s it can’t do 5V @ 5A. Maybe, just maybe, you could gang two of the outputs together to get 5V @ 6A, I can think of a ton of reasons why that should not work (USB PD, etc), and if it were me I wouldn’t even waste time trying, but do what you want to do.
I also had trouble with bad USB cables and power delivery. The ones that worked for me are no longer in stock, so I can’t help you there.
Be aware that the RF gain control on the KrakenSDR is manually set. Adjusting it up a bit from the default really helped in scenarios where I could hear the signal on a good standalone radio, but could not get bearings with the KrakenSDR.
Do your first test against a strong and clear FM broadcast station.
Using the App
Start the phone app
Use the KrakenSDR server menu to open a web browser window to the RaspberryPI web server, and then verify the target frequency. This confirms that the phone and the Raspberry Pi are talking to each other.
Click the top “disk” icon to ‘open’ a new log file.
Click the Diagonal Arrow button (2nd from the bottom) to actually start the reception and enabling logging. It will turn orange or green. Orange means the car isn’t moving so logging won’t occur, and green means the car is moving fast enough to log if a bearing is found.
Ok, I fear I’m confusing things here. I have two different systems here. I have a linux laptop with the krakensdr software installed that I’m trying to get working and I also have a pi 5 with the software installed that works that I’m comparing the laptop to.
I’m using localhost on the laptop because that’s where the kraken software is running when I’m using the laptop.
I never get bearings on the phone from the laptop, but the phone can see the web pages on port 8080 just fine, so I know the IP is set correctly in the phone and the wireless is working. I assume the phone gets the bearing info from port 8081 on the kracken software. Is that correct? I assume that because port 8081 is not listening on the laptop. That seems to me to be the problem. Whatever provides port 8081 in the kraken software isn’t working correctly on the laptop.
When I use the pi 5 INSTEAD of the laptop (and change the IP in the phone accordingly), there IS a server on both 8080 and 8081 and the phone gets bearings. That’s why I think the problem is the missing server on 8081 on the laptop.
Port 8081 is being handled by a php process started by kraken_doa. Php was not installed on the laptop. I don’t think the wiki kraken_doa manual install instructions asked for php to be installed, so someone might want to update that.
I installed php and restarted kraken_doa and now port 8081 is listening and the android app is getting bearings from the laptop.
Also, I got a 12V to 5V 5A DC-DC converter, and the pi seems to be happy with that. So both problems solved.