Created
March 5, 2020 07:33
-
-
Save nickoe/3f3c11314ee8c5699a3f7671cb3d5897 to your computer and use it in GitHub Desktop.
radiosonde_auto_rx Jutland config example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[nickoe@z620 auto_rx]$ pwd | |
/home/nickoe/radiosonde_auto_rx/auto_rx | |
[nickoe@z620 auto_rx]$ python auto_rx.py -c station.cfg | |
# | |
# Radiosonde Auto RX v2 Station Configuration File | |
# | |
# Copy this file to station.cfg and modify as required. | |
# | |
################### | |
# RTLSDR SETTINGS # | |
################### | |
[sdr] | |
# Number of RTLSDRs to use. | |
# If more than one RTLSDR is in use, multiple [sdr_X] sections must be populated below | |
sdr_quantity = 1 | |
# Individual SDR Settings. | |
[sdr_1] | |
# Device Index / Serial | |
# If using a single RTLSDR, set this value to 0 | |
# If using multiple SDRs, you MUST allocate each SDR a unique serial number using rtl_eeprom | |
# i.e. to set the serial number of a (single) connected RTLSDR: rtl_eeprom -s 00000002 | |
# Then set the device_idx below to 00000002, and repeat for the other [sdr_n] sections below | |
device_idx = 00000003 | |
# Frequency Correction (ppm offset) | |
# Refer here for a method of determining this correction: https://gist.github.com/darksidelemm/b517e6a9b821c50c170f1b9b7d65b824 | |
#ppm = 75 | |
#ppm = 90 | |
ppm = 0 | |
# SDR Gain Setting | |
# Gain settings can generally range between 0dB and 40dB depending on the tuner in use. | |
# Run rtl_test to confirm what gain settings are available, or use a value of -1 to use hardware automatic gain control (AGC). | |
# Note that this is an overall gain value, not an individual mixer/tuner gain. This is a limitation of the rtl_power/rtl_fm utils. | |
#gain = -1 | |
#gain = 40.2 | |
#gain = 20.7 | |
#gain = 10.0 | |
gain = 12.5 | |
# Bias Tee - Enable the bias tee in the RTLSDR v3 Dongles. | |
bias = False | |
#[sdr_2] | |
# As above, for the next SDR, if used. Note the warning about serial numbers. | |
#device_idx = 00000002 | |
#ppm = 0 | |
#gain = -1 | |
#bias = False | |
# Add more SDR definitions here if needed. | |
############################## | |
# RADIOSONDE SEARCH SETTINGS # | |
############################## | |
[search_params] | |
# Minimum and maximum search frequencies, in MHz. | |
# Australia: Use 400.05 - 403 MHz | |
# Europe: Use 400.05 - 406 MHz | |
# US: | |
# Some areas have transitioned to the 400.05 - 406 MHz band. | |
# Some areas are using ~1680 MHZ sondes, which use channels of 1676, 1678, 1680 and 1682 MHz (Thanks Tory!) | |
# In these areas I suggest using the whitelist feature below instead of using the peak-detect search. | |
# You may also need to apply a small offset to the frequency for decoding reliability (i.e. 1676.025 MHz) as | |
# the sondes are often off-frequency. For now, check in something like GQRX to get an idea of what offset is required. | |
#min_freq = 401.0 | |
#max_freq = 403.0 | |
min_freq = 400.9 | |
max_freq = 405.9 | |
# Have the decoder timeout after X seconds of no valid data. | |
rx_timeout = 180 | |
# Frequency Lists - These must be provided as JSON-compatible lists of floats (in MHz), i.e. [400.50, 401.520, 403.200] | |
# White-List - Add values to this list to *only* scan on these frequencies. | |
# This is for when you only want to monitor a small set of launch frequencies. | |
whitelist = [] | |
# Black-List - Any values added to this list will be removed from the list of detected peaks. | |
# This is used to remove known spurs or other interferers from the scan list, potentially speeding up detection of a sonde. | |
#blacklist = [403.200] | |
#blacklist = [403.237, 403.240] | |
blacklist = [402.00, 402.001, 403.237, 403.240] | |
# Grey-List - Any values in this list will be added to the start every scan run. | |
# This is useful when you know the regular frequency of a local sonde, but still want to allow detections on other frequencies. | |
greylist = [401.870, 402.870, 402.500] | |
#################### | |
# STATION LOCATION # | |
#################### | |
# Used by the Habitat Uploader, APRS Uploader, and by Rotator Control | |
[location] | |
station_lat = 57.01191 | |
station_lon = 9.97619 | |
station_alt = 0.0 | |
# Location Code (Maximum 5 characters) | |
# This is ONLY used by the Intermet iMet decoder, to provide additional entropy when | |
# generating a unique ID for the iMet sondes, which do not transmit their serial number. | |
# If you know the WMO number of the launch site, then this would be a good value to use. | |
# Otherwise the ICAO Code of the airport nearest to the launch site would also work. | |
# If you are not expecting to RX iMet sondes, then this can be left at its default. | |
# NOTE: Only change this if you are 100% sure you will only be receiving sondes from a single launch location! | |
station_code = SONDE | |
# Station Position from GPSD | |
# If your station is likely to move, then you may wish to have your station position updated from GPSD. | |
# NOTE: This feature is intended to make life slightly easier when using an auto_rx station in a portable | |
# capacity, in particular when using a rotator. For the web interface to start up correctly, a lat/lon still | |
# needs to be entered above. | |
# For balloon chasing, chasemapper is much better suited: https://github.com/projecthorus/chasemapper | |
gpsd_enabled = False | |
gpsd_hostname = localhost | |
gpsd_port = 2947 | |
########################### | |
# HABITAT UPLOAD SETTINGS # | |
########################### | |
# Settings for uploading to the Habitat HAB tracking database ( https://tracker.habhub.org/ ) | |
# Note that the habitat upload will use a fixed string format of: | |
# `$$<payload_callsign>,<sequence number>,<time>,<lat>,<lon>,<alt>,<speed>,<temp>,<humidity>,<comment>*<CRC16>` | |
# Where callsign is set below. Temp values are only supported on the RS41 at this time. | |
# If you use a custom payload callsign, you will need to create an appropriate payload document for it to appear on the map | |
# | |
[habitat] | |
habitat_enabled = True | |
# Uploader callsign, as shown above. PLEASE CHANGE THIS TO SOMETHING UNIQUE. | |
uploader_callsign = N0CALL | |
# Upload listener position to Habitat? (So you show up on the map) | |
upload_listener_position = True | |
# Uploader Antenna Description. | |
# If upload_listener_position is enabled, this information will show up in your station description on the habhub map. | |
uploader_antenna = 1/4 wave monopole | |
# Habitat Upload Rate - Upload a packet every X seconds. | |
# IMPORTANT NOTE: Please remember that the use of Habitat for tracking radiosondes is secondary to its primary purpose of | |
# tracking amateur high-altitude balloon flights. It is STRONGLY RECOMMENDED that the update rate is not set to anything | |
# lower than 30 seconds, to avoid congesting the system and causing higher processing latencies. If this becomes a problem, | |
# then we may have to implement server-side rate-limiting to avoid affecting performance. | |
upload_rate = 30 | |
# Payload callsign - if set to <id> will use the serial number of the sonde and create a payload document automatically | |
# WARNING - If running multiple RTLSDRs, setting this to a fixed callsign will result in odd behaviour on the online tracker. | |
# DO NOT SET THIS TO ANYTHING OTHER THAN <id> IF YOU ARE USING MORE THAN ONE SDR! | |
payload_callsign = <id> | |
######################## | |
# APRS UPLOAD SETTINGS # | |
######################## | |
# Settings for uploading to APRS-IS | |
[aprs] | |
# Enable APRS upload (you will also need to change some options below!) | |
aprs_enabled = False | |
# APRS-IS Login Information | |
# The aprs_user field can have an SSID on the end if desired, i.e. N0CALL-4 | |
#aprs_user = N0CALL | |
#aprs_pass = passcode_here | |
# APRS Upload Rate - Upload a packet every X seconds. | |
upload_rate = 30 | |
# APRS-IS server to upload to. | |
# Default to radiosondy.info for now, to allow stats to show up on http://radiosondy.info | |
# Packets are forwarded onto the rest of the APRS-IS network from radiosondy.info. | |
# If you wish to inject packets directly into the APRS-IS network, use rotate.aprs2.net | |
aprs_server = radiosondy.info | |
# Object name / Callsign to be used when uploading to APRS-IS (Max 9 chars) | |
# Should be either a callsign with a -11 or -12 suffix (i.e. N0CALL-12), | |
# or <id>, which will be replaced with the radiosondes serial number. | |
# WARNING - If running multiple RTLSDRs, setting this to a fixed callsign will result in odd behaviour on the online tracker. | |
# DO NOT SET THIS TO ANYTHING OTHER THAN <id> IF YOU ARE USING MORE THAN ONE SDR! | |
aprs_object_id = <id> | |
# Select between uploading the radiosonde position as either an APRS Object, or as a position report. | |
# False = Upload position as an Object, sourced from <aprs_user> | |
# True = Position Report (with emulated iGating via <aprs_user>) | |
# Note that if using Position Reports with aprs_object_id set to <id>, then non-AX.25 compatible callsigns will be generated. | |
# If in doubt, leave this at False. | |
aprs_position_report = False | |
# The APRS-IS beacon comment. The following fields can be included: | |
# <freq> - Sonde Frequency, i.e. 401.520 MHz | |
# <type> - Sonde Type (RS94/RS41) | |
# <id> - Sonde Serial Number (i.e. M1234567) | |
# <vel_v> - Sonde Vertical Velocity (i.e. -5.1m/s) | |
# <temp> - Sonde reported temperature. If no temp data available, this will report -273 degC. Only works for RS41s. | |
# The default comment (below) is compatible with radiosondy.info's parsers, and should only be modified | |
# if absolutely necessary. | |
aprs_custom_comment = Clb=<vel_v> t=<temp> <freq> Type=<type> Radiosonde http://bit.ly/2Bj4Sfk | |
# APRS Station Location Beaconing | |
# If enabled, you will show up on APRS using the aprs_user callsign set above. | |
# This also requires your station location to be set in the above [location] section. | |
station_beacon_enabled = True | |
# Station beaconing rate, in minutes. | |
station_beacon_rate = 30 | |
# Station beacon comment. | |
# <version> will be replaced with the current auto_rx version number | |
station_beacon_commment = radiosonde_auto_rx SondeGate v<version> | |
# Station Beacon Icon | |
# The APRS icon to use, as defined in http://www.aprs.org/symbols.html | |
# Note that the two characters that define the icon need to be concatenated. Examples: | |
# Antenna Tower = /r | |
# House with Yagi = /y | |
# Satellite Dish = /` (This is required if you want to show up on radiosondy.info's station list.) | |
station_beacon_icon = /` | |
########################### | |
# CHASEMAPPER DATA OUTPUT # | |
########################### | |
# Settings for pushing data into Chasemapper and/or OziPlotter | |
# Oziplotter receives data via a basic CSV format, via UDP. | |
# Chasemapper can receive data in either the basic CSV format, or in the more descriptive 'payload summary' JSON format. | |
[oziplotter] | |
# How often to output data (seconds) | |
ozi_update_rate = 5 | |
# Enable the 'OziMux' basic CSV output | |
# Note - this cannot be enabled in a multi-SDR configuration. | |
ozi_enabled = False | |
# OziMux UDP Broadcast output port. | |
# Set to 8942 to send packets directly into OziPlotter, or set to 55681 to send via OziMux | |
ozi_port = 8942 | |
# Payload summary UDP output, which is the preferred input if using ChaseMapper. | |
# Using this output allows multiple sondes to be plotted in Chasemapper. | |
# As of 2019-05, this is enabled by default. | |
payload_summary_enabled = True | |
payload_summary_port = 55673 | |
####################### | |
# EMAIL NOTIFICATIONS # | |
####################### | |
# Sends an email notification to the specified address when a new Sonde is detected | |
[email] | |
email_enabled = False | |
# Server details. Note that usually Port 465 is used for SSL auth, and 587 is used for TLS. | |
smtp_server = localhost | |
smtp_port = 25 | |
# Authentication type, Valid options are: None, TLS, and SSL | |
smtp_authentication = None | |
# If using authentication, the following fields need to be populated: | |
smtp_login = None | |
smtp_password = None | |
# 'Source' e-mail | |
from = sonde@localhost | |
# Destination emails. You can send to multiple addresses by separating each address with a semicolon, | |
# i.e. [email protected];[email protected] | |
to = [email protected] | |
# Custom subject field. The following fields can be included: | |
# <freq> - Sonde Frequency, i.e. 401.520 MHz | |
# <type> - Sonde Type (RS94/RS41) | |
# <id> - Sonde Serial Number (i.e. M1234567) | |
subject = <type> Sonde launch detected on <freq>: <id> | |
################### | |
# ROTATOR CONTROL # | |
################### | |
# auto_rx can communicate with an instance of rotctld, on either the local machine or elsewhere on the network. | |
# This is, admittedly, a bit of a waste of an az/el rotator setup when a vertical antenna usually works fine, | |
# but it's still fun :-) | |
[rotator] | |
# WARNING - This should not be enabled in a multi-SDR configuration. | |
# Your station location (defined in the [location] section above) must also be defined. | |
rotator_enabled = False | |
# How often to update the rotator position. (Seconds) | |
update_rate = 30 | |
# Only move the rotator if the new position is more than X degrees in azimuth or elevation from the current position. | |
rotation_threshold = 5.0 | |
# Hostname / Port of the rotctld instance. | |
rotator_hostname = 127.0.0.1 | |
rotator_port = 4533 | |
# Rotator Homing. | |
# If enabled, turn to a 'home' location when scanning for sondes. | |
# This could be used to point an antenna at a known radiosonde launch location. | |
rotator_homing_enabled = False | |
# Wait until x minutes after no sonde data received before moving to the home location. | |
rotator_homing_delay = 10 | |
# Rotator home azimuth/elevation, in degrees true. | |
rotator_home_azimuth = 0.0 | |
rotator_home_elevation = 0.0 | |
########### | |
# LOGGING # | |
########### | |
[logging] | |
# If enabled, a log file will be written to ./log/ for each detected radiosonde. | |
per_sonde_log = True | |
########################### | |
# WEB INTERFACE SETTINNGS # | |
########################### | |
[web] | |
# Server Host - Can be set to :: to listen on IPv6 | |
web_host = 0.0.0.0 | |
# Server Port - Ports below 1024 can only be used if you run auto_rx as root (not recommended) | |
#web_port = 5000 | |
web_port = 8081 | |
# Archive Age - How long to keep a sonde telemetry in memory for the web client to access, in minutes | |
# Note: The higher this number, the more data the client will need to load in on startup | |
archive_age = 120 | |
# Enable some additional controls on the auto_rx web interface. | |
# There is currently no authentication for these features, so use this with caution! | |
# Do not set this to True on an internet-facing auto_rx instance!!! | |
web_control = False | |
################## | |
# DEBUG SETTINGS # | |
################## | |
[debugging] | |
# WARNING - Enabling these settings can result in lots of SD-card IO, potentially | |
# reducing the life of the card. These should only be enabled to collect data for | |
# debugging purposes. | |
# Save the audio that a detection pass is run over to: detect_<SDR_ID>.wav | |
# This file is over-written with every new detection. | |
save_detection_audio = False | |
# Save the audio from the output from a sonde decode chain to decode_<SDR_ID>.wav | |
# This file is over-written with each new sonde decoded for a particular SDR. | |
save_decode_audio = True | |
# Save the decimated IQ data from an experimental sonde decode chain to decode_IQ_<SDR_ID>.bin | |
# This will be in complex signed 16-bit int format, and may be either 48 kHz or 96 kHz. | |
# Note: This will use a LOT of disk space. | |
save_decode_iq = False | |
##################### | |
# ADVANCED SETTINGS # | |
##################### | |
# These control low-level settings within various modules. | |
# Playing with them may result in odd behaviour. | |
[advanced] | |
# Scanner - Receive bin width (Hz) | |
search_step = 800 | |
# Scanner - Minimum SNR for a peak to be detected. The lower the number, the more peaks detected. | |
snr_threshold = 10 | |
# Scanner - Maximum number of peaks to search through during a scan pass. | |
# Increase this if you have lots of spurious signals, though this will increase scan times. | |
max_peaks = 10 | |
# Scanner - Minimum distance between detected peaks (Hz) | |
min_distance = 1000 | |
# Scanner - Scan Dwell Time - How long to observe the specified spectrum for. | |
scan_dwell_time = 20 | |
# Scanner - Detection Dwell time - How long to wait for a sonde detection on each peak. | |
detect_dwell_time = 5 | |
# Scanner - Delay between scans. We should delay a short amount between scans to allow for decoders and other actions to jump in. | |
scan_delay = 10 | |
# Quantize search results to x Hz steps. Useful as most sondes are on 10 kHz frequency steps. | |
quantization = 10000 | |
# Decoder Spacing Limit - Only start a new decoder if it is separated from an existing decoder by at least | |
# this value (Hz). This helps avoid issues where a drifting radiosonde is detected on two adjacent channels. | |
# If you regularly encounter radiosondes on adjacent (10kHz) channels, then set this value to 5000. | |
decoder_spacing_limit = 15000 | |
# Temporary Block Time (minutes) - How long to block encrypted or otherwise non-decodable sondes for. | |
temporary_block_time = 120 | |
# Upload when (seconds_since_utc_epoch%upload_rate) == 0. Otherwise just delay upload_rate seconds between uploads. | |
# Setting this to True with multple uploaders should give a higher chance of all uploaders uploading the same frame, | |
# however the upload_rate should not be set too low, else there may be a chance of missing upload slots. | |
synchronous_upload = True | |
# Only accept a payload ID as valid until it has been seen N times. | |
# This helps avoid corrupted callsigns getting onto the map. | |
payload_id_valid = 5 | |
# Paths to the rtl_fm and rtl_power utilities. If these are on your system path, then you don't need to change these. | |
sdr_fm_path = rtl_fm | |
sdr_power_path = rtl_power | |
################################ | |
# DEMODULATOR / DECODER TWEAKS # | |
################################ | |
# RS41 / LMS6 Drift Tweak (Regular demod chain only) | |
# This tweak adds a high-pass filter into the RS41 and LMS6 demod chains. This extends the frequency offset range | |
# the demod chain can handle, with some performance penalty. This is only required when using RTLSDRs | |
# with worse than 2-3 PPM drift, and doesn't need to be enabled for TCXO SDRs. | |
drift_tweak = False | |
# | |
# Experimental Decoders - Use at your own risk! | |
# | |
# These experimental demod chains use David Rowe's fsk_demod modem. | |
# They have much better drift handling performance, and so may be better suited for | |
# 1680 MHz sondes, but use considerably more CPU. Recommend use of a Pi 3 or better. | |
# The experimental decoders can be enabled independently for each radiosonde type. | |
rs41_experimental = True | |
rs92_experimental = False | |
dfm_experimental = True | |
m10_experimental = False | |
# 400 MHz LMS6 sondes decode best with the fsk_demod decode chain, so we use this by default. | |
lms6-400_experimental = False | |
# Note: As iMet sondes use AFSK, using fsk_demod does not give any advantage, so there is no experimental decoder for them. | |
# Dump FSK Demod statistics to stats_<device_ID>.txt while the modem is running. | |
# This ends up at ~200mb per flight, and is over-written with each new sonde tracked. | |
# The test/plot_fsk_demod_stats.py script can plot these files for debugging purposes. | |
# Eventually the modem statistics will be integrated into the web GUI. | |
enable_stats = False | |
# Optimize 1680 MHz Scanning for RS92-NGP Sondes | |
# This flag sets the use of a narrower FM receiver bandwidth when scanning for 1680 MHz RS92-NGP sondes, | |
# which should improve detection considerably. | |
# Set this to True if you are sure that only RS92-NGPs are flying in your area. | |
ngp_tweak = False | |
# Position Filtering Options | |
# These are used to discard positions which are clearly bad, such as where the payload has jumped halfway around the world, | |
# or has suddenly ended up in orbit. | |
# Adjust only if absolutely necessary. | |
[filtering] | |
# Discard positions with an altitude greater than 50000 metres. | |
max_altitude = 50000 | |
# Discard positions more than 1000 km from the observation station location (if set) | |
max_radius_km = 1000 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment