From a67c0b961375b1e2b2fc164f80c979f66d778723 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 24 Apr 2020 16:11:17 -0400 Subject: [PATCH 01/63] changed to 434.9 MHz --- groundstation/config_webrx.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 1a549578..38e95110 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -16,7 +16,6 @@ config_webrx: configuration options for OpenWebRX 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 . @@ -73,8 +72,8 @@ fft_voverlap_factor=0.3 #If fft_voverlap_factor is above 0, multiple FFTs will b samp_rate = 250000 # samp_rate = 2400000 -center_freq = 440450000 -rf_gain = 37 #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. +center_freq = 434950000 +rf_gain = 7 #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. ppm = 0 audio_compression="adpcm" #valid values: "adpcm", "none" From 10a980c265a2a3408cd0eb408b2692deb077372d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 24 Apr 2020 16:23:34 -0400 Subject: [PATCH 02/63] changed to killall and port 8073 --- groundstation/kill_all.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/groundstation/kill_all.sh b/groundstation/kill_all.sh index 2d9970ec..b4f18b28 100755 --- a/groundstation/kill_all.sh +++ b/groundstation/kill_all.sh @@ -4,16 +4,13 @@ echo -e "\nKilling all SDR or RTL processes \n" -# kill rtl if running -ps -ef | grep rtl_ | grep -v grep | awk '{print $2}' | sudo xargs kill > /dev/null 2>&1 +sudo killall -9 csdr -# kill openwebrx process if running -ps -ef | grep openwebrx | grep -v grep | awk '{print $2}' | sudo xargs kill > /dev/null 2>&1 +sudo killall -9 openwebrx -# kill csdr process if running -ps -ef | grep csdr | grep -v grep | awk '{print $2}' | sudo xargs kill > /dev/null 2>&1 +sudo killall -9 rtl_tcp -# kill gqrx process if running -ps -ef | grep gqrx-sdr-2.11.5-linux-rpi3/gqrx | grep -v grep | awk '{print $2}' | sudo xargs kill > /dev/null 2>&1 +sudo fuser -k 8073/tcp +sudo killall -9 FoxTelem From 29f4a2643374e443b0a170966347ce1dc96fca1c Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 25 Apr 2020 11:05:02 -0400 Subject: [PATCH 03/63] Create foxtelem.desktop --- groundstation/foxtelem.desktop | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 groundstation/foxtelem.desktop diff --git a/groundstation/foxtelem.desktop b/groundstation/foxtelem.desktop new file mode 100644 index 00000000..4ff14abf --- /dev/null +++ b/groundstation/foxtelem.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Exec=/home/pi/FoxTelem_1.09g_linux/FoxTelem +Name=FoxTelem +Comment=Test Version 1.09b for CubeSatSim +Icon=/home/pi/Downloads/amsat.png +Path=/home/pi +#Terminal=true +Categories=HamRadio +Keywords=Ham Radio;AMSAT From e7e73a42f7dd3ca577d64a03f010aee9ca493227 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 25 Apr 2020 11:13:08 -0400 Subject: [PATCH 04/63] Update foxtelem.desktop --- groundstation/foxtelem.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/foxtelem.desktop b/groundstation/foxtelem.desktop index 4ff14abf..c78a12ac 100644 --- a/groundstation/foxtelem.desktop +++ b/groundstation/foxtelem.desktop @@ -3,7 +3,7 @@ Type=Application Exec=/home/pi/FoxTelem_1.09g_linux/FoxTelem Name=FoxTelem Comment=Test Version 1.09b for CubeSatSim -Icon=/home/pi/Downloads/amsat.png +Icon=/home/pi/Downloads/foxtelem.png Path=/home/pi #Terminal=true Categories=HamRadio From 1045e36a0c7babace5b7c974260c9cd853116c8b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 25 Apr 2020 11:51:56 -0400 Subject: [PATCH 05/63] Create rtl-tcp.desktop --- groundstation/rtl-tcp.desktop | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 groundstation/rtl-tcp.desktop diff --git a/groundstation/rtl-tcp.desktop b/groundstation/rtl-tcp.desktop new file mode 100644 index 00000000..394eafbc --- /dev/null +++ b/groundstation/rtl-tcp.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Exec=/home/pi/rtl-tcp.sh +Name=RTL-TCP +Comment=RTL-TCP for SDR# +Icon=/home/pi/Downloads/rtl-tcp.jpeg +Path=/home/pi +Terminal=true +Categories=HamRadio +Keywords=Ham Radio;RTL-SDR From b2985427690d937cb282717a81795922898f6e93 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 25 Apr 2020 11:52:56 -0400 Subject: [PATCH 06/63] Update rtl-tcp.desktop --- groundstation/rtl-tcp.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/rtl-tcp.desktop b/groundstation/rtl-tcp.desktop index 394eafbc..4a97dc9e 100644 --- a/groundstation/rtl-tcp.desktop +++ b/groundstation/rtl-tcp.desktop @@ -3,7 +3,7 @@ Type=Application Exec=/home/pi/rtl-tcp.sh Name=RTL-TCP Comment=RTL-TCP for SDR# -Icon=/home/pi/Downloads/rtl-tcp.jpeg +Icon=/home/pi/Downloads/rtl-sdr.jpeg Path=/home/pi Terminal=true Categories=HamRadio From 1e355e2e0787c86ba82880f10aed6267e6bd2380 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 25 Apr 2020 11:54:47 -0400 Subject: [PATCH 07/63] Create sdr-2m.desktop --- groundstation/sdr-2m.desktop | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 groundstation/sdr-2m.desktop diff --git a/groundstation/sdr-2m.desktop b/groundstation/sdr-2m.desktop new file mode 100644 index 00000000..01421d04 --- /dev/null +++ b/groundstation/sdr-2m.desktop @@ -0,0 +1,11 @@ + +[Desktop Entry] +Type=Application +Exec=/home/pi/sdr-2m.sh +Name=SDR 2m Band +Comment=openwebrx for 2m band +Icon=/home/pi/Downloads/sdr.ico +Path=/home/pi +Terminal=true +Categories=HamRadio +Keywords=Ham Radio;SDR From afdfa6a1df54482829cfc348086d50e23a9acd8e Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 25 Apr 2020 16:59:35 -0400 Subject: [PATCH 08/63] Update rtl-tcp.sh --- groundstation/rtl-tcp.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/groundstation/rtl-tcp.sh b/groundstation/rtl-tcp.sh index 9559643c..b3e410dc 100755 --- a/groundstation/rtl-tcp.sh +++ b/groundstation/rtl-tcp.sh @@ -3,12 +3,14 @@ # # On SDR client, use 10.3.141.1:1234 to connect -echo -e "\nScript to run RTL-TCP Server for ARISS Ground Station\n" +echo -e "\nScript to run RTL-TCP Server for ARISS Radio Pi\n" -echo -e "IP Address to use in web browsers is: " +echo -e "IP Address to use in your SDR application is: " hostname -I|cut -f1 -d ' ' +echo -e "The port is the default 1234. " + ./kill_all.sh sudo /bin/sh -c '/usr/local/bin/rtl_tcp -a $(hostname -I|cut -f1 -d " ")' From 3e69bcccbbe9e6a658402df2a8432874f412de32 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 10:19:38 -0400 Subject: [PATCH 09/63] Update README.md --- spacecraft/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spacecraft/README.md b/spacecraft/README.md index d59160ce..8ed85c59 100644 --- a/spacecraft/README.md +++ b/spacecraft/README.md @@ -4,6 +4,6 @@ To use FoxTelem with the CubeSat Simulator, you will need to download the latest https://www.g0kla.com/foxtelem/downloads/test/ -Next, download the .MASTER files in the correct version number directory and put them in the FoxTelem spacecraft folder. +Next, download all the files in the correct version number directory and put them in the FoxTelem spacecraft folder. Run FoxTelem, then go under Spacecraft/Add and select the .MASTER files to add the CubeSat Simulator to FoxTelem. From 342f68cbd1d19a0f35600afd1a7b09d668fa6e42 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 11:03:24 -0400 Subject: [PATCH 10/63] Update readme.txt --- spreadsheet/readme.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spreadsheet/readme.txt b/spreadsheet/readme.txt index f0b13413..7b5b23db 100644 --- a/spreadsheet/readme.txt +++ b/spreadsheet/readme.txt @@ -1,6 +1,10 @@ This spreadsheet is for analyzing the CubeSat Simulator telemetry. -It has been tested with Office 365 (Windows) and Office Excel for Mac (Version: 16.16.6) and LibreOffice Calc Version: 6.1.4.2 (Windows) +This is only used for the AFSK 1200 APRS telemetry mode. The latest version of the CubeSatSim supports Fox-1 telemetry emulation, so the use of this mode is encouraged - it does not use this spreadsheet as the telemetry is automatically decoded and graphed. + +Setting up FoxTelem is described here https://github.com/alanbjohnston/CubeSatSim/wiki/Ground-Station + +This spreadsheet has been tested with Office 365 (Windows) and Office Excel for Mac (Version: 16.16.6) and LibreOffice Calc Version: 6.1.4.2 (Windows) A version for Google Docs is available for copying and download at: From da63c407d887f75244ebacc21bc30e15e232752a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 13:44:28 -0400 Subject: [PATCH 11/63] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5df7b78b..40914c59 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Compile the code: `cd` -`git clone https://www.github.com/wb2osz/direwolf` +`git clone https://github.com/alanbjohnston/direwolf.git` `cd direwolf` From 3791da8550118da97de4820f87625da7729680d9 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 22:35:49 -0400 Subject: [PATCH 12/63] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 40914c59..083530b2 100644 --- a/README.md +++ b/README.md @@ -129,10 +129,12 @@ Now reboot for all the changes to take effect: `sudo reboot now` -After rebooting, tune your radio or SDR to 434.9 MHz FM, and you should receive telemetry from the CubeSatSim! The green LED will be on when the CubeSatSim software is running. The red LED when charging is occuring either through the micro USB or through the solar panels. The blue LED will illuminate when the CubeSatSim is transmitting. +After rebooting, tune your radio or SDR to 434.9 MHz FM, and you should get a signal from the CubeSatSim! If you just have a Pi, you will only hear your Morse Code (CW) callsign - no telemetry signal will be transmitted, since there is no Band Pass Filter installed to block interfering transmissions. If you have built the Main Board or the TFB and it is plugged into your Pi, you will hear telemetry readio signals. + +On the Main Board, the green LED will be on when the CubeSatSim software is running. The red LED when charging is occuring either through the micro USB or through the solar panels. The blue LED will illuminate when the CubeSatSim is transmitting. The demo.sh script alternates between two modes: -1. Continuous FSK telmetry, decodeable by FoxTelem +1. Continuous DUV FSK telmetry, decodeable by FoxTelem 2. Alternativing between APRS AFSK, FSK, and BPSK telemetry Pressing and releasing the push button will cause the Pi to reboot and change mode. The green LED will go off as it reboots. From dc5b2f8dad4e0a415704a7f271c4d1d8d0a3376a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 3 May 2020 22:31:09 -0400 Subject: [PATCH 13/63] Update README.md --- spacecraft/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spacecraft/README.md b/spacecraft/README.md index 8ed85c59..9c364522 100644 --- a/spacecraft/README.md +++ b/spacecraft/README.md @@ -4,6 +4,8 @@ To use FoxTelem with the CubeSat Simulator, you will need to download the latest https://www.g0kla.com/foxtelem/downloads/test/ -Next, download all the files in the correct version number directory and put them in the FoxTelem spacecraft folder. +Install and run FoxTelem per the instructions. + +If version you downloaded has a directory of the same name here, download all the files in the correct version number directory and put them in the FoxTelem spacecraft folder.Run FoxTelem, then go under Spacecraft/Add and select the .MASTER files to add the CubeSat Simulator to FoxTelem. + -Run FoxTelem, then go under Spacecraft/Add and select the .MASTER files to add the CubeSat Simulator to FoxTelem. From 3ebde711182eb9577be51c9191677058e82fd3e0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 5 May 2020 16:34:45 -0400 Subject: [PATCH 14/63] initial add for systemd openwebrx --- groundstation/bookmarks_pi.json | 97 +++++++++ groundstation/config_webrx_pi.py | 347 +++++++++++++++++++++++++++++++ 2 files changed, 444 insertions(+) create mode 100644 groundstation/bookmarks_pi.json create mode 100644 groundstation/config_webrx_pi.py diff --git a/groundstation/bookmarks_pi.json b/groundstation/bookmarks_pi.json new file mode 100644 index 00000000..c0c146a8 --- /dev/null +++ b/groundstation/bookmarks_pi.json @@ -0,0 +1,97 @@ +[ + { + "name": "ISS APRS", + "frequency": 145825000, + "modulation": "nfm" + }, + { + "name": "ISS SSTV", + "frequency": 145819000, + "modulation": "nfm" + }, + { + "name": "CubeSatSim", + "frequency": 434900000, + "modulation": "nfm" + }, + { + "name": "Fox-1B AO-91", + "frequency": 145960000, + "modulation": "nfm" + }, + { + "name": "Fox-1D AO-92", + "frequency": 145880000, + "modulation": "nfm" + }, + { + "name": "MAX VALIER", + "frequency": 145860000, + "modulation": "usb" + }, + { + "name": "PHL ATIS", + "frequency": 133400000, + "modulation": "nfm" + }, + { + "name": "PHL ATC", + "frequency": 133450000, + "modulation": "nfm" + }, + { + "name": "PHL ATC", + "frequency": 133550000, + "modulation": "nfm" + }, + { + "name": "WX", + "frequency": 162400000, + "modulation": "nfm" + }, + { + "name": "APRS", + "frequency": 144390000, + "modulation": "nfm" + }, + { + "name": "CAS-4A", + "frequency": 145855000, + "modulation": "usb" + }, + { + "name": "CAS-4B", + "frequency": 145910000, + "modulation": "usb" + }, + { + "name": "XW-2A", + "frequency": 145660000, + "modulation": "usb" + }, + { + "name": "NOAA-19", + "frequency": 137100000, + "modulation": "nfm" + }, + { + "name": "NOAA-18", + "frequency": 137912500, + "modulation": "nfm" + }, + { + "name": "NOAA-15", + "frequency": 137620000, + "modulation": "nfm" + }, + { + "name": "PHL ATC", + "frequency": 134300000, + "modulation": "am" + }, + { + "name": "PHL ATC", + "frequency": 133875000, + "modulation": "am" + } +] diff --git a/groundstation/config_webrx_pi.py b/groundstation/config_webrx_pi.py new file mode 100644 index 00000000..4268b9b7 --- /dev/null +++ b/groundstation/config_webrx_pi.py @@ -0,0 +1,347 @@ +# -*- coding: utf-8 -*- + +""" +config_webrx: configuration options for OpenWebRX + + This file is part of OpenWebRX, + an open-source SDR receiver software with a web UI. + Copyright (c) 2013-2015 by Andras Retzler + Copyright (c) 2019-2020 by Jakob Ketterl + + 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. + + This program is distributed in the hope that it will be useful, + 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 . + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + 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. + + (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.) +""" + +# NOTE: you can find additional information about configuring OpenWebRX in the Wiki: +# https://github.com/simonyiszk/openwebrx/wiki + +# ==== Server settings ==== +web_port = 8073 +max_clients = 20 + +# ==== Web GUI configuration ==== +receiver_name = "KU2Y" +receiver_location = "Philadelphia, PA" +receiver_asl = 200 +receiver_admin = "ku2y@amsat.org" +receiver_gps = (40.0376, -75.3492) +photo_title = "Panorama of Budapest from Schönherz Zoltán Dormitory" +photo_desc = """ +You can add your own background photo and receiver information.
+Receiver is operated by: %[RX_ADMIN]
+Device: %[RX_DEVICE]
+Antenna: %[RX_ANT]
+Website: http://localhost +""" + +# ==== 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 +server_hostname = "localhost" + +# ==== DSP/RX settings ==== +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. +) + +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 + +# 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 +# enables lookup of DMR ids using the radioid api +digital_voice_dmr_id_lookup = True + +""" +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.) + +################################################################################################# +# Is my SDR hardware supported? # +# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # +################################################################################################# + +# Currently supported types of sdr receivers: +# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr" +# +# 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. +# +# https://github.com/jketterl/owrx_connector +# +# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs +# configured that have type endin in "_connector", simply remove that suffix. + +sdrs = { + "rtlsdr": { + "name": "RTL-SDR", + "type": "rtl_sdr", + "ppm": 0, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "2m": { + "name": "2m Band", + "center_freq": 145000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, + "atc": { + "name": "Air Band - ATC", + "center_freq": 134000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "noaa": { + "name": "NOAA Weather Satellites", + "center_freq": 137000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "noaa-hi": { + "name": "NOAA Weather Satellites More Gain", + "center_freq": 137000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, }, + }, + "airspy": { + "name": "Airspy HF+", + "type": "airspyhf", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 192000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 256000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 6070000, + "start_mod": "am", + }, + }, + }, + "sdrplay": { + "name": "SDRPlay RSP2", + "type": "sdrplay", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 14070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 0, + "samp_rate": 250000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 7070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 3570000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 6070000, + "start_mod": "am", + "antenna": "Antenna A", + }, + }, + }, +} + +# ==== Color themes ==== + +# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels + +### 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 = (5, 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 = (20, 30) +##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[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 __| + +# === 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. + +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 + +# 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 +# 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 +wsjt_decoding_depths = {"jt65": 1} + +temporary_directory = "/tmp" + +services_enabled = False +services_decoders = ["ft8", "ft4", "wspr", "packet"] + +# === 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 + +# path to the aprs symbols repository (get it here: https://github.com/hessu/aprs-symbols) +aprs_symbols_path = "/opt/aprs-symbols/png" + +# === PSK Reporter setting === +# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info +# this also uses the receiver_gps setting from above, so make sure it contains a correct locator +pskreporter_enabled = False +pskreporter_callsign = "N0CALL" From 6f34106edb8d0a105317cd61843b1f1bc145d0f6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 6 May 2020 14:34:08 -0400 Subject: [PATCH 15/63] Update README.md --- systemd/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd/README.md b/systemd/README.md index 248f7683..3d4ea7e2 100644 --- a/systemd/README.md +++ b/systemd/README.md @@ -3,7 +3,7 @@ To make the CubeSat Simulator transmit automatically on boot, follow these steps Log into the Pi and type: -sudo cp ~/CubeSatSim/cubesatsim.service /etc/systemd/system/cubesatsim.service +sudo cp ~/CubeSatSim/systemd/cubesatsim.service /etc/systemd/system/cubesatsim.service sudo systemctl enable cubesatsim From d24132e8b005c43e70fb6b5a57669edf68d04189 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 7 May 2020 14:05:45 -0400 Subject: [PATCH 16/63] updates for ARISS Radio Pi --- groundstation/bands.json | 194 +++++++++++++++++++++++++++++++ groundstation/bookmarks_pi.json | 5 - groundstation/config_webrx_pi.py | 36 +++++- 3 files changed, 228 insertions(+), 7 deletions(-) create mode 100644 groundstation/bands.json diff --git a/groundstation/bands.json b/groundstation/bands.json new file mode 100644 index 00000000..3d2cc43c --- /dev/null +++ b/groundstation/bands.json @@ -0,0 +1,194 @@ +[ + { + "name": "160m", + "lower_bound": 1810000, + "upper_bound": 2000000, + "frequencies": { + "psk31": 1838000, + "ft8": 1840000, + "wspr": 1836600, + "jt65": 1838000, + "jt9": 1839000 + } + }, + { + "name": "80m", + "lower_bound": 3500000, + "upper_bound": 3800000, + "frequencies": { + "psk31": 3580000, + "ft8": 3573000, + "wspr": 3592600, + "jt65": 3570000, + "jt9": 3572000, + "ft4": [3568000, 3575000] + } + }, + { + "name": "60m", + "lower_bound": 5351500, + "upper_bound": 5366500, + "frequencies": { + "ft8": 5357000, + "wspr": 5364700 + } + }, + { + "name": "40m", + "lower_bound": 7000000, + "upper_bound": 7200000, + "frequencies": { + "psk31": 7040000, + "ft8": 7074000, + "wspr": 7038600, + "jt65": 7076000, + "jt9": 7078000, + "ft4": 7047500 + } + }, + { + "name": "30m", + "lower_bound": 10100000, + "upper_bound": 10150000, + "frequencies": { + "psk31": 10141000, + "ft8": 10136000, + "wspr": 10138700, + "jt65": 10138000, + "jt9": 10140000, + "ft4": 10140000 + } + }, + { + "name": "20m", + "lower_bound": 14000000, + "upper_bound": 14350000, + "frequencies": { + "psk31": 14070000, + "ft8": 14074000, + "wspr": 14095600, + "jt65": 14076000, + "jt9": 14078000, + "ft4": 14080000 + } + }, + { + "name": "17m", + "lower_bound": 18068000, + "upper_bound": 18168000, + "frequencies": { + "psk31": 18098000, + "ft8": 18100000, + "wspr": 18104600, + "jt65": 18102000, + "jt9": 18104000, + "ft4": 18104000 + } + }, + { + "name": "15m", + "lower_bound": 21000000, + "upper_bound": 21450000, + "frequencies": { + "psk31": 21070000, + "ft8": 21074000, + "wspr": 21094600, + "jt65": 21076000, + "jt9": 21078000, + "ft4": 21140000 + } + }, + { + "name": "12m", + "lower_bound": 24890000, + "upper_bound": 24990000, + "frequencies": { + "psk31": 24920000, + "ft8": 24915000, + "wspr": 24924600, + "jt65": 24917000, + "jt9": 24919000, + "ft4": 24919000 + } + }, + { + "name": "10m", + "lower_bound": 28000000, + "upper_bound": 29700000, + "frequencies": { + "psk31": [28070000, 28120000], + "ft8": 28074000, + "wspr": 28124600, + "jt65": 28076000, + "jt9": 28078000, + "ft4": 28180000 + } + }, + { + "name": "6m", + "lower_bound": 50030000, + "upper_bound": 51000000, + "frequencies": { + "psk31": 50305000, + "ft8": 50313000, + "wspr": 50293000, + "jt65": 50310000, + "jt9": 50312000, + "ft4": 50318000 + } + }, + { + "name": "4m", + "lower_bound": 70150000, + "upper_bound": 70200000, + "frequencies": { + "wspr": 70091000 + } + }, + { + "name": "2m", + "lower_bound": 144000000, + "upper_bound": 146000000, + "frequencies": { + "wspr": 144489000, + "ft8": 144174000, + "ft4": 144170000, + "jt65": 144120000, + "packet": 144390000 + } + }, + { + "name": "70cm", + "lower_bound": 430000000, + "upper_bound": 440000000, + "frequencies": { + "packet": 434900000, + "pocsag": 439987500 + } + }, + { + "name": "23cm", + "lower_bound": 1240000000, + "upper_bound": 1300000000 + }, + { + "name": "13cm", + "lower_bound": 2320000000, + "upper_bound": 2450000000 + }, + { + "name": "9cm", + "lower_bound": 3400000000, + "upper_bound": 3475000000 + }, + { + "name": "6cm", + "lower_bound": 5650000000, + "upper_bound": 5850000000 + }, + { + "name": "3cm", + "lower_bound": 10000000000, + "upper_bound": 10500000000 + } +] diff --git a/groundstation/bookmarks_pi.json b/groundstation/bookmarks_pi.json index c0c146a8..69f80a22 100644 --- a/groundstation/bookmarks_pi.json +++ b/groundstation/bookmarks_pi.json @@ -9,11 +9,6 @@ "frequency": 145819000, "modulation": "nfm" }, - { - "name": "CubeSatSim", - "frequency": 434900000, - "modulation": "nfm" - }, { "name": "Fox-1B AO-91", "frequency": 145960000, diff --git a/groundstation/config_webrx_pi.py b/groundstation/config_webrx_pi.py index 4268b9b7..46efd320 100644 --- a/groundstation/config_webrx_pi.py +++ b/groundstation/config_webrx_pi.py @@ -37,7 +37,7 @@ config_webrx: configuration options for OpenWebRX # ==== Server settings ==== web_port = 8073 -max_clients = 20 +max_clients = 10 # ==== Web GUI configuration ==== receiver_name = "KU2Y" @@ -122,6 +122,14 @@ sdrs = { "70cm": { "name": "70cm Band", "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, "rf_gain": 30, "samp_rate": 2400000, "start_freq": 4355000000, @@ -130,6 +138,14 @@ sdrs = { "2m": { "name": "2m Band", "center_freq": 145000000, + "rf_gain": 15, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "2m-hi": { + "name": "2m Band High Gain", + "center_freq": 145000000, "rf_gain": 30, "samp_rate": 2400000, "start_freq": 145725000, @@ -143,6 +159,14 @@ sdrs = { "start_freq": 161500000, "start_mod": "nfm", }, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 90000000, + "start_mod": "nfm", + }, "atc": { "name": "Air Band - ATC", "center_freq": 134000000, @@ -151,6 +175,14 @@ sdrs = { "start_freq": 134000000, "start_mod": "am", }, + "atc-hi": { + "name": "Air Band - ATC High Gain", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, "noaa": { "name": "NOAA Weather Satellites", "center_freq": 137000000, @@ -160,7 +192,7 @@ sdrs = { "start_mod": "fm", }, "noaa-hi": { - "name": "NOAA Weather Satellites More Gain", + "name": "NOAA Weather Satellites High Gain", "center_freq": 137000000, "rf_gain": 25, "samp_rate": 2400000, From d2f2400ce79d078c8d3f3e6797693966d6a7387c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 7 May 2020 14:15:14 -0400 Subject: [PATCH 17/63] edits --- groundstation/bookmarks_pi.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/groundstation/bookmarks_pi.json b/groundstation/bookmarks_pi.json index 69f80a22..5d4719bd 100644 --- a/groundstation/bookmarks_pi.json +++ b/groundstation/bookmarks_pi.json @@ -44,11 +44,6 @@ "frequency": 162400000, "modulation": "nfm" }, - { - "name": "APRS", - "frequency": 144390000, - "modulation": "nfm" - }, { "name": "CAS-4A", "frequency": 145855000, From 9de55f1e43e24595843a58f4022e11cc91b3b090 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 May 2020 18:05:51 -0400 Subject: [PATCH 18/63] updated frequency in multimon decode --- groundstation/decode.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/decode.sh b/groundstation/decode.sh index 44db5a06..99f83b76 100755 --- a/groundstation/decode.sh +++ b/groundstation/decode.sh @@ -6,5 +6,5 @@ ps -ef | grep rtl | grep -v grep | awk '{print $2}' | sudo xargs kill echo -e "Script to auto decode CubeSat Simulator telemetry\n" -sudo rtl_fm -f 440.386M -s 22050 -g 48 - | multimon-ng -a AFSK1200 -A -t raw - +sudo rtl_fm -f 434.9M -s 22050 -g 48 - | multimon-ng -a AFSK1200 -A -t raw - From 959151a7dc848a1926831ab60d0eef0f415f6f3b Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 May 2020 22:54:59 -0400 Subject: [PATCH 19/63] adding gpredict configuration files --- groundstation/AMSAT.mod | 9 +++++++++ groundstation/gpredict.cfg | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 groundstation/AMSAT.mod create mode 100644 groundstation/gpredict.cfg diff --git a/groundstation/AMSAT.mod b/groundstation/AMSAT.mod new file mode 100644 index 00000000..0ce4b487 --- /dev/null +++ b/groundstation/AMSAT.mod @@ -0,0 +1,9 @@ +[GLOBAL] +SATELLITES=7530;22825;39444;43017;42761;42759;43770;43137;45119;25544;44354;40903;40911;40906;40907;40909;40910 + +[SINGLE_SAT] +SELECTED=7530 + +[LIST] +SORT_COLUMN=0 +SORT_ORDER=0 diff --git a/groundstation/gpredict.cfg b/groundstation/gpredict.cfg new file mode 100644 index 00000000..ad043087 --- /dev/null +++ b/groundstation/gpredict.cfg @@ -0,0 +1,22 @@ +[GLOBAL] +WINDOW_POS_X=148 +WINDOW_POS_Y=36 +WINDOW_WIDTH=982 +WINDOW_HEIGHT=654 +USE_LOCAL_TIME=false +TIME_FORMAT=%Y/%m/%d %H:%M:%S +USE_NSEW=false +USE_IMPERIAL=false +DEFAULT_QTH=AMSAT-HQ.qth +OPEN_MODULES=Amateur;AMSAT +CURRENT_PAGE=1 + +MAIN_WIN_POS=false +MOD_WIN_POS=false +MOD_STATE=false + +[TLE] +LAST_UPDATE=1589043270 + +[MODULES] +GRID=1;0;3;0;3;0;0;3;3;4;2;3;4;0;2;3;3;4;2;4 From 2c92d4d3184b6c34d31f717ef5e1def6cce0ac38 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 May 2020 23:02:34 -0400 Subject: [PATCH 20/63] gqrx default configuration --- groundstation/default.conf | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/groundstation/default.conf b/groundstation/default.conf index 7f3e052c..5e3a347f 100644 --- a/groundstation/default.conf +++ b/groundstation/default.conf @@ -3,31 +3,29 @@ configversion=2 crashed=false [audio] -gain=224 +gain=-74 udp_host=localhost -[fft] -fft_size=4096 -split=40 - [gui] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\0\0\0\0$\0\0\x3\xff\0\0\x2\xff\0\0\0\0\0\0\0\x42\0\0\x2\xe8\0\0\x2\xed\0\0\0\0\x2\0\0\0\x4\0) -state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\x1\0\0\x1&\0\0\x2\x65\xfc\x2\0\0\0\x2\xfc\0\0\0\x41\0\0\x1\x90\0\0\x1\x83\0\b\0 \xfa\0\0\0\x1\x2\0\0\0\x3\xfb\0\0\0\x18\0\x44\0o\0\x63\0k\0I\0n\0p\0u\0t\0\x43\0t\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1.\0\xff\xff\xff\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0R\0x\0O\0p\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1\x62\0\a\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0\x46\0\x66\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\a\xff\xff\xfc\0\0\x1\xd7\0\0\0\xcf\0\0\0\xc8\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\x2\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0\x41\0u\0\x64\0i\0o\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0R\0\x44\0S\0\0\0\0\0\xff\xff\xff\xff\0\0\0h\0\xff\xff\xff\0\0\0\x3\0\0\x2\xd4\0\0\0\xe9\xfc\x1\0\0\0\x1\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0\x42\0o\0o\0k\0m\0\x61\0r\0k\0s\x1\0\0\0\0\0\0\x2\xd4\0\0\x1\x42\0\xff\xff\xff\0\0\x2\xd4\0\0\x1v\0\0\0\x1\0\0\0\x2\0\0\0\b\0\0\0\x2\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x16\0m\0\x61\0i\0n\0T\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\xb3\0\0\0)\0\0\x3\xad\0\0\x3\v\0\0\0\xb5\0\0\0G\0\0\x3\xad\0\0\x3\v\0\0\0\0\0\0\0\0\x5\0) +state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\x1\0\0\x1\x36\0\0\x2\x66\xfc\x2\0\0\0\x2\xfc\0\0\0\x44\0\0\x1\x98\0\0\x1\x98\0\b\0\"\xfa\0\0\0\x1\x2\0\0\0\x3\xfb\0\0\0\x18\0\x44\0o\0\x63\0k\0I\0n\0p\0u\0t\0\x43\0t\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1?\0\xff\xff\xff\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0R\0x\0O\0p\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1u\0\a\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0\x46\0\x66\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\a\xff\xff\xfc\0\0\x1\xe2\0\0\0\xc8\0\0\0\xc8\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\x2\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0\x41\0u\0\x64\0i\0o\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0R\0\x44\0S\0\0\0\0\0\xff\xff\xff\xff\0\0\0h\0\xff\xff\xff\0\0\0\x3\0\0\0\0\0\0\0\0\xfc\x1\0\0\0\x1\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0\x42\0o\0o\0k\0m\0\x61\0r\0k\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\x42\0\xff\xff\xff\0\0\x1\xbd\0\0\x2\x66\0\0\0\x1\0\0\0\x2\0\0\0\b\0\0\0\x2\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x16\0m\0\x61\0i\0n\0T\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) [input] device="rtl=0" -frequency=145800000 -gains=@Variant(\0\0\0\b\0\0\0\x1\0\0\0\x6\0L\0N\0\x41\0\0\0\x2\0\0\x1\xf0) -sample_rate=512000 +frequency=144390000 +gains=@Variant(\0\0\0\b\0\0\0\x1\0\0\0\x6\0L\0N\0\x41\0\0\0\x2\0\0\x1\x1d) +sample_rate=1800000 + +[output] +device=alsa_output.platform-soc_audio.analog-mono [receiver] -agc_decay=100 agc_off=true demod=3 filter_high_cut=5000 filter_low_cut=-5000 -offset=-202000 -sql_level=-42.5 +offset=71600 +sql_level=-59.7 [remote_control] allowed_hosts=::ffff:127.0.0.1 From 20ec0b86e90c02a2988332e782c129833db15485 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 May 2020 00:01:40 -0400 Subject: [PATCH 21/63] adding details --- groundstation/config_webrx_pi.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/groundstation/config_webrx_pi.py b/groundstation/config_webrx_pi.py index 46efd320..cc08a3eb 100644 --- a/groundstation/config_webrx_pi.py +++ b/groundstation/config_webrx_pi.py @@ -45,13 +45,13 @@ receiver_location = "Philadelphia, PA" receiver_asl = 200 receiver_admin = "ku2y@amsat.org" receiver_gps = (40.0376, -75.3492) -photo_title = "Panorama of Budapest from Schönherz Zoltán Dormitory" +photo_title = "ARISS" photo_desc = """ You can add your own background photo and receiver information.
-Receiver is operated by: %[RX_ADMIN]
-Device: %[RX_DEVICE]
-Antenna: %[RX_ANT]
-Website: http://localhost +Receiver is operated by: ku2y@amsat.org
+Device: RTL-SDR
+Antenna:
+Website: http://ariss-radio:8073 """ # ==== sdr.hu listing ==== From a6380b529e16c8318a1f030ebdd081f4b1dcfc97 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:02:08 -0400 Subject: [PATCH 22/63] Create config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 390 ++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 groundstation/config_webrx_pi_hf.py diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py new file mode 100644 index 00000000..eed31756 --- /dev/null +++ b/groundstation/config_webrx_pi_hf.py @@ -0,0 +1,390 @@ +# -*- coding: utf-8 -*- + +""" +config_webrx: configuration options for OpenWebRX + This file is part of OpenWebRX, + an open-source SDR receiver software with a web UI. + Copyright (c) 2013-2015 by Andras Retzler + Copyright (c) 2019-2020 by Jakob Ketterl + 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. + This program is distributed in the hope that it will be useful, + 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 . + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 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. + (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.) +""" + +# NOTE: you can find additional information about configuring OpenWebRX in the Wiki: +# https://github.com/simonyiszk/openwebrx/wiki + +# ==== Server settings ==== +web_port = 8073 +max_clients = 10 + +# ==== Web GUI configuration ==== +receiver_name = "KU2Y" +receiver_location = "Philadelphia, PA" +receiver_asl = 200 +receiver_admin = "ku2y@amsat.org" +receiver_gps = (40.0376, -75.3492) +photo_title = "ARISS" +photo_desc = """ +You can add your own background photo and receiver information.
+Receiver is operated by: ku2y@amsat.org
+Device: RTL-SDR
+Antenna:
+Website: http://ariss-radio:8073 +""" + +# ==== 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 +server_hostname = "localhost" + +# ==== DSP/RX settings ==== +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. +) + +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 + +# 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 +# enables lookup of DMR ids using the radioid api +digital_voice_dmr_id_lookup = True + +""" +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.) + +################################################################################################# +# Is my SDR hardware supported? # +# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # +################################################################################################# + +# Currently supported types of sdr receivers: +# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr" +# +# 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. +# +# https://github.com/jketterl/owrx_connector +# +# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs +# configured that have type endin in "_connector", simply remove that suffix. + +sdrs = { + "rtlsdr": { + "name": "RTL-SDR", + "type": "rtl_sdr", + "ppm": 0, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "2m": { + "name": "2m Band", + "center_freq": 145000000, + "rf_gain": 15, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "2m-hi": { + "name": "2m Band High Gain", + "center_freq": 145000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 90000000, + "start_mod": "nfm", + }, + "atc": { + "name": "Air Band - ATC", + "center_freq": 134000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "atc-hi": { + "name": "Air Band - ATC High Gain", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "noaa": { + "name": "NOAA Weather Satellites", + "center_freq": 137000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "noaa-hi": { + "name": "NOAA Weather Satellites High Gain", + "center_freq": 137000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, }, + }, + "rtlsdr-hf": { + "name": "RTL-SDR", + "type": "rtl_sdr", + "ppm": 0 + "direct_sampling": 2, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, }, + }, + "airspy": { + "name": "Airspy HF+", + "type": "airspyhf", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 192000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 256000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 6070000, + "start_mod": "am", + }, + }, + }, + "sdrplay": { + "name": "SDRPlay RSP2", + "type": "sdrplay", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 14070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 0, + "samp_rate": 250000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 7070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 3570000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 6070000, + "start_mod": "am", + "antenna": "Antenna A", + }, + }, + }, +} + +# ==== Color themes ==== + +# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels + +### 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 = (5, 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 = (20, 30) +##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[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 __| + +# === 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. + +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 + +# 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 +# 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 +wsjt_decoding_depths = {"jt65": 1} + +temporary_directory = "/tmp" + +services_enabled = False +services_decoders = ["ft8", "ft4", "wspr", "packet"] + +# === 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 + +# path to the aprs symbols repository (get it here: https://github.com/hessu/aprs-symbols) +aprs_symbols_path = "/opt/aprs-symbols/png" + +# === PSK Reporter setting === +# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info +# this also uses the receiver_gps setting from above, so make sure it contains a correct locator +pskreporter_enabled = False +pskreporter_callsign = "N0CALL" From 2a493776ea6b433453368b35385641cd7bd2e8bb Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:06:58 -0400 Subject: [PATCH 23/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index eed31756..9571a410 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -196,7 +196,7 @@ sdrs = { "rtlsdr-hf": { "name": "RTL-SDR", "type": "rtl_sdr", - "ppm": 0 + "ppm": 0, "direct_sampling": 2, # you can change this if you use an upconverter. formula is: # center_freq + lfo_offset = actual frequency on the sdr From 78a84a1c66c304222dd7562891198385fbd38f12 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:09:02 -0400 Subject: [PATCH 24/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 48 ++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index 9571a410..b7f51058 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -202,14 +202,46 @@ sdrs = { # center_freq + lfo_offset = actual frequency on the sdr # "lfo_offset": 0, "profiles": { - "70cm": { - "name": "70cm Band", - "center_freq": 435500000, - "rf_gain": 3, - "samp_rate": 2400000, - "start_freq": 4355000000, - "start_mod": "nfm", - }, }, + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 192000, + "start_freq": 10000000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 256000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 6070000, + "start_mod": "am", + }, }, }, "airspy": { "name": "Airspy HF+", From 434488618cd1be5b0447e58ec8d5e1c9ecf72098 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:14:15 -0400 Subject: [PATCH 25/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index b7f51058..642b789d 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -214,8 +214,8 @@ sdrs = { "name": "30m", "center_freq": 10125000, "rf_gain": 10, - "samp_rate": 192000, - "start_freq": 10000000, + "samp_rate": 240000, + "start_freq": 10125000, "start_mod": "usb", }, "40m": { From ae533460b6ccc7373cf8bfd45b7bdd4af45e4b60 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:16:15 -0400 Subject: [PATCH 26/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index 642b789d..328ad711 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -197,7 +197,7 @@ sdrs = { "name": "RTL-SDR", "type": "rtl_sdr", "ppm": 0, - "direct_sampling": 2, + #"direct_sampling": 2, # you can change this if you use an upconverter. formula is: # center_freq + lfo_offset = actual frequency on the sdr # "lfo_offset": 0, From 8e9d38d54fd421e622ba53b2b93c6aca66cebb9d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:17:20 -0400 Subject: [PATCH 27/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index 328ad711..be8a8c73 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -194,7 +194,7 @@ sdrs = { }, }, }, "rtlsdr-hf": { - "name": "RTL-SDR", + "name": "RTL-SDR-HF", "type": "rtl_sdr", "ppm": 0, #"direct_sampling": 2, From 10a63d426e36796f3691095093b97c6f709fa900 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:21:36 -0400 Subject: [PATCH 28/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 100 ++++++++++++++-------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index be8a8c73..6d716326 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -104,6 +104,56 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # configured that have type endin in "_connector", simply remove that suffix. sdrs = { + "rtlsdr-hf": { + "name": "RTL-SDR-HF", + "type": "rtl_sdr", + "ppm": 0, + #"direct_sampling": 2, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 240000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 240000, + "start_freq": 10125000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 256000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 6070000, + "start_mod": "am", + }, }, + }, "rtlsdr": { "name": "RTL-SDR", "type": "rtl_sdr", @@ -193,56 +243,6 @@ sdrs = { "start_mod": "fm", }, }, }, - "rtlsdr-hf": { - "name": "RTL-SDR-HF", - "type": "rtl_sdr", - "ppm": 0, - #"direct_sampling": 2, - # you can change this if you use an upconverter. formula is: - # center_freq + lfo_offset = actual frequency on the sdr - # "lfo_offset": 0, - "profiles": { - "20m": { - "name": "20m", - "center_freq": 14150000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 14070000, - "start_mod": "usb", - }, - "30m": { - "name": "30m", - "center_freq": 10125000, - "rf_gain": 10, - "samp_rate": 240000, - "start_freq": 10125000, - "start_mod": "usb", - }, - "40m": { - "name": "40m", - "center_freq": 7100000, - "rf_gain": 10, - "samp_rate": 256000, - "start_freq": 7070000, - "start_mod": "usb", - }, - "80m": { - "name": "80m", - "center_freq": 3650000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 3570000, - "start_mod": "usb", - }, - "49m": { - "name": "49m Broadcast", - "center_freq": 6000000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 6070000, - "start_mod": "am", - }, }, - }, "airspy": { "name": "Airspy HF+", "type": "airspyhf", From 3ec25eee3ca9f33d8282a726fe0f1059306e9167 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 13 May 2020 11:25:31 -0400 Subject: [PATCH 29/63] Update config_webrx_pi_hf.py --- groundstation/config_webrx_pi_hf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index 6d716326..8ff8d15e 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -106,9 +106,9 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: sdrs = { "rtlsdr-hf": { "name": "RTL-SDR-HF", - "type": "rtl_sdr", + "type": "rtl_sdr_soapy", "ppm": 0, - #"direct_sampling": 2, + "direct_sampling": 2, # you can change this if you use an upconverter. formula is: # center_freq + lfo_offset = actual frequency on the sdr # "lfo_offset": 0, From 0c6bfeabd57b215c17f4107de405d876f5a64722 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 15 May 2020 16:34:19 -0400 Subject: [PATCH 30/63] added direct_sampling HF --- groundstation/config_webrx_pi.py | 57 +++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/groundstation/config_webrx_pi.py b/groundstation/config_webrx_pi.py index cc08a3eb..dddb5404 100644 --- a/groundstation/config_webrx_pi.py +++ b/groundstation/config_webrx_pi.py @@ -198,7 +198,62 @@ sdrs = { "samp_rate": 2400000, "start_freq": 137000000, "start_mod": "fm", - }, }, + }, + "20m": { + "name": "20m", + "direct_sampling": 2, + "center_freq": 14150000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "direct_sampling": 2, + "center_freq": 10125000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "direct_sampling": 2, + "center_freq": 7100000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "direct_sampling": 2, + "center_freq": 3650000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "direct_sampling": 2, + "center_freq": 6000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 6070000, + "start_mod": "am", + }, + "MW": { + "name": "Medium Wave AM Broadcast", + "direct_sampling": 2, + "center_freq": 1000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1500000, + "start_mod": "am", + }, + }, }, "airspy": { "name": "Airspy HF+", From fc9d6366bbe5e9e48c716792cdb6090488ca576c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 25 May 2020 15:17:53 -0400 Subject: [PATCH 31/63] initial add --- groundstation/gpredict.desktop | 10 ++++++++++ groundstation/webSDR.desktop | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 groundstation/gpredict.desktop create mode 100644 groundstation/webSDR.desktop diff --git a/groundstation/gpredict.desktop b/groundstation/gpredict.desktop new file mode 100644 index 00000000..20a6ab49 --- /dev/null +++ b/groundstation/gpredict.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Exec=/usr/bin/gpredict +Name=Gpredict +Comment=ISS and Satellite Tracking for ARISS Radio Pi +Icon=/home/pi/Downloads/gpredict.png +Path=/home/pi +Terminal=false +Categories=HamRadio +Keywords=Ham Radio;AMSAT diff --git a/groundstation/webSDR.desktop b/groundstation/webSDR.desktop new file mode 100644 index 00000000..b08dd11b --- /dev/null +++ b/groundstation/webSDR.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Exec=/home/pi/sdr.sh +Name=Web SDR +Comment=openwebrx for Web SDR +Icon=/home/pi/Downloads/sdr.ico +Path=/home/pi +Terminal=true +Categories=HamRadio +Keywords=Ham Radio;SDR From 21febe6867357d1b0dccd9ac4fdde4d2d775ab94 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2020 06:30:52 -0400 Subject: [PATCH 32/63] initial add of soapy --- groundstation/config_webrx_pi.py | 108 ++-- groundstation/config_webrx_soapy.py | 954 ++++++++++++++++++++++++++++ 2 files changed, 1008 insertions(+), 54 deletions(-) create mode 100644 groundstation/config_webrx_soapy.py diff --git a/groundstation/config_webrx_pi.py b/groundstation/config_webrx_pi.py index dddb5404..3f30fd61 100644 --- a/groundstation/config_webrx_pi.py +++ b/groundstation/config_webrx_pi.py @@ -199,60 +199,60 @@ sdrs = { "start_freq": 137000000, "start_mod": "fm", }, - "20m": { - "name": "20m", - "direct_sampling": 2, - "center_freq": 14150000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 14070000, - "start_mod": "usb", - }, - "30m": { - "name": "30m", - "direct_sampling": 2, - "center_freq": 10125000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 10142000, - "start_mod": "usb", - }, - "40m": { - "name": "40m", - "direct_sampling": 2, - "center_freq": 7100000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 7070000, - "start_mod": "usb", - }, - "80m": { - "name": "80m", - "direct_sampling": 2, - "center_freq": 3650000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 3570000, - "start_mod": "usb", - }, - "49m": { - "name": "49m Broadcast", - "direct_sampling": 2, - "center_freq": 6000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 6070000, - "start_mod": "am", - }, - "MW": { - "name": "Medium Wave AM Broadcast", - "direct_sampling": 2, - "center_freq": 1000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 1500000, - "start_mod": "am", - }, +# "20m": { +# "name": "20m", +# "direct_sampling": 2, +# "center_freq": 14150000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 14070000, +# "start_mod": "usb", +# }, +# "30m": { +# "name": "30m", +# "direct_sampling": 2, +# "center_freq": 10125000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 10142000, +# "start_mod": "usb", +# }, +# "40m": { +# "name": "40m", +# "direct_sampling": 2, +# "center_freq": 7100000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 7070000, +# "start_mod": "usb", +# }, +# "80m": { +# "name": "80m", +# "direct_sampling": 2, +# "center_freq": 3650000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 3570000, +# "start_mod": "usb", +# }, +# "49m": { +# "name": "49m Broadcast", +# "direct_sampling": 2, +# "center_freq": 6000000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 6070000, +# "start_mod": "am", +# }, +# "MW": { +# "name": "Medium Wave AM Broadcast", +# "direct_sampling": 2, +# "center_freq": 1000000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 1500000, +# "start_mod": "am", +# }, }, }, "airspy": { diff --git a/groundstation/config_webrx_soapy.py b/groundstation/config_webrx_soapy.py new file mode 100644 index 00000000..d9273220 --- /dev/null +++ b/groundstation/config_webrx_soapy.py @@ -0,0 +1,954 @@ +# -*- coding: utf-8 -*- + +""" +config_webrx: configuration options for OpenWebRX + + This file is part of OpenWebRX, + an open-source SDR receiver software with a web UI. + Copyright (c) 2013-2015 by Andras Retzler + Copyright (c) 2019-2020 by Jakob Ketterl + + 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. + + This program is distributed in the hope that it will be useful, + 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 . + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + 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. + + (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.) +""" + +# NOTE: you can find additional information about configuring OpenWebRX in the Wiki: +# https://github.com/simonyiszk/openwebrx/wiki + +# ==== Server settings ==== +web_port = 8073 +max_clients = 10 + +# ==== Web GUI configuration ==== +receiver_name = "KU2Y" +receiver_location = "Philadelphia, PA" +receiver_asl = 200 +receiver_admin = "ku2y@amsat.org" +receiver_gps = (40.0376, -75.3492) +photo_title = "ARISS" +photo_desc = """ +You can add your own background photo and receiver information.
+Receiver is operated by: ku2y@amsat.org
+Device: RTL-SDR
+Antenna:
+Website: http://ariss-radio:8073 +""" + +# ==== 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 +server_hostname = "localhost" + +# ==== DSP/RX settings ==== +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. +) + +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 + +# 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 +# enables lookup of DMR ids using the radioid api +digital_voice_dmr_id_lookup = True + +""" +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.) + +################################################################################################# +# Is my SDR hardware supported? # +# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # +################################################################################################# + +# Currently supported types of sdr receivers: +# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr" +# +# 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. +# +# https://github.com/jketterl/owrx_connector +# +# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs +# configured that have type endin in "_connector", simply remove that suffix. + +sdrs = { + "rtlsdr": { + "name": "RTL-SDR", + "type": "rtl_sdr", + "ppm": 0, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "2m": { + "name": "2m Band", + "center_freq": 145000000, + "rf_gain": 15, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "2m-hi": { + "name": "2m Band High Gain", + "center_freq": 145000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 90000000, + "start_mod": "nfm", + }, + "atc": { + "name": "Air Band - ATC", + "center_freq": 134000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "atc-hi": { + "name": "Air Band - ATC High Gain", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "noaa": { + "name": "NOAA Weather Satellites", + "center_freq": 137000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "noaa-hi": { + "name": "NOAA Weather Satellites High Gain", + "center_freq": 137000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, +# "20m": { +# "name": "20m", +# "direct_sampling": 2, +# "center_freq": 14150000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 14070000, +# "start_mod": "usb", +# }, +# "30m": { +# "name": "30m", +# "direct_sampling": 2, +# "center_freq": 10125000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 10142000, +# "start_mod": "usb", +# }, +# "40m": { +# "name": "40m", +# "direct_sampling": 2, +# "center_freq": 7100000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 7070000, +# "start_mod": "usb", +# }, +# "80m": { +# "name": "80m", +# "direct_sampling": 2, +# "center_freq": 3650000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 3570000, +# "start_mod": "usb", +# }, +# "49m": { +# "name": "49m Broadcast", +# "direct_sampling": 2, +# "center_freq": 6000000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 6070000, +# "start_mod": "am", +# }, +# "MW": { +# "name": "Medium Wave AM Broadcast", +# "direct_sampling": 2, +# "center_freq": 1000000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 1500000, +# "start_mod": "am", +# }, + "110mhz": { + "name": "110 MHz", + "center_freq": 110000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 110000000, + "start_mod": "nfm", + }, + "112mhz": { + "name": "112 MHz", + "center_freq": 112000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 112000000, + "start_mod": "nfm", + }, + "114mhz": { + "name": "114 MHz", + "center_freq": 114000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 114000000, + "start_mod": "nfm", + }, + "116mhz": { + "name": "116 MHz", + "center_freq": 116000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 116000000, + "start_mod": "nfm", + }, + "118mhz": { + "name": "118 MHz", + "center_freq": 118000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 118000000, + "start_mod": "nfm", + }, + "120mhz": { + "name": "120 MHz", + "center_freq": 120000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 120000000, + "start_mod": "nfm", + }, + "122mhz": { + "name": "122 MHz", + "center_freq": 122000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 122000000, + "start_mod": "nfm", + }, + "124mhz": { + "name": "124 MHz", + "center_freq": 124000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 124000000, + "start_mod": "nfm", + }, + "126mhz": { + "name": "126 MHz", + "center_freq": 126000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 126000000, + "start_mod": "nfm", + }, + "128mhz": { + "name": "126 MHz", + "center_freq": 128000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 128000000, + "start_mod": "nfm", + }, + "130mhz": { + "name": "130 MHz", + "center_freq": 130000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 130000000, + "start_mod": "nfm", + }, + "132mhz": { + "name": "132 MHz", + "center_freq": 132000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 132000000, + "start_mod": "nfm", + }, + "134mhz": { + "name": "134 MHz", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "nfm", + }, + "136mhz": { + "name": "136 MHz", + "center_freq": 136000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 136000000, + "start_mod": "nfm", + }, + "138mhz": { + "name": "138 MHz", + "center_freq": 138000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 138000000, + "start_mod": "nfm", + }, + "140mhz": { + "name": "140 MHz", + "center_freq": 140000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 140000000, + "start_mod": "nfm", + }, + "142mhz": { + "name": "142 MHz", + "center_freq": 142000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 142000000, + "start_mod": "nfm", + }, + "144mhz": { + "name": "144 MHz", + "center_freq": 144000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 144000000, + "start_mod": "nfm", + }, + "146mhz": { + "name": "146 MHz", + "center_freq": 146000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 146000000, + "start_mod": "nfm", + }, + "148mhz": { + "name": "148 MHz", + "center_freq": 148000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 148000000, + "start_mod": "nfm", + }, + "150mhz": { + "name": "150 MHz", + "center_freq": 150000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 150000000, + "start_mod": "nfm", + }, + "152mhz": { + "name": "152 MHz", + "center_freq": 152000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 152000000, + "start_mod": "nfm", + }, + "154mhz": { + "name": "154 MHz", + "center_freq": 154000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 154000000, + "start_mod": "nfm", + }, + "156mhz": { + "name": "156 MHz", + "center_freq": 156000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 156100000, + "start_mod": "nfm", + }, + "158mhz": { + "name": "158 MHz", + "center_freq": 158000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 158000000, + "start_mod": "nfm", + }, + "160mhz": { + "name": "160 MHz", + "center_freq": 160000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 160000000, + "start_mod": "nfm", + }, + "162mhz": { + "name": "162 MHz", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 162000000, + "start_mod": "nfm", + }, + "164mhz": { + "name": "164 MHz", + "center_freq": 164000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 164000000, + "start_mod": "nfm", + }, + "166mhz": { + "name": "166 MHz", + "center_freq": 166000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 166000000, + "start_mod": "nfm", + }, + "168mhz": { + "name": "168 MHz", + "center_freq": 168000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 168000000, + "start_mod": "nfm", + }, + "170mhz": { + "name": "170 MHz", + "center_freq": 170000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 170000000, + "start_mod": "nfm", + }, + "172mhz": { + "name": "172 MHz", + "center_freq": 172000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 172000000, + "start_mod": "nfm", + }, + "174mhz": { + "name": "174 MHz", + "center_freq": 174000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 174000000, + "start_mod": "nfm", + }, + "433mhz": { + "name": "433 MHz", + "center_freq": 433000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 433000000, + "start_mod": "nfm", + }, + "446mhz": { + "name": "446 MHz (PMR)", + "center_freq": 446000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 446000000, + "start_mod": "nfm", + }, + "460mhz": { + "name": "460 MHz", + "center_freq": 460000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 460000000, + "start_mod": "nfm", + }, + "860mhz": { + "name": "860 MHz", + "center_freq": 860000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 860000000, + "start_mod": "nfm", + }, + "862mhz": { + "name": "862 MHz", + "center_freq": 862000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 862000000, + "start_mod": "nfm", + }, + "864mhz": { + "name": "864 MHz", + "center_freq": 864000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 864000000, + "start_mod": "nfm", + }, + "866mhz": { + "name": "866 MHz", + "center_freq": 866000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 866000000, + "start_mod": "nfm", + }, + "868mhz": { + "name": "868 MHz", + "center_freq": 868000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 868000000, + "start_mod": "nfm", + }, + "870mhz": { + "name": "870 MHz", + "center_freq": 870000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 870000000, + "start_mod": "nfm", + }, + "915mhz": { + "name": "915 MHz", + "center_freq": 915000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 915000000, + "start_mod": "nfm", + }, + "1090mhz": { + "name": "1090 MHz", + "center_freq": 1090000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1090000000, + "start_mod": "nfm", + }, + "1880mhz": { + "name": "1880 MHz", + "center_freq": 1880000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1880000000, + "start_mod": "nfm", + }, + "1882mhz": { + "name": "1882 MHz", + "center_freq": 1882000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1882000000, + "start_mod": "nfm", + }, + "1884mhz": { + "name": "1884 MHz", + "center_freq": 1884000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1884000000, + "start_mod": "nfm", + }, + "1886mhz": { + "name": "1886 MHz", + "center_freq": 1886000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1886000000, + "start_mod": "nfm", + }, + "1888mhz": { + "name": "1888 MHz", + "center_freq": 1888000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1888000000, + "start_mod": "nfm", + }, + "1890mhz": { + "name": "1890 MHz", + "center_freq": 1890000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1890000000, + "start_mod": "nfm", + }, + "1892mhz": { + "name": "1892 MHz", + "center_freq": 1892000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1892000000, + "start_mod": "nfm", + }, + "1894mhz": { + "name": "1894 MHz", + "center_freq": 1894000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1894000000, + "start_mod": "nfm", + }, + "1896mhz": { + "name": "1896 MHz", + "center_freq": 1896000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1896000000, + "start_mod": "nfm", + }, + "1898mhz": { + "name": "1898 MHz", + "center_freq": 1898000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1898000000, + "start_mod": "nfm", + }, + "1900mhz": { + "name": "1900 MHz", + "center_freq": 1900000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1900000000, + "start_mod": "nfm", + }, + "23cm": { + "name": "23cm (HAM)", + "center_freq": 1270000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1270000000, + "start_mod": "nfm", + }, + "13cm": { + "name": "13cm (HAM)", + "center_freq": 2370000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 2370000000, + "start_mod": "nfm", + }, + "9cm": { + "name": "9cm (HAM)", + "center_freq": 3440000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 3440000000, + "start_mod": "nfm", + }, + }, + }, + "rtl_sdr_V3": { + "name": "RTL-SDR V3 HF+", + "type": "rtl_sdr_soapy", + "ppm": 0, + "direct_sampling": 2, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 7070000, + "start_mod": "lsb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 3570000, + "start_mod": "lsb", + }, + "160m": { + "name": "160m", + "center_freq": 1900000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 1840000, + "start_mod": "lsb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 6070000, + "start_mod": "am", + }, + }, + }, + "airspy": { + "name": "Airspy HF+", + "type": "airspyhf", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 192000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 256000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 6070000, + "start_mod": "am", + }, + }, + }, + "sdrplay": { + "name": "SDRPlay RSP2", + "type": "sdrplay", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 14070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 0, + "samp_rate": 250000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 7070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 3570000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 6070000, + "start_mod": "am", + "antenna": "Antenna A", + }, + }, + }, +} + +# ==== Color themes ==== + +# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels + +### 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 = (5, 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 = (20, 30) +##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[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 __| + +# === 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. + +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 + +# 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 +# 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 +wsjt_decoding_depths = {"jt65": 1} + +temporary_directory = "/tmp" + +services_enabled = False +services_decoders = ["ft8", "ft4", "wspr", "packet"] + +# === 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 + +# path to the aprs symbols repository (get it here: https://github.com/hessu/aprs-symbols) +aprs_symbols_path = "/opt/aprs-symbols/png" + +# === PSK Reporter setting === +# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info +# this also uses the receiver_gps setting from above, so make sure it contains a correct locator +pskreporter_enabled = False +pskreporter_callsign = "N0CALL" From c6099591d52e698bcaf4c5606cfbbc1d3012557b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 26 May 2020 06:37:30 -0400 Subject: [PATCH 33/63] commented out hf soapy part --- groundstation/config_webrx_vhf.py | 954 ++++++++++++++++++++++++++++++ 1 file changed, 954 insertions(+) create mode 100644 groundstation/config_webrx_vhf.py diff --git a/groundstation/config_webrx_vhf.py b/groundstation/config_webrx_vhf.py new file mode 100644 index 00000000..1b60a49e --- /dev/null +++ b/groundstation/config_webrx_vhf.py @@ -0,0 +1,954 @@ +# -*- coding: utf-8 -*- + +""" +config_webrx: configuration options for OpenWebRX + + This file is part of OpenWebRX, + an open-source SDR receiver software with a web UI. + Copyright (c) 2013-2015 by Andras Retzler + Copyright (c) 2019-2020 by Jakob Ketterl + + 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. + + This program is distributed in the hope that it will be useful, + 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 . + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + 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. + + (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.) +""" + +# NOTE: you can find additional information about configuring OpenWebRX in the Wiki: +# https://github.com/simonyiszk/openwebrx/wiki + +# ==== Server settings ==== +web_port = 8073 +max_clients = 10 + +# ==== Web GUI configuration ==== +receiver_name = "KU2Y" +receiver_location = "Philadelphia, PA" +receiver_asl = 200 +receiver_admin = "ku2y@amsat.org" +receiver_gps = (40.0376, -75.3492) +photo_title = "ARISS" +photo_desc = """ +You can add your own background photo and receiver information.
+Receiver is operated by: ku2y@amsat.org
+Device: RTL-SDR
+Antenna:
+Website: http://ariss-radio:8073 +""" + +# ==== 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 +server_hostname = "localhost" + +# ==== DSP/RX settings ==== +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. +) + +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 + +# 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 +# enables lookup of DMR ids using the radioid api +digital_voice_dmr_id_lookup = True + +""" +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.) + +################################################################################################# +# Is my SDR hardware supported? # +# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # +################################################################################################# + +# Currently supported types of sdr receivers: +# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr" +# +# 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. +# +# https://github.com/jketterl/owrx_connector +# +# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs +# configured that have type endin in "_connector", simply remove that suffix. + +sdrs = { + "rtlsdr": { + "name": "RTL-SDR", + "type": "rtl_sdr", + "ppm": 0, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "2m": { + "name": "2m Band", + "center_freq": 145000000, + "rf_gain": 15, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "2m-hi": { + "name": "2m Band High Gain", + "center_freq": 145000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 90000000, + "start_mod": "nfm", + }, + "atc": { + "name": "Air Band - ATC", + "center_freq": 134000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "atc-hi": { + "name": "Air Band - ATC High Gain", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "noaa": { + "name": "NOAA Weather Satellites", + "center_freq": 137000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "noaa-hi": { + "name": "NOAA Weather Satellites High Gain", + "center_freq": 137000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, +# "20m": { +# "name": "20m", +# "direct_sampling": 2, +# "center_freq": 14150000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 14070000, +# "start_mod": "usb", +# }, +# "30m": { +# "name": "30m", +# "direct_sampling": 2, +# "center_freq": 10125000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 10142000, +# "start_mod": "usb", +# }, +# "40m": { +# "name": "40m", +# "direct_sampling": 2, +# "center_freq": 7100000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 7070000, +# "start_mod": "usb", +# }, +# "80m": { +# "name": "80m", +# "direct_sampling": 2, +# "center_freq": 3650000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 3570000, +# "start_mod": "usb", +# }, +# "49m": { +# "name": "49m Broadcast", +# "direct_sampling": 2, +# "center_freq": 6000000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 6070000, +# "start_mod": "am", +# }, +# "MW": { +# "name": "Medium Wave AM Broadcast", +# "direct_sampling": 2, +# "center_freq": 1000000, +# "rf_gain": 30, +# "samp_rate": 2400000, +# "start_freq": 1500000, +# "start_mod": "am", +# }, + "110mhz": { + "name": "110 MHz", + "center_freq": 110000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 110000000, + "start_mod": "nfm", + }, + "112mhz": { + "name": "112 MHz", + "center_freq": 112000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 112000000, + "start_mod": "nfm", + }, + "114mhz": { + "name": "114 MHz", + "center_freq": 114000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 114000000, + "start_mod": "nfm", + }, + "116mhz": { + "name": "116 MHz", + "center_freq": 116000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 116000000, + "start_mod": "nfm", + }, + "118mhz": { + "name": "118 MHz", + "center_freq": 118000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 118000000, + "start_mod": "nfm", + }, + "120mhz": { + "name": "120 MHz", + "center_freq": 120000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 120000000, + "start_mod": "nfm", + }, + "122mhz": { + "name": "122 MHz", + "center_freq": 122000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 122000000, + "start_mod": "nfm", + }, + "124mhz": { + "name": "124 MHz", + "center_freq": 124000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 124000000, + "start_mod": "nfm", + }, + "126mhz": { + "name": "126 MHz", + "center_freq": 126000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 126000000, + "start_mod": "nfm", + }, + "128mhz": { + "name": "126 MHz", + "center_freq": 128000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 128000000, + "start_mod": "nfm", + }, + "130mhz": { + "name": "130 MHz", + "center_freq": 130000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 130000000, + "start_mod": "nfm", + }, + "132mhz": { + "name": "132 MHz", + "center_freq": 132000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 132000000, + "start_mod": "nfm", + }, + "134mhz": { + "name": "134 MHz", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "nfm", + }, + "136mhz": { + "name": "136 MHz", + "center_freq": 136000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 136000000, + "start_mod": "nfm", + }, + "138mhz": { + "name": "138 MHz", + "center_freq": 138000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 138000000, + "start_mod": "nfm", + }, + "140mhz": { + "name": "140 MHz", + "center_freq": 140000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 140000000, + "start_mod": "nfm", + }, + "142mhz": { + "name": "142 MHz", + "center_freq": 142000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 142000000, + "start_mod": "nfm", + }, + "144mhz": { + "name": "144 MHz", + "center_freq": 144000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 144000000, + "start_mod": "nfm", + }, + "146mhz": { + "name": "146 MHz", + "center_freq": 146000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 146000000, + "start_mod": "nfm", + }, + "148mhz": { + "name": "148 MHz", + "center_freq": 148000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 148000000, + "start_mod": "nfm", + }, + "150mhz": { + "name": "150 MHz", + "center_freq": 150000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 150000000, + "start_mod": "nfm", + }, + "152mhz": { + "name": "152 MHz", + "center_freq": 152000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 152000000, + "start_mod": "nfm", + }, + "154mhz": { + "name": "154 MHz", + "center_freq": 154000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 154000000, + "start_mod": "nfm", + }, + "156mhz": { + "name": "156 MHz", + "center_freq": 156000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 156100000, + "start_mod": "nfm", + }, + "158mhz": { + "name": "158 MHz", + "center_freq": 158000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 158000000, + "start_mod": "nfm", + }, + "160mhz": { + "name": "160 MHz", + "center_freq": 160000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 160000000, + "start_mod": "nfm", + }, + "162mhz": { + "name": "162 MHz", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 162000000, + "start_mod": "nfm", + }, + "164mhz": { + "name": "164 MHz", + "center_freq": 164000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 164000000, + "start_mod": "nfm", + }, + "166mhz": { + "name": "166 MHz", + "center_freq": 166000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 166000000, + "start_mod": "nfm", + }, + "168mhz": { + "name": "168 MHz", + "center_freq": 168000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 168000000, + "start_mod": "nfm", + }, + "170mhz": { + "name": "170 MHz", + "center_freq": 170000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 170000000, + "start_mod": "nfm", + }, + "172mhz": { + "name": "172 MHz", + "center_freq": 172000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 172000000, + "start_mod": "nfm", + }, + "174mhz": { + "name": "174 MHz", + "center_freq": 174000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 174000000, + "start_mod": "nfm", + }, + "433mhz": { + "name": "433 MHz", + "center_freq": 433000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 433000000, + "start_mod": "nfm", + }, + "446mhz": { + "name": "446 MHz (PMR)", + "center_freq": 446000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 446000000, + "start_mod": "nfm", + }, + "460mhz": { + "name": "460 MHz", + "center_freq": 460000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 460000000, + "start_mod": "nfm", + }, + "860mhz": { + "name": "860 MHz", + "center_freq": 860000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 860000000, + "start_mod": "nfm", + }, + "862mhz": { + "name": "862 MHz", + "center_freq": 862000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 862000000, + "start_mod": "nfm", + }, + "864mhz": { + "name": "864 MHz", + "center_freq": 864000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 864000000, + "start_mod": "nfm", + }, + "866mhz": { + "name": "866 MHz", + "center_freq": 866000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 866000000, + "start_mod": "nfm", + }, + "868mhz": { + "name": "868 MHz", + "center_freq": 868000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 868000000, + "start_mod": "nfm", + }, + "870mhz": { + "name": "870 MHz", + "center_freq": 870000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 870000000, + "start_mod": "nfm", + }, + "915mhz": { + "name": "915 MHz", + "center_freq": 915000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 915000000, + "start_mod": "nfm", + }, + "1090mhz": { + "name": "1090 MHz", + "center_freq": 1090000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1090000000, + "start_mod": "nfm", + }, + "1880mhz": { + "name": "1880 MHz", + "center_freq": 1880000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1880000000, + "start_mod": "nfm", + }, + "1882mhz": { + "name": "1882 MHz", + "center_freq": 1882000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1882000000, + "start_mod": "nfm", + }, + "1884mhz": { + "name": "1884 MHz", + "center_freq": 1884000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1884000000, + "start_mod": "nfm", + }, + "1886mhz": { + "name": "1886 MHz", + "center_freq": 1886000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1886000000, + "start_mod": "nfm", + }, + "1888mhz": { + "name": "1888 MHz", + "center_freq": 1888000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1888000000, + "start_mod": "nfm", + }, + "1890mhz": { + "name": "1890 MHz", + "center_freq": 1890000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1890000000, + "start_mod": "nfm", + }, + "1892mhz": { + "name": "1892 MHz", + "center_freq": 1892000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1892000000, + "start_mod": "nfm", + }, + "1894mhz": { + "name": "1894 MHz", + "center_freq": 1894000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1894000000, + "start_mod": "nfm", + }, + "1896mhz": { + "name": "1896 MHz", + "center_freq": 1896000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1896000000, + "start_mod": "nfm", + }, + "1898mhz": { + "name": "1898 MHz", + "center_freq": 1898000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1898000000, + "start_mod": "nfm", + }, + "1900mhz": { + "name": "1900 MHz", + "center_freq": 1900000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1900000000, + "start_mod": "nfm", + }, + "23cm": { + "name": "23cm (HAM)", + "center_freq": 1270000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1270000000, + "start_mod": "nfm", + }, + "13cm": { + "name": "13cm (HAM)", + "center_freq": 2370000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 2370000000, + "start_mod": "nfm", + }, + "9cm": { + "name": "9cm (HAM)", + "center_freq": 3440000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 3440000000, + "start_mod": "nfm", + }, + }, + }, +# "rtl_sdr_V3": { +# "name": "RTL-SDR V3 HF+", +# "type": "rtl_sdr_soapy", +# "ppm": 0, +# "direct_sampling": 2, +# "profiles": { +# "20m": { +# "name": "20m", +# "center_freq": 14150000, +# "rf_gain": 10, +# "samp_rate": 2400000, +# "start_freq": 14070000, +# "start_mod": "usb", +# }, +# "30m": { +# "name": "30m", +# "center_freq": 10125000, +# "rf_gain": 10, +# "samp_rate": 2400000, +# "start_freq": 10142000, +# "start_mod": "usb", +# }, +# "40m": { +# "name": "40m", +# "center_freq": 7100000, +# "rf_gain": 10, +# "samp_rate": 2400000, +# "start_freq": 7070000, +# "start_mod": "lsb", +# }, +# "80m": { +# "name": "80m", +# "center_freq": 3650000, +# "rf_gain": 10, +# "samp_rate": 2400000, +# "start_freq": 3570000, +# "start_mod": "lsb", +# }, +# "160m": { +# "name": "160m", +# "center_freq": 1900000, +# "rf_gain": 10, +# "samp_rate": 2400000, +# "start_freq": 1840000, +# "start_mod": "lsb", +# }, +# "49m": { +# "name": "49m Broadcast", +# "center_freq": 6000000, +# "rf_gain": 10, +# "samp_rate": 2400000, +# "start_freq": 6070000, +# "start_mod": "am", +# }, +# }, +# }, + "airspy": { + "name": "Airspy HF+", + "type": "airspyhf", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 192000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 256000, + "start_freq": 7070000, + "start_mod": "usb", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 3570000, + "start_mod": "usb", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 768000, + "start_freq": 6070000, + "start_mod": "am", + }, + }, + }, + "sdrplay": { + "name": "SDRPlay RSP2", + "type": "sdrplay", + "ppm": 0, + "profiles": { + "20m": { + "name": "20m", + "center_freq": 14150000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 14070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "30m": { + "name": "30m", + "center_freq": 10125000, + "rf_gain": 0, + "samp_rate": 250000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m", + "center_freq": 7100000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 7070000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "80m": { + "name": "80m", + "center_freq": 3650000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 3570000, + "start_mod": "usb", + "antenna": "Antenna A", + }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 0, + "samp_rate": 500000, + "start_freq": 6070000, + "start_mod": "am", + "antenna": "Antenna A", + }, + }, + }, +} + +# ==== Color themes ==== + +# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels + +### 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 = (5, 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 = (20, 30) +##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[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 __| + +# === 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. + +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 + +# 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 +# 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 +wsjt_decoding_depths = {"jt65": 1} + +temporary_directory = "/tmp" + +services_enabled = False +services_decoders = ["ft8", "ft4", "wspr", "packet"] + +# === 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 + +# path to the aprs symbols repository (get it here: https://github.com/hessu/aprs-symbols) +aprs_symbols_path = "/opt/aprs-symbols/png" + +# === PSK Reporter setting === +# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info +# this also uses the receiver_gps setting from above, so make sure it contains a correct locator +pskreporter_enabled = False +pskreporter_callsign = "N0CALL" From 201cbc251d6c9a226d965b71ef22819d4d6f1703 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 26 May 2020 06:40:42 -0400 Subject: [PATCH 34/63] soapy HF only --- groundstation/config_webrx_pi_hf.py | 121 +++++----------------------- 1 file changed, 19 insertions(+), 102 deletions(-) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_pi_hf.py index 8ff8d15e..f64132f0 100644 --- a/groundstation/config_webrx_pi_hf.py +++ b/groundstation/config_webrx_pi_hf.py @@ -104,20 +104,17 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # configured that have type endin in "_connector", simply remove that suffix. sdrs = { - "rtlsdr-hf": { - "name": "RTL-SDR-HF", + "rtl_sdr": { + "name": "RTL-SDR HF", "type": "rtl_sdr_soapy", "ppm": 0, "direct_sampling": 2, - # you can change this if you use an upconverter. formula is: - # center_freq + lfo_offset = actual frequency on the sdr - # "lfo_offset": 0, "profiles": { "20m": { "name": "20m", "center_freq": 14150000, "rf_gain": 10, - "samp_rate": 240000, + "samp_rate": 2400000, "start_freq": 14070000, "start_mod": "usb", }, @@ -125,123 +122,43 @@ sdrs = { "name": "30m", "center_freq": 10125000, "rf_gain": 10, - "samp_rate": 240000, - "start_freq": 10125000, + "samp_rate": 2400000, + "start_freq": 10142000, "start_mod": "usb", }, "40m": { "name": "40m", "center_freq": 7100000, "rf_gain": 10, - "samp_rate": 256000, + "samp_rate": 2400000, "start_freq": 7070000, - "start_mod": "usb", + "start_mod": "lsb", }, "80m": { "name": "80m", "center_freq": 3650000, "rf_gain": 10, - "samp_rate": 768000, + "samp_rate": 2400000, "start_freq": 3570000, - "start_mod": "usb", + "start_mod": "lsb", + }, + "160m": { + "name": "160m", + "center_freq": 1900000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 1840000, + "start_mod": "lsb", }, "49m": { "name": "49m Broadcast", "center_freq": 6000000, "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 6070000, - "start_mod": "am", - }, }, - }, - "rtlsdr": { - "name": "RTL-SDR", - "type": "rtl_sdr", - "ppm": 0, - # you can change this if you use an upconverter. formula is: - # center_freq + lfo_offset = actual frequency on the sdr - # "lfo_offset": 0, - "profiles": { - "70cm": { - "name": "70cm Band", - "center_freq": 435500000, - "rf_gain": 3, "samp_rate": 2400000, - "start_freq": 4355000000, - "start_mod": "nfm", - }, - "70cm-hi": { - "name": "70cm Band High Gain", - "center_freq": 435500000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 4355000000, - "start_mod": "nfm", - }, - "2m": { - "name": "2m Band", - "center_freq": 145000000, - "rf_gain": 15, - "samp_rate": 2400000, - "start_freq": 145725000, - "start_mod": "nfm", - }, - "2m-hi": { - "name": "2m Band High Gain", - "center_freq": 145000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 145725000, - "start_mod": "nfm", - }, - "wx": { - "name": "Weather Band", - "center_freq": 162000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 161500000, - "start_mod": "nfm", - }, - "fm": { - "name": "FM Band", - "center_freq": 91000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 90000000, - "start_mod": "nfm", - }, - "atc": { - "name": "Air Band - ATC", - "center_freq": 134000000, - "rf_gain": 20, - "samp_rate": 2400000, - "start_freq": 134000000, - "start_mod": "am", - }, - "atc-hi": { - "name": "Air Band - ATC High Gain", - "center_freq": 134000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 134000000, + "start_freq": 6070000, "start_mod": "am", }, - "noaa": { - "name": "NOAA Weather Satellites", - "center_freq": 137000000, - "rf_gain": 20, - "samp_rate": 2400000, - "start_freq": 137000000, - "start_mod": "fm", - }, - "noaa-hi": { - "name": "NOAA Weather Satellites High Gain", - "center_freq": 137000000, - "rf_gain": 25, - "samp_rate": 2400000, - "start_freq": 137000000, - "start_mod": "fm", - }, }, + }, }, "airspy": { "name": "Airspy HF+", From 8a5ff436cf1ec727de2e2988cc6eb06162b45874 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 26 May 2020 06:42:08 -0400 Subject: [PATCH 35/63] Rename config_webrx_pi_hf.py to config_webrx_hf.py --- groundstation/{config_webrx_pi_hf.py => config_webrx_hf.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename groundstation/{config_webrx_pi_hf.py => config_webrx_hf.py} (100%) diff --git a/groundstation/config_webrx_pi_hf.py b/groundstation/config_webrx_hf.py similarity index 100% rename from groundstation/config_webrx_pi_hf.py rename to groundstation/config_webrx_hf.py From 79dfe5fc583f40dad6af213a9b0dd345a9bfc780 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2020 08:28:24 -0400 Subject: [PATCH 36/63] modified scripts --- groundstation/config_webrx_hf.py | 32 ++++++++++++++++++++++++++++++ groundstation/sdr-hf.sh | 34 ++++++++++++++++++++++++++++++++ groundstation/sdr.sh | 34 +++++++++++++++++++++++--------- 3 files changed, 91 insertions(+), 9 deletions(-) create mode 100755 groundstation/sdr-hf.sh diff --git a/groundstation/config_webrx_hf.py b/groundstation/config_webrx_hf.py index f64132f0..33b201a0 100644 --- a/groundstation/config_webrx_hf.py +++ b/groundstation/config_webrx_hf.py @@ -110,6 +110,22 @@ sdrs = { "ppm": 0, "direct_sampling": 2, "profiles": { + "6m": { + "name": "6m", + "center_freq": 51150000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 51283000, + "start_mod": "usb", + }, + "10m": { + "name": "10m", + "center_freq": 29150000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 28283000, + "start_mod": "usb", + }, "20m": { "name": "20m", "center_freq": 14150000, @@ -150,6 +166,22 @@ sdrs = { "start_freq": 1840000, "start_mod": "lsb", }, + "160m2": { + "name": "160m2", + "center_freq": 1900000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1840000, + "start_mod": "lsb", + }, + "160m3": { + "name": "160m3", + "center_freq": 1900000, + "rf_gain": "auto", + "samp_rate": 2400000, + "start_freq": 1840000, + "start_mod": "lsb", + }, "49m": { "name": "49m Broadcast", "center_freq": 6000000, diff --git a/groundstation/sdr-hf.sh b/groundstation/sdr-hf.sh new file mode 100755 index 00000000..fd367b46 --- /dev/null +++ b/groundstation/sdr-hf.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# script to run OpenWebRX SDR in HF + +echo "Script to run Web SDR in HF for ARISS Radio Pi" + +echo + +ip=$(hostname -I|cut -f1 -d ' ') + +echo "IP Address to use in web browsers is: $ip:8073" + +echo + +ssid=$(iwgetid -r) + +echo "Note: you need to be on the Wifi network: $ssid" + +echo + +sudo killall -9 java &>/dev/null + +sudo systemctl stop rtl_tcp + +sudo killall -9 rtl_tcp &>/dev/null + +sudo systemctl stop openwebrx + +sudo cp /etc/openwebrx/config_webrx_hf.py /etc/openwebrx/config_webrx.py + +sudo systemctl restart openwebrx + +/usr/bin/chromium-browser --noerrdialogs --disable-infobars http://localhost:8073 &>/dev/null & + +$SHELL diff --git a/groundstation/sdr.sh b/groundstation/sdr.sh index 03efef13..0242151c 100755 --- a/groundstation/sdr.sh +++ b/groundstation/sdr.sh @@ -1,18 +1,34 @@ #!/bin/bash # script to run OpenWebRX SDR -echo -e "\nScript to run SDR for CubeSat Simulator\n" +echo "Script to run Web SDR for ARISS Radio Pi" -echo -e "IP Address to use in web browsers is: " +echo -hostname -I|cut -f1 -d ' ' +ip=$(hostname -I|cut -f1 -d ' ') -# kill rtl if running -ps -ef | grep rtl | grep -v grep | awk '{print $2}' | sudo xargs kill +echo "IP Address to use in web browsers is: $ip:8073" -# kill openwebrx process if running -ps -ef | grep openwebrx | grep -v grep | awk '{print $2}' | sudo xargs kill +echo -cd ~/openwebrx +ssid=$(iwgetid -r) -sudo python openwebrx.py +echo "Note: you need to be on the Wifi network: $ssid" + +echo + +sudo killall -9 java &>/dev/null + +sudo systemctl stop rtl_tcp + +sudo killall -9 rtl_tcp &>/dev/null + +sudo systemctl stop openwebrx + +sudo cp /etc/openwebrx/config_webrx_vhf.py /etc/openwebrx/config_webrx.py + +sudo systemctl restart openwebrx + +/usr/bin/chromium-browser --noerrdialogs --disable-infobars http://localhost:8073 &>/dev/null & + +$SHELL From 1f19d1695a5b882bb43d46d8841b028557ad8928 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2020 08:44:13 -0400 Subject: [PATCH 37/63] updates for direct sampling --- groundstation/gqrx.sh | 20 ++++++++++---------- groundstation/rtl-tcp-d.sh | 26 ++++++++++++++++++++++++++ groundstation/rtl-tcp.sh | 32 ++++++++++++++++++++++++++------ 3 files changed, 62 insertions(+), 16 deletions(-) create mode 100755 groundstation/rtl-tcp-d.sh diff --git a/groundstation/gqrx.sh b/groundstation/gqrx.sh index 7e995d2e..c1985706 100755 --- a/groundstation/gqrx.sh +++ b/groundstation/gqrx.sh @@ -1,16 +1,16 @@ -#!/bin/bash -# script to auto decode CubeSat Simulator telemetry +#!/bin/bash +# script to run gqrx -# kill rtl if running -ps -ef | grep rtl | grep -v grep | awk '{print $2}' | sudo xargs kill +echo "Script to run Gqrx for ARISS Radio Pi" -# kill openwebrx process if running -ps -ef | grep openwebrx | grep -v grep | awk '{print $2}' | sudo xargs kill +echo -# kill csdr process if running -ps -ef | grep csdr | grep -v grep | awk '{print $2}' | sudo xargs kill +sudo killall -9 java &>/dev/null -echo -e "Script to run Gqrx\n" +sudo systemctl stop rtl_tcp -/home/pi/gqrx-sdr-2.11.5-linux-rpi3/gqrx +sudo killall -9 rtl_tcp &>/dev/null +sudo systemctl stop openwebrx + +/usr/bin/gqrx diff --git a/groundstation/rtl-tcp-d.sh b/groundstation/rtl-tcp-d.sh new file mode 100755 index 00000000..63fcc5bc --- /dev/null +++ b/groundstation/rtl-tcp-d.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# script to run RTL-TCP in Direct Sampling Mode + +echo "Script to run RTL-TCP Direct Sampling for ARISS Radio Pi" + +echo + +ip=$(hostname -I|cut -f1 -d ' ') + +echo "IP Address to use in SDR is: $ip:1234" + +echo + +ssid=$(iwgetid -r) + +echo "Note: you need to be on the Wifi network: $ssid" + +echo + +sudo killall -9 java &>/dev/null + +sudo systemctl stop rtl_tcp + +sudo systemctl stop openwebrx + +sudo /bin/sh -c '/usr/local/bin/rtl_tcp -a $(hostname -I|cut -f1 -d " ") -D 2' diff --git a/groundstation/rtl-tcp.sh b/groundstation/rtl-tcp.sh index b3e410dc..1dfd2554 100755 --- a/groundstation/rtl-tcp.sh +++ b/groundstation/rtl-tcp.sh @@ -3,14 +3,34 @@ # # On SDR client, use 10.3.141.1:1234 to connect -echo -e "\nScript to run RTL-TCP Server for ARISS Radio Pi\n" +echo "Script to run RTL-TCP Server for ARISS Radio Pi" -echo -e "IP Address to use in your SDR application is: " +ip=$(hostname -I|cut -f1 -d ' ') -hostname -I|cut -f1 -d ' ' +echo -echo -e "The port is the default 1234. " +echo "IP Address to use in SDR application is: $ip" -./kill_all.sh +echo -sudo /bin/sh -c '/usr/local/bin/rtl_tcp -a $(hostname -I|cut -f1 -d " ")' +echo "Port to use in SDR application is the default: 1234" + +echo + +ssid=$(iwgetid -r) + +echo "Note: you need to be on the Wifi network: $ssid" + +echo + +pkill -o chromium &>/dev/null + +sudo killall -9 java &>/dev/null + +sudo systemctl stop openwebrx + +sudo killall -9 rtl_tcp &>/dev/null + +sudo systemctl start rtl_tcp + +$SHELL From e33cce71f593f6f3ec1ff863f4001e3749acbf5a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2020 08:49:11 -0400 Subject: [PATCH 38/63] added 6m and 10m bands --- groundstation/config_webrx_vhf.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/groundstation/config_webrx_vhf.py b/groundstation/config_webrx_vhf.py index 1b60a49e..62d45a7d 100644 --- a/groundstation/config_webrx_vhf.py +++ b/groundstation/config_webrx_vhf.py @@ -199,6 +199,22 @@ sdrs = { "start_freq": 137000000, "start_mod": "fm", }, + "10m": { + "name": "10m Band", + "center_freq": 28000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 28500000, + "start_mod": "usb", + }, + "6m": { + "name": "6m Band", + "center_freq": 51000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 51000000, + "start_mod": "usb", + }, # "20m": { # "name": "20m", # "direct_sampling": 2, From 11403ebc0e477842d5906ce9c6d9f66211b39be1 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2020 15:48:02 -0400 Subject: [PATCH 39/63] cleanedup bands --- groundstation/config_webrx_hf.py | 52 +++++++------------ groundstation/config_webrx_vhf.py | 85 +++++++------------------------ 2 files changed, 35 insertions(+), 102 deletions(-) diff --git a/groundstation/config_webrx_hf.py b/groundstation/config_webrx_hf.py index 33b201a0..41c8aa2f 100644 --- a/groundstation/config_webrx_hf.py +++ b/groundstation/config_webrx_hf.py @@ -110,14 +110,6 @@ sdrs = { "ppm": 0, "direct_sampling": 2, "profiles": { - "6m": { - "name": "6m", - "center_freq": 51150000, - "rf_gain": 10, - "samp_rate": 2400000, - "start_freq": 51283000, - "start_mod": "usb", - }, "10m": { "name": "10m", "center_freq": 29150000, @@ -126,6 +118,14 @@ sdrs = { "start_freq": 28283000, "start_mod": "usb", }, + "19m": { + "name": "19m Broadcast", + "center_freq": 16000000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 15400000, + "start_mod": "am", + }, "20m": { "name": "20m", "center_freq": 14150000, @@ -150,6 +150,14 @@ sdrs = { "start_freq": 7070000, "start_mod": "lsb", }, + "49m": { + "name": "49m Broadcast", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 6070000, + "start_mod": "am", + }, "80m": { "name": "80m", "center_freq": 3650000, @@ -160,34 +168,10 @@ sdrs = { }, "160m": { "name": "160m", - "center_freq": 1900000, + "center_freq": 1700000, "rf_gain": 10, "samp_rate": 2400000, - "start_freq": 1840000, - "start_mod": "lsb", - }, - "160m2": { - "name": "160m2", - "center_freq": 1900000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 1840000, - "start_mod": "lsb", - }, - "160m3": { - "name": "160m3", - "center_freq": 1900000, - "rf_gain": "auto", - "samp_rate": 2400000, - "start_freq": 1840000, - "start_mod": "lsb", - }, - "49m": { - "name": "49m Broadcast", - "center_freq": 6000000, - "rf_gain": 10, - "samp_rate": 2400000, - "start_freq": 6070000, + "start_freq": 1440000, "start_mod": "am", }, }, diff --git a/groundstation/config_webrx_vhf.py b/groundstation/config_webrx_vhf.py index 62d45a7d..d37ae80e 100644 --- a/groundstation/config_webrx_vhf.py +++ b/groundstation/config_webrx_vhf.py @@ -30,6 +30,9 @@ config_webrx: configuration options for OpenWebRX (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.) + + portions inspired by http://gephi.michalnovak.eu/config_webrx.py + """ # NOTE: you can find additional information about configuring OpenWebRX in the Wiki: @@ -119,6 +122,14 @@ sdrs = { # center_freq + lfo_offset = actual frequency on the sdr # "lfo_offset": 0, "profiles": { + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, "70cm": { "name": "70cm Band", "center_freq": 435500000, @@ -151,14 +162,6 @@ sdrs = { "start_freq": 145725000, "start_mod": "nfm", }, - "wx": { - "name": "Weather Band", - "center_freq": 162000000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 161500000, - "start_mod": "nfm", - }, "fm": { "name": "FM Band", "center_freq": 91000000, @@ -215,61 +218,7 @@ sdrs = { "start_freq": 51000000, "start_mod": "usb", }, -# "20m": { -# "name": "20m", -# "direct_sampling": 2, -# "center_freq": 14150000, -# "rf_gain": 30, -# "samp_rate": 2400000, -# "start_freq": 14070000, -# "start_mod": "usb", -# }, -# "30m": { -# "name": "30m", -# "direct_sampling": 2, -# "center_freq": 10125000, -# "rf_gain": 30, -# "samp_rate": 2400000, -# "start_freq": 10142000, -# "start_mod": "usb", -# }, -# "40m": { -# "name": "40m", -# "direct_sampling": 2, -# "center_freq": 7100000, -# "rf_gain": 30, -# "samp_rate": 2400000, -# "start_freq": 7070000, -# "start_mod": "usb", -# }, -# "80m": { -# "name": "80m", -# "direct_sampling": 2, -# "center_freq": 3650000, -# "rf_gain": 30, -# "samp_rate": 2400000, -# "start_freq": 3570000, -# "start_mod": "usb", -# }, -# "49m": { -# "name": "49m Broadcast", -# "direct_sampling": 2, -# "center_freq": 6000000, -# "rf_gain": 30, -# "samp_rate": 2400000, -# "start_freq": 6070000, -# "start_mod": "am", -# }, -# "MW": { -# "name": "Medium Wave AM Broadcast", -# "direct_sampling": 2, -# "center_freq": 1000000, -# "rf_gain": 30, -# "samp_rate": 2400000, -# "start_freq": 1500000, -# "start_mod": "am", -# }, - "110mhz": { + "110MHz": { "name": "110 MHz", "center_freq": 110000000, "rf_gain": 30, @@ -277,7 +226,7 @@ sdrs = { "start_freq": 110000000, "start_mod": "nfm", }, - "112mhz": { + "112MHz": { "name": "112 MHz", "center_freq": 112000000, "rf_gain": 30, @@ -285,7 +234,7 @@ sdrs = { "start_freq": 112000000, "start_mod": "nfm", }, - "114mhz": { + "114MHz": { "name": "114 MHz", "center_freq": 114000000, "rf_gain": 30, @@ -710,7 +659,7 @@ sdrs = { "start_mod": "nfm", }, "23cm": { - "name": "23cm (HAM)", + "name": "23cm Band", "center_freq": 1270000000, "rf_gain": 30, "samp_rate": 2400000, @@ -718,7 +667,7 @@ sdrs = { "start_mod": "nfm", }, "13cm": { - "name": "13cm (HAM)", + "name": "13cm Band", "center_freq": 2370000000, "rf_gain": 30, "samp_rate": 2400000, @@ -726,7 +675,7 @@ sdrs = { "start_mod": "nfm", }, "9cm": { - "name": "9cm (HAM)", + "name": "9cm Band", "center_freq": 3440000000, "rf_gain": 30, "samp_rate": 2400000, From d96faf82c8844ccd5f4918286c6f6377da2730d6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 5 Jun 2020 08:12:14 -0400 Subject: [PATCH 40/63] Rename bookmarks_pi.json to bookmarks.json --- groundstation/{bookmarks_pi.json => bookmarks.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename groundstation/{bookmarks_pi.json => bookmarks.json} (100%) diff --git a/groundstation/bookmarks_pi.json b/groundstation/bookmarks.json similarity index 100% rename from groundstation/bookmarks_pi.json rename to groundstation/bookmarks.json From 36644719e917aa32b8190fb30963bbeaa33fe2be Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 5 Jun 2020 12:23:09 +0000 Subject: [PATCH 41/63] updated for release 0.19 --- groundstation/config_webrx_vhf.py | 230 ++++++------------------------ 1 file changed, 44 insertions(+), 186 deletions(-) diff --git a/groundstation/config_webrx_vhf.py b/groundstation/config_webrx_vhf.py index d37ae80e..46f8c2dd 100644 --- a/groundstation/config_webrx_vhf.py +++ b/groundstation/config_webrx_vhf.py @@ -31,12 +31,15 @@ config_webrx: configuration options for OpenWebRX config_webrx.py if you make any changes to these two configuration files, and use them for running your web service with OpenWebRX.) - portions inspired by http://gephi.michalnovak.eu/config_webrx.py + portions inspired by http://gephi.michalnovak.eu/config_webrx.py """ +# configuration version. please only modify if you're able to perform the associated migration steps. +version = 2 + # NOTE: you can find additional information about configuring OpenWebRX in the Wiki: -# https://github.com/simonyiszk/openwebrx/wiki +# https://github.com/jketterl/openwebrx/wiki/Configuration-guide # ==== Server settings ==== web_port = 8073 @@ -48,6 +51,7 @@ receiver_location = "Philadelphia, PA" receiver_asl = 200 receiver_admin = "ku2y@amsat.org" receiver_gps = (40.0376, -75.3492) +receiver_gps = {"lat": 40.0376, "lon": -75.3492} photo_title = "ARISS" photo_desc = """ You can add your own background photo and receiver information.
@@ -57,15 +61,6 @@ Antenna:
Website: http://ariss-radio:8073 """ -# ==== 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 -server_hostname = "localhost" - # ==== DSP/RX settings ==== fft_fps = 9 fft_size = 4096 # Should be power of 2 @@ -96,13 +91,14 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # ==== I/Q sources ==== # (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.) -################################################################################################# -# Is my SDR hardware supported? # -# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # -################################################################################################# +############################################################################### +# Is my SDR hardware supported? # +# Check here: https://github.com/jketterl/openwebrx/wiki/Supported-Hardware # +############################################################################### # Currently supported types of sdr receivers: -# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr" +# "rtl_sdr", "rtl_sdr_soapy", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr", +# "perseussdr", "lime_sdr", "pluto_sdr", "soapy_remote" # # 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 @@ -110,8 +106,13 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # # https://github.com/jketterl/owrx_connector # -# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs -# configured that have type endin in "_connector", simply remove that suffix. +# In order to use Perseus HF you need to install the libperseus-sdr +# +# https://github.com/Microtelecom/libperseus-sdr +# +# 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). +# sdrs = { "rtlsdr": { @@ -684,160 +685,6 @@ sdrs = { }, }, }, -# "rtl_sdr_V3": { -# "name": "RTL-SDR V3 HF+", -# "type": "rtl_sdr_soapy", -# "ppm": 0, -# "direct_sampling": 2, -# "profiles": { -# "20m": { -# "name": "20m", -# "center_freq": 14150000, -# "rf_gain": 10, -# "samp_rate": 2400000, -# "start_freq": 14070000, -# "start_mod": "usb", -# }, -# "30m": { -# "name": "30m", -# "center_freq": 10125000, -# "rf_gain": 10, -# "samp_rate": 2400000, -# "start_freq": 10142000, -# "start_mod": "usb", -# }, -# "40m": { -# "name": "40m", -# "center_freq": 7100000, -# "rf_gain": 10, -# "samp_rate": 2400000, -# "start_freq": 7070000, -# "start_mod": "lsb", -# }, -# "80m": { -# "name": "80m", -# "center_freq": 3650000, -# "rf_gain": 10, -# "samp_rate": 2400000, -# "start_freq": 3570000, -# "start_mod": "lsb", -# }, -# "160m": { -# "name": "160m", -# "center_freq": 1900000, -# "rf_gain": 10, -# "samp_rate": 2400000, -# "start_freq": 1840000, -# "start_mod": "lsb", -# }, -# "49m": { -# "name": "49m Broadcast", -# "center_freq": 6000000, -# "rf_gain": 10, -# "samp_rate": 2400000, -# "start_freq": 6070000, -# "start_mod": "am", -# }, -# }, -# }, - "airspy": { - "name": "Airspy HF+", - "type": "airspyhf", - "ppm": 0, - "profiles": { - "20m": { - "name": "20m", - "center_freq": 14150000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 14070000, - "start_mod": "usb", - }, - "30m": { - "name": "30m", - "center_freq": 10125000, - "rf_gain": 10, - "samp_rate": 192000, - "start_freq": 10142000, - "start_mod": "usb", - }, - "40m": { - "name": "40m", - "center_freq": 7100000, - "rf_gain": 10, - "samp_rate": 256000, - "start_freq": 7070000, - "start_mod": "usb", - }, - "80m": { - "name": "80m", - "center_freq": 3650000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 3570000, - "start_mod": "usb", - }, - "49m": { - "name": "49m Broadcast", - "center_freq": 6000000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 6070000, - "start_mod": "am", - }, - }, - }, - "sdrplay": { - "name": "SDRPlay RSP2", - "type": "sdrplay", - "ppm": 0, - "profiles": { - "20m": { - "name": "20m", - "center_freq": 14150000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 14070000, - "start_mod": "usb", - "antenna": "Antenna A", - }, - "30m": { - "name": "30m", - "center_freq": 10125000, - "rf_gain": 0, - "samp_rate": 250000, - "start_freq": 10142000, - "start_mod": "usb", - }, - "40m": { - "name": "40m", - "center_freq": 7100000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 7070000, - "start_mod": "usb", - "antenna": "Antenna A", - }, - "80m": { - "name": "80m", - "center_freq": 3650000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 3570000, - "start_mod": "usb", - "antenna": "Antenna A", - }, - "49m": { - "name": "49m Broadcast", - "center_freq": 6000000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 6070000, - "start_mod": "am", - "antenna": "Antenna A", - }, - }, - }, } # ==== Color themes ==== @@ -848,21 +695,21 @@ sdrs = { waterfall_colors = [0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0x00FF00FF, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFFFFFFFF] waterfall_min_level = -88 # in dB waterfall_max_level = -20 -waterfall_auto_level_margin = (5, 40) +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 = (20, 30) +# waterfall_auto_level_margin = {"min": 20, "max": 30} ##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[0]] -# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin[1]] +# [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[0]_/ |__ current_min_power_level | \_waterfall_auto_level_margin[1]_/ -# current_max_power_level __| +# ___|________________________________________|____________________________________|________________________________________|___> signal power +# \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/ +# current_max_power_level __| # === Experimental settings === # Warning! The settings below are very experimental. @@ -879,23 +726,29 @@ google_maps_api_key = "" # in seconds; default: 2 hours map_position_retention_time = 2 * 60 * 60 -# 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. +# 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. # 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 +decoding_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 +# i.e. this should be higher than the number of decoding services running at the same time +decoding_queue_length = 10 + # 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 wsjt_decoding_depths = {"jt65": 1} -temporary_directory = "/tmp" +# 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 + +temporary_directory = "/tmp/openwebrx" services_enabled = False services_decoders = ["ft8", "ft4", "wspr", "packet"] @@ -917,3 +770,8 @@ aprs_symbols_path = "/opt/aprs-symbols/png" # this also uses the receiver_gps setting from above, so make sure it contains a correct locator pskreporter_enabled = False pskreporter_callsign = "N0CALL" + +# === Web admin settings === +# 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 From 32989c1e2a91257036b875b46d1bf0af4ac173e5 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 5 Jun 2020 08:27:15 -0400 Subject: [PATCH 42/63] updated for release 0.19 with both hf and vhf --- groundstation/config_webrx_hf.py | 756 +++++++++++++++++++++++++------ 1 file changed, 625 insertions(+), 131 deletions(-) diff --git a/groundstation/config_webrx_hf.py b/groundstation/config_webrx_hf.py index 41c8aa2f..091412cf 100644 --- a/groundstation/config_webrx_hf.py +++ b/groundstation/config_webrx_hf.py @@ -2,31 +2,44 @@ """ config_webrx: configuration options for OpenWebRX + This file is part of OpenWebRX, an open-source SDR receiver software with a web UI. Copyright (c) 2013-2015 by Andras Retzler Copyright (c) 2019-2020 by Jakob Ketterl + 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. + This program is distributed in the hope that it will be useful, 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 . + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 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. + (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.) + + portions inspired by http://gephi.michalnovak.eu/config_webrx.py + """ +# configuration version. please only modify if you're able to perform the associated migration steps. +version = 2 + # NOTE: you can find additional information about configuring OpenWebRX in the Wiki: -# https://github.com/simonyiszk/openwebrx/wiki +# https://github.com/jketterl/openwebrx/wiki/Configuration-guide # ==== Server settings ==== web_port = 8073 @@ -38,6 +51,7 @@ receiver_location = "Philadelphia, PA" receiver_asl = 200 receiver_admin = "ku2y@amsat.org" receiver_gps = (40.0376, -75.3492) +receiver_gps = {"lat": 40.0376, "lon": -75.3492} photo_title = "ARISS" photo_desc = """ You can add your own background photo and receiver information.
@@ -47,15 +61,6 @@ Antenna:
Website: http://ariss-radio:8073 """ -# ==== 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 -server_hostname = "localhost" - # ==== DSP/RX settings ==== fft_fps = 9 fft_size = 4096 # Should be power of 2 @@ -86,13 +91,14 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # ==== I/Q sources ==== # (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.) -################################################################################################# -# Is my SDR hardware supported? # -# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # -################################################################################################# +############################################################################### +# Is my SDR hardware supported? # +# Check here: https://github.com/jketterl/openwebrx/wiki/Supported-Hardware # +############################################################################### # Currently supported types of sdr receivers: -# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr" +# "rtl_sdr", "rtl_sdr_soapy", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr", +# "perseussdr", "lime_sdr", "pluto_sdr", "soapy_remote" # # 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 @@ -100,11 +106,586 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # # https://github.com/jketterl/owrx_connector # -# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs -# configured that have type endin in "_connector", simply remove that suffix. +# In order to use Perseus HF you need to install the libperseus-sdr +# +# https://github.com/Microtelecom/libperseus-sdr +# +# 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). +# sdrs = { - "rtl_sdr": { + "rtlsdr": { + "name": "RTL-SDR", + "type": "rtl_sdr", + "ppm": 0, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "2m": { + "name": "2m Band", + "center_freq": 145000000, + "rf_gain": 15, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "2m-hi": { + "name": "2m Band High Gain", + "center_freq": 145000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 90000000, + "start_mod": "nfm", + }, + "atc": { + "name": "Air Band - ATC", + "center_freq": 134000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "atc-hi": { + "name": "Air Band - ATC High Gain", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "noaa": { + "name": "NOAA Weather Satellites", + "center_freq": 137000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "noaa-hi": { + "name": "NOAA Weather Satellites High Gain", + "center_freq": 137000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "10m": { + "name": "10m Band", + "center_freq": 28000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 28500000, + "start_mod": "usb", + }, + "6m": { + "name": "6m Band", + "center_freq": 51000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 51000000, + "start_mod": "usb", + }, + "110MHz": { + "name": "110 MHz", + "center_freq": 110000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 110000000, + "start_mod": "nfm", + }, + "112MHz": { + "name": "112 MHz", + "center_freq": 112000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 112000000, + "start_mod": "nfm", + }, + "114MHz": { + "name": "114 MHz", + "center_freq": 114000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 114000000, + "start_mod": "nfm", + }, + "116mhz": { + "name": "116 MHz", + "center_freq": 116000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 116000000, + "start_mod": "nfm", + }, + "118mhz": { + "name": "118 MHz", + "center_freq": 118000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 118000000, + "start_mod": "nfm", + }, + "120mhz": { + "name": "120 MHz", + "center_freq": 120000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 120000000, + "start_mod": "nfm", + }, + "122mhz": { + "name": "122 MHz", + "center_freq": 122000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 122000000, + "start_mod": "nfm", + }, + "124mhz": { + "name": "124 MHz", + "center_freq": 124000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 124000000, + "start_mod": "nfm", + }, + "126mhz": { + "name": "126 MHz", + "center_freq": 126000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 126000000, + "start_mod": "nfm", + }, + "128mhz": { + "name": "126 MHz", + "center_freq": 128000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 128000000, + "start_mod": "nfm", + }, + "130mhz": { + "name": "130 MHz", + "center_freq": 130000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 130000000, + "start_mod": "nfm", + }, + "132mhz": { + "name": "132 MHz", + "center_freq": 132000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 132000000, + "start_mod": "nfm", + }, + "134mhz": { + "name": "134 MHz", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "nfm", + }, + "136mhz": { + "name": "136 MHz", + "center_freq": 136000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 136000000, + "start_mod": "nfm", + }, + "138mhz": { + "name": "138 MHz", + "center_freq": 138000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 138000000, + "start_mod": "nfm", + }, + "140mhz": { + "name": "140 MHz", + "center_freq": 140000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 140000000, + "start_mod": "nfm", + }, + "142mhz": { + "name": "142 MHz", + "center_freq": 142000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 142000000, + "start_mod": "nfm", + }, + "144mhz": { + "name": "144 MHz", + "center_freq": 144000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 144000000, + "start_mod": "nfm", + }, + "146mhz": { + "name": "146 MHz", + "center_freq": 146000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 146000000, + "start_mod": "nfm", + }, + "148mhz": { + "name": "148 MHz", + "center_freq": 148000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 148000000, + "start_mod": "nfm", + }, + "150mhz": { + "name": "150 MHz", + "center_freq": 150000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 150000000, + "start_mod": "nfm", + }, + "152mhz": { + "name": "152 MHz", + "center_freq": 152000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 152000000, + "start_mod": "nfm", + }, + "154mhz": { + "name": "154 MHz", + "center_freq": 154000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 154000000, + "start_mod": "nfm", + }, + "156mhz": { + "name": "156 MHz", + "center_freq": 156000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 156100000, + "start_mod": "nfm", + }, + "158mhz": { + "name": "158 MHz", + "center_freq": 158000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 158000000, + "start_mod": "nfm", + }, + "160mhz": { + "name": "160 MHz", + "center_freq": 160000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 160000000, + "start_mod": "nfm", + }, + "162mhz": { + "name": "162 MHz", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 162000000, + "start_mod": "nfm", + }, + "164mhz": { + "name": "164 MHz", + "center_freq": 164000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 164000000, + "start_mod": "nfm", + }, + "166mhz": { + "name": "166 MHz", + "center_freq": 166000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 166000000, + "start_mod": "nfm", + }, + "168mhz": { + "name": "168 MHz", + "center_freq": 168000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 168000000, + "start_mod": "nfm", + }, + "170mhz": { + "name": "170 MHz", + "center_freq": 170000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 170000000, + "start_mod": "nfm", + }, + "172mhz": { + "name": "172 MHz", + "center_freq": 172000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 172000000, + "start_mod": "nfm", + }, + "174mhz": { + "name": "174 MHz", + "center_freq": 174000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 174000000, + "start_mod": "nfm", + }, + "433mhz": { + "name": "433 MHz", + "center_freq": 433000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 433000000, + "start_mod": "nfm", + }, + "446mhz": { + "name": "446 MHz (PMR)", + "center_freq": 446000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 446000000, + "start_mod": "nfm", + }, + "460mhz": { + "name": "460 MHz", + "center_freq": 460000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 460000000, + "start_mod": "nfm", + }, + "860mhz": { + "name": "860 MHz", + "center_freq": 860000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 860000000, + "start_mod": "nfm", + }, + "862mhz": { + "name": "862 MHz", + "center_freq": 862000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 862000000, + "start_mod": "nfm", + }, + "864mhz": { + "name": "864 MHz", + "center_freq": 864000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 864000000, + "start_mod": "nfm", + }, + "866mhz": { + "name": "866 MHz", + "center_freq": 866000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 866000000, + "start_mod": "nfm", + }, + "868mhz": { + "name": "868 MHz", + "center_freq": 868000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 868000000, + "start_mod": "nfm", + }, + "870mhz": { + "name": "870 MHz", + "center_freq": 870000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 870000000, + "start_mod": "nfm", + }, + "915mhz": { + "name": "915 MHz", + "center_freq": 915000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 915000000, + "start_mod": "nfm", + }, + "1090mhz": { + "name": "1090 MHz", + "center_freq": 1090000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1090000000, + "start_mod": "nfm", + }, + "1880mhz": { + "name": "1880 MHz", + "center_freq": 1880000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1880000000, + "start_mod": "nfm", + }, + "1882mhz": { + "name": "1882 MHz", + "center_freq": 1882000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1882000000, + "start_mod": "nfm", + }, + "1884mhz": { + "name": "1884 MHz", + "center_freq": 1884000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1884000000, + "start_mod": "nfm", + }, + "1886mhz": { + "name": "1886 MHz", + "center_freq": 1886000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1886000000, + "start_mod": "nfm", + }, + "1888mhz": { + "name": "1888 MHz", + "center_freq": 1888000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1888000000, + "start_mod": "nfm", + }, + "1890mhz": { + "name": "1890 MHz", + "center_freq": 1890000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1890000000, + "start_mod": "nfm", + }, + "1892mhz": { + "name": "1892 MHz", + "center_freq": 1892000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1892000000, + "start_mod": "nfm", + }, + "1894mhz": { + "name": "1894 MHz", + "center_freq": 1894000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1894000000, + "start_mod": "nfm", + }, + "1896mhz": { + "name": "1896 MHz", + "center_freq": 1896000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1896000000, + "start_mod": "nfm", + }, + "1898mhz": { + "name": "1898 MHz", + "center_freq": 1898000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1898000000, + "start_mod": "nfm", + }, + "1900mhz": { + "name": "1900 MHz", + "center_freq": 1900000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1900000000, + "start_mod": "nfm", + }, + "23cm": { + "name": "23cm Band", + "center_freq": 1270000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1270000000, + "start_mod": "nfm", + }, + "13cm": { + "name": "13cm Band", + "center_freq": 2370000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 2370000000, + "start_mod": "nfm", + }, + "9cm": { + "name": "9cm Band", + "center_freq": 3440000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 3440000000, + "start_mod": "nfm", + }, + }, + }, + "rtl_sdr-2": { "name": "RTL-SDR HF", "type": "rtl_sdr_soapy", "ppm": 0, @@ -175,105 +756,7 @@ sdrs = { "start_mod": "am", }, }, - }, - "airspy": { - "name": "Airspy HF+", - "type": "airspyhf", - "ppm": 0, - "profiles": { - "20m": { - "name": "20m", - "center_freq": 14150000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 14070000, - "start_mod": "usb", - }, - "30m": { - "name": "30m", - "center_freq": 10125000, - "rf_gain": 10, - "samp_rate": 192000, - "start_freq": 10142000, - "start_mod": "usb", - }, - "40m": { - "name": "40m", - "center_freq": 7100000, - "rf_gain": 10, - "samp_rate": 256000, - "start_freq": 7070000, - "start_mod": "usb", - }, - "80m": { - "name": "80m", - "center_freq": 3650000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 3570000, - "start_mod": "usb", - }, - "49m": { - "name": "49m Broadcast", - "center_freq": 6000000, - "rf_gain": 10, - "samp_rate": 768000, - "start_freq": 6070000, - "start_mod": "am", - }, - }, - }, - "sdrplay": { - "name": "SDRPlay RSP2", - "type": "sdrplay", - "ppm": 0, - "profiles": { - "20m": { - "name": "20m", - "center_freq": 14150000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 14070000, - "start_mod": "usb", - "antenna": "Antenna A", - }, - "30m": { - "name": "30m", - "center_freq": 10125000, - "rf_gain": 0, - "samp_rate": 250000, - "start_freq": 10142000, - "start_mod": "usb", - }, - "40m": { - "name": "40m", - "center_freq": 7100000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 7070000, - "start_mod": "usb", - "antenna": "Antenna A", - }, - "80m": { - "name": "80m", - "center_freq": 3650000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 3570000, - "start_mod": "usb", - "antenna": "Antenna A", - }, - "49m": { - "name": "49m Broadcast", - "center_freq": 6000000, - "rf_gain": 0, - "samp_rate": 500000, - "start_freq": 6070000, - "start_mod": "am", - "antenna": "Antenna A", - }, - }, - }, + }, } # ==== Color themes ==== @@ -284,21 +767,21 @@ sdrs = { waterfall_colors = [0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0x00FF00FF, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFFFFFFFF] waterfall_min_level = -88 # in dB waterfall_max_level = -20 -waterfall_auto_level_margin = (5, 40) +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 = (20, 30) +# waterfall_auto_level_margin = {"min": 20, "max": 30} ##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[0]] -# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin[1]] +# [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[0]_/ |__ current_min_power_level | \_waterfall_auto_level_margin[1]_/ -# current_max_power_level __| +# ___|________________________________________|____________________________________|________________________________________|___> signal power +# \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/ +# current_max_power_level __| # === Experimental settings === # Warning! The settings below are very experimental. @@ -315,23 +798,29 @@ google_maps_api_key = "" # in seconds; default: 2 hours map_position_retention_time = 2 * 60 * 60 -# 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. +# 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. # 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 +decoding_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 +# i.e. this should be higher than the number of decoding services running at the same time +decoding_queue_length = 10 + # 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 wsjt_decoding_depths = {"jt65": 1} -temporary_directory = "/tmp" +# 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 + +temporary_directory = "/tmp/openwebrx" services_enabled = False services_decoders = ["ft8", "ft4", "wspr", "packet"] @@ -353,3 +842,8 @@ aprs_symbols_path = "/opt/aprs-symbols/png" # this also uses the receiver_gps setting from above, so make sure it contains a correct locator pskreporter_enabled = False pskreporter_callsign = "N0CALL" + +# === Web admin settings === +# 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 From 1613fef27d7728b9eecf8abbd6c3f12fdb41ceca Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 5 Jun 2020 08:56:20 -0400 Subject: [PATCH 43/63] updated for rel 0.19 and also UHF, VHF, and HF profiles together --- groundstation/config_webrx.py | 924 ++++++++++++++++++++++++++++------ 1 file changed, 779 insertions(+), 145 deletions(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 38e95110..e38ee50a 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -6,6 +6,7 @@ config_webrx: configuration options for OpenWebRX This file is part of OpenWebRX, an open-source SDR receiver software with a web UI. Copyright (c) 2013-2015 by Andras Retzler + Copyright (c) 2019-2020 by Jakob Ketterl This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -16,6 +17,7 @@ config_webrx: configuration options for OpenWebRX 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 . @@ -28,64 +30,58 @@ config_webrx: configuration options for OpenWebRX (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.) + + portions inspired by http://gephi.michalnovak.eu/config_webrx.py + """ +# configuration version. please only modify if you're able to perform the associated migration steps. +version = 2 + # NOTE: you can find additional information about configuring OpenWebRX in the Wiki: -# https://github.com/simonyiszk/openwebrx/wiki +# https://github.com/jketterl/openwebrx/wiki/Configuration-guide # ==== Server settings ==== -web_port=8073 -server_hostname="localhost" # If this contains an incorrect value, the web UI may freeze on load (it can't open websocket) -max_clients=20 +web_port = 8073 +max_clients = 10 # ==== Web GUI configuration ==== -receiver_name="AMSAT CubeSat Simulator Ground Station" -receiver_location="" -receiver_qra="" -receiver_asl=0 -receiver_ant="monopole" -receiver_device="RTL-SDR" -receiver_admin="ku2y@amsat.org" -receiver_gps=(39.0302,-77.0747) -photo_height=350 -photo_title="Panorama of Budapest from Schönherz Zoltán Dormitory" -photo_desc=""" +receiver_name = "KU2Y" +receiver_location = "Philadelphia, PA" +receiver_asl = 200 +receiver_admin = "ku2y@amsat.org" +receiver_gps = (40.0376, -75.3492) +receiver_gps = {"lat": 40.0376, "lon": -75.3492} +photo_title = "ARISS" +photo_desc = """ You can add your own background photo and receiver information.
-Receiver is operated by: %[RX_ADMIN]
-Device: %[RX_DEVICE]
-Antenna: %[RX_ANT]
-Website: http://localhost +Receiver is operated by: ku2y@amsat.org
+Device: RTL-SDR
+Antenna:
+Website: http://ariss-radio:8073 """ -# ==== 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 ==== -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. - -samp_rate = 250000 -# samp_rate = 2400000 -center_freq = 434950000 -rf_gain = 7 #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. -ppm = 0 +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. +) -audio_compression="adpcm" #valid values: "adpcm", "none" -fft_compression="adpcm" #valid values: "adpcm", "none" +audio_compression = "adpcm" # valid values: "adpcm", "none" +fft_compression = "adpcm" # valid values: "adpcm", "none" -digimodes_enable=False # True #Decoding digimodes come with higher CPU usage. -digimodes_fft_size=1024 +digimodes_enable = True # Decoding digimodes come with higher CPU usage. +digimodes_fft_size = 1024 -start_rtl_thread=True +# 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 +# enables lookup of DMR ids using the radioid api +digital_voice_dmr_id_lookup = True """ -Note: if you experience audio underruns while CPU usage is 100%, you can: +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`, @@ -95,121 +91,759 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: # ==== I/Q sources ==== # (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.) -################################################################################################# -# Is my SDR hardware supported? # -# Check here: https://github.com/simonyiszk/openwebrx/wiki#guides-for-receiver-hardware-support # -################################################################################################# - -# 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): - -# >> RTL-SDR via rtl_sdr -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) -format_conversion="csdr convert_u8_f" - -#lna_gain=8 -#rf_amp=1 -#start_rtl_command="hackrf_transfer -s {samp_rate} -f {center_freq} -g {rf_gain} -l{lna_gain} -a{rf_amp} -r-".format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm, rf_amp=rf_amp, lna_gain=lna_gain) -#format_conversion="csdr convert_s8_f" -""" -To use a HackRF, compile the HackRF host tools from its "stdout" branch: - git clone https://github.com/mossmann/hackrf/ - cd hackrf - git fetch - git checkout origin/stdout - cd host - mkdir build - cd build - cmake .. -DINSTALL_UDEV_RULES=ON - make - sudo make install -""" - -# >> Sound card SDR (needs ALSA) -# I did not have the chance to properly test it. -#samp_rate = 96000 -#start_rtl_command="arecord -f S16_LE -r {samp_rate} -c2 -".format(samp_rate=samp_rate) -#format_conversion="csdr convert_s16_f | csdr gain_ff 30" - -# >> /dev/urandom test signal source -# samp_rate = 2400000 -# 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) -# format_conversion="csdr convert_u8_f" - -# >> 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" - -#>> The rx_sdr command works with a variety of SDR harware: RTL-SDR, HackRF, SDRplay, UHD, Airspy, Red Pitaya, audio devices, etc. -# It will auto-detect your SDR hardware if the following tools are installed: -# * the vendor provided driver and library, -# * the vendor-specific SoapySDR wrapper library, -# * and SoapySDR itself. -# Check out this article on the OpenWebRX Wiki: https://github.com/simonyiszk/openwebrx/wiki/Using-rx_tools-with-OpenWebRX/ -#start_rtl_command="rx_sdr -F CF32 -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) -#format_conversion="" - -# >> gr-osmosdr signal source using GNU Radio (follow this guide: https://github.com/simonyiszk/openwebrx/wiki/Using-GrOsmoSDR-as-signal-source) -#start_rtl_command="cat /tmp/osmocom_fifo" -#format_conversion="" +############################################################################### +# Is my SDR hardware supported? # +# Check here: https://github.com/jketterl/openwebrx/wiki/Supported-Hardware # +############################################################################### -# ==== Misc settings ==== - -shown_center_freq = center_freq #you can change this if you use an upconverter - -client_audio_buffer_size = 5 -#increasing client_audio_buffer_size will: -# - also increase the latency -# - decrease the chance of audio underruns - -start_freq = center_freq -start_mod = "nfm" #nfm, am, lsb, usb, cw - -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. +# Currently supported types of sdr receivers: +# "rtl_sdr", "rtl_sdr_soapy", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr", +# "perseussdr", "lime_sdr", "pluto_sdr", "soapy_remote" +# +# 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. +# +# https://github.com/jketterl/owrx_connector +# +# In order to use Perseus HF you need to install the libperseus-sdr +# +# https://github.com/Microtelecom/libperseus-sdr +# +# 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). +# -#access_log = "~/openwebrx_access.log" +sdrs = { + "rtlsdr": { + "name": "RTL-SDR VHF/UHF", + "type": "rtl_sdr", + "ppm": 0, + # you can change this if you use an upconverter. formula is: + # center_freq + lfo_offset = actual frequency on the sdr + # "lfo_offset": 0, + "profiles": { + "wx": { + "name": "Weather Band", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 161500000, + "start_mod": "nfm", + }, + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 4355000000, + "start_mod": "nfm", + }, + "2m": { + "name": "2m Band", + "center_freq": 145000000, + "rf_gain": 15, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "2m-hi": { + "name": "2m Band High Gain", + "center_freq": 145000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 145725000, + "start_mod": "nfm", + }, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 90000000, + "start_mod": "nfm", + }, + "atc": { + "name": "Air Band - ATC", + "center_freq": 134000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "atc-hi": { + "name": "Air Band - ATC High Gain", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "am", + }, + "noaa": { + "name": "NOAA Weather Satellites", + "center_freq": 137000000, + "rf_gain": 20, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "noaa-hi": { + "name": "NOAA Weather Satellites High Gain", + "center_freq": 137000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 137000000, + "start_mod": "fm", + }, + "10m": { + "name": "10m Band", + "center_freq": 28000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 28500000, + "start_mod": "usb", + }, + "6m": { + "name": "6m Band", + "center_freq": 51000000, + "rf_gain": 25, + "samp_rate": 2400000, + "start_freq": 51000000, + "start_mod": "usb", + }, + "110MHz": { + "name": "110 MHz", + "center_freq": 110000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 110000000, + "start_mod": "nfm", + }, + "112MHz": { + "name": "112 MHz", + "center_freq": 112000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 112000000, + "start_mod": "nfm", + }, + "114MHz": { + "name": "114 MHz", + "center_freq": 114000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 114000000, + "start_mod": "nfm", + }, + "116mhz": { + "name": "116 MHz", + "center_freq": 116000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 116000000, + "start_mod": "nfm", + }, + "118mhz": { + "name": "118 MHz", + "center_freq": 118000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 118000000, + "start_mod": "nfm", + }, + "120mhz": { + "name": "120 MHz", + "center_freq": 120000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 120000000, + "start_mod": "nfm", + }, + "122mhz": { + "name": "122 MHz", + "center_freq": 122000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 122000000, + "start_mod": "nfm", + }, + "124mhz": { + "name": "124 MHz", + "center_freq": 124000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 124000000, + "start_mod": "nfm", + }, + "126mhz": { + "name": "126 MHz", + "center_freq": 126000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 126000000, + "start_mod": "nfm", + }, + "128mhz": { + "name": "126 MHz", + "center_freq": 128000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 128000000, + "start_mod": "nfm", + }, + "130mhz": { + "name": "130 MHz", + "center_freq": 130000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 130000000, + "start_mod": "nfm", + }, + "132mhz": { + "name": "132 MHz", + "center_freq": 132000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 132000000, + "start_mod": "nfm", + }, + "134mhz": { + "name": "134 MHz", + "center_freq": 134000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 134000000, + "start_mod": "nfm", + }, + "136mhz": { + "name": "136 MHz", + "center_freq": 136000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 136000000, + "start_mod": "nfm", + }, + "138mhz": { + "name": "138 MHz", + "center_freq": 138000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 138000000, + "start_mod": "nfm", + }, + "140mhz": { + "name": "140 MHz", + "center_freq": 140000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 140000000, + "start_mod": "nfm", + }, + "142mhz": { + "name": "142 MHz", + "center_freq": 142000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 142000000, + "start_mod": "nfm", + }, + "144mhz": { + "name": "144 MHz", + "center_freq": 144000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 144000000, + "start_mod": "nfm", + }, + "146mhz": { + "name": "146 MHz", + "center_freq": 146000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 146000000, + "start_mod": "nfm", + }, + "148mhz": { + "name": "148 MHz", + "center_freq": 148000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 148000000, + "start_mod": "nfm", + }, + "150mhz": { + "name": "150 MHz", + "center_freq": 150000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 150000000, + "start_mod": "nfm", + }, + "152mhz": { + "name": "152 MHz", + "center_freq": 152000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 152000000, + "start_mod": "nfm", + }, + "154mhz": { + "name": "154 MHz", + "center_freq": 154000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 154000000, + "start_mod": "nfm", + }, + "156mhz": { + "name": "156 MHz", + "center_freq": 156000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 156100000, + "start_mod": "nfm", + }, + "158mhz": { + "name": "158 MHz", + "center_freq": 158000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 158000000, + "start_mod": "nfm", + }, + "160mhz": { + "name": "160 MHz", + "center_freq": 160000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 160000000, + "start_mod": "nfm", + }, + "162mhz": { + "name": "162 MHz", + "center_freq": 162000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 162000000, + "start_mod": "nfm", + }, + "164mhz": { + "name": "164 MHz", + "center_freq": 164000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 164000000, + "start_mod": "nfm", + }, + "166mhz": { + "name": "166 MHz", + "center_freq": 166000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 166000000, + "start_mod": "nfm", + }, + "168mhz": { + "name": "168 MHz", + "center_freq": 168000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 168000000, + "start_mod": "nfm", + }, + "170mhz": { + "name": "170 MHz", + "center_freq": 170000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 170000000, + "start_mod": "nfm", + }, + "172mhz": { + "name": "172 MHz", + "center_freq": 172000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 172000000, + "start_mod": "nfm", + }, + "174mhz": { + "name": "174 MHz", + "center_freq": 174000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 174000000, + "start_mod": "nfm", + }, + "433mhz": { + "name": "433 MHz", + "center_freq": 433000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 433000000, + "start_mod": "nfm", + }, + "446mhz": { + "name": "446 MHz (PMR)", + "center_freq": 446000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 446000000, + "start_mod": "nfm", + }, + "460mhz": { + "name": "460 MHz", + "center_freq": 460000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 460000000, + "start_mod": "nfm", + }, + "860mhz": { + "name": "860 MHz", + "center_freq": 860000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 860000000, + "start_mod": "nfm", + }, + "862mhz": { + "name": "862 MHz", + "center_freq": 862000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 862000000, + "start_mod": "nfm", + }, + "864mhz": { + "name": "864 MHz", + "center_freq": 864000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 864000000, + "start_mod": "nfm", + }, + "866mhz": { + "name": "866 MHz", + "center_freq": 866000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 866000000, + "start_mod": "nfm", + }, + "868mhz": { + "name": "868 MHz", + "center_freq": 868000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 868000000, + "start_mod": "nfm", + }, + "870mhz": { + "name": "870 MHz", + "center_freq": 870000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 870000000, + "start_mod": "nfm", + }, + "915mhz": { + "name": "915 MHz", + "center_freq": 915000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 915000000, + "start_mod": "nfm", + }, + "1090mhz": { + "name": "1090 MHz", + "center_freq": 1090000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1090000000, + "start_mod": "nfm", + }, + "1880mhz": { + "name": "1880 MHz", + "center_freq": 1880000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1880000000, + "start_mod": "nfm", + }, + "1882mhz": { + "name": "1882 MHz", + "center_freq": 1882000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1882000000, + "start_mod": "nfm", + }, + "1884mhz": { + "name": "1884 MHz", + "center_freq": 1884000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1884000000, + "start_mod": "nfm", + }, + "1886mhz": { + "name": "1886 MHz", + "center_freq": 1886000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1886000000, + "start_mod": "nfm", + }, + "1888mhz": { + "name": "1888 MHz", + "center_freq": 1888000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1888000000, + "start_mod": "nfm", + }, + "1890mhz": { + "name": "1890 MHz", + "center_freq": 1890000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1890000000, + "start_mod": "nfm", + }, + "1892mhz": { + "name": "1892 MHz", + "center_freq": 1892000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1892000000, + "start_mod": "nfm", + }, + "1894mhz": { + "name": "1894 MHz", + "center_freq": 1894000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1894000000, + "start_mod": "nfm", + }, + "1896mhz": { + "name": "1896 MHz", + "center_freq": 1896000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1896000000, + "start_mod": "nfm", + }, + "1898mhz": { + "name": "1898 MHz", + "center_freq": 1898000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1898000000, + "start_mod": "nfm", + }, + "1900mhz": { + "name": "1900 MHz", + "center_freq": 1900000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1900000000, + "start_mod": "nfm", + }, + "23cm": { + "name": "23cm Band", + "center_freq": 1270000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 1270000000, + "start_mod": "nfm", + }, + "13cm": { + "name": "13cm Band", + "center_freq": 2370000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 2370000000, + "start_mod": "nfm", + }, + "9cm": { + "name": "9cm Band", + "center_freq": 3440000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 3440000000, + "start_mod": "nfm", + }, + }, + }, + "rtl_sdr-2": { + "name": "RTL-SDR HF", + "type": "rtl_sdr_soapy", + "ppm": 0, + "direct_sampling": 2, + "profiles": { + "10m": { + "name": "10m Band", + "center_freq": 29150000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 28283000, + "start_mod": "usb", + }, + "19m": { + "name": "19m Broadcast Band", + "center_freq": 16000000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 15400000, + "start_mod": "am", + }, + "20m": { + "name": "20m Band", + "center_freq": 14150000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 14070000, + "start_mod": "usb", + }, + "30m": { + "name": "30m Band", + "center_freq": 10125000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 10142000, + "start_mod": "usb", + }, + "40m": { + "name": "40m Band", + "center_freq": 7100000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 7070000, + "start_mod": "lsb", + }, + "49m": { + "name": "49m Broadcast Band", + "center_freq": 6000000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 6070000, + "start_mod": "am", + }, + "80m": { + "name": "80m Band", + "center_freq": 3650000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 3570000, + "start_mod": "lsb", + }, + "160m": { + "name": "160m Band", + "center_freq": 1700000, + "rf_gain": 10, + "samp_rate": 2400000, + "start_freq": 1440000, + "start_mod": "am", + }, + }, + }, +} # ==== Color themes ==== -#A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels +# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels ### default theme by teejez: -waterfall_colors = "[0x000000ff,0x0000ffff,0x00ffffff,0x00ff00ff,0xffff00ff,0xff0000ff,0xff00ffff,0xffffffff]" -waterfall_min_level = -88 #in dB +waterfall_colors = [0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0x00FF00FF, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFFFFFFFF] +waterfall_min_level = -88 # in dB waterfall_max_level = -20 -waterfall_auto_level_margin = (5, 40) +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 = (20, 30) +# 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} ##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[0]] -# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin[1]] +# 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[0]_/ |__ current_min_power_level | \_waterfall_auto_level_margin[1]_/ -# current_max_power_level __| - -# 3D view settings -mathbox_waterfall_frequency_resolution = 128 #bins -mathbox_waterfall_history_length = 10 #seconds -mathbox_waterfall_colors = "[0x000000ff,0x2e6893ff, 0x69a5d0ff, 0x214b69ff, 0x9dc4e0ff, 0xfff775ff, 0xff8a8aff, 0xb20000ff]" +# ___|________________________________________|____________________________________|________________________________________|___> signal power +# \_waterfall_auto_level_margin["min"]_/ |__ current_min_power_level | \_waterfall_auto_level_margin["max"]_/ +# current_max_power_level __| # === Experimental settings === -#Warning! The settings below are very experimental. -csdr_dynamic_bufsize = False # This allows you to change the buffering mode of csdr. +# 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. - -#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 -""" +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. + +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. +# 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 +# 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 + +# 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 +wsjt_decoding_depths = {"jt65": 1} + +# 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 + +temporary_directory = "/tmp/openwebrx" + +services_enabled = False +services_decoders = ["ft8", "ft4", "wspr", "packet"] + +# === 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 + +# path to the aprs symbols repository (get it here: https://github.com/hessu/aprs-symbols) +aprs_symbols_path = "/opt/aprs-symbols/png" + +# === PSK Reporter setting === +# enable this if you want to upload all ft8, ft4 etc spots to pskreporter.info +# this also uses the receiver_gps setting from above, so make sure it contains a correct locator +pskreporter_enabled = False +pskreporter_callsign = "N0CALL" + +# === Web admin settings === +# 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 From fbaed266a2ee84cd6bf99ae8e9750b9e6aecd5b5 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 5 Jun 2020 09:23:15 -0400 Subject: [PATCH 44/63] removed config copying since hf and vhf now together --- groundstation/sdr.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sdr.sh b/groundstation/sdr.sh index 0242151c..34f523ba 100755 --- a/groundstation/sdr.sh +++ b/groundstation/sdr.sh @@ -25,7 +25,7 @@ sudo killall -9 rtl_tcp &>/dev/null sudo systemctl stop openwebrx -sudo cp /etc/openwebrx/config_webrx_vhf.py /etc/openwebrx/config_webrx.py +#sudo cp /etc/openwebrx/config_webrx_vhf.py /etc/openwebrx/config_webrx.py sudo systemctl restart openwebrx From 3a9b162e21bacb2330419a39f7c9418d56bca69d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 5 Jun 2020 12:57:45 -0400 Subject: [PATCH 45/63] Create rtl_tcp.service --- groundstation/rtl_tcp.service | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 groundstation/rtl_tcp.service diff --git a/groundstation/rtl_tcp.service b/groundstation/rtl_tcp.service new file mode 100644 index 00000000..47744757 --- /dev/null +++ b/groundstation/rtl_tcp.service @@ -0,0 +1,13 @@ +Description=RTL-TCP + +[Service] +TimeoutStopSec = 5 +ExecStart=/bin/sh -c '/usr/local/bin/rtl_tcp -a $(hostname -I)' +WorkingDirectory=/home/pi +StandardOutput=inherit +StandardError=inherit +Restart=always +User=root + +[Install] +WantedBy=default.target From 7c948600550ae9a4e28589e25b014feccad9aac9 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jun 2020 19:36:31 +0000 Subject: [PATCH 46/63] updated --- groundstation/default.conf | 16 ++++++++-------- groundstation/fox.sh | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+), 8 deletions(-) create mode 100755 groundstation/fox.sh diff --git a/groundstation/default.conf b/groundstation/default.conf index 5e3a347f..74960edd 100644 --- a/groundstation/default.conf +++ b/groundstation/default.conf @@ -7,13 +7,13 @@ gain=-74 udp_host=localhost [gui] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\xb3\0\0\0)\0\0\x3\xad\0\0\x3\v\0\0\0\xb5\0\0\0G\0\0\x3\xad\0\0\x3\v\0\0\0\0\0\0\0\0\x5\0) -state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\x1\0\0\x1\x36\0\0\x2\x66\xfc\x2\0\0\0\x2\xfc\0\0\0\x44\0\0\x1\x98\0\0\x1\x98\0\b\0\"\xfa\0\0\0\x1\x2\0\0\0\x3\xfb\0\0\0\x18\0\x44\0o\0\x63\0k\0I\0n\0p\0u\0t\0\x43\0t\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1?\0\xff\xff\xff\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0R\0x\0O\0p\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1u\0\a\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0\x46\0\x66\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\a\xff\xff\xfc\0\0\x1\xe2\0\0\0\xc8\0\0\0\xc8\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\x2\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0\x41\0u\0\x64\0i\0o\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0R\0\x44\0S\0\0\0\0\0\xff\xff\xff\xff\0\0\0h\0\xff\xff\xff\0\0\0\x3\0\0\0\0\0\0\0\0\xfc\x1\0\0\0\x1\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0\x42\0o\0o\0k\0m\0\x61\0r\0k\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\x42\0\xff\xff\xff\0\0\x1\xbd\0\0\x2\x66\0\0\0\x1\0\0\0\x2\0\0\0\b\0\0\0\x2\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x16\0m\0\x61\0i\0n\0T\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\xb3\0\0\0)\0\0\x3\xad\0\0\x3\v\0\0\0\xb5\0\0\0G\0\0\x3\xad\0\0\x3\v\0\0\0\0\0\0\0\0\x4\0) +state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\x1\0\0\x1\x36\0\0\x2h\xfc\x2\0\0\0\x2\xfc\0\0\0\x42\0\0\x1\x99\0\0\x1\x89\0\b\0!\xfa\0\0\0\x1\x2\0\0\0\x3\xfb\0\0\0\x18\0\x44\0o\0\x63\0k\0I\0n\0p\0u\0t\0\x43\0t\0l\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1\x37\0\xff\xff\xff\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0R\0x\0O\0p\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\x1g\0\a\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0\x46\0\x66\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\a\xff\xff\xfc\0\0\x1\xe1\0\0\0\xc9\0\0\0\xc8\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\x2\xfb\0\0\0\x12\0\x44\0o\0\x63\0k\0\x41\0u\0\x64\0i\0o\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\xe\0\x44\0o\0\x63\0k\0R\0\x44\0S\0\0\0\0\0\xff\xff\xff\xff\0\0\0h\0\xff\xff\xff\0\0\0\x3\0\0\0\0\0\0\0\0\xfc\x1\0\0\0\x1\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0\x42\0o\0o\0k\0m\0\x61\0r\0k\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\x42\0\xff\xff\xff\0\0\x1\xbd\0\0\x2h\0\0\0\x1\0\0\0\x2\0\0\0\b\0\0\0\x2\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x16\0m\0\x61\0i\0n\0T\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) [input] device="rtl=0" -frequency=144390000 -gains=@Variant(\0\0\0\b\0\0\0\x1\0\0\0\x6\0L\0N\0\x41\0\0\0\x2\0\0\x1\x1d) +frequency=93300000 +gains=@Variant(\0\0\0\b\0\0\0\x1\0\0\0\x6\0L\0N\0\x41\0\0\0\x2\0\0\x1\xf0) sample_rate=1800000 [output] @@ -21,10 +21,10 @@ device=alsa_output.platform-soc_audio.analog-mono [receiver] agc_off=true -demod=3 -filter_high_cut=5000 -filter_low_cut=-5000 -offset=71600 +demod=5 +filter_high_cut=80000 +filter_low_cut=-80000 +offset=357600 sql_level=-59.7 [remote_control] diff --git a/groundstation/fox.sh b/groundstation/fox.sh new file mode 100755 index 00000000..09a34837 --- /dev/null +++ b/groundstation/fox.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# script to run FoxTelem + +echo "Script to run FoxTelem for ARISS Radio Pi" + +echo + +sudo systemctl stop openwebrx + +sudo systemctl stop rtl_tcp + +pkill -o chromium &>/dev/null + +sudo killall -9 rtl_tcp &>/dev/null + +sudo killall -9 java &>/dev/null + +/home/pi/FoxTelem_1.09k6_linux/FoxTelem & + +#/usr/bin/chromium-browser --noerrdialogs --disable-infobars http://localhost:8073 &>/dev/null & + +$SHELL + From 1562d62e61ee2156b13d48a9e5170a908d5c1789 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 15:33:46 -0400 Subject: [PATCH 47/63] Update bookmarks.json --- groundstation/bookmarks.json | 67 +++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 16 deletions(-) diff --git a/groundstation/bookmarks.json b/groundstation/bookmarks.json index 5d4719bd..6dedc1fa 100644 --- a/groundstation/bookmarks.json +++ b/groundstation/bookmarks.json @@ -9,6 +9,16 @@ "frequency": 145819000, "modulation": "nfm" }, + { + "name": "AO-27", + "frequency": 436795000, + "modulation": "nfm" + }, + { + "name": "AO-73", + "frequency": 145815000, + "modulation": "usb" + }, { "name": "Fox-1B AO-91", "frequency": 145960000, @@ -25,23 +35,38 @@ "modulation": "usb" }, { - "name": "PHL ATIS", - "frequency": 133400000, + "name": "NOAA WX Radio 1", + "frequency": 162400000, + "modulation": "nfm" + }, + { + "name": "NOAA WX Radio 2", + "frequency": 162425000, "modulation": "nfm" }, { - "name": "PHL ATC", - "frequency": 133450000, + "name": "NOAA WX Radio 3", + "frequency": 162450000, "modulation": "nfm" }, { - "name": "PHL ATC", - "frequency": 133550000, + "name": "NOAA WX Radio 4", + "frequency": 162475000, "modulation": "nfm" }, { - "name": "WX", - "frequency": 162400000, + "name": "NOAA WX Radio 5", + "frequency": 162500000, + "modulation": "nfm" + }, + { + "name": "NOAA WX Radio 6", + "frequency": 162525000, + "modulation": "nfm" + }, + { + "name": "NOAA WX Radio 7", + "frequency": 162550000, "modulation": "nfm" }, { @@ -59,6 +84,21 @@ "frequency": 145660000, "modulation": "usb" }, + { + "name": "XW-2B", + "frequency": 145725000, + "modulation": "usb" + }, + { + "name": "XW-2C", + "frequency": 145790000, + "modulation": "usb" + }, + { + "name": "XW-2F", + "frequency": 145975000, + "modulation": "usb" + }, { "name": "NOAA-19", "frequency": 137100000, @@ -75,13 +115,8 @@ "modulation": "nfm" }, { - "name": "PHL ATC", - "frequency": 134300000, - "modulation": "am" + "name": "CubeSatSim", + "frequency": 434900000, + "modulation": "nfm" }, - { - "name": "PHL ATC", - "frequency": 133875000, - "modulation": "am" - } ] From cf1559768014a2d5874445283d86c7f7a1401473 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 15:40:19 -0400 Subject: [PATCH 48/63] Update config_webrx.py --- groundstation/config_webrx.py | 130 +++++++++++++++------------------- 1 file changed, 57 insertions(+), 73 deletions(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index e38ee50a..1d5e40c4 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -131,22 +131,6 @@ sdrs = { "start_freq": 161500000, "start_mod": "nfm", }, - "70cm": { - "name": "70cm Band", - "center_freq": 435500000, - "rf_gain": 3, - "samp_rate": 2400000, - "start_freq": 4355000000, - "start_mod": "nfm", - }, - "70cm-hi": { - "name": "70cm Band High Gain", - "center_freq": 435500000, - "rf_gain": 30, - "samp_rate": 2400000, - "start_freq": 4355000000, - "start_mod": "nfm", - }, "2m": { "name": "2m Band", "center_freq": 145000000, @@ -163,45 +147,29 @@ sdrs = { "start_freq": 145725000, "start_mod": "nfm", }, - "fm": { - "name": "FM Band", - "center_freq": 91000000, - "rf_gain": 30, + "70cm": { + "name": "70cm Band", + "center_freq": 435500000, + "rf_gain": 3, "samp_rate": 2400000, - "start_freq": 90000000, + "start_freq": 4355000000, "start_mod": "nfm", }, - "atc": { - "name": "Air Band - ATC", - "center_freq": 134000000, - "rf_gain": 20, - "samp_rate": 2400000, - "start_freq": 134000000, - "start_mod": "am", - }, - "atc-hi": { - "name": "Air Band - ATC High Gain", - "center_freq": 134000000, + "70cm-hi": { + "name": "70cm Band High Gain", + "center_freq": 435500000, "rf_gain": 30, "samp_rate": 2400000, - "start_freq": 134000000, - "start_mod": "am", + "start_freq": 4355000000, + "start_mod": "nfm", }, - "noaa": { - "name": "NOAA Weather Satellites", - "center_freq": 137000000, - "rf_gain": 20, - "samp_rate": 2400000, - "start_freq": 137000000, - "start_mod": "fm", - }, - "noaa-hi": { - "name": "NOAA Weather Satellites High Gain", - "center_freq": 137000000, - "rf_gain": 25, + "fm": { + "name": "FM Band", + "center_freq": 91000000, + "rf_gain": 30, "samp_rate": 2400000, - "start_freq": 137000000, - "start_mod": "fm", + "start_freq": 90000000, + "start_mod": "nfm", }, "10m": { "name": "10m Band", @@ -252,7 +220,7 @@ sdrs = { "start_mod": "nfm", }, "118mhz": { - "name": "118 MHz", + "name": "118 MHz Air Band", "center_freq": 118000000, "rf_gain": 30, "samp_rate": 2400000, @@ -260,7 +228,7 @@ sdrs = { "start_mod": "nfm", }, "120mhz": { - "name": "120 MHz", + "name": "120 MHz Air Band", "center_freq": 120000000, "rf_gain": 30, "samp_rate": 2400000, @@ -268,7 +236,7 @@ sdrs = { "start_mod": "nfm", }, "122mhz": { - "name": "122 MHz", + "name": "122 MHz Air Band", "center_freq": 122000000, "rf_gain": 30, "samp_rate": 2400000, @@ -276,7 +244,7 @@ sdrs = { "start_mod": "nfm", }, "124mhz": { - "name": "124 MHz", + "name": "124 MHz Air Band", "center_freq": 124000000, "rf_gain": 30, "samp_rate": 2400000, @@ -284,7 +252,7 @@ sdrs = { "start_mod": "nfm", }, "126mhz": { - "name": "126 MHz", + "name": "126 MHz Air Band", "center_freq": 126000000, "rf_gain": 30, "samp_rate": 2400000, @@ -292,7 +260,7 @@ sdrs = { "start_mod": "nfm", }, "128mhz": { - "name": "126 MHz", + "name": "126 MHz Air Band", "center_freq": 128000000, "rf_gain": 30, "samp_rate": 2400000, @@ -300,7 +268,7 @@ sdrs = { "start_mod": "nfm", }, "130mhz": { - "name": "130 MHz", + "name": "130 MHz Air Band", "center_freq": 130000000, "rf_gain": 30, "samp_rate": 2400000, @@ -308,7 +276,7 @@ sdrs = { "start_mod": "nfm", }, "132mhz": { - "name": "132 MHz", + "name": "132 MHz Air Band", "center_freq": 132000000, "rf_gain": 30, "samp_rate": 2400000, @@ -316,7 +284,7 @@ sdrs = { "start_mod": "nfm", }, "134mhz": { - "name": "134 MHz", + "name": "134 MHz Air Band", "center_freq": 134000000, "rf_gain": 30, "samp_rate": 2400000, @@ -324,7 +292,7 @@ sdrs = { "start_mod": "nfm", }, "136mhz": { - "name": "136 MHz", + "name": "136 MHz Air Band", "center_freq": 136000000, "rf_gain": 30, "samp_rate": 2400000, @@ -332,7 +300,7 @@ sdrs = { "start_mod": "nfm", }, "138mhz": { - "name": "138 MHz", + "name": "138 MHz NOAA Weather Satellite Band", "center_freq": 138000000, "rf_gain": 30, "samp_rate": 2400000, @@ -356,7 +324,7 @@ sdrs = { "start_mod": "nfm", }, "144mhz": { - "name": "144 MHz", + "name": "144 MHz Ham Band", "center_freq": 144000000, "rf_gain": 30, "samp_rate": 2400000, @@ -364,7 +332,7 @@ sdrs = { "start_mod": "nfm", }, "146mhz": { - "name": "146 MHz", + "name": "146 MHz Ham Band", "center_freq": 146000000, "rf_gain": 30, "samp_rate": 2400000, @@ -372,7 +340,7 @@ sdrs = { "start_mod": "nfm", }, "148mhz": { - "name": "148 MHz", + "name": "148 MHz Ham Band", "center_freq": 148000000, "rf_gain": 30, "samp_rate": 2400000, @@ -428,7 +396,7 @@ sdrs = { "start_mod": "nfm", }, "162mhz": { - "name": "162 MHz", + "name": "162 MHz Weather Band", "center_freq": 162000000, "rf_gain": 30, "samp_rate": 2400000, @@ -484,7 +452,7 @@ sdrs = { "start_mod": "nfm", }, "433mhz": { - "name": "433 MHz", + "name": "433 MHz Ham Band", "center_freq": 433000000, "rf_gain": 30, "samp_rate": 2400000, @@ -507,6 +475,22 @@ sdrs = { "start_freq": 460000000, "start_mod": "nfm", }, + "462mhz": { + "name": "462 MHz FRS/GMRS", + "center_freq": 462000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 462000000, + "start_mod": "nfm", + }, + "467mhz": { + "name": "462 MHz FRS/GMRS", + "center_freq": 467000000, + "rf_gain": 30, + "samp_rate": 2400000, + "start_freq": 467000000, + "start_mod": "nfm", + }, "860mhz": { "name": "860 MHz", "center_freq": 860000000, @@ -540,7 +524,7 @@ sdrs = { "start_mod": "nfm", }, "868mhz": { - "name": "868 MHz", + "name": "868 MHz SRD Band", "center_freq": 868000000, "rf_gain": 30, "samp_rate": 2400000, @@ -556,7 +540,7 @@ sdrs = { "start_mod": "nfm", }, "915mhz": { - "name": "915 MHz", + "name": "915 MHz ISM Band", "center_freq": 915000000, "rf_gain": 30, "samp_rate": 2400000, @@ -660,7 +644,7 @@ sdrs = { "start_mod": "nfm", }, "23cm": { - "name": "23cm Band", + "name": "23cm Ham Band", "center_freq": 1270000000, "rf_gain": 30, "samp_rate": 2400000, @@ -668,7 +652,7 @@ sdrs = { "start_mod": "nfm", }, "13cm": { - "name": "13cm Band", + "name": "13cm Ham Band", "center_freq": 2370000000, "rf_gain": 30, "samp_rate": 2400000, @@ -692,7 +676,7 @@ sdrs = { "direct_sampling": 2, "profiles": { "10m": { - "name": "10m Band", + "name": "10m Ham Band", "center_freq": 29150000, "rf_gain": 10, "samp_rate": 2400000, @@ -708,7 +692,7 @@ sdrs = { "start_mod": "am", }, "20m": { - "name": "20m Band", + "name": "20m Ham Band", "center_freq": 14150000, "rf_gain": 10, "samp_rate": 2400000, @@ -716,7 +700,7 @@ sdrs = { "start_mod": "usb", }, "30m": { - "name": "30m Band", + "name": "30m Ham Band", "center_freq": 10125000, "rf_gain": 10, "samp_rate": 2400000, @@ -724,7 +708,7 @@ sdrs = { "start_mod": "usb", }, "40m": { - "name": "40m Band", + "name": "40m Ham Band", "center_freq": 7100000, "rf_gain": 10, "samp_rate": 2400000, @@ -740,7 +724,7 @@ sdrs = { "start_mod": "am", }, "80m": { - "name": "80m Band", + "name": "80m Ham Band", "center_freq": 3650000, "rf_gain": 10, "samp_rate": 2400000, From d93177b82708d8a8b768f45a07b39f3eee05cc2c Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 15:45:36 -0400 Subject: [PATCH 49/63] Update bookmarks.json --- groundstation/bookmarks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/bookmarks.json b/groundstation/bookmarks.json index 6dedc1fa..f4f9304f 100644 --- a/groundstation/bookmarks.json +++ b/groundstation/bookmarks.json @@ -118,5 +118,5 @@ "name": "CubeSatSim", "frequency": 434900000, "modulation": "nfm" - }, + } ] From ec8070d4b6c96437dd0e41680c9792f613d0194c Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 15:49:40 -0400 Subject: [PATCH 50/63] Update config_webrx.py --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 1d5e40c4..c7c51359 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -127,7 +127,7 @@ sdrs = { "name": "Weather Band", "center_freq": 162000000, "rf_gain": 30, - "samp_rate": 2400000, + "samp_rate": 900000, "start_freq": 161500000, "start_mod": "nfm", }, From 7d8af4516f6588596f648f51a9398bdf9a2bb0e7 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 15:53:45 -0400 Subject: [PATCH 51/63] Update config_webrx.py --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index c7c51359..6294a377 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -128,7 +128,7 @@ sdrs = { "center_freq": 162000000, "rf_gain": 30, "samp_rate": 900000, - "start_freq": 161500000, + "start_freq": 162400000, "start_mod": "nfm", }, "2m": { From 47eef98fb41000947cd958157fb4a5b6b22db548 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 15:57:16 -0400 Subject: [PATCH 52/63] Update config_webrx.py --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 6294a377..1e0e86b9 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -147,7 +147,7 @@ sdrs = { "start_freq": 145725000, "start_mod": "nfm", }, - "70cm": { + "70cm": { "name": "70cm Band", "center_freq": 435500000, "rf_gain": 3, From 140f8bb0f2e8d575950981dee8cf0b256b4c00e6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 16:06:08 -0400 Subject: [PATCH 53/63] Update config_webrx.py --- groundstation/config_webrx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 1e0e86b9..1c76f126 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -125,9 +125,9 @@ sdrs = { "profiles": { "wx": { "name": "Weather Band", - "center_freq": 162000000, + "center_freq": 162250000, "rf_gain": 30, - "samp_rate": 900000, + "samp_rate": 1000000, "start_freq": 162400000, "start_mod": "nfm", }, From 514e79c14d49492c3d597103e6152088e8945140 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 16:09:16 -0400 Subject: [PATCH 54/63] Update config_webrx.py --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 1c76f126..24ef38cd 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -460,7 +460,7 @@ sdrs = { "start_mod": "nfm", }, "446mhz": { - "name": "446 MHz (PMR)", + "name": "446 MHz", "center_freq": 446000000, "rf_gain": 30, "samp_rate": 2400000, From ad4cf089f710885156d8dfbba7d7be36d00ab3f6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 16:09:57 -0400 Subject: [PATCH 55/63] Update config_webrx.py --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 24ef38cd..cf08c4f0 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -484,7 +484,7 @@ sdrs = { "start_mod": "nfm", }, "467mhz": { - "name": "462 MHz FRS/GMRS", + "name": "467 MHz FRS/GMRS", "center_freq": 467000000, "rf_gain": 30, "samp_rate": 2400000, From 9ce78052d81cee2da9a4973166bfc98a00b31ac1 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jun 2020 16:21:13 -0400 Subject: [PATCH 56/63] Updates for v4 --- groundstation/fox.sh | 2 ++ groundstation/foxtelem.desktop | 6 +++--- groundstation/rtl-tcp-d.sh | 2 ++ groundstation/rtl-tcp.sh | 2 ++ groundstation/sdr.sh | 2 ++ 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/groundstation/fox.sh b/groundstation/fox.sh index 09a34837..95b68b89 100755 --- a/groundstation/fox.sh +++ b/groundstation/fox.sh @@ -15,6 +15,8 @@ sudo killall -9 rtl_tcp &>/dev/null sudo killall -9 java &>/dev/null +sudo killall -9 gqrx &>/dev/null + /home/pi/FoxTelem_1.09k6_linux/FoxTelem & #/usr/bin/chromium-browser --noerrdialogs --disable-infobars http://localhost:8073 &>/dev/null & diff --git a/groundstation/foxtelem.desktop b/groundstation/foxtelem.desktop index c78a12ac..401800f8 100644 --- a/groundstation/foxtelem.desktop +++ b/groundstation/foxtelem.desktop @@ -1,9 +1,9 @@ [Desktop Entry] Type=Application -Exec=/home/pi/FoxTelem_1.09g_linux/FoxTelem +Exec=/home/pi/fox.sh Name=FoxTelem -Comment=Test Version 1.09b for CubeSatSim -Icon=/home/pi/Downloads/foxtelem.png +Comment=Test Version 1.09 for CubeSatSim +Icon=/home/pi/Downloads/amsat.jpg Path=/home/pi #Terminal=true Categories=HamRadio diff --git a/groundstation/rtl-tcp-d.sh b/groundstation/rtl-tcp-d.sh index 63fcc5bc..8edba5f9 100755 --- a/groundstation/rtl-tcp-d.sh +++ b/groundstation/rtl-tcp-d.sh @@ -19,6 +19,8 @@ echo sudo killall -9 java &>/dev/null +sudo killall -9 gqrx &>/dev/null + sudo systemctl stop rtl_tcp sudo systemctl stop openwebrx diff --git a/groundstation/rtl-tcp.sh b/groundstation/rtl-tcp.sh index 1dfd2554..5e7ea5be 100755 --- a/groundstation/rtl-tcp.sh +++ b/groundstation/rtl-tcp.sh @@ -31,6 +31,8 @@ sudo systemctl stop openwebrx sudo killall -9 rtl_tcp &>/dev/null +sudo killall -9 gqrx &>/dev/null + sudo systemctl start rtl_tcp $SHELL diff --git a/groundstation/sdr.sh b/groundstation/sdr.sh index 34f523ba..009c8471 100755 --- a/groundstation/sdr.sh +++ b/groundstation/sdr.sh @@ -23,6 +23,8 @@ sudo systemctl stop rtl_tcp sudo killall -9 rtl_tcp &>/dev/null +sudo killall -9 gqrx &>/dev/null + sudo systemctl stop openwebrx #sudo cp /etc/openwebrx/config_webrx_vhf.py /etc/openwebrx/config_webrx.py From 6d5aaf9080b171c02152f5f6a4d6d8457376c82b Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jun 2020 16:26:21 -0400 Subject: [PATCH 57/63] initial add --- groundstation/gqrx.desktop | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 groundstation/gqrx.desktop diff --git a/groundstation/gqrx.desktop b/groundstation/gqrx.desktop new file mode 100644 index 00000000..4b262cd5 --- /dev/null +++ b/groundstation/gqrx.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Exec=/home/pi/gqrx.sh +Name=Gqrx +Comment=Gqrx SDR +Icon=/home/pi/Downloads/gqrx.png +Path=/home/pi +Terminal=true +Categories=HamRadio +Keywords=Ham Radio;Gqrx;SDR From 40ba30a759139c84c69ab4cdae4b2df27ebf9c3e Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 8 Jun 2020 16:41:06 -0400 Subject: [PATCH 58/63] Update config_webrx.py --- groundstation/config_webrx.py | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index cf08c4f0..043b85b0 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -125,7 +125,7 @@ sdrs = { "profiles": { "wx": { "name": "Weather Band", - "center_freq": 162250000, + "center_freq": 162350000, "rf_gain": 30, "samp_rate": 1000000, "start_freq": 162400000, @@ -134,14 +134,6 @@ sdrs = { "2m": { "name": "2m Band", "center_freq": 145000000, - "rf_gain": 15, - "samp_rate": 2400000, - "start_freq": 145725000, - "start_mod": "nfm", - }, - "2m-hi": { - "name": "2m Band High Gain", - "center_freq": 145000000, "rf_gain": 30, "samp_rate": 2400000, "start_freq": 145725000, @@ -150,14 +142,6 @@ sdrs = { "70cm": { "name": "70cm Band", "center_freq": 435500000, - "rf_gain": 3, - "samp_rate": 2400000, - "start_freq": 4355000000, - "start_mod": "nfm", - }, - "70cm-hi": { - "name": "70cm Band High Gain", - "center_freq": 435500000, "rf_gain": 30, "samp_rate": 2400000, "start_freq": 4355000000, From ea2df9b8b6dd396b63cdc912f540814a815228aa Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 23 Jun 2020 10:14:26 -0400 Subject: [PATCH 59/63] all soapy profile for openwebrx --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 043b85b0..bdec2303 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -117,7 +117,7 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: sdrs = { "rtlsdr": { "name": "RTL-SDR VHF/UHF", - "type": "rtl_sdr", + "type": "rtl_sdr_soapy", "ppm": 0, # you can change this if you use an upconverter. formula is: # center_freq + lfo_offset = actual frequency on the sdr From 87ec9cb3ed38715a1c76360925a2f1590404146e Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 23 Jun 2020 10:34:42 -0400 Subject: [PATCH 60/63] merged profiles --- groundstation/config_webrx.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index bdec2303..8a65baef 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -116,7 +116,7 @@ Note: if you experience audio underruns while CPU usage is 100%, you can: sdrs = { "rtlsdr": { - "name": "RTL-SDR VHF/UHF", + "name": "RTL-SDR", "type": "rtl_sdr_soapy", "ppm": 0, # you can change this if you use an upconverter. formula is: @@ -651,77 +651,77 @@ sdrs = { "start_freq": 3440000000, "start_mod": "nfm", }, - }, - }, - "rtl_sdr-2": { - "name": "RTL-SDR HF", - "type": "rtl_sdr_soapy", - "ppm": 0, - "direct_sampling": 2, - "profiles": { "10m": { - "name": "10m Ham Band", + "name": "10m Ham Band HF", "center_freq": 29150000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 28283000, "start_mod": "usb", + "direct_sampling": 2, }, "19m": { - "name": "19m Broadcast Band", + "name": "19m Broadcast Band HF", "center_freq": 16000000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 15400000, "start_mod": "am", + "direct_sampling": 2, }, "20m": { - "name": "20m Ham Band", + "name": "20m Ham Band HF", "center_freq": 14150000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 14070000, "start_mod": "usb", + "direct_sampling": 2, }, "30m": { - "name": "30m Ham Band", + "name": "30m Ham Band HF", "center_freq": 10125000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 10142000, "start_mod": "usb", + "direct_sampling": 2, }, "40m": { - "name": "40m Ham Band", + "name": "40m Ham Band HF", "center_freq": 7100000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 7070000, "start_mod": "lsb", + "direct_sampling": 2, }, "49m": { - "name": "49m Broadcast Band", + "name": "49m Broadcast Band HF", "center_freq": 6000000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 6070000, "start_mod": "am", + "direct_sampling": 2, }, "80m": { - "name": "80m Ham Band", + "name": "80m Ham Band HF", "center_freq": 3650000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 3570000, "start_mod": "lsb", + "direct_sampling": 2, }, "160m": { - "name": "160m Band", + "name": "160m Band HF", "center_freq": 1700000, "rf_gain": 10, "samp_rate": 2400000, "start_freq": 1440000, "start_mod": "am", + "direct_sampling": 2, }, }, }, From eba3f6535082db23360fc1bb475cc0d839206e4b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 23 Jun 2020 10:40:53 -0400 Subject: [PATCH 61/63] Update config_webrx.py --- groundstation/config_webrx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py index 8a65baef..fe3ae967 100644 --- a/groundstation/config_webrx.py +++ b/groundstation/config_webrx.py @@ -155,7 +155,7 @@ sdrs = { "start_freq": 90000000, "start_mod": "nfm", }, - "10m": { + "10mv": { "name": "10m Band", "center_freq": 28000000, "rf_gain": 25, From 59560157e342cff8f3d0ebfd40889425efd4daa2 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 7 Jul 2020 08:39:23 -0400 Subject: [PATCH 62/63] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 083530b2..68a30f25 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Use the down arrow key to go down in the file until you find this line: `# Additional overlays and parameters are documented /boot/overlays/README ` -Add the following two lines under it: +Add the following two lines under it: (NOTE: there seems to be an issue with the i2c-gpio.dtbo file in the latest kernal. I'm investigating this temporary fix: https://github.com/raspberrypi/firmware/issues/1401. If adding dtoverlay=i2c-gpio in this step causes your Pi not to boot, then you are encountering this issue) `dtoverlay=i2c-gpio` From f792bc2fd4ae825d30c1b7e281e29d37a7d58d91 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 7 Jul 2020 10:18:03 -0400 Subject: [PATCH 63/63] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68a30f25..1bf9bcbc 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Then type: `git checkout master` -Create a sim.cfg configuration file with your amateur radio callsign by typing: +Create a sim.cfg configuration file with your amateur radio callsign (in all caps, no lower case letters!) by typing: `echo "callsign" >> sim.cfg`