diff --git a/groundstation/aprs-cubesatsim.sh b/groundstation/aprs-cubesatsim.sh
new file mode 100755
index 00000000..2b80439f
--- /dev/null
+++ b/groundstation/aprs-cubesatsim.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# script to auto decode APRS packets from CubeSatSim
+
+sudo modprobe snd-aloop
+
+sudo systemctl stop openwebrx
+
+sudo systemctl stop rtl_tcp
+
+pkill -o chromium &>/dev/null
+
+sudo killall -9 rtl_fm &>/dev/null
+
+sudo killall -9 direwolf &>/dev/null
+
+sudo killall -9 aplay &>/dev/null
+
+sudo killall -9 qsstv &>/dev/null
+
+sudo killall -9 rtl_tcp &>/dev/null
+
+sudo killall -9 java &>/dev/null
+
+sudo killall -9 CubicSDR &>/dev/null
+
+echo -e "Script to auto decode APRS packets from CubeSatSim on 434.90 MHz\n"
+
+sleep 1
+
+#sudo rtl_fm -f 144.39M -s 22050 -g 48 - | multimon-ng -a AFSK1200 -A -t raw -
+
+direwolf -t 0 &
+
+#rtl_fm -M fm -f 144.39M -s 48k | aplay -D hw:2,0,0 -r 48000 -t raw -f S16_LE -c 1
+rtl_fm -M fm -f 434.9M -s 48k | aplay -D hw:2,0,0 -r 48000 -t raw -f S16_LE -c 1
+
+
+
diff --git a/groundstation/aprs.sh b/groundstation/aprs.sh
index 7d83c968..15d9c2df 100755
--- a/groundstation/aprs.sh
+++ b/groundstation/aprs.sh
@@ -1,9 +1,38 @@
#!/bin/bash
# script to auto decode APRS packets on 2m
-# kill openwebrx if it is running
-ps -ef | grep rtl | grep -v grep | awk '{print $2}' | sudo xargs kill
+sudo modprobe snd-aloop
+
+sudo systemctl stop openwebrx
+
+sudo systemctl stop rtl_tcp
+
+pkill -o chromium &>/dev/null
+
+sudo killall -9 rtl_fm &>/dev/null
+
+sudo killall -9 direwolf &>/dev/null
+
+sudo killall -9 aplay &>/dev/null
+
+sudo killall -9 qsstv &>/dev/null
+
+sudo killall -9 rtl_tcp &>/dev/null
+
+sudo killall -9 java &>/dev/null
+
+sudo killall -9 CubicSDR &>/dev/null
echo -e "Script to auto decode APRS packets on 144.390 MHz\n"
-sudo rtl_fm -f 144.39M -s 22050 -g 48 - | multimon-ng -a AFSK1200 -A -t raw -
+sleep 1
+
+#sudo rtl_fm -f 144.39M -s 22050 -g 48 - | multimon-ng -a AFSK1200 -A -t raw -
+
+direwolf -t 0 &
+
+rtl_fm -M fm -f 144.39M -s 48k | aplay -D hw:2,0,0 -r 48000 -t raw -f S16_LE -c 1
+
+
+
+
diff --git a/groundstation/bands.json b/groundstation/bands.json
index 3d2cc43c..ea638154 100644
--- a/groundstation/bands.json
+++ b/groundstation/bands.json
@@ -4,11 +4,12 @@
"lower_bound": 1810000,
"upper_bound": 2000000,
"frequencies": {
- "psk31": 1838000,
+ "bpsk31": 1838000,
"ft8": 1840000,
"wspr": 1836600,
"jt65": 1838000,
- "jt9": 1839000
+ "jt9": 1839000,
+ "js8": 1842000
}
},
{
@@ -16,12 +17,13 @@
"lower_bound": 3500000,
"upper_bound": 3800000,
"frequencies": {
- "psk31": 3580000,
+ "bpsk31": 3580000,
"ft8": 3573000,
"wspr": 3592600,
"jt65": 3570000,
"jt9": 3572000,
- "ft4": [3568000, 3575000]
+ "ft4": [3568000, 3575000],
+ "js8": 3578000
}
},
{
@@ -38,12 +40,13 @@
"lower_bound": 7000000,
"upper_bound": 7200000,
"frequencies": {
- "psk31": 7040000,
+ "bpsk31": 7040000,
"ft8": 7074000,
"wspr": 7038600,
"jt65": 7076000,
"jt9": 7078000,
- "ft4": 7047500
+ "ft4": 7047500,
+ "js8": 7078000
}
},
{
@@ -51,12 +54,13 @@
"lower_bound": 10100000,
"upper_bound": 10150000,
"frequencies": {
- "psk31": 10141000,
+ "bpsk31": 10141000,
"ft8": 10136000,
"wspr": 10138700,
"jt65": 10138000,
"jt9": 10140000,
- "ft4": 10140000
+ "ft4": 10140000,
+ "js8": 10130000
}
},
{
@@ -64,12 +68,13 @@
"lower_bound": 14000000,
"upper_bound": 14350000,
"frequencies": {
- "psk31": 14070000,
+ "bpsk31": 14070000,
"ft8": 14074000,
"wspr": 14095600,
"jt65": 14076000,
"jt9": 14078000,
- "ft4": 14080000
+ "ft4": 14080000,
+ "js8": 14078000
}
},
{
@@ -77,12 +82,13 @@
"lower_bound": 18068000,
"upper_bound": 18168000,
"frequencies": {
- "psk31": 18098000,
+ "bpsk31": 18098000,
"ft8": 18100000,
"wspr": 18104600,
"jt65": 18102000,
"jt9": 18104000,
- "ft4": 18104000
+ "ft4": 18104000,
+ "js8": 18104000
}
},
{
@@ -90,12 +96,13 @@
"lower_bound": 21000000,
"upper_bound": 21450000,
"frequencies": {
- "psk31": 21070000,
+ "bpsk31": 21070000,
"ft8": 21074000,
"wspr": 21094600,
"jt65": 21076000,
"jt9": 21078000,
- "ft4": 21140000
+ "ft4": 21140000,
+ "js8": 21078000
}
},
{
@@ -103,12 +110,13 @@
"lower_bound": 24890000,
"upper_bound": 24990000,
"frequencies": {
- "psk31": 24920000,
+ "bpsk31": 24920000,
"ft8": 24915000,
"wspr": 24924600,
"jt65": 24917000,
"jt9": 24919000,
- "ft4": 24919000
+ "ft4": 24919000,
+ "js8": 24922000
}
},
{
@@ -116,12 +124,13 @@
"lower_bound": 28000000,
"upper_bound": 29700000,
"frequencies": {
- "psk31": [28070000, 28120000],
+ "bpsk31": [28070000, 28120000],
"ft8": 28074000,
"wspr": 28124600,
"jt65": 28076000,
"jt9": 28078000,
- "ft4": 28180000
+ "ft4": 28180000,
+ "js8": 28078000
}
},
{
@@ -129,12 +138,13 @@
"lower_bound": 50030000,
"upper_bound": 51000000,
"frequencies": {
- "psk31": 50305000,
+ "bpsk31": 50305000,
"ft8": 50313000,
"wspr": 50293000,
"jt65": 50310000,
"jt9": 50312000,
- "ft4": 50318000
+ "ft4": 50318000,
+ "js8": 50318000
}
},
{
@@ -154,7 +164,7 @@
"ft8": 144174000,
"ft4": 144170000,
"jt65": 144120000,
- "packet": 144390000
+ "packet": [144390000, 144800000, 145175000]
}
},
{
@@ -190,5 +200,75 @@
"name": "3cm",
"lower_bound": 10000000000,
"upper_bound": 10500000000
+ },
+ {
+ "name": "120m Broadcast",
+ "lower_bound": 2300000,
+ "upper_bound": 2495000
+ },
+ {
+ "name": "90m Broadcast",
+ "lower_bound": 3200000,
+ "upper_bound": 3400000
+ },
+ {
+ "name": "75m Broadcast",
+ "lower_bound": 3900000,
+ "upper_bound": 4000000
+ },
+ {
+ "name": "60m Broadcast",
+ "lower_bound": 4750000,
+ "upper_bound": 4995000
+ },
+ {
+ "name": "49m Broadcast",
+ "lower_bound": 5900000,
+ "upper_bound": 6200000
+ },
+ {
+ "name": "41m Broadcast",
+ "lower_bound": 7200000,
+ "upper_bound": 7450000
+ },
+ {
+ "name": "31m Broadcast",
+ "lower_bound": 9400000,
+ "upper_bound": 9900000
+ },
+ {
+ "name": "25m Broadcast",
+ "lower_bound": 11600000,
+ "upper_bound": 12100000
+ },
+ {
+ "name": "22m Broadcast",
+ "lower_bound": 13570000,
+ "upper_bound": 13870000
+ },
+ {
+ "name": "19m Broadcast",
+ "lower_bound": 15100000,
+ "upper_bound": 15830000
+ },
+ {
+ "name": "16m Broadcast",
+ "lower_bound": 17480000,
+ "upper_bound": 17900000
+ },
+ {
+ "name": "15m Broadcast",
+ "lower_bound": 18900000,
+ "upper_bound": 19020000
+ },
+ {
+ "name": "13m Broadcast",
+ "lower_bound": 21450000,
+ "upper_bound": 21850000
+ },
+ {
+ "name": "11m Broadcast",
+ "lower_bound": 25670000,
+ "upper_bound": 26100000
}
]
diff --git a/groundstation/bookmarks.json b/groundstation/bookmarks.json
index c77f3897..f8bae496 100644
--- a/groundstation/bookmarks.json
+++ b/groundstation/bookmarks.json
@@ -133,15 +133,5 @@
"name": "CubeSatSim",
"frequency": 434900000,
"modulation": "packet"
- },
- {
- "name": "APRS EU",
- "frequency": 144800000,
- "modulation": "nfm"
- },
- {
- "name": "APRS AU",
- "frequency": 145175000,
- "modulation": "nfm"
}
]
diff --git a/groundstation/chromium.desktop.autostart b/groundstation/chromium.desktop.autostart
new file mode 100644
index 00000000..da2a350e
--- /dev/null
+++ b/groundstation/chromium.desktop.autostart
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Type=Application
+Name=Chromium with WebSDR
+Exec=chromium-browser --check-for-update-interval=1 --simulate-critical-update --noerrdialogs --disable-infobars http://127.0.0.1:8073
diff --git a/groundstation/config_webrx.py b/groundstation/config_webrx.py
index 06c3b619..e041178c 100644
--- a/groundstation/config_webrx.py
+++ b/groundstation/config_webrx.py
@@ -21,6 +21,8 @@ config_webrx: configuration options for OpenWebRX
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
+ portions inspired by http://gephi.michalnovak.eu/config_webrx.py
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In addition, as a special exception, the copyright holders
@@ -30,13 +32,10 @@ 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
+version = 3
# NOTE: you can find additional information about configuring OpenWebRX in the Wiki:
# https://github.com/jketterl/openwebrx/wiki/Configuration-guide
@@ -46,24 +45,38 @@ web_port = 8073
max_clients = 10
# ==== Web GUI configuration ====
-receiver_name = "KU2Y"
-receiver_location = "Philadelphia, PA"
+receiver_name = "ARISS Radio Pi"
+receiver_location = ""
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"
+receiver_admin = ""
+receiver_gps = {"lat": 47.000000, "lon": 19.000000}
+photo_title = "Panorama of Budapest from Schönherz Zoltán Dormitory"
+# photo_desc allows you to put pretty much any HTML you like into the receiver description.
+# The lines below should give you some examples of what's possible.
photo_desc = """
You can add your own background photo and receiver information.
-Receiver is operated by: ku2y@amsat.org
+Receiver is operated by: Receiver Operator
Device: RTL-SDR
-Antenna:
-Website: http://ariss-radio:8073
+Antenna: Dipole
+Website: http://ariss-radio-pi:8073
"""
+# ==== Public receiver listings ====
+# You can publish your receiver on online receiver directories, like https://www.receiverbook.de
+# You will receive a receiver key from the directory that will authenticate you as the operator of this receiver.
+# Please note that you not share your receiver keys publicly since anyone that obtains your receiver key can take over
+# your public listing.
+# Your receiver keys should be placed into this array:
+receiver_keys = []
+# If you list your receiver on multiple sites, you can place all your keys into the array above, or you can append
+# keys to the arraylike this:
+# receiver_keys += ["my-receiver-key"]
+
+# If you're not sure, simply copy & paste the code you received from your listing site below this line:
+
# ==== DSP/RX settings ====
-fft_fps = 9
-fft_size = 4096 # Should be power of 2
+fft_fps = 7
+fft_size = 1024 # 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.
)
@@ -71,8 +84,15 @@ fft_voverlap_factor = (
audio_compression = "adpcm" # valid values: "adpcm", "none"
fft_compression = "adpcm" # valid values: "adpcm", "none"
+# Tau setting for WFM (broadcast FM) deemphasis\
+# Quote from wikipedia https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis
+# "In most of the world a 50 µs time constant is used. In the Americas and South Korea, 75 µs is used"
+# Enable one of the following lines, depending on your location:
+# wfm_deemphasis_tau = 75e-6 # for US and South Korea
+wfm_deemphasis_tau = 75e-6 # for the rest of the world
+
digimodes_enable = True # Decoding digimodes come with higher CPU usage.
-digimodes_fft_size = 1024
+digimodes_fft_size = 512
# 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
@@ -132,14 +152,14 @@ sdrs = {
"start_mod": "nfm",
},
"2m": {
- "name": "2m Ham Band",
+ "name": "2m Band",
"center_freq": 145000000,
"rf_gain": 20,
"samp_rate": 2400000,
"start_freq": 145725000,
"start_mod": "nfm",
},
- "70cm-1": {
+ "70cm": {
"name": "70cm Ham Band 435 MHz",
"center_freq": 435500000,
"rf_gain": 20,
@@ -154,14 +174,14 @@ sdrs = {
"samp_rate": 2400000,
"start_freq": 437800000,
"start_mod": "nfm",
- },
+ },
"fm": {
"name": "FM Band",
"center_freq": 91000000,
"rf_gain": 20,
"samp_rate": 2400000,
"start_freq": 90000000,
- "start_mod": "nfm",
+ "start_mod": "wfm",
},
"10mv": {
"name": "10m Band",
@@ -179,12 +199,52 @@ sdrs = {
"start_freq": 51000000,
"start_mod": "usb",
},
- "108MHz": {
- "name": "108 MHz",
- "center_freq": 108000000,
+ "90MHz": {
+ "name": "90 MHz FM Band",
+ "center_freq": 90000000,
"rf_gain": 30,
"samp_rate": 2400000,
- "start_freq": 108000000,
+ "start_freq": 110000000,
+ "start_mod": "nfm",
+ },
+ "92MHz": {
+ "name": "92 MHz FM Band",
+ "center_freq": 92000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 92000000,
+ "start_mod": "wfm",
+ },
+ "94MHz": {
+ "name": "94 MHz FM Band",
+ "center_freq": 94000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 94000000,
+ "start_mod": "wfm",
+ },
+ "96mhz": {
+ "name": "96 MHz FM Band",
+ "center_freq": 96000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 96000000,
+ "start_mod": "wfm",
+ },
+ "98mhz": {
+ "name": "98 MHz FM Band",
+ "center_freq": 98000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 98000000,
+ "start_mod": "wfm",
+ },
+ "100MHz": {
+ "name": "100 MHz",
+ "center_freq": 100000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 100000000,
"start_mod": "nfm",
},
"110MHz": {
@@ -227,7 +287,7 @@ sdrs = {
"start_freq": 118000000,
"start_mod": "nfm",
},
- "120mhz": {
+ "120mhz": {
"name": "120 MHz Air Band",
"center_freq": 120000000,
"rf_gain": 30,
@@ -539,14 +599,38 @@ sdrs = {
"start_freq": 440000000,
"start_mod": "nfm",
},
+ "442mhz": {
+ "name": "442 MHz 70cm Ham Band",
+ "center_freq": 442000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 442000000,
+ "start_mod": "nfm",
+ },
+ "444mhz": {
+ "name": "444 MHz 70cm Ham Band",
+ "center_freq": 444000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 444000000,
+ "start_mod": "nfm",
+ },
"446mhz": {
- "name": "446 MHz",
+ "name": "446 MHz 70cm Ham Band",
"center_freq": 446000000,
"rf_gain": 30,
"samp_rate": 2400000,
"start_freq": 446000000,
"start_mod": "nfm",
},
+ "448mhz": {
+ "name": "448 MHz 70cm Ham Band",
+ "center_freq": 448000000,
+ "rf_gain": 30,
+ "samp_rate": 2400000,
+ "start_freq": 448000000,
+ "start_mod": "nfm",
+ },
"460mhz": {
"name": "460 MHz",
"center_freq": 460000000,
@@ -823,22 +907,26 @@ sdrs = {
},
}
+
# ==== Color themes ====
-# A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels
+### google turbo colormap (see: https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html)
+waterfall_colors = [0x30123b, 0x311542, 0x33184a, 0x341b51, 0x351e58, 0x36215f, 0x372466, 0x38266c, 0x392973, 0x3a2c79, 0x3b2f80, 0x3c3286, 0x3d358b, 0x3e3891, 0x3e3a97, 0x3f3d9c, 0x4040a2, 0x4043a7, 0x4146ac, 0x4248b1, 0x424bb6, 0x434eba, 0x4351bf, 0x4453c3, 0x4456c7, 0x4559cb, 0x455bcf, 0x455ed3, 0x4561d7, 0x4663da, 0x4666dd, 0x4669e1, 0x466be4, 0x466ee7, 0x4671e9, 0x4673ec, 0x4676ee, 0x4678f1, 0x467bf3, 0x467df5, 0x4680f7, 0x4682f9, 0x4685fa, 0x4587fc, 0x458afd, 0x448cfe, 0x448ffe, 0x4391ff, 0x4294ff, 0x4196ff, 0x3f99ff, 0x3e9bff, 0x3d9efe, 0x3ba1fd, 0x3aa3fd, 0x38a6fb, 0x36a8fa, 0x35abf9, 0x33adf7, 0x31b0f6, 0x2fb2f4, 0x2db5f2, 0x2cb7f0, 0x2ab9ee, 0x28bcec, 0x26beea, 0x25c0e7, 0x23c3e5, 0x21c5e2, 0x20c7e0, 0x1fc9dd, 0x1dccdb, 0x1cced8, 0x1bd0d5, 0x1ad2d3, 0x19d4d0, 0x18d6cd, 0x18d8cb, 0x18dac8, 0x17dbc5, 0x17ddc3, 0x17dfc0, 0x18e0be, 0x18e2bb, 0x19e3b9, 0x1ae5b7, 0x1be6b4, 0x1de8b2, 0x1ee9af, 0x20eaad, 0x22ecaa, 0x24eda7, 0x27eea4, 0x29efa1, 0x2cf09e, 0x2ff19b, 0x32f298, 0x35f394, 0x38f491, 0x3cf58e, 0x3ff68b, 0x43f787, 0x46f884, 0x4af980, 0x4efa7d, 0x51fa79, 0x55fb76, 0x59fc73, 0x5dfc6f, 0x61fd6c, 0x65fd69, 0x69fe65, 0x6dfe62, 0x71fe5f, 0x75ff5c, 0x79ff59, 0x7dff56, 0x80ff53, 0x84ff50, 0x88ff4e, 0x8bff4b, 0x8fff49, 0x92ff46, 0x96ff44, 0x99ff42, 0x9cfe40, 0x9ffe3e, 0xa2fd3d, 0xa4fd3b, 0xa7fc3a, 0xaafc39, 0xacfb38, 0xaffa37, 0xb1f936, 0xb4f835, 0xb7f835, 0xb9f634, 0xbcf534, 0xbff434, 0xc1f334, 0xc4f233, 0xc6f033, 0xc9ef34, 0xcbee34, 0xceec34, 0xd0eb34, 0xd2e934, 0xd5e835, 0xd7e635, 0xd9e435, 0xdbe236, 0xdde136, 0xe0df37, 0xe2dd37, 0xe4db38, 0xe6d938, 0xe7d738, 0xe9d539, 0xebd339, 0xedd139, 0xeecf3a, 0xf0cd3a, 0xf1cb3a, 0xf3c93a, 0xf4c73a, 0xf5c53a, 0xf7c33a, 0xf8c13a, 0xf9bf39, 0xfabd39, 0xfaba38, 0xfbb838, 0xfcb637, 0xfcb436, 0xfdb135, 0xfdaf35, 0xfeac34, 0xfea933, 0xfea732, 0xfea431, 0xffa12f, 0xff9e2e, 0xff9c2d, 0xff992c, 0xfe962b, 0xfe932a, 0xfe9028, 0xfe8d27, 0xfd8a26, 0xfd8724, 0xfc8423, 0xfc8122, 0xfb7e20, 0xfb7b1f, 0xfa781e, 0xf9751c, 0xf8721b, 0xf86f1a, 0xf76c19, 0xf66917, 0xf56616, 0xf46315, 0xf36014, 0xf25d13, 0xf05b11, 0xef5810, 0xee550f, 0xed530e, 0xeb500e, 0xea4e0d, 0xe94b0c, 0xe7490b, 0xe6470a, 0xe4450a, 0xe34209, 0xe14009, 0xdf3e08, 0xde3c07, 0xdc3a07, 0xda3806, 0xd83606, 0xd63405, 0xd43205, 0xd23105, 0xd02f04, 0xce2d04, 0xcc2b03, 0xca2903, 0xc82803, 0xc62602, 0xc32402, 0xc12302, 0xbf2102, 0xbc1f01, 0xba1e01, 0xb71c01, 0xb41b01, 0xb21901, 0xaf1801, 0xac1601, 0xaa1501, 0xa71401, 0xa41201, 0xa11101, 0x9e1001, 0x9b0f01, 0x980d01, 0x950c01, 0x920b01, 0x8e0a01, 0x8b0901, 0x880801, 0x850701, 0x810602, 0x7e0502, 0x7a0402]
+
+### original theme by teejez:
+#waterfall_colors = [0x000000, 0x0000FF, 0x00FFFF, 0x00FF00, 0xFFFF00, 0xFF0000, 0xFF00FF, 0xFFFFFF]
-### default theme by teejez:
-waterfall_colors = [0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0x00FF00FF, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFFFFFFFF]
-waterfall_min_level = -88 # in dB
-waterfall_max_level = -20
-waterfall_auto_level_margin = {"min": 5, "max": 40}
### old theme by HA7ILM:
-# waterfall_colors = "[0x000000ff,0x2e6893ff, 0x69a5d0ff, 0x214b69ff, 0x9dc4e0ff, 0xfff775ff, 0xff8a8aff, 0xb20000ff]"
+#waterfall_colors = [0x000000, 0x2e6893, 0x69a5d0, 0x214b69, 0x9dc4e0, 0xfff775, 0xff8a8a, 0xb20000]
# 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.
+waterfall_min_level = -88 # in dB
+waterfall_max_level = -20
+waterfall_auto_level_margin = {"min": 3, "max": 10, "min_range": 50}
+
# 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"]]
@@ -884,7 +972,7 @@ 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"
+temporary_directory = "/tmp"
services_enabled = False
services_decoders = ["ft8", "ft4", "wspr", "packet"]
diff --git a/groundstation/cubicsdr.sh b/groundstation/cubicsdr.sh
index d2792c64..f2e0c92e 100755
--- a/groundstation/cubicsdr.sh
+++ b/groundstation/cubicsdr.sh
@@ -11,6 +11,10 @@ echo
sudo killall -9 java &>/dev/null
+sudo killall -9 rtl_fm &>/dev/null
+
+sudo killall -9 qsstv &>/dev/null
+
sudo systemctl stop rtl_tcp
sudo killall -9 rtl_tcp &>/dev/null
diff --git a/groundstation/direwolf.conf b/groundstation/direwolf.conf
new file mode 100644
index 00000000..ce8b6823
--- /dev/null
+++ b/groundstation/direwolf.conf
@@ -0,0 +1 @@
+ADEVICE plughw:CARD=Loopback,DEV=1 plughw:CARD=b1,DEV=0
diff --git a/groundstation/fox.sh b/groundstation/fox.sh
index 610d7850..af7853b7 100755
--- a/groundstation/fox.sh
+++ b/groundstation/fox.sh
@@ -13,10 +13,14 @@ pkill -o chromium &>/dev/null
sudo killall -9 rtl_tcp &>/dev/null
+sudo killall -9 rtl_fm &>/dev/null
+
sudo killall -9 java &>/dev/null
sudo killall -9 CubicSDR &>/dev/null
+sudo killall -9 qsstv &>/dev/null
+
/home/pi/Downloads/FoxTelem/FoxTelem &
#/usr/bin/chromium-browser --noerrdialogs --disable-infobars http://localhost:8073 &>/dev/null &
diff --git a/groundstation/foxtelem.desktop.autostart.bk b/groundstation/foxtelem.desktop.autostart.bk
new file mode 100644
index 00000000..6b24d049
--- /dev/null
+++ b/groundstation/foxtelem.desktop.autostart.bk
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Type=Application
+Name=FoxTelem
+Exec=/home/pi/CubeSatSim/groundstation/fox.sh
diff --git a/groundstation/loc-add-api.py b/groundstation/loc-add-api.py
new file mode 100644
index 00000000..acd412bb
--- /dev/null
+++ b/groundstation/loc-add-api.py
@@ -0,0 +1,45 @@
+# code based on https://developer.here.com/blog/understanding-geocoding-with-python
+#
+# copy or rename to loc.py and add api key
+
+import requests
+
+URL = "https://geocode.search.hereapi.com/v1/geocode"
+print("In order to track satellites, we need to know your location\n")
+print("You can enter your state or country or region\n")
+print("as your exact location is not needed. \n\n")
+location = input("Type your location: ") #taking user input
+api_key = '' # Acquire from developer.here.com
+PARAMS = {'apikey':api_key,'q':location}
+
+# sending get request and saving the response as response object
+r = requests.get(url = URL, params = PARAMS)
+data = r.json()
+
+#print(data)
+
+latitude = data['items'][0]['position']['lat']
+longitude = data['items'][0]['position']['lng']
+
+print(latitude)
+print(longitude)
+
+file = open(r"/home/pi/.config/Gpredict/MyLocation.qth","w+")
+
+str1 = "[QTH]\n"
+str2 = "LOCATION=" + location + "\n"
+str3 = "LAT=" + str(latitude) + "\n"
+str4 = "LON=" + str(longitude) + "\n"
+str5 = "ALT=0\n"
+str6 = "WX=\n"
+str7 = "QTH_TYPE=0\n"
+
+file.write(str1)
+file.write(str2)
+file.write(str3)
+file.write(str4)
+file.write(str5)
+file.write(str6)
+file.write(str7)
+
+file.close()
diff --git a/groundstation/loc.sh b/groundstation/loc.sh
new file mode 100755
index 00000000..3042a781
--- /dev/null
+++ b/groundstation/loc.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+#
+
+python3 /home/pi/CubeSatSim/groundstation/loc.py
+
+/usr/bin/gpredict
diff --git a/groundstation/rtl-tcp-d.sh b/groundstation/rtl-tcp-d.sh
index db49a177..4fbaede4 100755
--- a/groundstation/rtl-tcp-d.sh
+++ b/groundstation/rtl-tcp-d.sh
@@ -19,10 +19,16 @@ echo
sudo killall -9 java &>/dev/null
+sudo killall -9 rtl_fm &>/dev/null
+
sudo killall -9 CubicSDR &>/dev/null
+sudo killall -9 qsstv &>/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'
+
+$SHELL
diff --git a/groundstation/rtl-tcp.sh b/groundstation/rtl-tcp.sh
index c48abe67..1078db39 100755
--- a/groundstation/rtl-tcp.sh
+++ b/groundstation/rtl-tcp.sh
@@ -27,12 +27,16 @@ pkill -o chromium &>/dev/null
sudo killall -9 java &>/dev/null
+sudo killall -9 rtl_fm &>/dev/null
+
sudo killall -9 CubicSDR &>/dev/null
sudo systemctl stop openwebrx
sudo killall -9 rtl_tcp &>/dev/null
+sudo killall -9 qsstv &>/dev/null
+
sudo systemctl start rtl_tcp
$SHELL
diff --git a/groundstation/sdr.sh b/groundstation/sdr.sh
index e232f006..46e8593e 100755
--- a/groundstation/sdr.sh
+++ b/groundstation/sdr.sh
@@ -19,12 +19,16 @@ echo
sudo killall -9 java &>/dev/null
+sudo killall -9 rtl_fm &>/dev/null
+
sudo killall -9 CubicSDR &>/dev/null
+sudo killall -9 qsstv &>/dev/null
+
sudo systemctl stop rtl_tcp
sudo systemctl restart openwebrx
-/usr/bin/chromium-browser --noerrdialogs --disable-infobars http://localhost:8073 &>/dev/null &
+chromium-browser --check-for-update-interval=1 --simulate-critical-update --noerrdialogs --disable-infobars http://127.0.0.1:8073 &>/dev/null &
$SHELL
diff --git a/groundstation/set location.desktop b/groundstation/set location.desktop
new file mode 100644
index 00000000..e2b80016
--- /dev/null
+++ b/groundstation/set location.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Exec=/home/pi/CubeSatSim/groundstation/loc.sh
+Name=Set My Location
+Comment=Set Location for Gpredict
+Icon=/home/pi/Downloads/gpredict.png
+Path=/home/pi
+Terminal=true
+Categories=HamRadio
+Keywords=Location
diff --git a/groundstation/sstv_decode.sh b/groundstation/sstv_decode.sh
index d9b5e12b..85308325 100755
--- a/groundstation/sstv_decode.sh
+++ b/groundstation/sstv_decode.sh
@@ -7,6 +7,8 @@ echo
sudo modprobe snd-aloop
+sudo killall -9 qsstv &>/dev/null
+
sudo systemctl stop openwebrx
sudo systemctl stop rtl_tcp
@@ -17,6 +19,8 @@ sudo killall -9 rtl_tcp &>/dev/null
sudo killall -9 java &>/dev/null
+sudo killall -9 rtl_fm &>/dev/null
+
sudo killall -9 CubicSDR &>/dev/null
rtl_fm -M fm -f 434.9M -s 48k | aplay -D hw:2,0,0 -r 48000 -t raw -f S16_LE -c 1 &
diff --git a/groundstation/sstv_decode_iss.sh b/groundstation/sstv_decode_iss.sh
index f82a562e..dcf26181 100755
--- a/groundstation/sstv_decode_iss.sh
+++ b/groundstation/sstv_decode_iss.sh
@@ -7,14 +7,20 @@ echo
sudo modprobe snd-aloop
+sudo killall -9 qsstv &>/dev/null
+
+sudo killall -9 rtl_fm &>/dev/null
+
+sudo killall -9 aplay &>/dev/null
+
+sudo killall -9 direwolf &>/dev/null
+
sudo systemctl stop openwebrx
sudo systemctl stop rtl_tcp
pkill -o chromium &>/dev/null
-sudo killall -9 rtl_fm &>/dev/null
-
sudo killall -9 qsstv &>/dev/null
sudo killall -9 rtl_tcp &>/dev/null
diff --git a/groundstation/sstv_decode_sim.sh b/groundstation/sstv_decode_sim.sh
index 92bea4f6..f45754c3 100755
--- a/groundstation/sstv_decode_sim.sh
+++ b/groundstation/sstv_decode_sim.sh
@@ -7,14 +7,20 @@ echo
sudo modprobe snd-aloop
+sudo killall -9 qsstv &>/dev/null
+
+sudo killall -9 rtl_fm &>/dev/null
+
+sudo killall -9 aplay &>/dev/null
+
+sudo killall -9 direwolf &>/dev/null
+
sudo systemctl stop openwebrx
sudo systemctl stop rtl_tcp
pkill -o chromium &>/dev/null
-sudo killall -9 rtl_fm &>/dev/null
-
sudo killall -9 qsstv &>/dev/null
sudo killall -9 rtl_tcp &>/dev/null
@@ -27,7 +33,8 @@ echo "ARG1=s" >> .mode
qsstv &
-sudo systemctl restart cubesatsim
+#sudo systemctl restart cubesatsim
rtl_fm -M fm -f 434.9M -s 48k | aplay -D hw:2,0,0 -r 48000 -t raw -f S16_LE -c 1
+
$SHELL