2016-04-11 12:48:59 +00:00
# -*- coding: utf-8 -*-
2014-11-29 00:07:10 +00:00
"""
config_webrx : configuration options for OpenWebRX
2017-05-02 13:17:50 +00:00
This file is part of OpenWebRX ,
an open - source SDR receiver software with a web UI .
Copyright ( c ) 2013 - 2015 by Andras Retzler < randras @sdr.hu >
2014-11-29 00:07:10 +00:00
2015-08-17 18:32:58 +00:00
This program is free software : you can redistribute it and / or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation , either version 3 of the
License , or ( at your option ) any later version .
2014-11-29 00:07:10 +00:00
2015-08-17 18:32:58 +00:00
This program is distributed in the hope that it will be useful ,
2014-11-29 00:07:10 +00:00
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2015-08-17 18:32:58 +00:00
GNU Affero General Public License for more details .
You should have received a copy of the GNU Affero General Public License
along with this program . If not , see < http : / / www . gnu . org / licenses / > .
2014-11-29 00:07:10 +00:00
2017-05-02 13:17:50 +00:00
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
2014-11-29 00:07:10 +00:00
2017-05-02 13:17:50 +00:00
In addition , as a special exception , the copyright holders
state that config_rtl . py and config_webrx . py are not part of the
Corresponding Source defined in GNU AGPL version 3 section 1.
2016-04-11 12:48:59 +00:00
2017-05-02 13:17:50 +00:00
( It means that you do not have to redistribute config_rtl . py and
config_webrx . py if you make any changes to these two configuration files ,
and use them for running your web service with OpenWebRX . )
2014-11-29 00:07:10 +00:00
"""
2016-04-23 09:20:35 +00:00
# NOTE: you can find additional information about configuring OpenWebRX in the Wiki:
# https://github.com/simonyiszk/openwebrx/wiki
2015-08-17 18:32:58 +00:00
# ==== Server settings ====
2019-07-21 17:40:28 +00:00
web_port = 8073
max_clients = 20
2014-11-29 00:07:10 +00:00
2015-08-17 18:32:58 +00:00
# ==== Web GUI configuration ====
2019-07-21 17:40:28 +00:00
receiver_name = " [Callsign] "
receiver_location = " Budapest, Hungary "
receiver_asl = 200
receiver_admin = " example@example.com "
receiver_gps = ( 47.000000 , 19.000000 )
photo_title = " Panorama of Budapest from Schönherz Zoltán Dormitory "
photo_desc = """
2014-11-29 00:07:10 +00:00
You can add your own background photo and receiver information . < br / >
Receiver is operated by : < a href = " mailto: % [RX_ADMIN] " > % [ RX_ADMIN ] < / a > < br / >
Device : % [ RX_DEVICE ] < br / >
Antenna : % [ RX_ANT ] < br / >
Website : < a href = " http://localhost " target = " _blank " > http : / / localhost < / a >
"""
2015-08-17 18:32:58 +00:00
# ==== sdr.hu listing ====
# If you want your ham receiver to be listed publicly on sdr.hu, then take the following steps:
# 1. Register at: http://sdr.hu/register
# 2. You will get an unique key by email. Copy it and paste here:
sdrhu_key = " "
# 3. Set this setting to True to enable listing:
sdrhu_public_listing = False
2019-07-21 17:40:28 +00:00
server_hostname = " localhost "
2015-08-17 18:32:58 +00:00
# ==== DSP/RX settings ====
2019-07-21 17:40:28 +00:00
fft_fps = 9
fft_size = 4096 # Should be power of 2
fft_voverlap_factor = (
0.3
) # If fft_voverlap_factor is above 0, multiple FFTs will be used for creating a line on the diagram.
2017-01-28 14:19:16 +00:00
2019-07-21 17:40:28 +00:00
audio_compression = " adpcm " # valid values: "adpcm", "none"
fft_compression = " adpcm " # valid values: "adpcm", "none"
2015-08-17 18:32:58 +00:00
2019-07-21 17:40:28 +00:00
digimodes_enable = True # Decoding digimodes come with higher CPU usage.
digimodes_fft_size = 1024
2017-05-04 18:35:40 +00:00
2019-05-18 20:10:43 +00:00
# determines the quality, and thus the cpu usage, for the ambe codec used by digital voice modes
# if you're running on a Raspi (up to 3B+) you'll want to leave this on 1
digital_voice_unvoiced_quality = 1
2019-05-30 15:19:46 +00:00
# enables lookup of DMR ids using the radioid api
digital_voice_dmr_id_lookup = True
2019-05-18 20:10:43 +00:00
2017-01-28 14:19:16 +00:00
"""
Note : if you experience audio underruns while CPU usage is 100 % , you can :
- decrease ` samp_rate ` ,
- set ` fft_voverlap_factor ` to 0 ,
- decrease ` fft_fps ` and ` fft_size ` ,
- limit the number of users by decreasing ` max_clients ` .
"""
2016-06-17 09:07:17 +00:00
# ==== I/Q sources ====
# (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.)
2017-04-05 06:34:00 +00:00
#################################################################################################
# Is my SDR hardware supported? #
# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support #
#################################################################################################
2016-06-17 09:07:17 +00:00
2019-06-07 13:44:11 +00:00
# Currently supported types of sdr receivers: "rtl_sdr", "sdrplay", "hackrf", "airspy"
2019-05-09 20:44:29 +00:00
sdrs = {
" rtlsdr " : {
" name " : " RTL-SDR USB Stick " ,
" type " : " rtl_sdr " ,
" ppm " : 0 ,
2019-05-11 11:25:48 +00:00
# you can change this if you use an upconverter. formula is:
# shown_center_freq = center_freq + lfo_offset
# "lfo_offset": 0,
2019-05-10 14:14:16 +00:00
" profiles " : {
" 70cm " : {
" name " : " 70cm Relais " ,
" center_freq " : 438800000 ,
" rf_gain " : 30 ,
" samp_rate " : 2400000 ,
" start_freq " : 439275000 ,
2019-07-21 17:40:28 +00:00
" start_mod " : " nfm " ,
2019-05-10 14:14:16 +00:00
} ,
" 2m " : {
" name " : " 2m komplett " ,
" center_freq " : 145000000 ,
" rf_gain " : 30 ,
" samp_rate " : 2400000 ,
" start_freq " : 145725000 ,
2019-07-21 17:40:28 +00:00
" start_mod " : " nfm " ,
} ,
} ,
2019-05-09 20:44:29 +00:00
} ,
" sdrplay " : {
" name " : " SDRPlay RSP2 " ,
" type " : " sdrplay " ,
" ppm " : 0 ,
2019-05-10 14:14:16 +00:00
" profiles " : {
" 20m " : {
2019-07-21 17:40:28 +00:00
" name " : " 20m " ,
2019-05-10 14:14:16 +00:00
" center_freq " : 14150000 ,
2019-09-29 14:21:42 +00:00
" rf_gain " : 0 ,
2019-05-10 14:14:16 +00:00
" samp_rate " : 500000 ,
" start_freq " : 14070000 ,
2019-05-19 11:17:36 +00:00
" start_mod " : " usb " ,
2019-07-21 17:40:28 +00:00
" antenna " : " Antenna A " ,
2019-05-10 14:14:16 +00:00
} ,
2019-05-16 19:44:05 +00:00
" 30m " : {
2019-07-21 17:40:28 +00:00
" name " : " 30m " ,
2019-05-16 19:44:05 +00:00
" center_freq " : 10125000 ,
2019-09-29 14:21:42 +00:00
" rf_gain " : 0 ,
2019-05-16 19:44:05 +00:00
" samp_rate " : 250000 ,
" start_freq " : 10142000 ,
2019-07-21 17:40:28 +00:00
" start_mod " : " usb " ,
2019-05-16 19:44:05 +00:00
} ,
2019-05-10 14:14:16 +00:00
" 40m " : {
2019-07-21 17:40:28 +00:00
" name " : " 40m " ,
2019-05-10 14:14:16 +00:00
" center_freq " : 7100000 ,
2019-09-29 14:21:42 +00:00
" rf_gain " : 0 ,
2019-05-10 14:14:16 +00:00
" samp_rate " : 500000 ,
" start_freq " : 7070000 ,
2019-05-19 11:17:36 +00:00
" start_mod " : " usb " ,
2019-07-21 17:40:28 +00:00
" antenna " : " Antenna A " ,
2019-05-10 14:14:16 +00:00
} ,
" 80m " : {
2019-07-21 17:40:28 +00:00
" name " : " 80m " ,
2019-05-10 14:14:16 +00:00
" center_freq " : 3650000 ,
2019-09-29 14:21:42 +00:00
" rf_gain " : 0 ,
2019-05-10 14:14:16 +00:00
" samp_rate " : 500000 ,
" start_freq " : 3570000 ,
2019-05-19 11:17:36 +00:00
" start_mod " : " usb " ,
2019-07-21 17:40:28 +00:00
" antenna " : " Antenna A " ,
2019-05-10 22:38:03 +00:00
} ,
" 49m " : {
" name " : " 49m Broadcast " ,
" center_freq " : 6000000 ,
2019-09-29 14:21:42 +00:00
" rf_gain " : 0 ,
2019-05-10 22:38:03 +00:00
" samp_rate " : 500000 ,
" start_freq " : 6070000 ,
2019-05-19 11:17:36 +00:00
" start_mod " : " am " ,
2019-07-21 17:40:28 +00:00
" antenna " : " Antenna A " ,
} ,
} ,
2019-05-10 14:14:16 +00:00
} ,
2019-05-09 20:44:29 +00:00
}
2019-05-07 15:09:29 +00:00
2016-10-29 18:43:16 +00:00
# ==== Misc settings ====
2016-04-11 12:48:59 +00:00
2015-09-30 14:06:30 +00:00
client_audio_buffer_size = 5
2019-07-21 17:40:28 +00:00
# increasing client_audio_buffer_size will:
2016-04-11 12:48:59 +00:00
# - also increase the latency
2015-08-17 18:32:58 +00:00
# - decrease the chance of audio underruns
2015-09-30 14:06:30 +00:00
2019-07-21 17:40:28 +00:00
iq_port_range = [
4950 ,
4960 ,
] # TCP port for range ncat to listen on. It will send I/Q data over its connections, for internal use in OpenWebRX. It is only accessible from the localhost by default.
2016-02-10 16:33:48 +00:00
2016-10-29 18:43:16 +00:00
# ==== Color themes ====
2019-07-21 17:40:28 +00:00
# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels
2016-10-30 09:14:27 +00:00
2016-10-29 18:43:16 +00:00
### default theme by teejez:
2019-07-21 17:40:28 +00:00
waterfall_colors = [ 0x000000FF , 0x0000FFFF , 0x00FFFFFF , 0x00FF00FF , 0xFFFF00FF , 0xFF0000FF , 0xFF00FFFF , 0xFFFFFFFF ]
waterfall_min_level = - 88 # in dB
2016-06-07 19:04:27 +00:00
waterfall_max_level = - 20
2016-10-30 09:14:27 +00:00
waterfall_auto_level_margin = ( 5 , 40 )
2016-10-29 18:43:16 +00:00
### old theme by HA7ILM:
2019-07-21 17:40:28 +00:00
# waterfall_colors = "[0x000000ff,0x2e6893ff, 0x69a5d0ff, 0x214b69ff, 0x9dc4e0ff, 0xfff775ff, 0xff8a8aff, 0xb20000ff]"
# waterfall_min_level = -115 #in dB
# waterfall_max_level = 0
# waterfall_auto_level_margin = (20, 30)
2016-10-30 09:23:12 +00:00
##For the old colors, you might also want to set [fft_voverlap_factor] to 0.
2016-10-30 09:14:27 +00:00
2019-07-21 17:40:28 +00:00
# Note: When the auto waterfall level button is clicked, the following happens:
2017-05-02 13:17:50 +00:00
# [waterfall_min_level] = [current_min_power_level] - [waterfall_auto_level_margin[0]]
# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin[1]]
2016-10-30 09:14:27 +00:00
#
# ___|____________________________________|____________________________________|____________________________________|___> signal power
# \_waterfall_auto_level_margin[0]_/ |__ current_min_power_level | \_waterfall_auto_level_margin[1]_/
# current_max_power_level __|
2016-03-18 23:11:40 +00:00
2017-05-30 15:12:19 +00:00
# 3D view settings
2019-07-21 17:40:28 +00:00
mathbox_waterfall_frequency_resolution = 128 # bins
mathbox_waterfall_history_length = 10 # seconds
mathbox_waterfall_colors = [
0x000000FF ,
0x2E6893FF ,
0x69A5D0FF ,
0x214B69FF ,
0x9DC4E0FF ,
0xFFF775FF ,
0xFF8A8AFF ,
0xB20000FF ,
]
2016-08-12 12:51:06 +00:00
2017-05-30 15:12:19 +00:00
# === Experimental settings ===
2019-07-21 17:40:28 +00:00
# Warning! The settings below are very experimental.
csdr_dynamic_bufsize = False # This allows you to change the buffering mode of csdr.
2016-02-10 21:25:04 +00:00
csdr_print_bufsizes = False # This prints the buffer sizes used for csdr processes.
2019-07-21 17:40:28 +00:00
csdr_through = False # Setting this True will print out how much data is going into the DSP chains.
2016-03-18 23:11:40 +00:00
2019-07-21 17:40:28 +00:00
nmux_memory = 50 # in megabytes. This sets the approximate size of the circular buffer used by nmux.
2019-07-07 13:52:24 +00:00
google_maps_api_key = " "
# how long should positions be visible on the map?
# they will start fading out after half of that
# in seconds; default: 2 hours
2019-07-13 15:16:38 +00:00
map_position_retention_time = 2 * 60 * 60
2019-09-12 13:32:54 +00:00
# wsjt decoder queue configuration
# due to the nature of the wsjt operating modes (ft8, ft8, jt9, jt65 and wspr), the data is recorded for a given amount
# of time (6.5 seconds up to 2 minutes) and decoded at the end. this can lead to very high peak loads.
# to mitigate this, the recordings will be queued and processed in sequence.
# the number of workers will limit the total amount of work (one worker will losely occupy one cpu / thread)
wsjt_queue_workers = 2
# the maximum queue length will cause decodes to be dumped if the workers cannot keep up
# if you are running background services, make sure this number is high enough to accept the task influx during peaks
# i.e. this should be higher than the number of wsjt services running at the same time
wsjt_queue_length = 10
2019-09-15 14:37:12 +00:00
# wsjt decoding depth will allow more results, but will also consume more cpu
wsjt_decoding_depth = 3
# can also be set for each mode separately
# jt65 seems to be somewhat prone to erroneous decodes, this setting handles that to some extent
2019-09-25 21:12:30 +00:00
wsjt_decoding_depths = { " jt65 " : 1 }
2019-09-12 13:32:54 +00:00
2019-07-13 15:16:38 +00:00
temporary_directory = " /tmp "
2019-07-28 11:29:45 +00:00
2019-08-11 09:39:35 +00:00
services_enabled = False
2019-08-11 22:02:39 +00:00
services_decoders = [ " ft8 " , " ft4 " , " wspr " , " packet " ]
2019-08-17 22:15:07 +00:00
# === aprs igate settings ===
# if you want to share your APRS decodes with the aprs network, configure these settings accordingly
aprs_callsign = " N0CALL "
aprs_igate_enabled = False
aprs_igate_server = " euro.aprs2.net "
aprs_igate_password = " "
# beacon uses the receiver_gps setting, so if you enable this, make sure the location is correct there
aprs_igate_beacon = False
2019-09-18 15:22:35 +00:00
# path to the aprs symbols repository (get it here: https://github.com/hessu/aprs-symbols)
aprs_symbols_path = " /opt/aprs-symbols/png "
2019-09-24 19:44:14 +00:00
# === PSK Reporter setting ===
# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info
2019-09-24 22:35:57 +00:00
# this also uses the receiver_gps setting from above, so make sure it contains a correct locator
2019-09-24 19:44:14 +00:00
pskreporter_enabled = False
pskreporter_callsign = " N0CALL "