openwebrx-clone/config_webrx.py

334 lines
13 KiB
Python
Raw Normal View History

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>
Copyright (c) 2019-2020 by Jakob Ketterl <dd5jfk@darc.de>
2014-11-29 00:07:10 +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
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
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
2020-03-29 16:28:18 +00:00
# configuration version. please only modify if you're able to perform the associated migration steps.
version = 2
2016-04-23 09:20:35 +00:00
# NOTE: you can find additional information about configuring OpenWebRX in the Wiki:
2020-03-29 16:28:18 +00:00
# https://github.com/jketterl/openwebrx/wiki/Configuration-guide
2016-04-23 09:20:35 +00:00
# ==== Server settings ====
web_port = 8073
max_clients = 20
2014-11-29 00:07:10 +00:00
# ==== Web GUI configuration ====
receiver_name = "[Callsign]"
receiver_location = "Budapest, Hungary"
receiver_asl = 200
receiver_admin = "example@example.com"
receiver_gps = {"lat": 47.000000, "lon": 19.000000}
photo_title = "Panorama of Budapest from Schönherz Zoltán Dormitory"
# photo_desc allows you to put pretty much any HTML you like into the receiver description.
# The lines below should give you some examples of what's possible.
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:openwebrx@localhost" target="_blank">Receiver Operator</a><br/>
Device: Receiver Device<br />
Antenna: Receiver Antenna<br />
2014-11-29 00:07:10 +00:00
Website: <a href="http://localhost" target="_blank">http://localhost</a>
"""
2020-06-10 21:34:09 +00:00
# ==== Public receiver listings ====
# You can publish your receiver on online receiver directories, like https://www.receiverbook.de
# You will receive a receiver key from the directory that will authenticate you as the operator of this receiver.
# Please note that you not share your receiver keys publicly since anyone that obtains your receiver key can take over
# your public listing.
# Your receiver keys should be placed into this array:
receiver_keys = []
2020-06-10 22:01:47 +00:00
# If you list your receiver on multiple sites, you can place all your keys into the array above, or you can append
# keys to the arraylike this:
# receiver_keys += ["my-receiver-key"]
2020-06-10 21:34:09 +00:00
# If you're not sure, simply copy & paste the code you received from your listing site below this line:
# ==== DSP/RX settings ====
fft_fps = 9
fft_size = 4096 # Should be power of 2
fft_voverlap_factor = (
2019-11-23 00:13:16 +00:00
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
audio_compression = "adpcm" # valid values: "adpcm", "none"
fft_compression = "adpcm" # valid values: "adpcm", "none"
digimodes_enable = True # Decoding digimodes come with higher CPU usage.
digimodes_fft_size = 1024
2017-05-04 18:35:40 +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
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`.
"""
# ==== I/Q sources ====
# (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.)
2020-03-29 16:35:48 +00:00
###############################################################################
# Is my SDR hardware supported? #
# Check here: https://github.com/jketterl/openwebrx/wiki/Supported-Hardware #
###############################################################################
2019-12-21 18:30:46 +00:00
# Currently supported types of sdr receivers:
2020-03-29 16:35:48 +00:00
# "rtl_sdr", "rtl_sdr_soapy", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr",
# "perseussdr", "lime_sdr", "pluto_sdr", "soapy_remote"
2019-11-22 22:34:27 +00:00
#
2019-12-21 18:30:46 +00:00
# In order to use rtl_sdr, you will need to install librtlsdr-dev and the connector.
# In order to use sdrplay, airspy or airspyhf, you will need to install soapysdr, the corresponding driver, and the
# connector.
2019-11-22 22:34:27 +00:00
#
2019-12-21 18:30:46 +00:00
# https://github.com/jketterl/owrx_connector
2019-11-22 22:34:27 +00:00
#
2020-03-15 16:24:36 +00:00
# In order to use Perseus HF you need to install the libperseus-sdr
#
# https://github.com/Microtelecom/libperseus-sdr
#
2020-03-15 23:21:49 +00:00
# and do the proper changes to the sdrs object below
# (see also Wiki in https://github.com/jketterl/openwebrx/wiki/Sample-configuration-for-Perseus-HF-receiver).
#
2019-05-09 20:44:29 +00:00
sdrs = {
"rtlsdr": {
"name": "RTL-SDR USB Stick",
2019-12-21 18:31:54 +00:00
"type": "rtl_sdr",
2019-05-09 20:44:29 +00:00
"ppm": 0,
2019-05-11 11:25:48 +00:00
# you can change this if you use an upconverter. formula is:
2019-11-21 14:31:37 +00:00
# center_freq + lfo_offset = actual frequency on the sdr
2019-05-11 11:25:48 +00:00
# "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,
"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,
"start_mod": "nfm",
},
},
2019-05-09 20:44:29 +00:00
},
2019-12-10 22:02:22 +00:00
"airspy": {
"name": "Airspy HF+",
2019-12-21 18:31:54 +00:00
"type": "airspyhf",
2019-12-10 22:02:22 +00:00
"ppm": 0,
2020-04-25 18:32:11 +00:00
"rf_gain": "auto",
2019-12-10 22:02:22 +00:00
"profiles": {
"20m": {
"name": "20m",
"center_freq": 14150000,
"samp_rate": 384000,
2019-12-10 22:02:22 +00:00
"start_freq": 14070000,
"start_mod": "usb",
},
"30m": {
"name": "30m",
"center_freq": 10125000,
"samp_rate": 192000,
"start_freq": 10142000,
"start_mod": "usb",
},
"40m": {
"name": "40m",
"center_freq": 7100000,
"samp_rate": 256000,
"start_freq": 7070000,
2020-06-01 20:43:58 +00:00
"start_mod": "lsb",
2019-12-10 22:02:22 +00:00
},
"80m": {
"name": "80m",
"center_freq": 3650000,
"samp_rate": 384000,
2019-12-10 22:02:22 +00:00
"start_freq": 3570000,
2020-06-01 20:43:58 +00:00
"start_mod": "lsb",
2019-12-10 22:02:22 +00:00
},
"49m": {
"name": "49m Broadcast",
"center_freq": 6050000,
"samp_rate": 384000,
2019-12-10 22:02:22 +00:00
"start_freq": 6070000,
"start_mod": "am",
},
},
},
2019-05-09 20:44:29 +00:00
"sdrplay": {
"name": "SDRPlay RSP2",
2019-12-21 18:31:54 +00:00
"type": "sdrplay",
2019-05-09 20:44:29 +00:00
"ppm": 0,
2020-06-01 20:43:58 +00:00
"antenna": "Antenna A",
2019-05-10 14:14:16 +00:00
"profiles": {
"20m": {
"name": "20m",
2019-05-10 14:14:16 +00:00
"center_freq": 14150000,
"rf_gain": 0,
2019-05-10 14:14:16 +00:00
"samp_rate": 500000,
"start_freq": 14070000,
"start_mod": "usb",
2019-05-10 14:14:16 +00:00
},
2019-05-16 19:44:05 +00:00
"30m": {
"name": "30m",
2019-05-16 19:44:05 +00:00
"center_freq": 10125000,
"rf_gain": 0,
2019-05-16 19:44:05 +00:00
"samp_rate": 250000,
"start_freq": 10142000,
"start_mod": "usb",
2019-05-16 19:44:05 +00:00
},
2019-05-10 14:14:16 +00:00
"40m": {
"name": "40m",
2019-05-10 14:14:16 +00:00
"center_freq": 7100000,
"rf_gain": 0,
2019-05-10 14:14:16 +00:00
"samp_rate": 500000,
"start_freq": 7070000,
2020-06-01 20:43:58 +00:00
"start_mod": "lsb",
2019-05-10 14:14:16 +00:00
},
"80m": {
"name": "80m",
2019-05-10 14:14:16 +00:00
"center_freq": 3650000,
"rf_gain": 0,
2019-05-10 14:14:16 +00:00
"samp_rate": 500000,
"start_freq": 3570000,
2020-06-01 20:43:58 +00:00
"start_mod": "lsb",
2019-05-10 22:38:03 +00:00
},
"49m": {
"name": "49m Broadcast",
"center_freq": 6000000,
"rf_gain": 0,
2019-05-10 22:38:03 +00:00
"samp_rate": 500000,
"start_freq": 6070000,
"start_mod": "am",
},
},
2019-05-10 14:14:16 +00:00
},
2019-05-09 20:44:29 +00:00
}
# ==== Color themes ====
### default theme by teejez:
waterfall_colors = [0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0x00FF00FF, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFFFFFFFF]
waterfall_min_level = -88 # in dB
waterfall_max_level = -20
waterfall_auto_level_margin = {"min": 5, "max": 40}
### old theme by HA7ILM:
# waterfall_colors = "[0x000000ff,0x2e6893ff, 0x69a5d0ff, 0x214b69ff, 0x9dc4e0ff, 0xfff775ff, 0xff8a8aff, 0xb20000ff]"
# waterfall_min_level = -115 #in dB
# waterfall_max_level = 0
# waterfall_auto_level_margin = {"min": 20, "max": 30}
2016-10-30 09:23:12 +00:00
##For the old colors, you might also want to set [fft_voverlap_factor] to 0.
# Note: When the auto waterfall level button is clicked, the following happens:
# [waterfall_min_level] = [current_min_power_level] - [waterfall_auto_level_margin["min"]]
# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin["max"]]
#
# ___|________________________________________|____________________________________|________________________________________|___> signal power
# \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/
# current_max_power_level __|
2017-05-30 15:12:19 +00:00
# === Experimental settings ===
# Warning! The settings below are very experimental.
csdr_dynamic_bufsize = False # This allows you to change the buffering mode of csdr.
csdr_print_bufsizes = False # This prints the buffer sizes used for csdr processes.
csdr_through = False # Setting this True will print out how much data is going into the DSP chains.
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
map_position_retention_time = 2 * 60 * 60
# decoder queue configuration
# due to the nature of some operating modes (ft8, ft8, jt9, jt65, wspr and js8), the data is recorded for a given amount
# of time (6 seconds up to 2 minutes) and decoded at the end. this can lead to very high peak loads.
2019-09-12 13:32:54 +00:00
# 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)
decoding_queue_workers = 2
2019-09-12 13:32:54 +00:00
# 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 decoding services running at the same time
decoding_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
2020-04-23 21:30:56 +00:00
# JS8 comes in different speeds: normal, slow, fast, turbo. This setting controls which ones are enabled.
js8_enabled_profiles = ["normal", "slow"]
# JS8 decoding depth; higher value will get more results, but will also consume more cpu
js8_decoding_depth = 3
2020-04-23 21:30:56 +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"
# === Web admin settings ===
2020-04-25 18:57:12 +00:00
# this feature is experimental at the moment. it should not be enabled on shared receivers since it allows remote
# changes to the receiver settings. enable for testing in controlled environment only.
# webadmin_enabled = False