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