Help - llinkz/directTDoA GitHub Wiki
- This is the original and default mode and it acts just like when you use the TDoA extension from any KiwiSDR webpage interface
- Make sure the "ultimateTDoA mode" box is unchecked
- Press and hold Left-Mouse button to drag the World Map to the desired location
- Enter the tune frequency between up to 30000 (kHz) and choose modulation accordingly (USB/LSB/AM/IQ..)
- Choose KiwiSDR nodes by Left-Mouse click on and select "Add:" command to add them to the list (you can remove undesired nodes from the list using the "Remove:" command)
- Hold Right-Mouse button to set the TDoA computed map geographical boundaries or select one of the presets from the top bar menu, you can cancel by drawing again by hand
- Type some text in the "POI Search" box to place a city or a TX site on the final TDoA map, if needed
- Click "Start Recording" button and wait until the file sizes are at least 300 kB each (files size are displayed in the right window)
- Click "Start TDoA proc" button and WAIT until the TDoA process stops by itself (it may take some CPU process time!)
- Calculated TDoA map is automatically displayed as 'Figure1' ghostscript pop-up window and will close by itself!
- A PDF file will be created automatically too, it takes time, so be patient and wait for the file to open by itself
- All TDoA process files (wav/m/pdf) will be automatically saved in a subdirectory of TDoA/iq/
Note: You can re-compute TDoA runs, if you want to exclude nodes, change map boundaries or change known location place for example, to do so use the "recompute" script included in each TDoA/iq/ subdirectory. Just modify what you need in the .m file, save and close the editor and octave will start automatically.
Warning: Don't forget to make the node "input(#index)" correct (line 12) because if you are modifying a 1-4 listing, final index should be 1-3 if you remove one node from the process.
- This is a more advanced way to run a TDoA process on a HF signal, the idea is to record as many KiwiSDR as you can just to make sure the signal has been recorded on a lot of nodes and then you use an interface to process as many runs as you want by changing node selection combos, changing the map boundaries, adding map marker or editing the IQs
- Check the "ultimateTDoA mode" box and "fav. only" box if needed
- Hold Right-Mouse button to drag a selection box and get a node listing of KiwiSDRs found within the area
- Enter the tune frequency between up to 30000 (kHz) and choose modulation accordingly (USB/LSB/AM/IQ..)
- Click "Start Recording" button
- Click "Stop Recording" button when the file sizes are at least 300 kB each (files size are displayed in the right window)
- All IQ recordings will be automatically saved in a new subdirectory of TDoA/iq/ and directory window will pop-up
- Now use "compute_ultimate.py" script to run TDoA processes (the script will automatically start if you check "run interface" box)
Note: You can change the map boundaries after step 2, uncheck "ultimateTDoA mode" box, set the map boundaries then click the checkbox again before starting the recording process.
This was initially created to automatically start IQ recordings when any 2G ALE traffic is detected in Sorcerer software but it can also be used from any compatible decoding software that can send TCP datas.
- In Sorcerer, activate the TCP server in the 2G ALE module using "Start TCP Server (ANSI)" menu
- Choose a TCP port of your choice (only private range is allowed in directTDoA, so from 49152 to 65535)
- In directTDoA, set the IP and port of the Sorcerer server using the "TCP settings" top bar menu
- Choose the duration of the IQ recordings using the same menu, consider a value of more than 10 seconds
- Tune a frequency of your choice in your receiver and adjust the frequency you type in directTDoA accordingly.
- Choose between regular or ultimate mode to set more than 6 nodes to record
- Check the "TCP client" box and let the job running alone itself. (checkbox is grayed if no freq typed and/or less than 3 nodes selected)
Note : "autorun" box will not work in ultimateTDoA mode
Note : You can change the trigger word that will be detected from the TCP stream to initiate recording Choose "TCP Settings" > "Set trigger word" and change for something like a 2G ALE ID, an AMD word or any other thing (regexp accepted) The default trigger word for Sorcerer is "[NORMAL MODE]", it will detected any 2G ALE traffic like this
Now when 2G ALE waveform is detected in Sorcerer, directTDoA will automatically start recording on selected nodes for your choosed duration. Then the IQ files will be saved and a file containing (full or partial) 2G ALE IDs with "CALL/CLOSING/SOUNDING" details will be created in same dir in order to keep a trace of what has been recorded.
Important note: Sorcerer TCP server is only listening to localhost/127.0.0.1, that means you'll be unable to connect to a computer running the decoding software from another LAN/WAN machine unless you do some network port forwarding. On the Windows machine I use to run Sorcerer software I'm using trivial_portforward micro-software to do this stuff - download it here: http://linkz.ddns.net/share/trivial_portforward.exe
usage: trivial_portforward.exe outside-port 127.0.0.1 sorcerer-TCP-server-port on the machine running Sorcerer
- Removes GNSS data from the IQ files, measure SNR and create a visual spectrogram of each IQ then merge all in a single PDF file, ranked by SNR value
usage: python plot_iq.py in a /TDoA/iq/ subfolder
- trims IQ recordings by removing undesirable parts in the IQ files. Use mouse click & drag to select the time part you want to keep.
Note: This script is going to backup your original IQ files in a subdirectory first, so no worries about experimenting.
If you just close the window, the IQ is left unmodified, if you just click once on the spectrogram view, the IQ will be deleted as well as if you select a time period that is less than 2 seconds.
usage: python trim_iq.py in a /TDoA/iq/ subfolder
- Get mapbox files with KiwiSDR nodes and TDoA coordinates locations
You don't need to run this script manually, it's done automatically on each run and .pdf will be included in the final TDoA result.
Known restriction: maximum 24 mapmarkers on the maps are allowed at this time
usage: python getmap.py <TDoA-LAT> <TDoA-LON> <known-LAT> <known-LON> <map-style> <filename.pdf>
- Removes GNSS data from kiwirecorder-TDoA-based IQ .wav files
Run this script to get <oldfile.wav>.nogps.wav files that can get opened and demodulated correctly (note: that's still IQ)
usage: python nognss.py in a /TDoA/iq/ subfolder
