summaryrefslogblamecommitdiffstats
path: root/02.-Direction-Finding-Quickstart-Guide.md
blob: 84766cd3cf0794e29d6595c1d2fe29bfd61511de (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                                                                                                                                                                                                                                                                                     
 



                                                        
                                                                                 
                                                                              

                                                                         

                                                                                           







                                                                                                                                                 

                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                


                     
                                                                                                                                                                
 
                                                                                                                                        
 

                                                                                                                                   
                                                                                                                                                                                                                                
 
                                                                                                                                                                    
 



                         









                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                      

                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                                                           

                                            

                                                                                                                                                                                              



                                                                                 
                                                                                                                                                                                                                                                                                                          





                                                                                                                             

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               






                                                                                                                             
                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                


                                                                                                                                                                                                                                                                                                         

                                                                                                               

                                               
                                                                                                                                                                                                                         
 

                                                                                                                                                                                                         







                                                                                                                                             


                                                                                                                                             
                                                                                                       
                                                    
                                                                                                                                                                           
                                                                                                   

                                                                                                                                                                   

                                                                                                                                                                                                             


                                                                                                                                                                                                                                                                                    
This QuickStart guide aims to have you connected to the Android Direction Finding App as quickly as possible with the KrakenSDR running on a Raspberry Pi 4 or Orange Pi 5B (OPI5B) (the model with WiFi). However, please make sure you read the rest of the manual to understand how radio direction finding works.

## What you will need
This guide assumes that you have the following equipment

* KrakenSDR
* Raspberry Pi 4 or Orange Pi 5B (any RAM size models will work for both devices)
* Antenna array (five identical whip antennas with five identical coax cables)
* USA-A to USB-C data cable for Pi 4 / OPI5B to KrakenSDR data connection
* USB-C power supplies for Pi 4 / OPI5B and KrakenSDR

It assumes that you will be mounting your antenna array on a vehicle for direction finding.

The following graphic is an overview of the entire system.

![krakensdr-car-diagram-upgraded-with-gui](https://user-images.githubusercontent.com/78108016/170219365-bf74e2c7-125d-4738-8eef-8ccb79d23fb4.png)

# Setup Antenna Array
We recommend only using a Uniform Circular Antenna (UCA) array unless you are more experienced.

Consult our [antenna array spacing Excel sheet](https://github.com/krakenrf/krakensdr_docs/raw/main/antenna_array/Antenna_Array_Size_Calculator.xlsx) for info on appropriate array spacing. Please find more detailed information about the use of this Excel sheet on the [Antenna Array Setup](https://github.com/krakenrf/krakensdr_docs/wiki/04.-Antenna-Array-Setup#using-the-excel-calculator) page on this Wiki.

**Quick Antenna Setup Check:** Antenna hardware must be identical. Antenna cables must be of identical lengths and construction.

## Print Array Spacer

You may wish to use our antenna spacing template which will help with accurate antenna placement. The more accurate your array, the better your results will be.

Files for 3D printing and paper printing can be found in this repo at https://github.com/krakenrf/krakensdr_docs/tree/main/antenna_array

We can also recommend an alternative 3D printed spacer made by a customer on Thingiverse: https://www.thingiverse.com/thing:5787042

For both templates print the center pentagon and five arms separately, then glue them together. PAPER PRINTING NOTE: Please ensure that you DO NOT have any printer scaling turned on. The templates fit on a standard A4 paper.

**Each hole is spaced at 50mm radius intervals.** So you have radius spacings of 100mm, 150mm, 200mm, and 250mm. These spacings cover the following frequency range:

* 100mm : 510 - 1275 MHz 
* 150mm : 340 - 850 MHz
* 200mm : 255 - 637 MHz
* 250mm : 204 - 510 MHz

## Mount the antennas
The image below explains how the antennas should be mounted. Make sure the array is as straight as possible. ANT-0 must connect to CH-0 on the KrakenSDR. ANT-1 must connect to CH-1 and so on.

<p align="center">
<img src="https://user-images.githubusercontent.com/78108016/170187074-087d166e-ea8e-40b7-b53f-591730c72df5.png" width="1000" align="center"/>
</p>

# Burn SD Card Image

The next step is to burn the KrakenSDR Direction Finding (DF) image to an SD Card. For the Pi 4 image you will need an 8GB or larger card, and for the OPI5B image you will need a 16GB or larger card. We also recommend using class 10 or faster to ensure no file system slowdowns.

1. Using a PC, download the “Etcher” software from [balena.io/etcher](https://www.balena.io/etcher/). 
2. Download the latest Pi 4 KrakenSDR image zip file from the [Releases page](https://github.com/krakenrf/krakensdr_doa/releases) in this repository, or via the links in the repository README. The latest OPI5B image can be downloaded from this [Mega Upload folder (download the latest image by date)](https://mega.nz/folder/8T1jiIzR#_1Ujs4Eoy0wdRib9eHCVSg).
3. Use [Balena Etcher](https://www.balena.io/etcher/) to burn the image onto the SD Card. Using Etcher you can burn directly from the ZIP file. (There was a report that Etcher does not properly work on MacOS, MacOS users can try [Raspberry Pi's Imager](https://www.raspberrypi.com/software) instead)
4. Insert the card into your Raspberry Pi 4.

Note that USB-boot cannot be used. The reason is that the USB drive interferes with the KrakenSDR USB connection and can cause a loss of samples, which results in a loss of sample coherence.

# Connect to Mobile Hotspot

The next steps show how to run the software and get connected to the Android app.

1. Create a WiFi hotspot on your Android device with username and password credentials KrakenAndroid/KrakenAndroid. We also recommend changing your Android settings to force a 2.4 GHz hotspot connection as this is often more stable than 5 GHz, especially if you have your Pi 4 in a metal enclosure.

<p align="center">
<img src="https://user-images.githubusercontent.com/78108016/170163359-40238542-13db-4ac5-99bc-17de75235591.jpg" width="300">
</p>

2. Plug the KrakenSDR power port into a 5V/2.4A+ capable supply and plug the data port into the Raspberry Pi 4.
3. Boot up the Raspberry Pi 4 / OPI5B with the KrakenSDR Direction Finding SD card image installed. Keep your phone within WiFi range of the Pi 4 / OPI5B. Once booted, if the KrakenSDR hotspot is detected by the Pi 4 / OPI5B, it will automatically connect to the hotspot. You should be able to see the device with hostname 'krakensdr' show up under 'Connected devices' once connected.
4. Using the 'Details' button in Mobile Hotspot (or the equivalent for your particular phone), determine the IP address of the connected Raspberry Pi 4  / OPI5B. Google Pixel phones: It has come to our attention that Pixel phones do not have any ability to show IP addresses built in to the OS. You can try a Terminal Emulator App like [Termux](https://play.google.com/store/apps/details?id=com.termux). When the device is connected type in "ip neighb" to get the IP address of the connected device. If Termux does not work for you, try the Lan Scan feature in [Network Analyzer](https://play.google.com/store/apps/details?id=net.techet.netanalyzerlite.an&hl=en_US&gl=US). In both cases make sure WiFi is off, any only the mobile connection is active.

<p align="center">
<img src="https://user-images.githubusercontent.com/78108016/170163391-598f00cd-4536-4a42-a694-5eb5ed0a160f.jpg" width="300">
</p>

### Start and Control the KrakenSDR

1. Open a browser and connect to IP_ADDR:8080, replacing IP_ADDR with the IP Address of the Pi 4  / OPI5B server. You should see the Web GUI load. If it doesn't load, wait another 1-2 minutes in case the Pi 4  / OPI5B system is still booting.
2. The KrakenSDR will automatically have started processing. Ensure that the Connection Status, Sample Delay Sync and IQ Sync indicators are all green, or all turn green after a few seconds if you opened the page during calibration, and that the Frame Index is increasing.
3. Set the desired center frequency, gain, antenna array radius configuration, and other settings like VFO bandwidth and squelch for the specific signal of interest. Make sure to apply the update by clicking on “Update Receiver Parameters” after changing the centre frequency or gain settings.
4. Check the Spectrum screen to ensure that your signal is being received as expected.

![image](https://user-images.githubusercontent.com/78108016/170864249-d590de51-671f-41ea-a2b2-eb14c5df81d3.png)

## Alternative: Connect to Offline Pi 4 Hotspot

Alternatively, if you do not want to create a mobile WiFi hotspot with your phone (no data plan, no mobile reception etc) you can use the hotspot created by the Pi 4  / OPI5B. But there will be no internet connection:

1. Plug in your KrakenSDR power port to a 5V 2.4A capable supply and plug the data port into the Raspberry Pi 4  / OPI5B.
2. Boot up the Raspberry Pi 4  / OPI5B with the KrakenSDR Direction Finding SD card image. The Pi 4  / OPI5B will create its own WiFi hotspot if it does not find any external hotspot it can connect to.
3. Open the KrakenSDR Android app, and use the download offline maps feature to download the maps for the region that you will be working in.
4. Connect to the KrakenSDR Wi-Fi hotspot on your Android device, with credentials krakensdr/krakensdr.
5. The IP address of the Hotspot is fixed at 192.168.50.5
6. Enter the 192.168.50.5 in the KrakenSDR Android App settings.
7. You can now continue from "Start and Control the KrakenSDR" in the previous section.

# Use the Android App

<img src="https://user-images.githubusercontent.com/78108016/170032817-2db99bae-3787-41f8-af12-2749614951f8.png" width="200" align="right"/>
<img src="https://user-images.githubusercontent.com/78108016/170030726-35ee2dba-1530-4797-a2b3-38b2b4735b15.png" width="300" align="right" />

1. Open the KrakenSDR Android app and enter the IP Address of the Pi 4  / OPI5B server in the settings.
2. Create a log file by pressing on the save button.
3. Press the Start DOA button to begin logging data and generating the heatmap. The start DOA button looks like a diagonal arrow and is in the bottom right of the screen. 
4. Drive around to collect bearing data from multiple locations in order to triangulate the source.
5. You can use the built-in navigation feature in the Android App, or by having your navigator direct you so that you move in the direction of the plotted bearing.

Note: If you are testing the app while stationary, the apps default is to pause data collection while no movement is detected. Hence if you are not actually driving, you may see the app not receiving data.

This is to prevent bogus headings from being generated as GPS requires movement in order to calculate an accurate heading. If you are just testing, you can temporarily turn this off in the settings, under the "Logging Options", "Pause Data Collection When Stationary" setting.

Note 2: We recommend NOT enabling 'Plot Log File' during a drive as this could cause app sluggishness and a cluttered view of the map space. This feature is intended for post drive analysis.