Libre Radio Frequency Satellite Tracking. https://spacecruft.org/spacecruft/strf
 
 
 
 
Go to file
Mark Jessop 27ebfa91f2 Add separate makefiles for linux / OSX. Add sed fix to tleupdate. 2018-12-09 18:47:44 +10:30
contrib contrib: Add python script 'plot_spectrum' 2018-11-09 03:17:30 +01:00
data Add separate makefiles for linux / OSX. Add sed fix to tleupdate. 2018-12-09 18:47:44 +10:30
.gitignore Initial commit 2014-03-22 06:57:42 -07:00
Makefile.linux Add separate makefiles for linux / OSX. Add sed fix to tleupdate. 2018-12-09 18:47:44 +10:30
Makefile.osx Add separate makefiles for linux / OSX. Add sed fix to tleupdate. 2018-12-09 18:47:44 +10:30
README.md Update README.md 2018-10-28 16:55:15 +01:00
deep.c SGDP4 routines 2014-03-23 16:50:23 +01:00
dsmin.c Added rffit 2014-12-03 21:17:34 +01:00
ferror.c Minor updates 2015-04-16 09:31:57 +02:00
makefile Makefile: Add install target 2018-11-08 23:48:04 +01:00
rfedit.c GRAVES addition 2015-05-26 18:28:16 +02:00
rffft.c Add check to ensure channelsize and subint size result in an integer number of spectra per subint 2018-02-27 15:46:19 +01:00
rffind.c Added more functionality 2018-04-28 14:55:05 +02:00
rffit.c Sanitized fitting output 2018-12-08 23:18:23 +01:00
rfinfo.c Minor updates 2014-12-24 14:46:21 +01:00
rfio.c Minor bug fix 2018-04-25 15:02:23 +02:00
rfio.h General update 2015-06-03 21:26:22 +02:00
rfplot.c Write out frequencies with more decimals 2018-06-01 20:30:28 +02:00
rfpng.c Updated 2018-09-22 16:46:16 +02:00
rftime.c Functions split into own files 2014-03-23 15:18:54 +01:00
rftime.h Functions split into own files 2014-03-23 15:18:54 +01:00
rftrace.c Write out frequencies with more decimals 2018-06-01 20:30:28 +02:00
rftrace.h Added colors for different satellite types 2018-04-10 11:47:20 +02:00
satutl.c SGDP4 routines 2014-03-23 16:50:23 +01:00
satutl.h SGDP4 routines 2014-03-23 16:50:23 +01:00
sgdp4.c SGDP4 routines 2014-03-23 16:50:23 +01:00
sgdp4h.h SGDP4 routines 2014-03-23 16:50:23 +01:00
simplex.c Added rffit 2014-12-03 21:17:34 +01:00
tleupdate Add separate makefiles for linux / OSX. Add sed fix to tleupdate. 2018-12-09 18:47:44 +10:30
versafit.c Added rffit 2014-12-03 21:17:34 +01:00

README.md

STRF

strf is the satellite tracking toolkit for radio observations (RF). The software is designed to allow tracking of satellites from radio observations, using Doppler curves to identify satellites and/or determine their orbits.

The software is designed for linux operating systems, and will work with most software defined radios (SDRs), certainly those that are supported by http://www.gnuradio.org. The software comes with tools for data acquisition, performing FFTs to generate timestamped spectrograms (waterfall plots), and analysis, to extract and analyse Doppler curves.

Install

Run notes

  • You will need to set the following environment variables in your login file to run strf.
    • ST_COSPAR COSPAR number
    • ST_DATADIR path to strf directory
    • ST_TLEDIR path to TLE directory
    • ST_LOGIN space-track.org login info (of the form ST_LOGIN="identity=username&password=password")
  • You should install NTP support on the system and configure time/date to automatically synchronize to time servers.

Operation

The main use of strf is to acquire IQ data from SDRs and produce time stamped spectrograms with the rffft application. rffft will perform Fast Fourier Transforms on the input data to a user defined number of spectral channels (via the -c command line option), and integrate/average these to a user defined integration length (via the -t command line option). The output will be a *.bin file which contains a 256 byte human readable header (which can be inspected with head -c256), followed by a binary array of floating point numbers representing the power in the spectral channels. This is an example of the 256 byte header:

HEADER
UTC_START    2018-01-12T15:59:13.524
FREQ         2244000000.000000 Hz
BW           4000000.000000 Hz
LENGTH       0.998922 s
NCHAN        40000
NSUB         60
END

The header keywords are mostly self explanatory, though the NSUB keyword specifies that this single bin file contains 60 spectra.

rffft can read from a previously recorded IQ recording, but is usually operated in realtime mode by reading IQ data from a so-called named pipe or fifo (first in, first out). Here, the SDR writes IQ data to a fifo (instead of a file), and rffft reads the samples from the fifo. Using an airspy as an example, it could be configured as follows:

mkfifo fifo
rffft -i fifo -f 101e6 -s 2.5e6 &
airspy_rx -a 1 -f 101 -t 2 -r fifo

Here, we first make the fifo mkfifo fifo, then start rffft to read from the fifo (-i option), with a 101MHz center frequency (-f option) and a 2.5MHz sample rate (-s option). The & puts this command in the background. Finally, we start obtaining IQ data from the airspy with airspy_rx in the 2.5MHz sampling mode (-a 1) at the same frequency (-f 101, in MHz), with the 2.5MHz sample rate (-t 2) and writing the samples to the fifo (-r fifo). Similar scripts can be made with other SDRs, and otherwise with gnuradio flow graphs where the output file sink is a fifo.

The output spectrograms can be viewed and analysed using rfplot.