Package: sats-receiver
Sats ReceiverSatellites data receiver based on GNURadioAboutRequirementsInstallationFrom sourceFrom PYPIUsageConfigureobservertlereceiverssatsfrequenciesmodulationsdecodersgr-satellitesMap ShapesshapespointsAboutThis program is written to automate the process of receiving signals from
various orbiting satellites on your SDR. The basis for digital signal
processing is GNU Radio - a free software development toolkit that provides
signal processing blocks to implement software-defined radios and
signal-processing systems. [wikipedia]For example, this program is perfect for receiving weather
satellites like NOAA (image below).If you have ideas or knowledge on how to improve this project, feel free to submit issues or pull requests.RequirementsThe program has only been tested on Linux. Work on Windows is not guaranteed!Python>=3.10 (or lower, see below)GNURadio>=3.10 (or lower if gr-soapy installed); GUI-modules is not requiredlibrtlsdr (if you use RTL-SDR)InstallationI recommended to use miniconda. So, first of all,install it.From sourcecd sats-receiver
conda create -n sats-receiver-env
conda activate sats-receiver-env
conda config --env --add channels conda-forge
conda config --env --set channel_priority strict
conda env update -f environment.yml
pip install -r requirements.txtFrom PYPIconda create -n sats-receiver-env python
conda activate sats-receiver-env
conda config --env --add channels conda-forge
conda config --env --set channel_priority strict
conda install gnuradio gnuradio-satellites
pip install sats-receiverUsageFirst, activate conda environment:conda activate sats-receiver-envpython -u -m sats_receiver [-h, --help] [--log LOG] [--sysu SYSU] configconfigConfig file path. SeeConfigure-h, --helpHelp message--log LOGLogging level, INFO default--sysu SYSUSystem Usages debug info timeout in seconds, 1 hour defaultFor example, simple command line to launch program:python -u -m sats_receiver /path/to/config.jsonYou can copy thedefault.jsonconfig file from the root of the repository to a
location of your choiceProgram home directory is~/sats_receiverLogfile saved to program home directory (~/sats_receiver/logs)Tle files stored to program home directory (~/sats_receiver/tle)ConfigureThe configuration file is in JSON format.You can copy thedefault.jsonfile from the root of the repository to a
location of your choice and edit it.FieldTypeDescriptionobserverObjectObserver/receiver parameters (seeobserver)tleObjectTLE data parameters (seetle)receiversArray of ObjectList of receivers parameters (seereceivers)observerFieldTypeDescriptionlatitudeNumberReceiver Latitude, degreeslongitudeNumberReceiver Longitude, degreeselevationNumber or nullReceiver Elevation, meters.nullmeans that the height will be obtained from the weather information or set to 0weatherBooleanWhether to receive weather information from the Internet. The weather will be taken from the service open-meteo.comtleFieldTypeDescriptionurlStringURL to TLE fileupdate_periodNumberTLE Update period, hours.receiversEach receiver object contain:FieldTypeDescriptionnameStringName of the ReceiversourceStringString value for gr-soapy driver key, e.g.rtlsdr,lime,uhd,remotetuneNumberReceiver tune frequency, Hzsamp_rateNumberReceiver sample rate, Hzoutput_directoryStringDirectory to save received files. You also might specify~symbol to specify User home directorysatsArray of ObjectList of Satellites configurations (seesats)enabledBooleanOptional.Enable or Disable this Receiver.trueby defaultserialStringOptional.Serial number of the receiver. Empty by defaultbiastBooleanOptional.Bias-T enable/disable (only for RTL-SDR at this time).falseby default.WARNING! Be careful when enabling this option! Use only if you know what it is and why!gainBooleanOptional.Receiver gain, dB.0by defaultfreq_correctionNumberOptional.Receiver frequency correction.0.0by defaultsatsEach satellite object contain:FieldTypeDescriptionnameStringName or NORAD number of the satellite. Note: name/norad-number must be contained in the above TLE filefrequenciesArray of ObjectList of frequency configuration (seefrequencies)enabledBooleanOptional.Enable/Disable this frequency.trueby defaultmin_elevationNumberOptional.Elevation angle above the horizon, degrees.0by default. Negative number is equivalent to 0dopplerBooleanOptional.Enable/Disable doppler correction.trueby defaultfrequenciesEach frequency object contain:FieldTypeDescriptionfreqNumberBasic signal frequency, HzbandwidthNumberReceived signal bandwidth, HzenabledBooleanOptional.Enable/Disable this frequency.trueby defaultsubnameStringOptional.Subname added to result filename. Empty by defaultfreq_correctionBooleanOptional.Correction for basic frequency, Hz.0by defaultmodeStringOptional.Modulation option (seemodulations).RAWby defaultdecodeStringOptional.Decoder option (seedecoders).RAWby defaultchannelsArray of NumberRequired only forGMSKmode.Demodulation baudrates, bpsgrs_fileStringOptional. Only forSATSdecoder.Seegr-satellitesfor detailsgrs_nameStringOptional. Only forSATSdecoder.Seegr-satellitesfor detailsgrs_noradIntegerOptional. Only forSATSdecoder.Seegr-satellitesfor detailsgrs_tlm_decodeBooleanOptional. Only forSATSdecoder.Save decoded telemetry.trueby defaultqpsk_baudrateNumberRequired only for(O)QPSKmode.(O)QPSK Baudrate, bpsqpsk_excess_bwNumberOptional. Only for(O)QPSKmode.(O)QPSK Excess bandwidth.0.35by defaultqpsk_ntapsIntegerOptional. Only for(O)QPSKmode.(O)QPSK number of taps.33by defaultqpsk_costas_bwNumberOptional. Only for(O)QPSKmode.(O)QPSK Costas bandwidth.0.005by defaultsstv_wsrNumberOptional. Only forSSTVdecoder.SSTV work samplerate.16000by defaultsstv_syncNumberOptional. Only forSSTVdecoder.SSTV syncing.trueby defaultmodulationsRAWAMFMWFMWFM_STEREOQUADQPSKOQPSKGMSKdecodersRAWSaved to 2-channel float32 WAV file withbandwidthsample rateCSOFTConstellation Soft Decoder - 1-channel binary int8. Suitable for further processing, for example, in SatDumpAPTSats-Receiver APT binary file format. SeeAPTSSTVSSTV saved to PNG image with EXIF. Supported modes:Robot (24, 24, 72)Martin (M1, M2, M3, M4)PD (50, 90, 120, 160, 180, 240, 290)Scottie (S1, S2, S3, S4)SATSSeegr-satellitesfor detailsLRPTNot implemented yetgr-satellitesSeegr-satellites DocumentationIMPORTANT:For this decoder need to leave themodulationonRAWThis decoder need to specify one of the parameters for recognize satellite option:grs_file - Path to your ownSatYAML-filegrs_name - Satellite name (may different fromsats name)grs_norad - Satellite NORAD IDList of builtin supported satellitesAdditionally supported satellites can be found in thesatyamldirectory of this repositoryMap ShapesMap shapes config filemap_shapes.jsoncan be found at the root of this repository.
Shapefiles can be downloaded fromNatural EarthFieldTypeDescriptionshapesArray of ArrayOptional.List of shapes data (seeshapes)shapes_dirStringOptional. Only whenshapesspecified.Path to directory contains shapes filepointsObject of ObjectOptional.Additional points to draw on map (seepoints)line_widthNumberOptional.Overlay lines width, pixels.1by defaultshapesEach shape contain:OffsetFieldTypeDescription0orderNumberNum in order of drawing. The more, the later it will be drawn.1shapefileStringFilename of shapefile in shapes dir. Can be separates file or ZIP archive2colorString or Array of IntegerColor. Can be string representing (rede.g.), web hex (#abcdefe.g.) or 3-4-Array 0-255 ([0, 127, 255]e.g.)pointsEach point object has name.If name isobserver, then lonlat field is filled with lonlat from apt-file.Each point object contain:FieldTypeDescriptioncolorString or Array of IntegerColor. Can be string representing (rede.g.), web hex (#abcdefe.g.) or 3-4-Array 0-255 ([0, 127, 255]e.g.)typeStringType of marker view. Can be+,osizeInteger or Array of IntegerIftypeis+then Array with line width and line length, pixels. Iftypeisothen Integer as radius of circle, pixelslonlatArray of NumberOptional.Only for non-observer name.2-Array of point longitude and latitude, degreesorderNumberOptional.Same as inshapes. Default to last