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
2016-04-11 12:48:59 +00:00
This file is part of OpenWebRX ,
2015-08-17 18:32:58 +00:00
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
2015-08-17 18:32:58 +00:00
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
2014-11-29 00:07:10 +00:00
2015-08-17 18:32:58 +00:00
In addition , as a special exception , the copyright holders
2016-04-11 12:48:59 +00:00
state that config_rtl . py and config_webrx . py are not part of the
Corresponding Source defined in GNU AGPL version 3 section 1.
( It means that you do not have to redistribute config_rtl . py and
2015-08-17 18:32:58 +00:00
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 ====
2014-11-29 00:07:10 +00:00
web_port = 8073
server_hostname = " localhost " # If this contains an incorrect value, the web UI may freeze on load (it can't open websocket)
2015-08-17 18:32:58 +00:00
max_clients = 20
2014-11-29 00:07:10 +00:00
2015-08-17 18:32:58 +00:00
# ==== Web GUI configuration ====
2014-11-29 00:07:10 +00:00
receiver_name = " [Callsign] "
receiver_location = " Budapest, Hungary "
receiver_qra = " JN97ML "
2015-08-17 18:32:58 +00:00
receiver_asl = 200
2014-11-29 00:07:10 +00:00
receiver_ant = " Longwire "
receiver_device = " RTL-SDR "
2015-08-17 18:32:58 +00:00
receiver_admin = " example@example.com "
2014-11-29 00:07:10 +00:00
receiver_gps = ( 47.000000 , 19.000000 )
photo_height = 350
photo_title = " Panorama of Budapest from Schönherz Zoltán Dormitory "
photo_desc = """
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
# ==== DSP/RX settings ====
2014-11-29 00:07:10 +00:00
dsp_plugin = " csdr "
fft_fps = 9
2017-01-28 14:19:16 +00:00
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.
2014-11-29 00:07:10 +00:00
samp_rate = 250000
center_freq = 145525000
2016-04-07 15:40:21 +00:00
rf_gain = 5 #in dB. For an RTL-SDR, rf_gain=0 will set the tuner to auto gain mode, else it will be in manual gain mode.
2016-04-11 12:48:59 +00:00
ppm = 0
2015-08-17 18:32:58 +00:00
2016-04-11 12:48:59 +00:00
audio_compression = " adpcm " #valid values: "adpcm", "none"
fft_compression = " adpcm " #valid values: "adpcm", "none"
2015-08-17 18:32:58 +00:00
2016-04-11 12:48:59 +00:00
start_rtl_thread = True
2015-08-17 18:32:58 +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.)
# There are guides for setting may different SDR hardware including AirSpy, AFEDRI-SDR, RTL-SDR in direct sampling mode, etc. in the Wiki:
# https://github.com/simonyiszk/openwebrx/wiki
# You can use other SDR hardware as well, by giving your own command that outputs the I/Q samples... Some examples of configuration are available here (default is RTL-SDR):
2015-08-17 18:32:58 +00:00
2016-04-11 12:48:59 +00:00
# >> RTL-SDR via rtl_sdr
2015-08-17 18:32:58 +00:00
2016-01-23 23:03:08 +00:00
start_rtl_command = " rtl_sdr -s {samp_rate} -f {center_freq} -p {ppm} -g {rf_gain} - " . format ( rf_gain = rf_gain , center_freq = center_freq , samp_rate = samp_rate , ppm = ppm )
2015-08-17 18:32:58 +00:00
format_conversion = " csdr convert_u8_f "
2016-03-02 15:51:52 +00:00
#start_rtl_command="hackrf_transfer -s {samp_rate} -f {center_freq} -g {rf_gain} -l16 -a0 -q -r-".format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm)
2016-03-02 15:48:38 +00:00
#format_conversion="csdr convert_s8_f"
"""
To use a HackRF , compile the HackRF host tools from its " stdout " branch :
2016-04-11 12:48:59 +00:00
git clone https : / / github . com / mossmann / hackrf /
cd hackrf
2016-03-02 15:48:38 +00:00
git fetch
git checkout origin / stdout
cd host
mkdir build
cd build
cmake . . - DINSTALL_UDEV_RULES = ON
make
sudo make install
2016-04-11 12:48:59 +00:00
"""
2015-10-10 23:26:49 +00:00
2015-08-17 18:32:58 +00:00
# >> Sound card SDR (needs ALSA)
2016-06-17 09:07:17 +00:00
# I did not have the chance to properly test it.
2015-08-17 18:32:58 +00:00
#samp_rate = 96000
2016-01-23 23:03:08 +00:00
#start_rtl_command="arecord -f S16_LE -r {samp_rate} -c2 -".format(samp_rate=samp_rate)
2016-02-14 17:19:32 +00:00
#format_conversion="csdr convert_s16_f | csdr gain_ff 30"
2015-08-17 18:32:58 +00:00
# >> /dev/urandom test signal source
#samp_rate = 2400000
2016-01-23 23:03:08 +00:00
#start_rtl_command="cat /dev/urandom | (pv -qL `python -c 'print int({samp_rate} * 2.2)'` 2>&1)".format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate)
2015-08-17 18:32:58 +00:00
#format_conversion="csdr convert_u8_f"
2016-06-17 09:07:17 +00:00
# >> Pre-recorded raw I/Q file as signal source
# You will have to correctly specify: samp_rate, center_freq, format_conversion in order to correctly play an I/Q file.
#start_rtl_command="(while true; do cat my_iq_file.raw; done) | csdr flowcontrol {sr} 20 ".format(sr=samp_rate*2*1.05)
#format_conversion="csdr convert_u8_f"
2016-02-15 00:02:29 +00:00
# >> gr-osmosdr signal source using GNU Radio (follow this guide: https://github.com/simonyiszk/openwebrx/wiki/Using-GrOsmoSDR-as-signal-source)
2016-02-15 00:05:26 +00:00
#start_rtl_command="cat /tmp/osmocom_fifo"
#format_conversion=""
2016-02-14 23:58:58 +00:00
2016-10-29 18:43:16 +00:00
# ==== Misc settings ====
2016-04-11 12:48:59 +00:00
2015-08-17 18:32:58 +00:00
shown_center_freq = center_freq #you can change this if you use an upconverter
2014-11-29 00:07:10 +00:00
2015-09-30 14:06:30 +00:00
client_audio_buffer_size = 5
2015-08-17 18:32:58 +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
start_freq = center_freq
start_mod = " nfm " #nfm, am, lsb, usb, cw
2016-01-23 23:03:08 +00:00
iq_server_port = 4951 #TCP port for 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
#access_log = "~/openwebrx_access.log"
2016-02-10 21:25:04 +00:00
2016-10-29 18:43:16 +00:00
# ==== Color themes ====
#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:
2016-06-07 19:04:27 +00:00
waterfall_colors = " [0x000000ff,0x0000ffff,0x00ffffff,0x00ff00ff,0xffff00ff,0xff0000ff,0xff00ffff,0xffffffff] "
2016-10-22 19:43:51 +00:00
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:
#waterfall_colors = "[0x000000ff,0x2e6893ff, 0x69a5d0ff, 0x214b69ff, 0x9dc4e0ff, 0xfff775ff, 0xff8a8aff, 0xb20000ff]"
#waterfall_min_level = -115 #in dB
#waterfall_max_level = 0
2016-10-30 09:14:27 +00:00
#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
#Note: When the auto waterfall level button is clicked, the following happens:
# [waterfall_min_level] = [current_min_power_level] - [waterfall_auto_level_margin[0]]
# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin[1]]
#
# ___|____________________________________|____________________________________|____________________________________|___> signal power
# \_waterfall_auto_level_margin[0]_/ |__ current_min_power_level | \_waterfall_auto_level_margin[1]_/
# current_max_power_level __|
2016-10-29 18:43:16 +00:00
# ==== Experimental settings ===
2016-03-18 23:11:40 +00:00
2016-10-29 18:43:16 +00:00
#Warning! These are very experimental.
2016-02-10 21:25:04 +00:00
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.
2016-03-18 23:11:40 +00:00
2017-01-19 18:49:09 +00:00
nmux_memory = 50 #in megabytes. This sets the approximate size of the circular buffer used by nmux.
2017-01-19 16:54:45 +00:00
2016-04-11 12:48:59 +00:00
#Look up external IP address automatically from icanhazip.com, and use it as [server_hostname]
"""
print " [openwebrx-config] Detecting external IP address... "
import urllib2
server_hostname = urllib2 . urlopen ( " http://icanhazip.com " ) . read ( ) [ : - 1 ]
print " [openwebrx-config] External IP address detected: " , server_hostname
"""